Tải bản đầy đủ (.pdf) (45 trang)

Ứng dụng phần mềm microsoft office excel để giải bài toán quy hoạch tuyến tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1006.4 KB, 45 trang )

TRƯờNG ĐạI HọC VINH
KHOA TOáN
--------------

lê thị thu hiền

ứNG DụNG PHầN MềM MICROSOFT OFFICE EXCEL
Để GIảI BàI TOáN QUY HOạCH TUYếN TíNH

KHóA LUậN TốT NGHIệP ĐạI HọC
NGàNH TOáN TIN Học ứNG DôNG

VINH 2010


TRƯờNG ĐạI HọC VINH
KHOA TOáN
--------------

lê thị thu hiền

ứNG DụNG PHầN MềM MICROSOFT OFFICE EXCEL
Để GIảI BàI TOáN QUY HOạCH TUYếN TíNH

KHóA LUậN TốT NGHIệP ĐạI HọC
NGàNH TOáN Tin học ứNG DụNG

Cán bộ h-ớng dẫn khóa luận
Th.S. Nguyễn Thị Thanh Hiền
Sinh viên thực hiện: Lê Thị Thu Hiền


Lớp 47 B Toán Tin häc øng dông

Vinh 2010


MụC LụC

Trang
Mở đầu. 1
Ch-ơng 1. Bài toán quy hoạch tuyến tính 3
1.1. Bài toán.

3

1.2. Tính chất bài toán quy hoạch tuyến tính...........

4

1.3. Ph-ơng pháp đơn hình....... 6
Ch-ơng 2. Giải bài toán quy hoạch tuyến tính trên Microsoft Office Excel.. 13
2.1. Công cụ Add Ins Solver.. 13
2.2. Giải bài toán quy hoạch tuyến tính trên Microsoft Office Excell. 18
2.3. Giải thích thuật ngữ................... 25
2.4. Hạn chế khi giải bài toán quy hoạch tuyến tính trong Excel 27
Ch-ơng 3. Các bài toán mở rộng 28
3.1. Bài toán lập kế hoạch sản xuất.. 28
3.2. Bài toán vận tải.................. 33
3.3. Giải bài toán quy hoạch phi tuyến. 37
Kết luận 40
Tài liệu tham khảo.. 41



Mở ĐầU
Thực tế hiện nay, sự cạnh tranh trong hoạt động sản xuất kinh doanh luôn đòi
hỏi các nhà quản lý doanh nghiệp phải th-ờng xuyên lựa chọn ph-ơng án để đ-a ra
các quyết định nhanh chóng, chính xác và kịp thời với những ràng buộc và hạn chế
về các điều kiện liên quan tới tiềm năng của doanh nghiệp, điều kiện thị tr-ờng,
hoàn cảnh tự nhiên và xà hội. Việc lựa chọn ph-ơng án nào là tối -u theo mục tiêu
đà định tr-ớc là hết sức quan trọng. Đặc biệt, nếu tất cả các yếu tố (biến số) liên
quan đến khả năng, mục đích và quyết định lựa chọn đều có mối quan hệ tuyến tính
thì chúng ta hoàn toàn có thể sử dụng mô hình quy hoạch tuyến tính để mô tả, phân
tích và tìm lời giải cho vấn đề lựa chọn tối -u. Trong đó ph-ơng pháp đơn hình
đ-ợc George Bemanrd Dantzig đ-a ra năm 1947 cùng lúc với việc khai sinh ra quy
hoạch tuyến tính, ph-ơng pháp này thực sự có hiệu quả để giải những bài toán quy
hoạch tuyến tính cỡ lớn trong thực tế mà ta th-ờng gặp, nh- để vận chuyển hàng
hóa đầy ®đ nh-ng cã tỉng chi phÝ lµ nhá nhÊt – đây chính là bài toán vận tải. Hoặc
trong kinh doanh phải lập kế hoạch sản xuất đối với các nguyên liệu và sản phẩm
để thu đ-ợc tổng lợi nhuận là lớn nhất
Tuy nhiên, trong thực tế công việc này lại khá phức tạp, gây không ít khó khăn
và lúng túng cho những đối t-ợng quan tâm đến nó. Để giải quyết vấn đề này, trong
phần mềm ứng dụng Microsoft Office Excel sử dụng một công cụ cài thêm là Sover
có thể giải các bài toán tối -u nhanh chóng. Solver là một chức năng tính toán trong
Microsoft Excel. Nó chủ yếu đ-ợc sử dụng để xác định giá trị tối đa hay tối thiểu
của một mục tiêu đ-ợc xếp vào một ô trong bảng tính Excel. Trong tối -u hóa,
Excel Solver là một công cụ rất mạnh mẽ. Solver là một sự kết hợp của một số
l-ợng rất nhiều các ch-ơng trình. Các ch-ơng trình chức năng của nó gồm giao
diƯn ng-êi dïng ®å häa (the Graphical User Interface - GUI), một ngôn ngữ mô
hình đại số (ví dụ nh- phần mềm để xử lý số liệu có tên là General algebraic
Modeling Systems (GAMS)), vµ tèi -u cho tuyÕn tÝnh, phi tuyến tính, và các
ch-ơng trình số nguyên. Với những công cụ mạnh mẽ kết hợp với nhau, Solver có

