1. Trang chủ
  2. » Giáo án - Bài giảng

Các phương pháp tối ưu Quyển 2

87 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các phương pháp tối ưu
Tác giả Tran Vu Thieu
Trường học Nhà Xuất Bản Bách Khoa Hà Nội
Chuyên ngành Tối ưu hóa
Thể loại Sách giáo khoa
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 87
Dung lượng 28,67 MB

Cấu trúc

  • 2.3. Bài toán pha cắt vật liệu (14)
  • 2.6. Bài toán điều công ten nơ rỗng (17)
  • BÀI TẬP (26)
    • 3. PHƯƠNG PHÁP CẮT GOMORY (28)
      • 3.5. Phương pháp đơn hình đối ngẫu tự vựng (32)
    • 4. PHƯƠNG PHÁP NHÁNH CẬN LAND - DOIG (34)
    • 5. BÀI TOÁN CÁI TÚI (47)
    • 6. BÀI TOÁN NGƯỜI DU LỊCH (58)
    • 3. Ngăn cấm tạo các chu trình con (66)
    • 7. BÀI TOÁN LẬP TRÌNH TỰ GIA CONG CÁC CHI TIẾT TRÊN HAI - BA MÁY (76)
      • 7.1. Nội dung vấn đề (76)
  • V—TI—IV-III—H (87)

Nội dung

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.

Bài toán pha cắt vật liệu

Trong thực tế ta thường phải cắt những vật liệu dài (thanh thép, ống nước, ) có độ dài cho trước thành những đoạn ngắn hơn với số lượng nhất định để sử dung Nên cắt như thế nào cho ít tốn vật liệu nhất?

Ví dụ: một phân xưởng cốt thép có những thanh thép dài

6 mét, cần cắt thành 40 đoạn 2,5 mét và 60 đoạn 1,6 mét, nên dùng bao nhiêu thanh và cắt như thế nào cho tiết kiệm?

Có 3 mẫu cắt như sau:

Mẫu 1: 2 đoạn 2,5 mét, thừa 1 mét

Mẫu 2: 1 đoạn 2,5 mét và 2 đoạn 1,6 mét, thừa 0,3 mét

Mẫu 3 : 3 đoạn 1,6 mét, thừa 1,2 mét

Gọi z¡,z¿,¿ là số thanh cần cắt theo mẫu 1, 2, 3 tương ứng, ta có bài toán:

Tổng quát, ký hiệu: a¡; là số đoạn loại ¿ thu được khi cắt theo mẫu j b; là số đoạn loại ; cần có c; là rẻo thừa khi cắt theo mẫu j

+; là số thanh cắt theo mẫu j

Mô hình toán học của bài toán đang xét là n z= › cjt;, —> min, j=l với điều kiện n

2.4 Bài toán lập trình tự gia công các chỉ tiết máy

Gia sir can gia công n chỉ tiết C¡, Cạ, , C„ trên m may MìI,M¿, , Mm„, mỗi chỉ tiết đều được gia công trên các máy theo thứ tự: 1,2, ,rn Cho biết thời gian gia công chỉ tiết

Bài toán đặt ra là hãy lập trình tự gia công các chỉ tiết trên các máy sao cho thời gian gia công tất cả các chỉ tiết là ngắn nhất với điều kiện các chi tiết phải được gia công một cách liên tục, không có khoảng thời gian dừng khi chuyển từ máy này sang máy khác

Như vậy, mỗi một trình tự gia công các chỉ tiết trên các máy sẽ tương ứng với một hoán vị z = (t1,22, ,%n) cua n số tự nhiên 1,2, ,m

Thời gian gia công theo trình tự trên là hàm số trong đó c¡; = Š; — Š; với Š; là thời điểm bắt đầu thực hiện việc gia công chỉ tiết 7 (2,7 = 1,2, ,m) Có thể giải thích ý nghĩa của hệ số c;; như sau: nó là thời gian chỉ tiết 7 phải chờ (kể từ khi bắt đầu gia công chỉ tiết z) để đảm bảo cho khi đã bắt đầu, chỉ tiết 7 có thế được gia công một cách liên tục trên các máy (7 gia công sau ¿ trong trình tự gia công) Vì vậy, c¡; có thể tính theo công thức k—1 cy = ikem _ dt) 1) = 1,2, ,T, trong dé ta dat to; = 0,7 =1,2, ,n

