Tải bản đầy đủ (.doc) (35 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 (639.56 KB, 35 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
1.1. Bài toán.

3

3


1.2. Tính chất bài toán quy hoạch tuyến tính...........
1.3. Phơng pháp đơn hình.......

4

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 đủ
nhng 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 luận đợ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 cha 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 nh ban 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:
min {f(X) =}
với điều kiện
Trong trờng hợp đặc biệt, bài toán quy hoạch tuyến tính có dạng:
min{f(X)=}
(1.1)
với điều kiện
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ếu có bất đẳng thức hoặc thì ta đa thêm ẩn phụ xn+i 0, với hệ số hàm mục
tiêu cn+i = 0 để có
hoặc bi .
+ Nếu có ẩn xk cha ràng buộc về dấu, thì có thể thay nó bởi hai biến mới và
không âm, với 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
* 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
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
min{f(X)=}
với điều kiện
+ Hệ phơng trình (1.2) có đúng m phơng trình độc lập tuyến tính.

(1.1)

+ 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 {A j}
ứ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 cha, 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
(1.1)
với điều kiện

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ị A1A2
Am. 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 = (A1A2Am) hạng m.
Ký hiệu XB* = (x1o, x2o, , xmo), C* = (c1, c2, , cm).
j = C*Xj - cj = - cj

(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 cha 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 Xo, 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}.
b) Chọn vector A ra khỏi cơ sở nhờ vào việc xác định:

o = = .

Lúc này phơng án cực biên mới sẽ có cơ sở là A1As-1As+1AmAk.
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
xk = = .
xj =

(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ó:
aij =
(1.7)
Cũng từ đó, thay và tính toán trực tiếp ta đợc: j = j - k.
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ó, chuyển sang bớc 6.

(1.8)


Nếu không, chuyển sang bớc 2.
Bớc 2. Kiểm tra tồn tại j > 0 mà xij 0 ?
Nếu có, chuyển sang bớc 6.
Nếu không, chuyển sang bớc 3.
Bớc 3. Chọn k = j, đa Ak vào cơ sở.
Bớc 4. Tìm = , đa As ra khỏi cơ sở.
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
Min (f = x1 x2 + x3 + x4 + x5 x6)
Vớ
C
điều
1
-1
1
1
1
-1 i
Bản

C
kiện
ơ
XB*
A1
A2
A3
A4
A5
A6
g số
*
Chọn
cơ sở liên
sở
kết
A4A2A5 là
A4 1
9
1
0
0
1
0
6
các
vector
A2 -1
2
3

1
-4
0
0
I
đơn
vị
nên ta có
A5 1
6
1
0
2
0
1
2
phơng án
13
-2
0
5
0
0
7 cực biên
xuất phát
Xo = (0,
A4 1
3
-8
-3

1
0
0
2, 0, 9, 6,
0)

A6 -1
1
3/2
1/2
-2
0
0
1
II
bảng đơn
hình.
A5

III

IV

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
min{f(X)=}
(1.1)
với điều kiện
Khi ma trận A = (aij) cha 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:
min{f(X)=+ M()}
(1.9)
với điều kiện
Lúc này bài toán (M) có ma trận 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
= (0, 0, , 0, b1, b2, , bm) n+m.
Xuất phát từ , 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, ).
b) Nếu bài toán (M) có phơng án tối u , 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
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
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
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à = (0, 0, 0, 6, 0, 6, 4).
Kết quả xem bảng sau đây:
Bảng




Số

Sở
A4
A6
A7

I

II

III

IV

A4
A6
A3

A4
A2
A3
A1
A2
A3

C*
0

M
M
j
j
0
M
1
j
j
0
-2
1
j
-1
-2
1
j

XB*

-1
A1
-1
1
2
1
3
1
-1
1

2
-1

6
6
4
0
10
10
2
2
2
2
7
1
-1/2
5/2
3/4
1/2 11/4
14/5
1
12/5
0
2/5
0
-36/5
0

-2
A2

4
1
-1
2
0
3
-1/2
-3/2
2
0
1
0
0
0
1
0
0

1
A3
-2
2
-1
4
0
0
1
0
0
0

0
1
0
0
0
1
0

0
A4
1
0
0
0
0
1
0
0
0
0
1
0
0
0
2/5
1/5
-3/10
-11/10

0

A5
0
-1
0
0
-1
0
-1
0
0
-1
3/2
-1/2
-1/4
3/4
3/5
-1/5
-7/10
-9/10