thể tìm thấy một giá trị tối -u cho một ô trong bảng tính mục tiêu. Để hiểu biết rõ
hơn về ph-ơng pháp cũng nh- cách thức giải một bài toán quy ho¹ch tuyÕn tÝnh


trong Microsoft Excel, chúng tôi lựa chọn đề tài luận văn ứng dụng phần mềm
Microsoft Office Excel để giải bài toán quy hoạch tuyến tính. Việc sử dụng phần
mềm Microsoft Excel để giải các bài toán quy hoạch tuyến tính đà đ-ợc nhiều nhà
toán học quan tâm và nhiều tài liƯu ®Ị cËp ®Õn (xem [3], [5]).
Néi dung khãa ln đ-ợc trình bày thành ba ch-ơng.
Ch-ơng 1 trình bày bài toán quy hoạch tuyến tính.
Ch-ơng 2 trình bày giải bài toán quy hoạch tuyến tính trên Microsoft Excel.
Ch-ơng 3 trình bày các bài toán mở rộng.
Khóa luận đ-ợc viết dựa trên những tài liệu cở sở của Quy hoạch tuyến tính và
những webside về phần mềm Microsoft Excel trên internet. Tuy nhiên, do trình độ
bản thân còn hạn chế nên khóa luận không tránh khỏi những thiếu sót, nhầm lẫn
hoặc ch-a hiểu sâu vấn đề. Bản thân tác giả mong đ-ợc sự góp ý, phê bình, tha thứ
và giúp đỡ của các thầy cô giáo giảng dạy và h-ớng dẫn viết luận văn, cũng nhban chủ nhiệm khoa Toán Tr-ờng Đại học Vinh.
Tác giả xin chân thành cảm ơn sự giúp đỡ h-ớng dẫn tận tình của các thầy cô
giáo trong tổ Xác xuất thống kê và Toán ứng dụng Khoa Toán, đặc biệt là cô
giáo Nguyễn Thị Thanh Hiền đà giành nhiều thời gian và sự quan tâm nhiệt tình
h-ớng dẫn giúp đỡ tác giả hoàn thành khóa luận này.

Tác giả


Ch-ơng 1
BàI TOáN QUY HOạCH TUYếN TíNH
1.1. Bài toán
Xét bài toán quy hoạch tuyến tính tổng quát:
n

min {f(X) = cjxj }
j=1

 n a x = b  i =1 2 … k
 j=1
víi ®iỊu kiƯn  n
a x ≥ b  i = k+1 … m
 j=1
 x ≥ 0 j = 1 2 … r ; r ≤ n.
ij j

ij j

i

i

j

Trong tr-ờng hợp đặc biệt, bài toán quy hoạch tuyÕn tÝnh cã d¹ng:
n

min{f(X)= cjxj }
j=1

(1.1)

 n a x = b  i =1 2 … m
víi ®iỊu kiƯn  j=1
 x ≥ 0 j = 1 2 … n.

ij j

(1.2)

i

(1.3)

j

Bài toán có dạng (1.1)(1.2)(1.3) đ-ợc gọi là bài toán quy hoạch tuyến tính dạng
chính tắc.
Chú ý rằng bài toán quy hoạch tuyến tính tổng quát có thể đ-a về bài toán quy
hoạch tuyến tính dạng chính tắc t-ơng đ-ơng nhờ các quy tắc sau đây.
n

+ Nếu có bất đẳng thøc

n

a x ≥ b hc  a x ≤ b
ij j

i

j=1
xn+i 0, với hệ số hàm mục tiêu cn+i = 0 để có

ij j


j=1

i

thì ta đ-a thêm ẩn phụ


n

n
a
x
x
=
b
hc
 ij j n+i i
aijxj + xn+i = bi .
j=1
j=1
+ Nếu có ẩn xk ch-a ràng buộc về dấu, thì cã thĨ thay nã bëi hai biÕn míi xk+ vµ
xk- không âm, với xk =xk+ - xk-.
Để thuận lợi trong trình bày, chúng ta đ-a ra các cách viết khác nhau của bài
toán (1.1)(1.2)(1.3) nh- sau:
* Dạng ma trận: Ký hiƯu ma trËn hµng C = ( c1 c2 …cn)1 n
C¸c ma trËn cét: X = (x1 x2 …xn)Tn1 ;b = (b1 b2 …bm)T m1 vµ ma trËn A=(aij)mn.
Ta cã bài toán: min CX





với điều kiện

AX =b
X 0.

* Dạng vector: Ký hiƯu c¸c vector
C = (c1, c2, …, cn), X = (x1, x2, …, xn),
Ao = (b1, b2, …,bm), Aj = (a1j, a2j, ..., anj), j=1, 2, …, n.
Ta có bài toán:

min <C,X>


với điều kiện


x1A1 + x2A2 + …+ xnAn = Ao
x1 x2 … xn ≥ 0.

1.2. TÝnh chất bài toán quy hoạch tuyến tính
1.2.1. Tính chất tập ph-ơng án
Xét bài toán quy hoạch tuyến tính dạng chính t¾c
n