Vì vậy, bài toán đặt ra được đưa về bài toán tối ưu tổ hợp sau min {(z):z € 7}, trong đó 7 là tập tất cả các hoán vị của n số tự nhiên

Trong thực tiến, trình tự gia công thường còn phải thoa mãn-thêm nhiều điều kiện khác nữa và vấn đề tìm trình tự gia công tối ưu được giải quyết nhờ lý thuyết lập kế hoạch lịch

Tuy nhiên, trường hợp riêng khi rẻ = 2 hoặc 3, bài toán nêu trên có thể giải bằng các thuật toán đơn giản (xem §7)

2.5 Bài toán xếp hàng lên tầu

Tương tự như bài toán cái túi, ta xét bài toán sau đây với hai ràng buộc, gọi là bài toán xếp hàng lên tầu Nội dung bài toán như sau: Một con tầu cho hang cé trong tai T va dung lượng Tầu cú thể chờ ứ loại hàng Hàng loại 7 cú số lượng là s;, trọng lượng a;, thể tích b; và có giá trị sử dụng

€j (7 =1,2, ,m) Vấn đề là cần xếp lên tầu những loại hàng

` ` a: _x on a n cự KV A nào và với số lượng bao nhiêu để sao cho tông giá trị hàng hoá trên tầu là lớn nhất, với điều kiện hàng xếp lên tầu không được vượt quá tải trọng và dung tích của tầu?

Gọi z; là số lượng hàng loại j được xếp lên tầu Khi đó mô hình toán học của bài toán có dạng như sau: n z= › cjt; —> max, -— j=l bin; < K, j=l a; € {0,1,2, ,8;},7 =1,2, ,n Ở đây, không giảm tổng quát ta có thể xem rằng tất cả các hệ số có mặt trong bài toán: T,Jý,a;,b;,c; (với mọi 7) đều là những số dương.

Bài toán điều công ten nơ rỗng

Có n loại đồ vật cần được xếp lên các công ten nơ như nhau với tai trọng của mỗi công ten nơ là 7' và dung lượng là K D6 vat loại 7 có trọng lượng a;, khối lượng 6; va số lượng cần vận chuyển là s; (7 = 1,2, ,mz) Hãy tìm cách xếp tất

, nx yw a Ms a “ a ` “ aA cả số đồ vat này lên các công ten no sao cho dùng ít công ten nơ nhất?

Gia sử ta đã biết được rn là số tối đa các công ten nơ cần thiết để chở hết số đồ vật nói trên Chắng hạn, số rm có thể tìm theo cách: xếp dần các đồ vật lên cong ten no theo thit tự tuỳ ý, cái no tiếp cái kia, cho đến khi trọng lượng hay dung tích của công ten nơ đã dùng hết Tiếp đó sử dụng công ten nơ tiếp theo

Gọi z¡; là số đồ vật j được chở trên công ten nơ ¿,/; là biến nhận giá trị 1 hay 0 tuỳ theo có dùng công ten nơ ¿ hay không Bài toán đặt ra dẫn đến mô hình toán học sau: Tìm cực tiểu của số công ten nơ sử dụng m z= 3 bụi — min i=1 với các điều kiện

83, J =1,2, ,n, tì S: ll aij € {0,1, ,sj},2=1, ,mjj=l, n ¡ € {0,1}, ¿ = 1,2, ,m

Hai nhóm ràng buộc đầu biểu thị yêu cầu không chuyên chở quá trọng tải và dung lượng của mỗi công ten nơ được sử dụng (¡ = 1), còn công ten nơ không sử dụng (y¡ = 0) cần phải rỗng Nhóm ràng buộc thứ ba có nghĩa là mọi đồ vật cần được xếp vào các công ten nơ

Ngoài ra, ta cần thêm vào mô hình trên hai nhóm ràng buộc nữa, để loại bỏ bớt các lời giải chấp nhận được chỉ khác nhau ở thứ tự các công ten nơ được sử dụng Cụ thể là:

Tịi — T¡+1,1; ¡2 — #212) 2205 ir = Li+1,r kéo theo #; „+1 > Z¡¿‡1,r‡1 VỚI mọi ¿ và r

2.7 Bài toán sản xuất - đầu tư Có m loại tài nguyên cần dùng để sản xuất ra œ loại-vật phẩm Các tài nguyên này có thể bị tiêu hao trong quá trình sản xuất hoặc được tăng thêm nhờ thực hiện một trong p loại dự án đầu tư phát triển sản xuất Cho biết: a;; - số lượng tài nguyên ¡ cần để sản xuất ra một vật phẩm j bạ - tổng số tiền có thể bỏ vào đầu tư (thực hiện các dự án đầu tư) b; - lượng tài nguyên ¿ hiện có trước khi thực hiện các đầu tư c; - lợi nhuận thu được trên một vật phẩm j dự - chi phí cần cho loại dự án đầu tưk ` ỉ;¿¿ - lượng tài nguyờn ¿ được tăng thờm nếu dự ỏn đầu tư k được thực hiện

