Phương pháp nhánh và cận trong tối ưu rời rạc
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC
CAO TRẦN DŨNG
PHƯƠNG PHÁP NHÁNH VÀ CẬN
TRONG TỐI ƯU RỜI RẠC
LUẬN VĂN THẠC SĨ TOÁN HỌC
Thái Nguyên - Năm 2012
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC
LUẬN VĂN THẠC SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
GS.TS TRẦN VŨ THIỆU
Thái Nguyên - Năm 2012
Trang 3Mục lục
Mục lục i
LỜI NÓI ĐẦU 1 1 PHƯƠNG PHÁP NHÁNH VÀ CẬN TRONG TỐI ƯU RỜI RẠC 4 1.1 Bài toán quy hoạch nguyên tuyến tính 4
1.2 Sơ đồ tổng quát của phương pháp nhánh cận 10
1.3 Thuật toán Land-Doig giải quy hoạch nguyên tuyến tính 14
2 BÀI TOÁN CÁI TÚI 23 2.1 Nội dung bài toán 23
2.2 Thuật toán nhánh và cận 26
2.3 Ví dụ minh họa 30
3 BÀI TOÁN NGƯỜI DU LỊCH 33 3.1 Phát biểu bài toán 33
3.2 Thuật toán nhánh và cận 35
3.2.1 Thủ tục tính cận 36
3.2.2 Thủ tục phân nhánh 38
3.3 Ví dụ minh họa 41
Trang 4LỜI NÓI ĐẦU
Tối ưu rời rạc (Discrete Optimization), còn gọi là tối ưu tổ hợp binatorial Optimization), đề cập tới các bài toán tối ưu trong đó một phầnhay toàn bộ biến nhận các giá trị nguyên hay rời rạc (không liên tục) Cácbài toán tối ưu rời rạc đã và đang được quan tâm nghiên cứu cả về lýthuyết lẫn phương pháp giải, vì chúng có những ứng dụng đa dạng, phongphú trong thực tiễn và nhiều vấn đề lý thuyết cũng như thực tiễn có thểdiễn đạt dưới dạng một bài toán tối ưu rời rạc
(Com-Một lớp bài toán tối ưu rời rạc đáng chú ý là bài toán tối ưu với các biến
số chỉ nhận hai giá trị 0 hoặc 1, gọi là qui hoạch 0 - 1 hay qui hoạch biếnBoole Nhiều bài toán điển hình của tối ưu rời rạc được phát biểu dướidạng bài toán qui hoạch 0 - 1, như bài toán phân việc, bài toán cái túi, bàitoán người du lich, bài toán phân hoạch tập, phủ tập, sắp xếp tập, bài toáncây Steiner trên đồ thị, Hơn nữa về nguyên tắc, mọi bài toán với biến sốnguyên hay rời rạc bị chặn đều có thể đưa được về bài toán qui hoạch 0 - 1
Có nhiều phương pháp giải bài toán tối ưu rời rạc, trong đó đáng chú
ý và có hiệu quả hơn cả là các phương pháp nhánh cận, đặc biệt đối vớimột số bài toán điển hình của tối ưu rời rạc: bài toán qui hoạch 0 - 1, bàitoán cái túi, bài toán người du lịch Cho đến nay phương pháp nhánh cậnvới nhiều cải tiến khác nhau vẫn là công cụ chủ yếu để giải các bài toántối ưu rời rạc
Trang 5Mục tiêu của luận văn này là tìm hiểu và trình bày lược đồ tổng quátcủa phương pháp nhánh cận trong tối ưu rời rạc và áp dụng lược đồ đóvào giải một số bài toán tối ưu rời rạc điển hình nói trên Nội dung đề cậptới trong luận văn được trình bày một cách chặt chẽ về mặt toán học, cácthuật toán giải nêu ra đều có kèm theo ví dụ số minh hoạ.
Việc tìm hiểu phương pháp nhánh cận trong tối ưu rời rạc sẽ giúp íchcho việc đi sâu tìm hiểu sau này về nội dung và phương pháp giải các bàitoán của tối ưu rời rạc nói chung và những ứng dụng của chúng nói riêng
Nội dung luận văn được chia thành ba chương
Chương 1 với tiêu đề "Phương pháp nhánh cận trong tối ưu rời rạc"giới thiệu về bài toán qui hoạch nguyên tuyến tính và bài toán qui hoạchtuyến tính 0 - 1 như trường hợp riêng quan trọng Tiếp đó trình bày lược
đồ tổng quát của phương pháp nhánh cận và áp dụng lược đồ đó vào bàitoán qui hoạch nguyên tuyến tính
Chương 2 với tiêu đề "Bài toán cái túi" trình bày nội dung và ý nghĩathực tiễn của bài toán cái túi Đó là bài toán qui hoạch tuyến tính 0 - 1 vớimột ràng buộc chính duy nhất, dạng đẳng thức hay bất đẳng thức tuyếntính Bài toán này tuy đơn giản, nhưng lại là bài toán điển hình trong tối
ưu rời rạc Phương pháp nhánh cận là phương pháp thích hợp nhất để giảibài toán nầy Thuật toán nhánh cận trình bày ở chương này khá độc đáo.Cách tính cận chỉ dựa trên việc giải bài toán qui hoạch tuyến tính đơn giản
Chương 3 với tiêu đề "Bài toán người du lịch" trình bày nội dung và ýnghĩa của bài toán người du lịch Đó là một bài toán rất quen thuộc và cótầm quan trọng đặc biệt trong tối ưu rời rạc, vì nó là mô hình toán họccho nhiều vấn đề thực tiễn khác nhau và là một trong những bài toán khó,
Trang 6hiện vẫn được nhiều người quan tâm nghiên cứu Thuật toán nhánh cậnđầu tiên của Little, Murty, Sweeney và Karel được giới thiệu ở chương này
có nhiều ý tưởng độc đáo, đặc biệt trong cách phân nhánh và cách tính cận
Do thời gian và kiến thức còn hạn chế nên luận văn này mới chỉ đềcập tới những nội dung cơ bản của phương pháp nhánh và cận trong tối
ưu rời rạc, chưa đi sâu vào các chi tiết thực thi thuật toán Trong quátrình viết luận văn cũng như trong xử lý văn bản chắc chắn không tránhkhỏi những sai sót nhất định Tác giả luận văn rất mong nhận được sự góp
ý của các thầy cô và các bạn đồng nghiệp để luận văn được hoàn thiện hơn
Nhân dịp này tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy hướngdấn GS-TS Trần Vũ Thiệu đã tận tình giúp đỡ trong suốt quá trình làmluận văn Tác giả xin trân trọng cảm ơn các thầy, cô giáo Trường Đại họcKhoa học- Đại học Thái Nguyên, Viện Toán học-Viện Khoa học và Côngnghệ Việt Nam, đã giảng dạy và tạo mọi điều kiện thuận lợi trong quátrình tác giả học tập và nghiên cứu
Tác giả cũng xin chân thành cảm ơn Ban giám hiệu, tổ toán –tin TrườngTHPT Số 1 TP Lào Cai và tập thể bạn bè đồng nghiệp cùng gia đình đãquan tâm giúp đỡ, động viên tác giả hoàn thành tốt luận văn này
Thái Nguyên, tháng 07 năm 2012
Người thực hiệnCao Trần Dũng
Trang 7Chương 1
PHƯƠNG PHÁP NHÁNH VÀ
CẬN TRONG TỐI ƯU RỜI RẠC
Chương này giới thiệu về bài toán qui hoạch nguyên tuyến tính vàlược đồ tổng quát của phương pháp nhánh cận trong tối ưu rời rạc Cuốichương, áp dụng lược đồ nhánh cận vào bài toán qui hoạch nguyên tuyếntính Nội dung của chương dựa chủ yếu trên các tài liệu [1], [4] và [6]
1.1 Bài toán quy hoạch nguyên tuyến tính
Qui hoạch nguyên tuyến tính (Integer Linear Programming Problem,viết tắt ILP) là bài toán tìm cực tiểu (hay cực đại) của một hàm tuyếntính trên một tập hợp điểm rời rạc, thường là tập điểm nguyên:
(ILP) minf (x) = cTx : Ax = b, xj ≥ 0 nguyên, j = 1, , n ,
trong đó A ∈ Rm.n, b ∈ Rm và c ∈ Rn cho trước
Khi chỉ có một số, chứ không phải tất cả, các biến là nguyên thì tagọi đó là bài toán qui hoạch nguyên hỗn hợp (Mixed Integer ProgrammingProblem, viết tắt MIP)
Cũng như trong qui hoạch tuyến tính, f được gọi là hàm mục tiêu, tập
D = x ∈ Rn : Ax = b, xj ≥ 0 nguyên, j = 1, , n
Trang 8gọi là miền ràng buộc hay miền chấp nhận được Điểm x ∈ D gọi là mộtnghiệm chấp nhận được hay một phương án của bài toán Một phương ánđạt cực tiểu (hay cực đại) của hàm mục tiêu gọi là một nghiệm tối ưu haymột phương án tối ưu Nghiên cứu cấu trúc tập ràng buộc D và xây dựngcác thuật toán tìm nghiệm tối ưu của bài toán ILP là đối tượng của quihoạch nguyên tuyến tính.
Sau đây là hai ví dụ đơn giản về bài toán qui hoạch nguyên tuyến tính
Ví dụ 1.1 Giả sử ta cần đưa qua sông 3 kiện hàng với trọng lượng lầnlượt là 3 tạ, 2 tạ và 4 tạ và trị giá mỗi kiện hàng tương ứng là 1, 2 và 3triệu đồng Nhưng chỉ có một chiếc thuyền nhỏ, mỗi chuyến chở được tối
đa 5 tạ Hỏi nên xếp lên thuyền những kiện hàng nào để số hàng chuyểnđược có trị giá lớn nhất?
Bằng cách đưa vào các biến số:
xj =
1 nếu chọn kiện j
0 nếu ngược lại , j = 1, 2, 3,
ta có thể diễn đạt vấn đề nêu trên như một qui hoạch nguyên ILP như sau:
x1 + x2 ≤ 1
(Vì thế, nếu x1 = 1 thì x2 = 0, còn nếu x2 = 1 thì x1 = 0)
Nếu đòi hỏi rằng chỉ một trong 3 kiện hàng được xếp lên thuyền thì mô
Trang 9hình bài toán ra sao? Trả lời: thêm vào mô hình ban đầu đẳng thức:
x1 + x2 + x3 = 1
(Vì thế, hoặc x1 = 1, x2 = x3 = 0 hoặc x2 = 1, x1 = x3 = 0 hoặc
x3 = 1, x1 = x2 = 0) Như vậy ta đã thấy qui hoạch nguyên ILP rất tiệndùng để mô hình hoá các ràng buộc lôgic (chẳng hạn, nếu sự kiện A xảy
ra thì sự kiện B không xảy ra, )
Ví dụ 1.2 Một hãng hàng không dự định mua một số máy bay AirbusA-3200 và Boing 777 để mở rộng hoạt động Mỗi máy bay Airbus giá 5triệu đô và có thời gian sử dụng 6 năm, mỗi máy bay Boing giá 9 triệu đô
và có thời gian sử dụng 8 năm (các con số có tính ước lệ) Hãng ước tínhchỉ cần mua tối đa 6 máy bay và số tiền để mua máy bay không quá 46triệu đô Hỏi hãng nên mua bao nhiêu máy bay mỗi loại để tổng thời gianphục vụ của chúng được lâu nhất?
Bằng cách đưa vào hai biến: x1 là số máy bay Airbus cần mua và x2
là số máy bay Boing cần mua, ta có thể diễn đạt vấn đề này như một bàitoán nguyên tuyến tính ILP sau (Đáp số: 2 Airbus và 4 Boing, fmax = 44
x1, x2 ≥ 0,nguyênMột lớp qui hoạch nguyên quan trọng là bài toán qui hoạch tuyến tính
0 - 1 Đó là bài toán qui hoạch tuyến tính, trong đó mọi biến chỉ lấy giátrị 0 hay 1 Bài toán này còn được biết với tên gọi bài toán nhị nguyêntuyến tính hay bài toán qui hoạch tuyến tính biến Boole
Trang 10Nhiều bài toán tối ưu rời rạc có thể diễn đạt dưới dạng một qui hoạchtuyến tính 0 - 1 Chẳng hạn: bài toán phân việc, bài toán cái túi, bài toánngười du lịch, bài toán phân hoạch tập, phủ tập, sắp xếp tập, bài toán câySteiner trên đồ thị Một số ứng dụng trong công nghiệp như định vị tiệních (facility location), bài toán với phụ phí cố định, bài toán xếp lịch, thiết
kế mạng được diễn đạt và giải bằng kỹ thuật qui hoạch tuyến tính 0 1
-Qui hoạch tuyến tính 0 - 1 có nhiều ứng dụng trong thực tiễn, đặc biệttrong lập kế hoạch triến khai các dự án với hạn chế về các nguồn lực (vốn,lao động, vật tư, v.v )
Để minh hoạ ta nêu đại diện mô hình bài toán “cái túi” nhiều chiều:
Trong mô hình trên aij biểu thị lượng tài nguyên i cần dùng để thựchiện dự án j, bi biểu thị lượng tài nguyên i có thể sử dụng và cj biểu thịlợi ích thu được khi thực hiện dự án j Biến quyết định xj = 1 nếu dự án
j được chọn thực hiện và xj = 0 nếu trái lại
Qui hoạch tuyến tính 0 - 1 còn được chú ý là vì về nguyên tắc, mọi bàitoán với biến nguyên hay rời rạc bị chặn đều có thể đưa được về bài toán
Trang 11với biến 0 - 1 Sau đây nêu một vài cách biến đổi đáng chú ý.
• Đưa biến nguyên về biến 0 - 1
Cho một bài toán tối ưu rời rạc, ta có thể diễn đạt nó theo nhiều môhình toán học khác nhau Về mặt tính toán, một cách diễn đạt 0 - 1 tốt
là rất quan trọng Nếu giả thiết các biến nguyên trong bài toán là bị chặnthì có thể đưa bài toán đó về một qui hoạch 0 - 1 Nhưng cách đưa thếnào cho khéo mới là quan trọng Để thấy rõ vấn đề này, ta hãy lấy ví dụ
về bài toán cái túi:
Thật vậy, giả sử x ∈ Z+, p ∈ Z+ và 0 ≤ x ≤ p Ý tưởng tốt hơn là tìm
Trang 12Đối với bài toán cái túi đã xét ta có thể viết
với các điều kiện: 4λ1 + 8λ2 + 12λ3 + 7λ4 + 14λ5 + 3λ6 + 6λ7 + 12λ8 +6λ9 + λ10 + 2λ11+ 4λ12 + 8λ13+ 12λ14 ≤ 27
λi ∈ {0, 1} , i = 1, 2, , 14
• Đưa biến rời rạc về biến 0 – 1
Trong một số ứng dụng, biến x có thể lấy giá trị rời rạc hay liên tục.Chẳng hạn, x ∈ X = {2} ∪ [5; 7] ∪ {10} ∪ [15; +∞)
Giả sử x có cận trên M Khi đó ta có thể viết x như là hàm của cácbiến nhị nguyên :λ1, λ2, λ3, λ4
Trang 13rất nhiều bài toán tối ưu, nhưng ta không đảm bảo được rằng có thể giảiđược hết các bài toán đó trong thời gian hợp lý, bởi lẽ số các nghiệm nhịnguyên chấp nhận được và không chấp nhận được là cực kỳ lớn Giả sử
có 100 biến nhị nguyên trong bài toán thì số nghiệm nhị nguyên cần xemxét có thể lên tới cỡ 2100 Ta hãy thử hình dung lượng thời gian một máytính cỡ lớn cần dùng để kiểm tra tính chấp nhận được của 2100 nghiệm 0
- 1 trong bài toán này nhiều như thế nào
Mặc dầu vậy trên thực tế, người ta vẫn có thể giải trôi chảy các bàitoán qui hoạch tuyến tính 0 -1 cỡ lớn, nhờ dùng lược đồ nhánh cận cài đặttrên phần mềm thương mại giải qui hoạch nguyên hỗn hợp (chẳng hạn,người ta đã giải được bài toán thiết kế mạng với 150.000 biến, trong đó2.000 biến 0 - 1 và 45.000 ràng buộc)
1.2 Sơ đồ tổng quát của phương pháp nhánh cậnXét bài toán tối ưu rời rạc tổng quát :
trong đó f : Rn → R, và D ⊂ Rn là một tập gồm hữu hạn phần tử Bởi
vì D là tập hữu hạn nên bài toán (1.1) luôn có phương án tối ưu ký hiệu
là x∗
Xét hàm số γ : 2D\φ → R thỏa mãn hai điều kiện
i)γ(A) ≤ min {f (x) : x ∈ A}
ii)γ(A1) ≥ γ(A2), nếu A1 ⊂ A2 ⊂ D
Định nghĩa 1.1 Giá trị γ(A) trên tập A⊂D được gọi là cận dưới của tậpA
Việc lựa chonγ(A)phụ thuộc vào từng bài toán cụ thể Thông thường tachọnγ(A)sao cho việc tính toánγ(A)dễ hơn giải bài toánmin {f (x) : x ∈ A}
Trang 14và sao cho γ(A) gần với giá trị tối ưu của bài toán này.
Trong nhiều trường hợp hai yêu cầu này đối lập nhau
Ta phân hoạch D thành các tập con
f (x) − f (x∗) ≤ f (x) − γ(Di(1)
0 ) = ε(x) (1.4)với số ε0 cho trước, nếu:
Thì x có thể coi là lời giải gần đúng
Định nghĩa 1.2 Phương án chấp nhận được x ∈ D thỏa mãn
f (−x) − f (x∗) ≤ ε
được gọi là phương án ε -tối ưu của bài toán
Nếu ta tìm được x ∈ D sao cho:
Trang 150 là có triển vọng chứa phương án tối ưu hơn các tậpDi(1)(i 6= i0)
của phân hoạch (1.2) Nếu không có thông tin nào khác về phương án tối
ưu của bài toán (1.1) thì điều kiện:
γ(Di(1)
0 ) = minγ(D1i) : 1 ≤ i ≤ n1 (1.7)
sẽ được nhận làm quy tắc chọn tập D(1)i
0 trong các tập D1(1), , D(1)n1 củaphân hoạch (1.2) để điểm diện trước
Giả sử có thể phân hoạch tập Di(1)
0
Tóm lại ta có lược đồ sau đây:
Sơ đồ thuật toán nhánh cận
a) Bước chuẩn bị: Đặt D1(0) = D, n0 = 1 Chọn ε0 là độ chính xác củalời giải cần tìm
b) Bước k = 0,1,2 : Giả sử ở bước lặp này ta đã có phân hoạch
D = n∪k
i=1D(k)i
Tìm γ(Di(k)
0 ) = minnγ(D(k)i ) : 1 ≤ i ≤ nko
Trang 16Nếu ta tìm được x ∈ D thỏa mãn:
εk(x) = f (x) − γ(D(k)i0 ) ≤ ε0
thì x là phương án ε0 tối ưu, thuật toán kết thúc
Ngược lại, ta tiến hành phân hoạch tậpD(k)i
0 và thu được phân hoạchcủa tập D cho bước k+1
o
≥ minn
Di(k+1)
: 1 ≤ i ≤ nk+1
o
Cho nên với k đủ lớn, ta sẽ thu được phân hoạch tập D thành các tậpcon chỉ gồm một phần tử Do đó, ta suy ra tính hữu hạn của thuật toánnày
Chú ý rằng trong quá trình phân hoạch các tập D(k)i
0 ta có thể tìm đượccác phương án chấp nhận được của bài toán Kí hiệu −x là phương án chấpnhận được có giá trị hàm mục tiêu là nhỏ nhất trong số các phương ánchấp nhận được tìm được Ta sẽ gọi −x là lời giải tốt nhất hiện có, hay gọitắt là kỉ lục, còn giá trị
−
f = f (−x) được gọi là giá trị kỉ lục
Giả sử ở bước k ta đã có kỉ lục −x Khi đó, ta có thể loại khỏi quá trìnhduyệt tất cả các tập con Di(k) có giá trị cận dưới lớn hơn hoặc bằng giá trị
Trang 171.3 Thuật toán Land-Doig giải quy hoạch nguyên
Pn j=1aijxj ≤ bi, (i = 1, , m)
Trang 18Gọi P1 là bài toán
min {f (x) : x ∈ D1}
Gọi P2 là bài toán
min {f (x) : x ∈ D2}
Trang 19Rõ ràng đây là các bài toán quy hoạch nguyên tuyến tính.
Khi giải các bài toán quy hoạch tuyến tính tương ứng với các bài toán
Pi(i = 1, 2), để tính cận dưới cho các tập Di, ta có thể gặp một trong cáctình huống sau đây:
1) Bài toán không có phương án chấp nhận được
2) Tìm được phương án tối ưu xi nguyên
3) Tìm được phương án tối ưu xi không nguyên
Trường hợp 1): Bài toán Pi cũng không có phương án chấp nhận được,tức là Di = φ Khi đó, ta có thể loại bỏ tập Di khỏi quá trình xét tiếptheo
Trường hợp 2): xi cũng là phương án của bài toán Pi Vì vậy xi làphương án chấp nhận được của bài toán xuất phát Trong trường hợp này,
ta có thể cải thiện được kỷ lục, còn tập Di cũng sẽ bị loại bỏ không cầnxét tiếp
Trường hợp 3) Ta thu được cận dưới của tập Di là
γ(Di) = f (xi)
Tập Di cần được xem xét tiếp:
Ta có thể mô tả thuật toán Land-Doig để giải bài toán quy hoạchnguyên tuyến tính (1.9) như sau:
Thuật toán Land-Doig
Trang 20Bước chuẩn bị : Giải bài toán quy hoạch tuyến tính tương ứng với P0
và thu được phương án tối ưu x0 Giả sử x0 là không nguyên
Đặt cận dưới của P0 là f (x0) và danh mục các bài toán cần xét là
P = {P0} Nếu biết x là phương án chấp nhận được của bài toán thì đặt
f = f (x) và ngược lại, ta đặt f = ∞
Bước lặp k = 1,2,
1) Nếu P = φ thuật toán kết thúc Khi đó, nếu f < ∞ thì f là giá trịtối ưu và x là phương án tối ưu của bài toán Trong trường hợp ngược lại,bài toán không có phương án chấp nhận được
2) Nếu P 6= φ : Chon Pk là bài toán có cận dưới nhỏ nhất trong P.Gọi Dk là miền chấp nhận được, xk là phương án tối ưu của bài toán quyhoach tuyến tính tương ứng với nó
2.1 Giả sử xkt là một thành phần không nguyên nào đó của xk Phânhoạch tập Dk thành hai tập:
Trang 212.2 Lần lượt giải các bài toán quy hoạch tuyến tính tương ứng với Pki
(i = 1,2) để tính cận dưới cho bài toán Pki Khi đó, ta có thể gặp mộttrong các tình huống sau đây:
a) Phát hiện bài toán không có phương án chấp nhận được
b) Tìm được phương án tối ưu xki là nguyên
c) Tìm được phương án tối ưu xki là không nguyên
Trường hợp a): Bài toán Pki cũng không có phương án chấp nhận được,
vì vậy loại bỏ khỏi việc xem xét tiếp theo
Trường hợp b): Tính lại giá trị kỷ lục theo công thức:
f := minf , f (xki)
Gọi x là kỷ lục tương ứng với giá trị này Bài toán Pki đã xét xong
Trường hợp c): Đặt cận dưới của Pki là f (xki) , và kết nạp nó vào danhsách các bài toán cần xét:
Trang 22Đó là cận dưới cho mọi phương án nguyên của bài toán quy hoạch nguyênđang xét.
Vì biến x1 có giá trị không nguyên nên ta chọn x1 để phân nhánh Tathu được bài toán quy hoạch tuyến tính mới
Thêm vào P1 ràng buộc x1 ≤ 1 ta được bài toán P2
Thêm vào P1 ràng buộc x1 ≥ 2 ta được bài toán P3
Giải bài toán P2 ta được phương án tối ưu x1 = 1; x2 = 32 với giá trịmục tiêu z = − 52
Giải bài toán P3 ta được phương án tối ưu x1 = 2; x2 = 32 với giá trịmục tiêu z = − 72
Bài toán P3 có giá trị hàm mục tiêu nhỏ hơn nên ta chọn P3 để phânnhánh, vì biến x2 có giá trị không nguyên nên ta chọn x2 để phân nhánh,
ta thu được hai bài toán quy hoạch tuyến tính mới
Thêm vào P3 ràng buộc x2 ≤ 1 ta được bài toán P4
Trang 23Thêm vào P3 ràng buộc x2 ≥ 2 ta được bài toán P5.
Bài toán P5 không có phương án (miền ràng buộc rỗng) nên P5 bị loại(không cần xét tiếp nữa)
Giải bài toán P4 ta được phương án tối ưu x1 = 94; x2 = 1 với giá trịmục tiêu z = − 134
Ta phải xét hai bài toán P2 và P4 do bài toán P4 có giá trị hàm mụctiêu nhỏ hơn nên ta chọn P4 để phân nhánh
Vì biến x1 có giá trị không nguyên nên ta chọn x1 để phân nhánh, tathu được hai bài toán quy hoạch tuyến tính mới
Thêm vào P4 ràng buộc x1 ≤ 2 ta được P6
Thêm vào P4 ràng buộc x1 ≥ 3 ta được P7
Bài toán P7 không có phương án (miền ràng buộc rỗng) nên P7 bị loại( không cần xét tiếp nữa)
Giải bài toán P6 ta nhận được phương án tối ưu x1 = 2; x2 = 1 với giátrị hàm mục tiêu z = - 3
Phương án này có x1, x2 nguyên nên ta nhận được giá trị kỉ lục củahàm mục tiêu là - 3 và P6 đã xét song (bị loại)
Bài toán P2 có giá trị mục tiêu lớn hơn giá trị kỉ lục nên chắc chắn nókhông chứa phương án nguyên nào tốt hơn (giá trị mục tiêu nhỏ hơn) vìthế P2 cũng bị loại
Đến đây không còn bài toán nào phải xem xét nữa nên phương ánnguyên đã nhận được là phương án tối ưu cần tìm của bài toán quy hoạch
Trang 25lược đồ tổng quát của phương pháp nhánh cận cho bài toán tối ưu rời rạc,Sau đó áp dụng lược đồ này để giải bài toán qui hoạch nguyên tuyến tính,theo thuật toán Land - Doig.
Trang 26Chương 2
BÀI TOÁN CÁI TÚI
Chương này đề cập tới một trong những bài toán điển hình của tối ưurời rạc, đó là bài toán "cái túi" (Knapsack problem): nêu nội dung và môhình toán học của bài toán Sau đó trình bay cơ sở lý luận và nêu thuậttoán nhánh cận giải bài toán Cuối chương xây dựng ví dụ số minh hoạ chothuật toán đã trình bày Nội dung của chương chủ yếu được tham khảo từcác tài liệu [1] và [3]
2.1 Nội dung bài toán
Bài toán quy hoạch nguyên 0-1 sau đây chỉ có một ràng buộc chínhđược quen gọi với tên là bài toán cái túi Nội dung như sau: Một khách bộhành muốn chọn đem theo trong một cái túi có trọng lượng không vượtquá b một số trong n loại đồ vật khác nhau Đồ vật thứ j có trọng lượng
là aj và có giá trị sử dụng là cj Vấn đề đặt ra là nên mang theo nhữngloại đồ vật nào để giá trị sử dụng tổng cộng là lớn nhất mà không vượtquá tải trọng của cái túi?
Đặt biến số nếu xj =
1nếu đồ vật j được đem theo
0nếu trái lại
Khi đó bài toán cái túi có thể diễn đạt thành
... để tính cận cho tập Di, ta gặp cáctình sau đây:1) Bài tốn khơng có phương án chấp nhận
2) Tìm phương án tối ưu xi nguyên
3) Tìm phương án tối ưu xi... đó, f < ∞ f giá tr? ?tối ưu x phương án tối ưu toán Trong trường hợp ngược lại,bài tốn khơng có phương án chấp nhận
2) Nếu P 6= φ : Chon Pk tốn có cận nhỏ P.Gọi Dk... class="text_page_counter">Trang 25
lược đồ tổng quát phương pháp nhánh cận cho toán tối ưu rời rạc, Sau áp dụng lược đồ để giải tốn qui hoạch ngun tuyến tính,theo thuật tốn