min{f(X)= cjxj }
j=1

 n a x = b  i =1 2 … m
víi ®iỊu kiƯn  j=1

 x ≥ 0 j = 1 2 … n.
ij j

i

j

+ HƯ ph-¬ng trình (1.2) có đúng m ph-ơng trình độc lập tuyến tÝnh.

(1.1)

(1.2)

(1.3)


+  bi ≥ 0 .
+ m < n, (trong tr-ờng hợp m n thì tập ph-ơng án có nhiều nhất một điểm, do
vậy việc tốt -u là tầm th-ờng).
Ký hiệu M là tập ph-ơng án của bài toán (1.1)(1.2)(1.3).
1.2.2. Định lý. M là một tập lồi.
Chứng minh: xem [1], tr 21.
Định nghĩa. Ta gọi điểm cực biên của tập lồi các ph-ơng án là ph-ơng án cực
biên.
Ph-ơng án X = (xj) đ-ợc gọi là bị chặn nếu tồn tại số thực q hữu hạn sao cho
0xj q, j = 1, 2, , n. Tập ph-ơng án M là bị chặn nếu mọi ph-ơng án đều bị
chặn.
Tập ph-ơng án M và bị chặn đ-ợc gọi là đa diện lồi.
1.2.3. Tính chất của bài toán quy hoạch tuyến tính
1.2.3.1. Định lý. Nếu tập ph-ơng án của bài toán quy hoạch tuyến tính là đa

diện lồi thì tồn tại ph-ơng án cực biên tối -u.
Chứng minh: xem [2], tr 40.
Trong tr-ờng hợp tổng quát với M nào đó, ta có định lý:
1.2.3.2. Định lý. Nếu bài toán quy hoạch tuyến tính có ph-ơng án tối -u, thì có
ít nhất một ph-ơng án cực biên tối -u.
Chứng minh: xem [2], tr 40.
Từ định lý 1.2.3.1 và 1.2.3.2 cho phép ta tìm ph-ơng án tối -u của bài toán quy
hoạch tuyến tính chỉ cần tìm trên tập ph-ơng án cực biên.
1.2.3.3. Định lý. Ph-ơng án X = (xj) là cực biên khi và chỉ khi hệ vector cột {Aj}
ứng với các xj > 0 độc lập tuyến tính.
Chứng minh: xem [2], tr 43.
Hệ quả. Số tọa độ d-ơng của ph-ơng án cực biên có tối đa là m.
Số ph-ơng án cực biên của M là hữu hạn.
Chứng minh: xem [2], tr 45.


Định nghĩa. Ph-ơng án cực biên có đủ m tọa độ d-ơng đ-ợc gọi là không suy
biến (hay không thoái hóa).
Bài toán quy hoạch tuyến tính có tất cả các ph-ơng án cực biên không suy biến
đ-ợc gọi là bài toán không suy biến.
Hệ m vector {Aj} độc lập tuyến tính t-ơng ứng với ph-ơng án cực biên X nh- đÃ
nêu trong định lý 1.2.3.3 gọi là cơ sở liên kết của X.
Trên cơ sở định lý 1.2.3.3 và hệ quả, ta có thể xem đó là tiêu chuẩn sàng lọc để
giữ lại hữu hạn ph-ơng án cực biên và đi tìm ph-ơng án tối -u trên tập hữu hạn
này.
1.3. Ph-ơng pháp đơn hình
1.3.1. ý t-ởng chung. Xuất phát từ ph-ơng án cực biên Xo nào đó. Kiểm tra Xo
có tối -u hay không?
Nếu Xo tối -u thì dừng.
Nếu ch-a, tìm h-ớng giảm từ Xo, xây dựng ph-ơng án cực biên mới X1 tốt hơn

Xo.
Quá trình tiếp tục nh- vậy, ta đ-ợc dÃy các ph-ơng án cực biên tốt dần (theo
nghĩa giá trị hàm mục tiêu giảm dần từ ph-ơng án cực biên tr-ớc đến ph-ơng án
cực biên sau) Xo, X1, , Xk. Sau hữu hạn b-ớc lặp ta đ-ợc ph-ơng án tối -u hoặc
phát hiện ra bài toán vô nghiệm. Đó là nội dung của quá trình xây dựng dÃy các
ph-ơng án cực biên tốt dần, còn gọi là ph-ơng pháp đơn hình.
Xét bài toán
min CX

với điều kiện


(1.1)

AX =b

(1.2)

X 0.

(1.3)

Với các giả thiết đà nêu, nay ta giả thiết thêm rằng:
- Bài toán (1.1)-(1.3) không suy biến.
- Biết tr-ớc một ph-ơng án cực biên xuất phát Xo.
Không mất tính tổng quát, giả sử ma trận A chứa cơ sở là ma trận đơn vị
A1A2Am. Khi đó mỗi vector Aj biểu diễn qua cơ sở có tọa độ là Aj = (xij).
Chú ý: Trong tr-ờng hợp cơ sở đơn vị thì xij = aij.



Với giả thiết đà nêu ta có ph-ơng án cực biên Xo có dạng
Xo = (x1o, x2o, , xmo, 0, , 0)
với cơ sở liên kết A1A2Am, có ma trận B = (A1A2…Am) h¹ng m.
Ký hiƯu XB* = (x1o, x2o, …, xmo), C* = (c1, c2, …, cm).
m