Vấn đề đặt ra là: trên cơ sơ tổng số tiền và các tài nguyên hiện có, hãy chọn thực hiện các loại dự án đầu tư nào và sản xuất mỗi loại vật phẩm bao nhiêu để sao cho thu được số lợi nhuận lớn nhất?

Goi x; là số lượng vật phẩm j7 được sản xuất và ¿ nhận giá trị 0 hay 1 tuỳ thuộc dự án đầu tư k có được thực hiện hay không Khi đó; bài toán sản xuất - đầu tư nêu trên có thể được diễn đạt bằng mô hình toán học như sau: n Z = › C717 — max, j=l

So days < bo, k=1 n P À2 aijj — À }0ikUk < b¡, + =1,2, ,m, j=l k=1 xj; > 0 va nguyén, j = 1,2, ,n,

Nếu bài toán trên được giải theo nhiều giá trị bạ khác nhau, ta có thể tính được hiệu quả tương đối của số tiền bỏ vào đầu tư và xác định được chính sách đầu tư tốt nhất

2.8 Bài toán chọn địa điểm đặt nhà máy Đây cũng là một bài toán về đầu tư, nhưng phức tạp hơn so với bài toán sản xuất - đầu tư đã nêu ơ trên Cái khó không phải chỉ vì các chỉ phí đầu tư được tính đến mà còn vì có các chi phí khác phụ thuộc vào địa điểm đặt nhà máy, cụ thể là vào chi phí vận chuyển Cũng còn một khó khăn nữa, đó là chi phí đầu tư trả một lần, còn chi phí vận chuyển thì xuất hiện thường xuyên Để làm cho các chỉ phí này có thể so sánh được với nhau thì phải xét thêm các chỉ phí vận chuyển trong các thời kỳ khác nhau, tất nhiên là đã qui đổi so với thời kỳ đầu Nói một cách khác, cần thêm vào một hệ số nhân thích hợp đối với các chi phi vận chuyển

Ta sử dụng các'ký hiệu sau đây:

P- số địa điểm thích hợp cho việc xây dựng các nhà máy ẹN - số cỏc nhà mỏy khỏc nhau cú thể xõy dựng (N < P)

M - số các vật phẩm khác nhau được sản xuất hay tiêu dùng a;¡; - lượng vật phẩm ¡ được sản xuat (néu ais > 0) hay tiêu dùng (nếu a;; < 0) ở nhà máy s (¡ = 1,2, ,M; s 1,2, ,N) b; nhu cau vé vat pham ¡ do các nhà máy sản xuất (nếu b; > 0) hay do cỏc nhà mỏy tiờu dựng (nếu ửĂ < 0) dps - chi phí đặt nhà máy s ở địa điểm p (p =1,2, , P) c;ạ - chỉ phí vận chuyển một đơn vị hàng giữa các địa điểm p và q ƒ;¿ - lượng hàng cần vận chuyển (trong một thời kỳ) từ nhà máy s tới nhà máy ¿

A - hệ số chuyển đổi làm cho chỉ phí vận chuyển so sánh được với chỉ phí đầu tư

Gọi z„; là biến xác định vị trí, nhận giá trị 1 hay 0 tuỳ thuộc vào nhà máy s có đặt ở vị trí p hay không

Vấn đề là cần xác định địa điểm đặt các nhà máy sao cho tổng chỉ phí đặt và vận chuyển hàng là nhỏ nhất? Để đơn giản, ta xem rằng tại mỗi địa điểm chỉ có thể đặt nhiều nhất là một nhà máy (vì thế có giả thiết W < P) Ta đi đến mô hình xác định vị trí đặt các nhà máy sau đây:

PN P PN WN yy sat 0 elie nga mk p=1 s=1 p=1 q=1 s=1 t=1 với các điều kiện

#p¿ € {0,1}, p=1,2, ,P; s=1,2, ,N Đây là bài toán qui hoạch nguyên phi tuyến Bài toán này có thể giải nhờ dùng phương pháp nhánh cận quen thuộc trong tối ưu rời rạc

2.0 Tối ưu hoá các hàm phi tuyến tách biến(xem [14], p.30-31) Khi cần tìm cực tiểu hay cực đại của hàm số có dạng

3 `ứ;(z;) n j=l trên một miền cho trước, thì hàm này có thể tuyến tính hoá bằng cách sử dụng các biến rời rạc Ta hãy xét một số hạng ở tổng trên mà không cần ghi chỉ số của nó Hàm một biến ¿(z) có thể xấp xỉ bởi hàm tuyến tính từng khúc như sau Đặt g(4¡) = b,71=0,1, ,k, trong đó ao, d+, , da là các điểm chia đủ mịn của miền biến

1A , “x v thiên cua biến z Đặt và

#e = À "tụ 0S Shụ Í=1,2, ,k, k i=1 yi — hy >O0 hodc —yi41 > 0,1 =1,2, ,k—-1

Cặp ràng buộc dạng lựa chọn cuối cùng bảo đam rằng biến yi+1 dai diện cho khoảng z +1, cần phải bằng 0 trừ khi khoảng trước đó đã được lấp đầy, nghĩa là ¿ = h¡ Điều này có thể diễn đạt lại như sau:

2.10 Cực tiểu hàm lõm trên da diện lồi (xem [14], p31-32) Giả sử hàm lõm ƒ(z) của n biến được xấp xi về phía trên bởi các siêu phẳng aa = bj,t = 1,2, ,2, i trong đú ứ° là cỏc vectơ hàng, nghĩa là

OS ease? brie) Se với e > 0 là độ chính xác cho trước

Bài toán qui hoạch lõm min {ƒ(z):z € D} với D là đa diện lồi.có thể biến đổi thành min {t:t—f(z) > 0,zec D}

Khi thay thế hàm ƒ(z) bởi biểu thức xấp xỉ é i: l

=o {a'ax — b;}, bài toán qui hoạch lõm trở thành min {‡: (z,f) € 7}, trong đó

Gia str M là một cận trên của sai khác giữa các hàm tuyến tính xấp xi trên đa diện lồi D :

Khi đó 7' là tập các lời giải của hệ bất đẳng thức sau đây: t — (a'x — b;) > —M(1—6;,), i= 1,2, ,p,

Như vậy, bài toán qui hoạch lõm ban đầu được đưa về một bài toán qui hoạch nguyên tuyến tính bộ phận

BÀI TẬP

PHƯƠNG PHÁP CẮT GOMORY

3.1 Nội dung bài toán Xét bài toán qui hoạch tuyến tính có thêm điều kiện nguyên, gọi là bài toán qui hoạch nguyên tuyến tính

Tt to = Samy — min với các ràng buộc j=1 nm

Nếu mœ¡ = n ta có bài toán qui hoạch nguyên hoàn toàn, cũn nếu mĂ < ứœ thỡ cú bài toỏn qui hoạch nguyờn bộ phận

Gomory là người đầu tiên đề xuất ra các phương pháp giải qui hoạch nguyên Ý đại thể của phương pháp Gomory như sau: giai qui hoạch tuyến tính không có điều kiện nguyên, nếu bài toán này không có lời giải thì bài toán nguyên cũng không có lời giải Nếu bài toán có lời giải và lời giải đó thoả mãn điều kiện nguyên thì đó là lời giải của bài toán nguyên, còn nếu lời giải đó không nguyên thì ta sẽ thêm vào một rằng buộc mới, cắt bo lời giải không nguyên này và vẫn giữ lại các điểm a , ` ` A * ^ A ` x nguyên của miền ràng buộc Ràng buộc thêm vào như thế es oa 2 gs z z 4 z yn: sede ‘ gọi là siêu phang cat dung hay lát cắt đúng Rồi lại giải qui hoạch tuyến tính tương ứng (không có điều kiện nguyên),