M
A6
0
1
0
0
0
0
1
0

0
0

M
A7
0
0
1
0
0


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 hoặc ổ 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.
Xuất 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. Xuất 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 u Bả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ỉ tuyến 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ớ nhng có số lần lặp ít.
Conjugate: Cần ít bộ nhớ nhng 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 lu mô hình toán. Sử dụng khi muốn lu nhiều mô
hình trên một worksheet. Mô hình đầu tiên đã lu 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}

(2.1)

với điều kiện
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
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 x j 0, j = (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 (x j) 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
trình.

để nhập tiếp các ràng buộc phơng trình và bất phơng
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).

Hình 2.11.
Bớc 4. Trong hộp thoại Solver Parameters nháy vào nút Solver để bắt đầu giải

bài toán tối u. Giải xong bài toán xuất hiện hộp thoại Solver Results và cho ta hai
sự lựa chọn sau:

Hình 2.12. Chọn kiểu báo cáo.
Keep Solver Solution: Giữ kết quả và in ra bảng tính.
Restore Original Values: Hủy kết quả vừa tìm đợc và trả các biến về tình trạng
ban đầu.
Save Scenario: Lu kết quả vừa tìm đợc để có thể xem lại sau này.
Ngoài ra có 3 loại báo cáo là Answer, Sensitivity và Limits.
ở ví dụ này ta chọn Keep Solver Solution, OK. Bảng kết quả nhận đợc nh sau:


Hình 2.13.
Kết quả giải bài toán nằm ở các ô B6:G6, nh vậy phơng án tối u tìm đợc là:
X=(0, 5, 1.5, 0, 0, 1,5) hay X = (0, 5, 3/2, 0, 0, 3/2), giá trị cực tiểu hàm mục tiêu
f(X) là -5 ở ô H2.
Ví dụ 2. Xét bài toán
max (f = x1 + 2x2 x3)
(2)
với điều kiện
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 nh hình 2.14. Chọn phơng án ban
đầu là X=(1,1,1).
Bớc 2. Tính giá trị hàm mục tiêu tại ô E2 bằng công thức:
= SUMPRODUCT($B$6:$D$6,B2:D2).
Copy công thức từ E2 sang các ô E3:E6 nhằm tính giá trị vế trái của 3 ràng buộc
của bài toán (2).

Hình 2.14. Tổ chức bài toán trên bảng tính và giá trị vế trái ứng với phơng án
ban đầu X=(1,1,1).

Bớc 3. Chọn ô E2 và dùng lệnh Tools/ Solver, xuất hiện hộp thoại Solver
Paramaters với cách chọn hàm mục tiêu và các ràng buộc nh hình 2.15.


Hình 2.15. Các ràng buộc của bài toán (2) đợ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).
Bớc 4. Trong hộp thoại Solver Parameters nháy vào nút Solver để bắt đầu giải
bài toán tối u. Giải xong bài toán xuất hiện hộp thoại Solver Results, chọn mục
Keep Solver Solution (giữ kết quả và in ra bảng tính), nháy OK.
Bảng kết quả nhận đợc nh sau:

Hình 2.16.
Kết quả giải bài toán nằm ở các ô B6:D6, nh vậy phơng án tối u tìm đợc là: X =
(2.8, 2.4, 0.4) hay X = (14/5, 12/5, 2/5), giá trị cực tiểu hàm mục tiêu f(X) là 7.2 (=
36/5) ở ô E2.
2.3. Giải thích thuật ngữ
Tuy nhiên để tiện cho việc phân tích kết quả thì trong bảng Solver Results ở ví
dụ 1 ta chọn thêm mục Reports Answer khi đó bảng kết quả nhận đợc nh sau:


Hình 2.17. Hiển thị kết quả giải bài toán trong ví dụ 1 khi chọn Reports Answer.
Ta cần nắm vững một số thuật ngữ sau:
Original Value: Giá trị ban đầu.
Final Value: Giá trị cuối cùng.
Formula: Điều kiện ràng buộc.
Status: Trạng thái.
Binding: Ràng buộc chặt (nghĩa là, kết quả Excel tính đợc bằng so với yêu cầu).
Not Binding: Ràng buộc không chặt (ràng buộc lỏng) (nghĩa là, kết quả Excel

tính đợc chệch so với yêu cầu).
Slack: Mức chênh lệch giữa kết quả tính đợc so với yêu cầu.
2.4. Hạn chế khi giải bài toán quy hoạch tuyến tính trong Excel