j = C Xj - cj =  cixij - cj
i=1
*

(1.4)

trong ®ã xij là tọa độ thứ i của vector Aj trong cơ sở B.
Chú ý rằng trong tr-ờng hợp B là hệ cơ sở đơn vị thì xij = aij.
1.3.2. Cơ sở lý luận
1.3.2.1. Định lý (Dấu hiệu tối -u). Nếu tại ph-ơng án cực biên Xo, có mọi j0,
j = 1, 2, …, n th× Xo tèi -u.
Chøng minh: xem [2], tr 71.
Khi không xảy ra mọi j 0, tức là tồn tại k > 0, thì Xo ch-a khẳng định đ-ợc
tối -u.
1.3.2.2. Định lý. Nếu tại ph-ơng án cực biên Xo, tồn tại k > 0 và mọi xik 0 (i
= 1, 2, , m) thì bài toán không có ph-ơng án tối -u (hàm mục tiêu không bị chặn
trên tập ph-ơng án).
Chứng minh: xem [2], tr 73.
1.3.2.3. Định lý. Nếu tại ph-ơng án cực biên Xo, tồn tại k > 0 và tồn tại xik > 0
thì xây dựng đ-ợc ph-ơng án cực biên mới X1 tốt hơn Xo.
Chứng minh: xem [2], tr 73.
Chú ý: Để xây dựng ph-ơng án cực biên mới tốt hơn ph-ơng án cực biên X o, ta
thực hiện:
a) Đ-a vector Ak vào làm cơ sở, thông th-ờng nếu có nhiều j > 0 th× chän

k = max {j : j > 0}.
x0 i x0 s
=
.
ask
aik > 0 aik

b) Chän vector Aℓ ra khỏi cơ sở nhờ vào việc xác định: o = min
Lúc này ph-ơng án cực biên mới sẽ có cơ së lµ A1…As-1As+1…AmAk.


Vấn đề đặt ta là: tại ph-ơng án cực biên Xo, biết đ-ợc các đại l-ợng xio, xij, j và
f(Xo). Tại ph-ơng án cực biên X1, chúng ta cần tính đại l-ợng t-ơng ứng xi1, xij, j
và f(X1).
Bằng phép biến ®ỉi täa ®é khi thay ®ỉi c¬ së, ta cã c«ng thøc
x0 i x0 s
x = min a = a .
sk
aik > 0 ik

k

x’j





=


x0 s
nÕu i = k
ask 
x0 s
0
x i - a aik nếu ng-ợc lại
sk

(1.5)
f(X1) = f(Xo) - ok.

(1.6)

Ta cần tính xi và aij. Theo công thức biến đổi tọa độ khi thay đổi cơ sở trong
đại sè tuyÕn tÝnh, ta cã:

a


ij

=





as j
as k 


nÕu i = k

a
aij - a sj aik  nÕu i  k.
sk

(1.7)
a
Còng từ đó, thay và tính toán trực tiếp ta đ-ợc: j = j - a s j k.
sk
(1.8)
Từ định lý 1.4.2.1, 1.4.2.2, 1.4.2.3 ta có thuật toán đơn hình.
Thuật toán
B-ớc 0. Chọn cơ sở đơn vị và ph-ơng án cực biên xuất phát
(xác định xi, xij, f(X) và j ).
B-ớc 1. KiÓm tra j ≤ 0,  j = 1, …, n ?
NÕu cã, chun sang b-íc 6.
NÕu kh«ng, chun sang b-íc 2.
B-íc 2. KiĨm tra tån t¹i j > 0 mµ  xij ≤ 0 ?
NÕu cã, chun sang b-íc 6.


NÕu kh«ng, chun sang b-íc 3.
B-íc 3. Chän k = max j, đ-a Ak vào cơ sở.
j>0

x
x
B-ớc 4. Tìm min x i = x s , ®-a As ra khái cơ sở.
xij > 0 ik

sk
B-ớc 5. Xây dựng ph-ơng án cực biên X1 theo công thức đà nêu
Gán Xo := X1 rồi trở lại b-ớc 1.
B-ớc 6. Dừng lại, trả lời có hay không có ph-ơng án tối -u.
1.3.3. Định lý. Nếu bài toán quy hoạch tuyến tính không suy biến thì thật toán
đơn hình kết thúc sau hữu hạn b-ớc lặp.
Ví dụ 1: Giải bài toán sau đây
Bảng Cơ

x1 – x2 +



x5 – x6)
I

kiƯn
II

1

-1

1

1

1

-1