Với những gia thiết (điều kiện) nhất định, Quá trình trên sẽ dẫn đến lời giải nguyên sau một số hữu hạn bước lặp Để áp dụng được phương pháp Gomory cần có các giả thiết sau đây: a Ham mục tiêu zo bị chặn dưới (đối với bài toán min) trên miền rằng buộc không có điều kiện nguyên b Tập phương án tối ưu (lời giải) của bài toán tuyến tính không có điều kiện nguyên nếu khác rỗng thì phải bị chặn c zo đòi hỏi phải nguyên (chẳng hạn, mọi c; nguyên) d Có một trong hai điều kiện sau: - : - Ham muc tiéu ag bi chan trén trén mién rang budc không có điều kiện nguyên

- Bài toán có phương án (điểm) nguyên

Tóm lại, các điều kiện nêu trên sẽ được thoả mãn nếu miền ràng buộc (không kể điều kiện nguyên) là bị chặn và các hệ số a¡;,b¡,ej đều nguyên

Có ba cách khác nhau thể hiện ý tưởng phương pháp giải nêu trên

3.2 Thuật toán Gomory Ì Thuật toán Gomory 1 áp dụng cho bài toán qui hoạch nguyờn hoàn toàn (nạ = ứ) Nội dung thuật toỏn như sau: Áp dụng phương pháp đơn hình đối ngẫu tự vựng (xem mục 3.5 dưới đây) giải qui hoạch tuyến tính không có điều kiện nguyên, nếu bài toán không giải được thì bài toán nguyên cũng không giải được Nếu bài toán giải được và lời giải thoả mãn điều kiện nguyên thì lời giải đó đồng thời là lời giải cần tìm (quá trình giai kết thúc) Nếu lời giải đó không nguyên ta chuyển sang bước lặp k = 0

Bước k > 0 Giả sử ta đã có lời giải z* không nguyên Ký hiệu ¿ là tập chỉ số các biến phi (ngoài) cơ sở Biểu diễn hàm mục tiêu zọ = cTz và các biến z,zạ, ,#„ qua các bién phi co so z; (7 € Nx):

Me bảng các hệ xả, = lIz?; là I—chuẩn, nghĩa là ở mỗi cột gj € Ne U {0} phần tử khác không đầu tiên phải là số dương

Chọn dòng có chỉ số nhỏ nhất mà z, không nguyên: t = min{i € {0,1,2, ,n}: 2%, khéng nguyén} Ấ a tA t đ Z “ và xây dựng siêu phẳng cắt đúng tương ứng

([z| : phần nguyên của z, {z} = z — [z] : phần lẻ của z)

Thêm dòng z„+¿+¡ vào phía dưới bảng T, va duoc bang đơn hình không chấp nhận được (chỉ ở dòng z„+x+¡!) Ấp dụng phương pháp đơn hình đối ngẫu tự vựng, nếu kết quả ta nhận được bảng đơn hình ứng với bài toán qui hoạch tuyến tính không giải được thì bài toán qui hoạch nguyên cũng không giải được, nếu trái lại kiểm tra tính nguyên của lời giải thu được

Nếu điều kiện nguyên được thoa mãn thì đó là lời giải cần tìm, nếu trái lại ta chuyển sang bước lặp k + 1

Nếu có các giả thiết như đã nêu ở trên thì thuật toán Gomory 1 kết thúc sau một số hữu hạn bước lặp È

3.3 Thuật toán Gomory 2 Áp dụng cho bài toán qui hoạch nguyên bộ phận (n < n)

Về cơ bản, thuật toán Gomory 2 giống như thuật toán Gomory 1, chỉ khác ở cách xây dựng siêu phẳng cắt đúng

Nhờ thuật toán Gomory 2 (trong trường hợp m = n) cũng có thể giải bài toán qui hoạch nguyên hoàn toàn Nhưng trong trường hợp này không có cơ sở để so sánh hiệu quả của thuật toán Gomory 1 và 2 với nhau Cách xây dựng siêu phẳng cắt đúng trong thuật toán Gomory 2 như sau:

Gia str ck, “hông nguyên Khi đó bất đẳng thức z= —sot So 852; > 0 j€NE ; là siêu phẳng cắt đúng oO day: so = {ak} va

5, = gk Sn 41k >0 tj yy xữ{; 2 tú) ( tk.) >m +128,

Ngày đăng: 06/09/2024, 21:15

w