Trong một số trờng hợp Solver không giải đợc, khi đó nó thờng đa ra các thông
báo sau:
Solver could not find a feasible solution: bài toán không có lời giải chấp nhận
đợc. Hoặc có thể do các giá trị khởi đầu của ô chứa biến khác quá xa các giá trị tối
u. Hãy thay đổi các giá trị khởi đầu và giải lại.
The maximum iteration limit was reached, continue anyway? Số bớc lặp đã
đến giá trị lựa chọn trong Solver Options mà cha tìm đợc tối u. Ta có thể tăng số bớc lặp ngầm định bằng cách dùng lệnh Tools/ Solver, chọn Options, xuất hiện hộp
thoại Solver Options, nhập giá trị mới vào hộp Iterations để giải bài toán.
The maximum time limit was reached, continue anyway? Thời gian chạy vợt
quá giá trị lựa chọn trong mục Solver Options mà cha tìm đợc tối u. Ta có thể sửa
giá trị trong mục Max Time trong hộp thoại Solver Options để giải bài toán.

Chơng 3
CáC BàI TOáN Mở RộNG
Việc ứng dụng mô hình quy hoạch tuyến tính trong quản lý kinh tế và quản trị
doanh nghiệp là rất phổ biến. Chúng ta thờng bắt gặp mô hình này trong các bài
toán nh: bài toán lập kế hoạch sản xuất tối u cho doanh nghiệp, bài toán phân bổ
vốn đầu t, bài toán dự trữ, bài toán phân công lao động, Tuy nhiên trong phần này
xin trình bày ra đây 2 loại bài toán quy hoạch tuyến tính thông dụng nhất là: bài
toán lập kế hoạch sản xuất, bài toán vận tải. Và bài toán quy hoạch phi tuyến.
3.1. Bài toán lập kế hoạch sản xuất
3.1.1. Bài toán tổng quát
Một nhà máy có khả năng sản xuất n loại sản phẩm: S1,S2,,Sn. Để sản xuất các
sản phẩm này cần phải sử dụng m loại nguyên vật liệu: v1,v2,,vm. Biết rằng: aij là l-



ợng nguyên vật liệu loại i cần thiết để sản xuất ra một đơn vị sản phẩm loại j, bi là
dự trữ nguyên vật liệu loại i, cj là lợi nhuận từ việc bán một đơn vị sản phẩm loại j,
với i = và j = .
Vấn đề đặt ra là phải sản xuất mỗi loại sản phẩm là bao nhiêu sao cho tổng lợi
nhuận thu đợc từ việc bán các sản phẩm đạt lớn nhất trong điều kiện nguyên liệu
hiện có.
Bài toán đợc mô tả theo bảng sau:
v1
v2

vi
vm
Lợi nhuận đơn

S1
a11
a21

ai1
am1








Sj

a1j
a2j

aij
amj








Sn
a1n
a2n

ain
amn

Dự trữ
b1
b2

bi
bm

c1

cj


cn
vị
Gọi xj là lợng sản phẩm loại j mà nhà máy sẽ sản xuất (xj 0, j =).
Do đó phơng án sản xuất của nhà máy là X=(x1,x2,,xj,,xn).
Khi đó:
Tổng lợi nhuận thu đợc từ việc bán các sản phẩm là: .
Vì yêu cầu lợi nhuận thu đợc cao nhất nên cần tìm max hàm mục tiêu, nghĩa là:
max f(X) = .
Lợng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ 1 là ai1x1.
Lợng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ 2 là ai2x2.

Lợng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ n là ainxn.
Vậy lợng nguyên liệu thứ i dùng để sản xuất tất cả các sản phẩm là .
Vì lợng nguyên liệu thứ i dùng để sản xuất các loại sản phẩm không thể vợt quá
lợng đợc cung cấp là bi nên: bi, ().
Suy ra mô hình toán học của bài toán lập kế hoạch sản xuất có thể phát biểu
theo mô hình bài toán quy hoạch tuyến tính nh sau:
max f(x) =
với điều kiện

3.1.2. Ví dụ
Ví dụ 3. Một nhà máy dự định tiến hành sản xuất 5 loại sản phẩm S j (j=). Cả 5
loại sản phẩm này đều sử dụng 4 loại nguyên vật liệu chính v i (i= ). Có mức sử
dụng nguyên vật liệu, lợi nhuận đơn vị thu đợc và giới hạn dự trữ nh sau:


×