Min (f =

A1

A2

A3

A4

A5

A6

x3 + x4 +

6

C*

XB

A4

1

9

1


0

0

1

0

A2

-1

2

3

1

-4

0

0

A5

1

6


1

0

2

0

1

2

13

-2

0

5

0

0

7

c¬ sở liên

3


-8

-3

1

0

0

A4A2A5 là

sở

Chọn
kết

*

A4

1

Với điều
Error!

các
đơn


vector
vị

nên ta có

ph-ơng

án

biên xuất

phát Xo =

(0, 2, 0, 9, 6, 0) và bảng đơn hình.

cực


III

IV

A6

-1

1

3/2


1/2

-2

0

0

1

A5

1

4

-2

-1

6

0

1

0

6


-25/2

-7/2

19

0

0

0

A3

1

1/4

-2/3

-1/4

1

1/12

0

0


A6

-1

3/2

1/6

0

0

1/6

0

1

A5

1

5/2

2

0

-1/2


1

0

5/4

1/6

5/4

0

-19/12

0

0

A3

1

3/2

1/3

0

1


-1/6

1/2

0

A6

-1

3/2

1/6

0

0

1/6

0

1

A2

-1

5


4

1

0

-1

2

0

-5

-29/6

0

0

-1/3

-5/2

0

Tại bảng IV có j 0, (j = 1, , n) nên ta có ph-ơng án tối -u lµ
X =(0, 5, 3/2, 0, 0, 3/2), víi fmin = -5.
Chú ý: Thuật toán đơn hình nêu trên đòi hỏi biết tr-ớc ph-ơng án cực biên xuất
phát Xo. Ta xét 2 tr-ờng hợp:

Tr-ờng hợp 1. Khi bài toán có dạng (1.1)-(1.3), ma trận A chứa ma trận đơn vị,
khi đó chỉ cần chỉ ra hệ cơ sở đơn vị t-ơng ứng các ẩn cơ sở, ta đ-ợc ph-ơng án cực
biên xuất phát Xo (nh- đà làm ở ví dụ trên).
Tr-ờng hợp 2. Xét bài toán dạng chính tắc
n

min{f(X)= cjxj }
j=1
(1.1)


 n a x = b  i =1 2 … m
 j=1
 x ≥ 0 j = 1 2 … n.
ij j

víi ®iỊu kiƯn

(1.2')

i

(1.3')

j

Khi ma trËn A = (aij) ch-a chứa ma trận đơn vị, ta đ-a thêm ẩn giả tạo xn+i 0
với hệ số hàm mục tiêu cn+i = M > 0 đủ lớn để có bài toán giả tạo (M) nh- sau:
n


m

min{f(X)= cjxj + M( xn+i )}
j=1
i=1

 n a x + x = b  i =1 2 … m
víi ®iỊu kiƯn  j=1
 x ≥ 0 j = 1 2 … n+m.
ij j

n+i

i

j

(1.9)

(1.10)

(1.11)

Lóc nµy bài toán (M) có ma trận A chứa ma trận đơn vị nh- đà nêu trong
tr-ờng hợp 1, có thể chọn cơ sở đơn vị {An+i} với các ẩn cơ sở xn+i, i = 1, 2, , m, ta
đ-ợc ph-ơng ¸n cùc biªn xuÊt ph¸t
Xo = (0, 0, …, 0, b1, b2, …, bm)  n+m.
XuÊt ph¸t tõ X , có thể giải bài toán (M) bằng ph-ơng pháp đơn hình. Vấn đề
đặt ra là giữa bài toán (1.1)-(1.3) đà cho và bài toán (M) có mối quan hệ nh- thế
nào? Định lý sau đây sẽ cho ta câu trả lời.

Định lý. Có thể tìm đ-ợc số Mo > 0 ®đ lín, sao cho víi mäi M > Mo th×
a) Bài toán (1.1)-(1.3) có ph-ơng án tối -u X khi và chỉ khi bài toán (M) có
ph-ơng án tối -u X =(X, ).
b) Nếu bài toán (M) có ph-ơng án tối -u X , trong đó chứa ẩn giả tạo xn+i > 0
thì tập ph-ơng án của bài toán (1.1)-(1.3) rỗng.
Chứng minh: xem [2], tr 85.
ở đây (X, ) ký hiƯu cho vector n + m chiỊu, m täa ®é cuèi b»ng 0.
NhËn xÐt:


+ Trong bài toán (M), j có dạng j = j + jM. Vì vậy hàng m + 1 của
j ta nên tách làm hai hàng ghi j và j. Để đánh giá j, tr-ớc hết chú ý xét tới j,
sau đó nếu cần thiết mới xét đến j.
+ Khi ẩn giả tạo xn+i = 0 với mọi i, tức là An+i không tham gia trong cơ sở nữa thì
ta không cần tính cột n +i.
Ví dụ 2. Xét bài toán
max (f = x1 + 2x2 x3)


với điều kiện 


-x1 + 4x2 - 2x3 ≤ 6
x1 + x2 + 2x3 ≥ 6
2x1 – x2 + 2x3 = 4
x1 x2 x3 ≥ 0.

Thay max f(X) bëi min {- f(X)}, ®-a vµo Èn phơ x4, x5 ≥ 0, ta cã bµi toán t-ơng
đ-ơng sau
min (- f = - x1 2x2 + x3)



víi ®iỊu kiƯn 


-x1 + 4x2 - 2x3 + x4
=6
x1 + x2 + 2x3 - x5 = 6
2x1 - x2 + 2x3
=4
xi ≥ 0

 i = 1 5 .

Ta mới có A4 là vector đơn vị. Cần đ-a thêm hai ẩn giả tạo x6, x7 0, để đ-ợc
bài toán giả tạo (M):
Min (- x1 2x2 + x3 + Mx6 + Mx7)


víi ®iỊu kiƯn 


-x1 + 4x2 - 2x3 + x4
=6
x1 + x2 + 2x3 - x5 + x6
=6
2x1 - x2 + 2x3
+ x7 = 4
xi ≥ 0


 i = 1 7 .

Dễ dàng xác định ph-ơng án cực biên của bài toán (M) với cơ sở liên kết đơn vị
A4A6A7 là X = (0, 0, 0, 6, 0, 6, 4).
Kết quả xem bảng sau đây:
Bảng



Số

Sở

C*

XB*

-1

-2

1

0

0

M

M



I

II

III

IV

A1

A2

A3

A4

A5

A6

A7

A4

0

6


-1

4

-2

1

0

0

0

A6

M

6

1

1

2

0

-1


1

0

A7

M

4

2

-1

0

0

0

1

j

0

1

2


-1

0

0

0

0

j

10

3

0

4

0

-1

0

0

A4


0

10

1

3

0

1

0

0

A6

M

2

-1

0

0

-1


1

A3

1

2

1

-1/2

1

0

0

0

j

2

2

-3/2

0


0

0

0

j

2

-1

2

0

0

-1

0

A4

0

7

0


0

1

3/2

A2

-2

1

-1/2

1

0

0

-1/2

A3

1

5/2

3/4


0

1

0

-1/4

j

1/2

11/4

0

0

0

3/4

A1

-1

14/5

1


0

0

2/5

3/5

A2

-2

12/5

0

1

0

1/5

-1/5

A3

1

2/5


0

0

1

-3/10

-7/10

j

-36/5

0

0

0

-11/10

-9/10

Tại bảng IV có j 0, (j = 1, , 5) nên ta có ph-ơng án tối -u là
Xt.- = (14/5, 12/5, 2/5, 0, 0), víi fmax = 36/5.

Ch-¬ng 2
GIảI BàI TOáN QUY HOạCH TUYếN TíNH TRÊN MICROSOFT
OFFICE EXCEL

2.1. Công cụ Add-Ins Solver
2.1.1. Cài đặt


Trình cài thêm (Add-Ins) Solver th-ờng có mặt trong gói phần mềm Microsoft
Office khi cài đặt với lựa chọn Complete (đầy đủ) hoặc khi lựa chọn Custom (theo
ý ng-ời sử dơng) víi lùa chän cho Excel lµ Run all from my computer (cài đặt
Excel với đầy đủ các thành phần).
Để cài thêm Solver, ta tiến hành các b-ớc nh- sau:
1. Lắp đĩa nguồn cài đặt Office gốc vào ổ CD-ROM hc ỉ DVD.
2. Më mét file Excel.
3. Truy cËp menu Tools/ Add-Ins (xem hình 2.1):

Hình 2.1.Menu Tools trên thanh công cơ chän Add-Ins.
Xt hiƯn b¶ng Add-Ins nhÊp chän Solver Add-in (xem h×nh 2.2)


Hình 2.2.Hộp thoại Add-Ins chứa các chức năng mở rộng của Excel.
Xuất hiện thông báo, chọn

Hình 2.3.
Excel đà sẳn sàng c«ng cơ Solver cho chóng ta sư dơng.
2.1.2. Sư dơng solver
Để sử dụng tốt Solver ta cần nắm vững các yêu cầu thông số cần phải khai báo
cho Solver.
2.1.2.1. Hộp tho¹i Solver Parameters
Truy cËp menu Tools/ Solver. Xt hiƯn cưa sỉ Solver Parameters (xem h×nh
2.4).



Hình 2.4. Hộp thoại Solver Parameters để nhập các tham số cho bài toán.
Các thuật ngữ trong hộp thoại Solver Parameters trình bày trong bảng 1.
Bảng 1. ý nghĩa các nút lệnh trong hộp thoại Solver Parameters
Thuật ngữ
Set Target Cell
Equal To Max
Equal To Min
Equal To Value of
By Changing Cells
Subject to the
Constrains

ý nghĩa
Ô chứa địa chỉ tuyệt đối của hàm mục tiêu (ô đích).
Chọn mục này khi cần tìm max của hàm mục tiêu.
Chọn mục này khi cần tìm min của hàm mục tiêu.
Chọn mục này và nhập giá trị vào ô hình chữ nhật bên cạnh
nếu muốn ô đích bằng một giá trị nhất định.
Ô chứa các địa chỉ tuyệt đối của các biến của bài toán.
Mục này dùng để nhập các ràng buộc của bài toán.
Để đoán giá trị trong các ô không chứa công thức do công
thức trong ô đích chỉ đến.
Hiển thị hộp thoại Add Constraint để thêm các ràng buộc
(xem phần 2.1.2.2).
Hiển thị hộp thoại Change Constrait để thay đổi các ràng
buộc.
Để xóa ràng buộc đà chọn.
Thực hiện việc giải toán.
Đóng hộp thoại Solver Parameters mà không tiến hành giải
bài toán.

Hiển thị hộp thoại Solver Options để ghi mô hình bài toán,
nạp lại mô hình đà ghi hoặc nhập các lựa chọn khác (xem
phần 2.1.2.3).


Xóa các thiết lập cho bài toán hiện tại và khôi phục các
thiết lập ngầm định.
Hiển thị trợ giúp cho Solver.
Cách làm của Solver là thay đổi giá trị của các biến tại By Changing Cells cho
đến khi giá trị của hàm mục tiêu tại Set Target Cell đạt một giá trị quy định tại
Equal To và đồng thời thỏa mÃn tập các ràng buộc tại Subject to the Constraints.
2.1.2.2. Hép tho¹i Solver Options
Khi chän Options trong hép tho¹i Solver Parameters xuất hiện hộp thoại Solver
Options (xem hình 2.5), Solver cho phép chọn một số tùy chọn để tiến hành giải bài
toán nh- thời gian giải bài toán, số lần lặp, độ chính xác của kết quả, thật toán tìm
tối -uBảng 2 trình bày ý nghĩa của các lựa chọn này.

Hình 2.5. Thiết lập các thuộc tính cho Solver.
Bảng 2. ý nghĩa các nút trong hộp thoại Solver Options
Tùy chọn

ý nghĩa
Thời gian giải bài toán. Ngầm định là 100s. Giá trị tối đa là
32767s.
Số lần lặp .Ngầm định là 100. Số lần lặp tối đa là 32767.
Độ chính xác. Giá trị này luôn nằm trong khoảng [0, 1] để
điều chỉnh sai số cho các ràng buộc. Giá trị càng gần 0
càng đòi hỏi độ chính xác càng cao của các ràng buộc.
Giá trị này tính bằng (%) và có tác dụng đối với các bài
toán có ràng buộc nguyên . Giá trị lựa chọn (sai số) càng

lớn thì tốc độ giải càng nhanh.


Mức độ hội tụ của hàm mục tiêu. Giá trị này nằm trong
khoảng [0, 1]. Lựa chọn này chỉ có ý nghĩa đối với bài toán
quy hoạch phi tuyến. Sau 5 lần lặp cuối cùng, nếu thay đổi
trong ô chứa hàm mục tiêu nhỏ hơn giá trị này thì Solver
dừng quá trình tính toán. Giá trị này càng nhỏ thì thồi gian
tính toán càng dài.
Khi tất cả quan hệ trong mô hình là tuyến tính thì chọn
mục này để tăng tốc độ giải bài toán.
Giả thiết các biến không âm. Chọn mục này khi có ràng
buộc về dấu của các biến.
Chọn mục này khi giá trị đầu vào và kết quả có độ lớn
khác nhau. Solver sẽ tự động điều chỉnh các biến để tìm ra
lời giải. Chẳng hạn nh- bài toán tối đa % lợi nhuận trên
hàng triệu vốn đầu t-.
Chọn mục này nếu muốn Solver tạm dừng lại và hiển thị
kết quả sau mỗi lần lặp.
Chọn ph-ơng án cho Solver -ớc l-ợng các biến.
Tangent: Sử dụng cách xấp xØ tun tÝnh bËc nhÊt.
Quandratic: Sư dơng cÊp xØ bËc hai. Lựa chọn này cho độ
chính xác cao hơn đối với bài toán quy hoạch phi tuyến.
Chọn cách để -ớc l-ợng hàm mục tiêu và các ràng buộc.
Rorward: Dùng khi giá trị của các ràng buộc thay đổi
chậm (đ-ợc dùng phổ biến).
Central: Dùng khi giá trị của các ràng buộc biến đổi
nhanh và khi Solver báo không thể cải tiến kết quả đ-ợc.
Quy định cho Solver giải thuật tìm kiếm kết quả cho bài
toán.

Newton: Là ph-ơng pháp mặc định, sử dụng nhiều bộ
nhớ nh-ng có số lần lặp ít.
Conjugate: Cần ít bộ nhớ nh-ng số lần lặp nhiều
hơn.Đ-ợc sử dụng khi giải các bài toán phức tạp và bộ nhớ
máy tính có giới hạn.
Chọn nơi l-u mô hình toán. Sử dụng khi muốn l-u nhiều
mô hình trên một worksheet. Mô hình đầu tiên đà l-u tự
động.
Hiển thị hộp thoại Load modle để xác định vùng địa chỉ
của mô hình bài toán cần nạp vào.
2.2. Giải bài toán quy hoạch tuyến tính trên Microsoft Excel
Excel Solver có thể tìm cực đại hay cực tiểu của một hàm số đặt trong một ô gọi
là ô đích. Solver chỉnh sửa một nhóm các ô (gọi là các ô có thể chỉnh sửa) có liên
quan trực tiếp hay gián tiếp đến công thức nằm trong ô đích để tạo ra kết quả. Ta có


thể thêm vào các ràng buộc để hạn chế các giá trị mà Solver có thể dùng. Đối với
bài toán quy hoạch tuyến tính Solver dùng ph-ơng pháp đơn hình, đối với bài toán
quy hoạch phi tuyến Solver dùng ph-ơng pháp giảm gradient để tìm một cực trị địa
ph-ơng.
Xét bài toán quy hoạch
min {f(X) = c1x1 + c2x2 + + cnxn}



víi ®iỊu kiƯn 



(2.1)


a11x1 + a12x2 + …+ a1nxn Q b1
a21x1 + a22x2 + …+ a2nxn Q b2
… … … … … … … … …
am1x1 + am2x2 + …+ amnxn Q bm
≥ 0

xj  = integer
(j = 1 … n).
= binary (0 or 1)

Trong đó Q là một trong c¸c phÐp to¸n quan hƯ ≥, ≤, =, thø tự các phép toán
quan hệ trong các ràng buộc là tùy ý. Nh- vậy bài toán (2.1) có thể là bài toán quy
hoạch tuyến tính thông th-ờng, quy hoạch tuyến tính nguyên hay quy hoạch
boolean.
Cách bố trí dữ liệu trên b¶ng tÝnh:
c[1]
c[2]
a[1,1] A[1,2]
a[2,1] A[2,2]


a[m,1] A[m,2]
x[1]
X[2]









c[n]
 c[i] x[j]
a[1,n]  a[1,j] x[j]
a[2,n] a[2,j] x[j]


a[m,n] a[m,j] x[j]
x[3]

b[1]
b[2]

b[m]

Hàng cuối cùng là các giá trị ban đầu của các biến để các công thức của Excel
hoạt động, có thể lấy giá trị của tất cả các biến bằng 1 hoặc bằng 0.
Để thấy râ tÝnh -u viƯt cđa viƯc dïng Solver so víi cách thủ công khi giải bài
toán quy hoạch tuyến tính, ta giải lại ví dụ 1 và ví dụ 2 ch-ơng 1 nh- sau:
Ví dụ 1: Giải bài toán sau ®©y dïng Solver
Min (f = x1 – x2 + x3 + x4 + x5 – x6)

(1)



Víi ®iỊu kiƯn 



x1
+ x4 + 6x6 = 9
3x1 + x2 – 4x3
+ 2x6 = 2
x1 + 2x3 + x5 + 2x6 = 6
x1 x2 x3 x4 x5 x6 ≥ 0.

Các b-ớc thực hiện để giải bài toán:
B-ớc 1. Nhập dữ liệu bài toán vào bảng tính d-ới dạng sau:

Hình 2.6. Tổ chức bài toán trên bảng tính.
Ph-ơng án ban đầu cho tùy ý, nó có thể không chấp nhận đ-ợc, ở đây ta cho
ph-ơng án ban đầu là X=(1,1,1,1,1,1).
B-ớc 2. Tính giá trị hàm mục tiêu tại ô H2 bằng công thức:
= SUMPRODUCT($B$6:$G$6,B2:G2).
Hàm SUMPRODUCT cho tích vô h-ớng của hai dÃy ô.
Copy công thức từ H2 sang các ô H3:H6 nhằm tính giá trị vế trái của 3 ràng
buộc của bài toán (1).

Hình 2.7. Giá trị vế trái ứng với ph-ơng án ban đầu X=(1,1,1,1,1,1).
B-ớc 3. Chọn ô H2 và dùng lệnh Tools/ Solver, xuất hiện hộp thoại Solver
Paramaters gồm các thông số sau:


Hình 2.8.
Set Target Cell: $H$2.
Equal To: Min.
By Changing Cells: $B$6:$G$6.
Để thêm các ràng buộc vào thì ta chọn


, khi đó xuất hiện hộp thoại

Add Constraint, ta nhập ràng buộc nh- sau (xem hình 2.9a và 2.9b):
+ Các ràng buộc về dấu: do xj 0, j = 1,6 (các ràng buộc đều có dạng ) nên ra
chọn vùng địa chỉ chứa biến $B$6:$G$6 vào ô Cell Reference, chọn dấu và nhập
0 vào Constraint.

Hình 2.9a. Thêm các ràng buộc.
Cell Reference: Chọn các ô hoặc vùng cần đặt ràng buộc.
Ô dấu: Cho phép ta lực chọn dấu của các ràng buộc t-ơng ứng (>=, =, <=,
interger, binary).
Constraint: Ô chứa giá trị vế phải của các ràng buộc t-ơng ứng (có thể là số tự
nhập vào hay giá trị tuyệt đối của ô chứa giá trị đó).


Chú ý. Nếu các yêu cầu ràng buộc (xj) là nguyên thì trong ô dấu ta chọn int,
nếu là kiểu nhị phân ta chọn bin.
+ Tiếp tục chọn

để nhập tiếp các ràng buộc ph-ơng trình và bất

ph-ơng trình.
Cell Reference
$H$3:$H$5

Constraint
=

$I$3:$I$5


Hình 2.9b.
Chọn

để kết thúc việc khai báo các ràng buộc. Tuy nhiên, nếu hiệu

chỉnh ràng buộc ta chọn ràng buộc đó và chän Change, xãa rµng buéc ta chän rµng
buéc tõ danh sách Subject to the Constraints và nhấp Delete.

Hình 2.10. Các ràng buộc của bài toán (1) đ-ợc điền đầy đủ.
Sau khi nhập xong các ràng buộc, nháy vào nút Options, hiện hộp thoại Solver
Options, đánh dấu kiểm vào mục Assume Linear Model (khẳng định mô hình của
ta là tuyến tính).


×