Các bài toán tối ưu thường xuất hiện trong kinh tế và kỹ thuật, chúng có nhiều ứng dụng rất rộng rãi và đa dạng. Hiện môn học “Tối ưu hóa” đang được giảng dạy ở những năm cuối cho sinh viên các ngành khoa học tự nhiên, khoa học kỹ thuật và kinh tế ở nhiều trường Đại học và Cao đẳng. Cuốn sách “Các phương pháp tối ưu” này là tập hợp các bài giảng của tác giả về môn học này ở một số trường đại học trong nhiều năm. Các phương pháp tối ưu trình bày trong cuốn sách đã được lựa chọn, chúng là các phương pháp tối ưu tiêu biểu và tính toán có hiệu quả trên máy tính. Mỗi phương pháp được trình bày ý tưởng cơ bản, thuật toán chi tiết, ví dụ giải bằng số và các bài tập, không quá đi sâu chứng minh đầy đủ về mặt toán học, như vậy sẽ phù hợp hơn đối với sinh viên các ngành kỹ thuật và kinh tế. Phần thuật toán chi tiết của các phương pháp được trình bày để các lập trình viên có thể chuyển dễ dàng sang chương trình bằng Pascal, C, FoxPro, Basic hay Java. Đối tượng của cuốn sách là các bạn sinh viên, kỹ sư thuộc các ngành khoa học tự nhiên, khoa học kỹ thuật và kinh tế, học sinh các lớp chuyên tin học.
BAI TAPQUI HOẠCH TUYẾN TÍNH THAM SỐ2.1 Nội dung bài toán Xét bài toán tối ưu phụ thuộc tham số sau đây Tìm các biến số không âm
+>0,za>0, , z„, 20, (2.1) thỏa mãn các điều kiện sau, gọi là các ràng buộc chính cuả bài toán bj,7=1, ,m,,
MeiM nh by =: =: = a IV IA os ¡ =Tm + Ì, ,rnị + Tnạ, (2:2)
) địj#j = Ù¿, ¡ =mị + mạ + Ì, ,1m, và làm cho hàm số ƒ, gọi là hàm mục tiêu cuả bài toán, đạt giá trị nho nhất n
Ft) = Dlg +tdj)e;, (2.3) j=l trong dé ¢ 1a tham s6 bién thién trén toàn trục số thực hay bị hạn chế trong đoạn [fmin,fmax] với fmia,f#max là hai số thực cho trước Các hệ số bị,b¿, , b„ ở vế phải rằng buộc là những số không âm, mạ là số rằng buộc , z là tổng số các ràng buộc chính, œ là số biến thực cua bài toán
Chú ý : 1) Bài toán tìm giá trị lớn nhất cuả một hàm số ứ qui về bài toỏn tỡm giỏ trị nhỏ nhất cua hàm số ƒ = —g max g(x) = —min f(z)
2) Các ràng buộc chính cuả bài toán được sắp xếp theo thứ tự: trước hết là các rằng buộc và sau cùng là các ràng buộc =.
Nếu không có các ràng buộc < thì mị = 0, khôngcó ràng buộc > thì mạ = 0, không có ràng buộc = thì
4) Với bài toán bất kỳ, bao giờ ta cũng có thể viết các rằng buộc chính ở dạng sao cho ủ¿ > 0 với mọi ¡ = 1, ,rm
(nếu có b; < 0 ta nhân ca hai vế cua ràng buộc với -1, rồi đổi chiều dấu bất đẳng thức và sắp xếp lại thứ tự các ràng buộc chính nếu cần)
Bài toán trên là bài toán tối ưu với hàm mục tiêu phụ thuộc tham số, gọi tắt là bài toán qui hoạch tham số, và ký hiệu là bài toán P(/) Đặt A là ma trận các hệ số a;; (¡ = 1, ,rm;7 = 1, ,m), x la vếctơ cột với các thành phần
#1;#2, ,2„, Ð là véctơ cột các hệ số b,bạ, ,b„, c (c1,€2, .,€n)? va d = (dị,dạ, ,d„)” Bài toán qui hoạch tham số có thể viết gọn lại như sau mìn{< e+‡d,z>: Az ,= b, z>0}
Véctơ z thỏa mãn các rằng buộc (2.1) - (2.2) cua bài toán, gọi là một phương án Phương án đạt giá trị nhỏ nhất cua hàm mục tiêu (2.3), gọi là một phương án tối ưu hay lời giải cua bài toán Ký hiệu D là tập hợp các phương án cua bài toán Ta giả thiết D # 0)
Một cơ sở cuả phương án tối ưu cực biên cua bài toán P(£) ứng với một giá trị t cho trước gọi là cơ sở tối ưu Tập hop tat ca cdc giá trị f làm cho một cơ sở tối ưu gọi là khoảng tối ưu cuả cơ sơ đó
Theo lý thuyết qui hoạch tuyến tính tham số, giá trị tối ưu ƒ*{1) là một hàm lõm tuyến tính từng khúc theo # và tồn tại một số hữu hạn giá trị:
—œ ‡,, (Ở đây các giá trị t„ được đánh chi số sao cho £_¡ < 0 < ‡¡) Đồng thời với mỗi k € [—s¡,s¿ — 1] tồn tại cơ sở ÿ¿ là cơ sở tối ưu cua bai todn P(t) với mọi £ € [í¿,f¿+¡] Vấn đề đặt ra là tìm các phương án tối ưu hay cơ sở tối ưu cuả bài toán ?(2) ứng với các khoang tham số khác nhau sao cho f*(t) là tuyến tính đối với mọi † € [¿,fz+¡], (—s¡ €
2.2 Phương pháp giải Sơ đồ thuật toán giải nêu dưới đây là một biến thể cuả phương pháp đơn hình quen biết trong qui hoạch tuyến tính Để có phương án cực biên xuất phát, ta-thêm các biến bù và biến giả tạo vào các ràng buộc chính: biến bù ứng với các ràng buộc < đỏnh số từ nứ + 1 đến ủ + rm, biến bự ứng với các ràng buộc > đánh số từ nm +mị + 1 đến œ +7m + mạ, các biến giả tạo ứng với các rằng buộc = và > được đánh số từ m+1mi + ma + 1 đến n + n + mạ
Chon t = ty tiy ý, dùng phương pháp đơn hình giải bài toán qui hoạch tuyén tinh P(ty) Do D # nên sau một số hữu hạn bước lặp ta thu được phương án tối ưu (lời giải) cuả bài toán P(1¿) hoặc khẳng định hàm mục tiêu cuả bài toán P(1¿) không bị chặn dưới trên miền 7) ứ Trường hợp 1 Giả sử ta thu được phương ỏn tối ưu cua bài toán ƒ(ạ) la 2° = (z1, ,z„) với cơ sở là Jo (nghĩa
“la Jo C {1, ,n}, [Jo] = m và z} = 0 với mọi k ý Jọ), 2° không chỉ là phương án tối ưu cuả bài toán P(/) với tham số t = ty da chon, ma no con la phuong án tối ưu với mọi tham số ƒ trong khoảng [t,f] Cỏch xỏc định ù và f như sau
Theo thuật toán đơn hình, ước lượng cua véctơ cột Ay voi k€ {1,2, ,m +ứm +mạ} \ 7g có thể biểu diễn dưới dạng một hàm tuyến tính phụ thuộc tham số như sau:
JETo JEIo trong đó z;¿ (j € 7o) là các hệ số khai triển theo co so Jy cua véctơ A, Ky hiệu
At = À (jzj—c), AE = So (djaje — dk)
Do z? là phương án tối ưu cua bài toán (1g) nên ta có
Ax(to) = At + to A? < 0 (k € Jo)
Khi đó z° cũng là phương án tối ưu cuả bài todn P(t) với mọi
Hệ bất phương trình (2.4) là tương thích vì nó có nghiệm tf = ty Voi AZ > 0 tir (2.4) suy rat < —Aj/AZ, còn với A? < Osuyrat > —Aj/Az Nếu ký hiệu
# = min{—Al/Az: AZ > 0}, thì tập hợp nghiệm cua hệ (2.4) là t 7 Gia sử s là chỉ số sao cho £ = —A}/A? = min{—Aj/Az: Ag > O}
Có hai kha năng xảy ra: a Néu aj, < 0 (Vj € Jo) thi voi t > t ta cd
A(t) = A} + tA? > 0 (2.6) Theo thuat todn don hinh thi f(x) —+ —oo khi t >t b Cồn nếu 37 € Jo, zjs > 0 Voit >t ta dua A, vao co sơ sẽ cai tiến được phương án Phương án cực biên với cơ sở
7q không còn tối ưu nữa vì ít nhất đã có A,(f) > 0 với † >
(do bất đẳng thức (2.6)) Giả sử theo thuật toán đơn hình 4, bị loại khỏi cơ sở và cú cơ sở mới JĂ = (7ứ \ {r}) U {s} Khi đó, theo công thức biến đổi cơ sở
Khi t= thi A‘(t) = Aj(t) —z9) và — Pe/|Pe| là véctơ có độ dài bằng 1 theo hướng của vécto —Pc
Có hai nét đặc trưng của thuật toán Karmarkar mà ta chưa đề cập tới là thay đổi thước đo và điều kiện dừng Trong thực tế, bài toán tìm cực tiểu ban đầu được chuyển về dạng bài toán sao cho đã biết trước một phương án và giá trị cực tiểu của bài toán bằng 0 Sau mỗi bước lặp của thuật toán, các biến số sẽ được tính lại theo thước đo mới để đưa phương án hiện có về dạng tiêu chuẩn và cho phép có độ tự do di chuyển tới gần biên của miền ràng buộc Ta có thể dừng thuật toán khi giá trị mục tiêu đã khá gần 0 (giá trị tối ưu) Khi đó ta sẽ tìm được lời giải cho bài toán qui hoạch tuyến tính ban đầu
Ví dụ sau đây trong không gian hai chiều sẽ giúp làm rõ thêm một vài điểm quan trọng của thuật toán Karmarkar
Ví dụ Xét bài toán qui hoạch tuyến tính ƒ = 20z + 30 —> max với các điều kiện
Miền rằng buộc cua bài toán này được vẽ ở Hình 4.1
NHIÊU MỤC TIỂUĐặt vấn đềTừ trước tới nay ta chi xét bài toán qui hoạch tuyến tính với một mục tiêu duy nhất, mục tiêu này được biểu thị bởi một hàm mục tiêu cần làm cực tiểu (chi phí) hay cực đại (lợi nhuận) Tuy nhiên, trong thực tế sản xuất ta cũng hay gặp các bài toán, trong đó cần cân nhắc, so sánh giữa nhiều mục tiêu khác nhau Chắng hạn, ngoài mục tiêu giảm chỉ phí, hạ giá thành sản phẩm hay,thu lợi nhuận tối đa, người ta còn quan tâm tới việc bình ổn giá ca, đa dạng hoá sản phẩm, duy trì mức lợi nhuận, ổn định lực lượng lao động, nâng cao đời sống người lao động, nâng cao uy tín xí nghiệp, v.v Trong các tình huống như thế ta cần có cách đặt bài toán và cách xử lý khác Qui hoạch nhiều mục tiêu sẽ cung cấp thêm công cụ giúp giải quyết vấn đề này
Cách tiếp cận chính của qui hoạch nhiều mục tiêu là qui định cho mỗi mục tiêu một mức bằng số cụ thể, tiếp đó xác định các hệ số phạt do vi phạm mức qui định này và cuối cùng là tìm phương án đạt cực tiểu tổng độ lệch với các hệ số phạt đã xác định của các giá trị hàm mục tiêu so với mức đã qui định cho từng mục tiêu
Người ta phân chia ra ba dạng mức mục tiêu: - e Cận dưới; mức một phía, qui định giới hạn dưới cho giá trị mục tiêu cần đạt được (đạt cao hơn mức này càng tốt) e Mức hai phía qui định giá trị mà mục tiêu cần đạt được (không hơn, không kém) e Cận trên; mức một phía, qui định giới hạn trên mà giá trị mục tiêu không được vượt quá (đạt thấp hơn mức này càng tốt)
Các bài toán nhiều mục tiêu được phân loại theo mô hình qui hoạch toán học tương ứng (qui hoạch tuyến tính, qui hoạch phi tuyến, qui hoạch nguyên ), trừ ra một mục tiêu được thay bằng nhiều mục tiêu Ở đây ta giới hạn chỉ xét các bài toán nhiều mục tiêu tuyến tính với các ràng buộc cũng là tuyến tính, gọi là qui hoạch tuyến tính nhiều mục tiêu, đôi khi để đơn giàn từ tuyến tính thường được hiểu ngầm
Các bài toán nhiều mục tiêu còn được phân loại theo mức độ quan trọng của các mục tiêu Người ta thường chia ra hai loại bài toán: qui hoạch nhiều mục tiêu không ưu tiên và qui hoạch nhiều mục tiêu có ưu tiên Trong các bài toán thuộc loại thứ nhất, các mục tiêu đều có tầm quan trọng như nhau, không phân biệt cái nào quan trọng hơn cái nào Còn trong các bài toán thuộc loại thứ hai, các mục tiêu được phân cấp: theo các mức ưu tiên khác nhau: ưu tiên 1, ưu tiên 2, Mục
Sau day sé xét riéng tirng loai bai todn nay
5.2 Qui hoạch nhiều mục tiêu không ưu tiên Để cho dễ hiểu, ta xét ví dụ cụ thể sau: một chủ xí nghiệp dự kiến đưa vào sản xuất 3 loại sản phẩm mới (ký hiệu A, B, C) để thay thế cho các mẫu san phẩm cũ sắp ngừng sản xuất Chủ xí nghiệp muốn cân nhắc tới ba mục tiêu chính: lợi nhuận, lao động và vốn đầu tư Cụ thể: 1) cần đạt được lợi nhuận tối thiểu là 125 triệu đồng từ các sản phẩm mới này;
2) duy trì đội ngũ lao động hiện có ở mức 4.000 người; 3) giữ mức đầu tư không vượt quá 55 triệu đồng
Chủ xí nghiệp nhận thấy rằng không có khả năng đạt được đồng thời tất cả ba mục tiêu này Vì thế, sau khi bàn bạc với phòng kế hoạch, ông ta quyết định đưa ra các hệ số phạt như sau: 5 trên 1 triệu đồng lợi nhuận đạt thấp hơn mức qui định, '2 trên 100 lao động sử dụng thêm, 4 trên 100 lao động không sử dụng và 3 trên 1 triệu đồng vốn đầu tư tăng thêm Giả sử rằng mức lợi nhuận, số lao động và mức vốn đầu tư ti lệ thuận với mức sản xuất sản phẩm Các số liệu định mức được cho trong Bảng 5.1, cùng với các mức mục tiêu và các hệ số phạt
Bảng 5.1 Số liệu cho bài toán qui hoạch nhiều mục tiêu không ưu tiên
Sản phẩm Mục tiêu A|BIC | Mức mục tiêu Hệ số phạt
Lợi nhuận 12 |9 |15 | > 125 (triệu đ) 5 Lao động 5 | 3| 4| = 40(10013) | 2(+), 4(-) Vốn đầu tư |5 | 7| 8 | < 55 (triệu đ) 3
Trong bài toán nêu trên có đủ ca 3 dạng mức mục tiêu: cận dưới (lợi nhuận), mức hai phía (lao động) và cận trên (vốn đầu tư) Gọi 21, 29,23 lần lượt là số san phẩm A, B, C cần sản xuất Ta thấy các mục tiêu nêu trên có thể diễn đạt như sau:
127, + 9z¿ + 1ðz¿ 125 (lợi nhuận) 5a, + 3272 + 423 40 (lao động) 52, + Tro + 823 5ð (vốn đầu tư)
Nếu ta ký hiệu Z là lượng phạt do vi phạm các mục tiêu nêu trên, với các hệ số phạt đã cho ở cột cuối Bảng 5.1 thì mục tiêu tổng thể là tìm các biến số z¡,#z¿ và z; sao cho làm cực tiểu lượng phạt Z này
IA Th IV Để diễn đạt chính xác hơn, ta đưa vào các biến số phụ
Yi, y2 và ¿ như sau: yr = 1221 + 9x + 1523 — 125
(lợi nhuận trừ mức qui định) y= 524 + 3zr¿ + 4ra = 40
(lao động trừ mức qui định) yg = 52, + Tay + 8x3 — 55
(vốn đầu tư trừ mức qui định)
Do mỗi ; có thể nhận giá trị dương hay âm, nên ta thay mỗi biến này bởi hiệu hai biến không âm:
Quan hệ giữa các biến này như sau:
4 { Yj néu Yj 2 0, ee { ly; néu Uj < 0, yy = 0 nếu trái lại Uj = 0 nếu trái lại
Nhu vay, yt biéu thi phan duong cua bién yj, con ys biểu thị phần âm quả biến 1; (tương ứng với dấu + và —)
Với các biến phụ này, mục tiêu đã nêu về mặt toán học có thể diễn đạt như sau:
(vì không bị phạt nếu lợi nhuận đạt hơn 125 hay mức đầu tư ít hơn 55, nên các biến 1, không có mặt trong hàm mục tiêu trên) - Để hoàn thành việc chuyển bài toán qui hoạch nhiều mục tiêu về mô hình qui hoạch tuyến tính, ta cần đưa các biến phụ này vào các ràng buộc Chắng hạn, do — ị = tị nên biểu thức ở trên đối với có thể viết lại thành:
Tương tự đối với yo va y3 Cudi cling ta nhan được mô hinh qui hoach tuyén tinh sau day:
Z = ðy +2 +4u; +3u‡ — min với các điều kiện
Nếu bài toán ban đầu có thêm các ràng buộc khác nữa, chăng hạn lượng tài nguyên sử dụng không được vượt quá mức hiện có, thì có thể đưa các ràng buộc đó vào mô hình này
Dùng phương pháp đơn hình giải bài toán trên, ta nhận được phương án tối ưu như sau: z¡ = 25/3, 22 = 0,23 = 5/3 với y =0, =0,y‡ = 25/3, = 0,w‡ = 0 và ys =0
Như vậy, ¡ = 0, = 25/3 và 1; = 0, nghĩa là các mục tiêu thứ nhất và thứ ba hoàn toàn được thỏa mãn, song lượng lao động vượt mức qui định là 84 (833 người) Lượng phạt do vị phạm mục tiêu về lao động là: Z = 167
5.3 Qui hoạch nhiều mục tiêu có ưu tiên
Trong mục này ta xét trường hợp các mục tiều có mức ưu tiên khác nhau Tình huống này xay ra khi có một hay một số mục tiêu rõ rằng có tầm quan trọng hơn các mục tiêu khác
Vì thế, sự tập trung trước hết vào việc đạt được các mục tiêu này đến mức tối đa có thể Các mục tiêu còn lại cũng có thể được phân chia tiếp thành các mục tiêu ưu tiên cấp 2, cấp 3, v.v Sau khi nhận được lời giải đối với các mục tiêu có mức ưu tiên 1, ta xét đến các mục tiêu ưu tiên cấp 2, rồi ưu tiên cấp 3
Khi xét các mục tiêu cùng cấp ưu tiên, cách làm cũng giống như đã mô tả ở mục trước Cũng có thể có 3 dạng mức mục tiêu như trước (một hay hai phía) Nếu cần vẫn có thể đưa vào các hệ số phạt khác nhau đối với các độ lệch khỏi mức mục tiêu đã qui định Kỹ thuật biến phụ lại được sử dụng để đưa bài toán nhiều mục tiêu về dạng qui hoạch tuyến tính
Một hãng dự kiến sản xuất 3 loại sản phẩm mới Vấn đề đặt ra là nên sản xuất các sản phẩm này theo tỉ lệ nào là hợpổn định số lao động và tăng tiền lãi của hãng ở năm sau Cụ thể, dùng số liệu cho trong Bang 5.3, chu hang mong muốn f = 2P—-ðC—ọ]D — max trong đó P = tổng lợi nhuận (qui đổi) thu được do sản xuất các san phẩm mới
C = sự thay đổi (theo cả hai hướng) về số lao động hiền cố,
D = sự giảm tiền lãi (nếu có) của năm sau so với năm hiện tại `
Anh hưởng của mỗi sản phẩm mới (tính trên một đơn vị sản phẩm) tới mỗi yếu tố kể trên được cho trong Bảng 5.3
Bảng 5.3 Số liệu cho bài tập 1
Sản phẩm Mục tiêu 112 l3 Mức mục tiêu | Đơn vị tính
Lợi nhuận | 20 | 15] 25 max (triệu đồng)
'a) Gia sử không có ràng buộc nào khác đối với việc sản xuất các sản phẩm, dùng kỹ thuật qui hoạch tuyến tính nhiều mục tiêu hãy lập mô hình qui hoạch tuyến tính cho bài toán b) Dùng phương pháp đơn hình giải mô hình nhận được
2 Xét bài toán qui hoạch nhiều mục tiêu có ưu tiên với ba mức ưu tiên (mỗi mục tiêu thuộc một mức) và chi có hai hoạt động tác động tới các mục tiêu này với số liệu cho ở Bảng 5.4
Bang 5.4 Sé liệu cho bài tập 2
Mức ưu tiên 112 Mức mục tiêu
Mức 3 2| 1 > 40 a) Sử dụng kỹ thuật qui hoạch tuyến tính nhiều mục tiêu, hãy lập một mô hình qui hoạch tuyến tính duy nhất cho bài toán nêu trên b) Xây dựng bảng đơn hình ban đầu để áp dụng phương pháp trực tiếp Thiết lập phương án cực biên ban đầu và các biến cơ sở ban đầu (không cần biến đối bảng) c) Xuất phát từ b) dùng phương pháp trực tiếp giải mô hình nhận được Đáp số: (z¡,z;) = (15,0) là lời giải
3 Cũng câu hỏi như trong bài tập 2, nhưng với số liệu mới cho trong Bảng 5.5 dưới đây (xem trang sau)
Bảng 5.5 Số liệu cho bài tập 3
Mức ưu tiên 1Ị2 Mức mục tiêu