HỒ CHÍ MINH Lê Văn Thìa PHƯƠNG PHÁP NHÁNH – CẬN CHO BÀI TOÁN QUY HOẠCH NGUYÊN LUẬN VĂN THẠC SĨ TOÁN HỌC... Nó thu hút sự quan tâm của các nhà khoa học nghiên cứu trong các lĩnh vực: k
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH
Lê Văn Thìa
PHƯƠNG PHÁP NHÁNH – CẬN CHO BÀI TOÁN QUY HOẠCH NGUYÊN
LUẬN VĂN THẠC SĨ TOÁN HỌC
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH
Lê Văn Thìa
PHƯƠNG PHÁP NHÁNH – CẬN CHO BÀI TOÁN QUY HOẠCH NGUYÊN
Chuyên ngành: Toán Giải Tích
Mã số: 60 46 01
LUẬN VĂN THẠC SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Trịnh Công Diệu
Thành phố Hồ Chí Minh – 2012
Trang 3LỜI CẢM ƠN
Tác giả luận văn xin bày tỏ lòng kính trọng và biết ơn sâu sắc đến thầy TS.Trịnh Công Diệu, Trưởng bộ môn Toán ứng dụng Trường Đại học Sư phạm Tp.Hồ Chí Minh đã tận tâm hướng dẫn, chỉ bảo tận tình trong suốt quá trình hoàn thành đề tài nghiên cứu
Xin chân thành cảm ơn các thầy, cô trong Ban giám hiệu trường, Phòng sau đại học, Khoa Toán – Tin Trường Đại học Sư phạm Tp.Hồ Chí Minh đã tạo điều kiện thuận lợi trong việc học tập, trang bị kiến thức để có thể hoàn thành luận văn
Bên cạnh đó, tôi xin cảm ơn các bạn bè, đồng nghiệp đã giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn
Cuối cùng, tôi xin cảm ơn gia đình và những người thân đã động viên giúp
đỡ tôi trong quá trình nghiên cứu và hoàn thành luận văn
Tác giả luận văn
Lê Văn Thìa
Trang 4LỜI MỞ ĐẦU
Quy hoạch nguyên (hay quy hoạch rời rạc) là một hướng quan trọng của quy
hoạch toán học Nó nghiên cứu lớp bài toán quy hoạch trong đó thêm điều kiện các biến chỉ nhận giá trị trên tập số nguyên Lớp bài toán này rất phổ biến trong thực tế
Nó thu hút sự quan tâm của các nhà khoa học nghiên cứu trong các lĩnh vực: kinh
tế, điều khiển, thiết kế, sinh học,… Chính trong các lĩnh vực đó các phương pháp liên tục tỏ ra kém hiệu quả khi nghiên cứu các đối tượng không thể chia nhỏ tùy ý, thì quy hoạch nguyên là công cụ chủ yếu nghiên cứu hiệu quả các lĩnh vực đó
Có thể nói quy hoạch nguyên bắt đầu khai sinh lịch sử của mình từ năm
1958, khi công bố thuật toán nổi tiếng của Gomory về phương pháp cắt Sau đó một thời gian dài, phương pháp cắt là công cụ duy nhất để giải các bài toán quy hoạch nguyên Nhưng từ khi phương pháp nhánh – cận xuất hiện trong [Land – Doig
1960] và nhất là dạng hoàn thiện của nó trong [Dakin 1965], nó trở nên ưu thế rõ
rệt Hiện nay phương pháp nhánh – cận là một trong những phương pháp chủ yếu
để giải bài toán quy hoạch nguyên Do đó, việc tìm hiểu về phương pháp nhánh – cận là cần thiết
Mục tiêu của luận văn là tìm hiểu và trình bày lại một cách chi tiết phương pháp nhánh – cận Các vấn đề được đề cập trong luận văn được trình bày một cách chặt chẽ về mặt toán học
Nội dung luận văn gồm ba chương:
Chương 1 “Một số kết quả của Quy hoạch tuyến tính và Giải tích lồi”
trình bày lại một số khái niệm và tính chất của Quy hoạch tuyến tính và Giải tích lồi Các khái niệm đối ngẫu, định lý đối ngẫu, tập lồi, tập lồi đa diện, điểm cực biên, tia cực biên của tập lồi đa diện Đặc biệt là các tính chất về sự biễu diễn của mỗi tập
Trang 5lồi đa diện hữu tỉ qua tia cực biên và điểm cực biên của nó, sẽ là cơ sở để chứng minh một số kết quả trong chương 2
Chương 2 “Thuật toán nhánh – cận giải bài toán Quy hoạch tuyến tính
nguyên bộ phận” trình bày một cách chặt chẽ và chi tiết cơ sở lý luận của thuật
toán và thuật toán được minh họa bởi việc giải bài toán thực tế
Chương 3 “Giải bài toán Quy hoạch nguyên tuyến tính trên Matlab”
trình bày lại việc dùng phương pháp nhánh – cận giải bài toán Quy hoạch nguyên bằng ngôn ngữ Matlab Giải một số bài toán Quy hoạch nguyên tuyến tính bằng chương trình Matlab R2009a
Do thời gian có hạn nên luận văn này mới chỉ dừng lại ở việc tìm hiểu tài liệu và sắp xếp trình bày lại các kết quả nghiên cứu theo một chủ đề đặt ra Trong quá trình viết luận văn cũng như trong quá trình xử lý văn bản chắc chắn không tránh khỏi những sai sót 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
Trang 6MỤC LỤC
MỤC LỤC 6
Chương 1 1
1.1 Quy hoạch tuyến tính 1
1.2 Tập lồi - Tập lồi đa diện 9
1.3.Điểm cực biên Tia cực biên 15
Chương 2 22
2.1 Bài toán quy hoạch tuyến tính nguyên bộ phận (Mixed Integer Linear Programming) 22
2.2 Thuật toán nhánh – cận giải bài toán quy hoạch tuyến tính nguyên bộ phận 25
2.2.1 Cơ sở lý luận của thuật toán 25
2.2.2 Thuật toán nhánh – cận 31
2.3 Một số kĩ thuật được sử dụng trong thuật toán nhánh- cận 31
2.3.1 Kĩ thuật Hậu tối ưu (Reoptimization) 31
2.3.2 Quy tắc chọn bài toán phân nhánh và quy tắc phân nhánh 34
2.4 Ví Dụ 34
Chương 3 44
3.1 Bài toán Quy hoạch tuyến tính với Matlab 44
3.2 Lập trình thuật toán giải bài toán quy hoạch tuyến tính nguyên bộ phận trên Matlab 47
3.3 Giải bài toán Quy hoạch tuyến tính nguyên bộ phận trên Matlab 50
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
Trang 7Chương 1
Một số kết quả của Quy hoạch tuyến tính và Giải tích lồi
Ta nhắc lại một số kết quả của quy hoạch tuyến tính mà chúng sẽ được sử dụng để chứng minh các kết quả phía sau
Định nghĩa 1.1.1 Bài toán Quy hoạch tuyến tính dạng tổng quát có dạng:
1
n
j j j
f x c x
=
=∑ →
thỏa hệ ràng buộc:
1
( ) , 1, ,
0 , 1, ,
n
j
j
=
∑
trong đó, , , ,c j a ij b i i =1, , ;m j =1, ,n là các hằng số cho trước
Định nghĩa 1.1.2 Tập D các điểm x=( , ,x1 x n) thỏa hệ các ràng buộc gọi là tập phương án chấp nhận được của bài toán
Điểm *x ∈ sao cho ( )D f x ≥ f x( *) ,∀ ∈ x D được gọi là phương án tối ưu của bài toán Quy hoạch tuyến tính
Định nghĩa 1.1.3 Bài toán Quy hoạch tuyến tính có thể phát biểu dưới dạng ma
trận như sau:
( ) , min
f x =<c x >→
thỏa hệ ràng buộc:
( ) 0
x
≤ =≥
≥
trong đó, A là ma trận kích thước m n×
Trang 8 Phương án x=( , ,x1 x n) được gọi là phương án cơ sở nếu hệ các vectơ cột {A j} của ma trận A ứng với các thành phần x j >0 (j =1, , )n là độc lập tuyến tính
Phương pháp đơn hình:
Xét bài toán Quy hoạch tuyến tính dạng chính tắc sau:
1
n
j j j
f x c x
=
=∑ →
thỏa hệ ràng buộc:
1
, 1, ,
0 , 1, ,
n
j j
=
∑
Giả sử đã biết một phương án cơ sở chấp nhận được náo đó:
0 ( b1 1, b2 2, , bm m),
X = x =a x =a x =a được xác định từ hệ vectơ cơ sở đơn vị m chiều A b1,A b2, ,A bm
- Khai triển mọi vectơ điều kiện A j j( =1, , )n theo hệ vec tơ cơ sở
1, 2, ,
A A A có nghĩa là tính các hệ số x1j,x2j, ,x mj, j=1, ,n
- Tính các hiệu Z j −c j, j=1, , ,n
trong đó
1
, 1, ,
m
i
=
Để tiện tính toán người ta trình bày theo bảng sau:
Trang 9Cơ
sở
b
C
0
A c1 … c1 … c 2 … c bl … c … k c … j c … bm c n
1
A … A1 … A2 … A bl … A k … A j … A bm … A n
1
A c1 x1 x11 … 1 … 0 … 0 … x 1k … x 1 j … 0 … x 1n
2
A c2 x 2 x21 … 0 1 … 0 … x 2k … x 2 j … 0 … x 2n
… … … …
bl
A c bl x bl x1 … 0 … 0 … 1 … x lk … x … 0 lj … x ln
… … … …
bm
A c bm x bm x bm … 0 … 0 … 0 … x mk … x mj … 1 … x mn
Z − c Z0 … … … …
- Nếu Z j − ≤c j 0 ,∀ ∈j {1, 2, , }n thì phương án cơ sở chấp nhận được là phương án tối ưu
- Nếu có một chỉ số j nào đó mà Z j −c j > 0 và hệ số x ij ≤0 (∀ =i 1, , )m thì dạng tuyến tính Z không bị chặn trên tập phương án chấp nhận được
- Nếu có một chỉ số j nào đó mà Z j −c j > , và 0 A j có ít nhất một hệ số
0
ij
x > thì phương án cơ sở chấp nhận được chưa tối ưu và có thể cải thiện được bằng cách đưa vào cơ sở vectơ có (Z j −c j) max>0 Giả sử (Z j −c j) max=Z k −c k >0, khi đó đưa vectơ A vào cơ sở và loại ra khỏi cơ k
sở vectơ ứng với:
0
min
ik
bi x ik
x t
x
>
=
Trang 10Giả sử
0
min
ik
x
x x t
x x
>
= = , do đó A bl bị loại ra khỏi cơ sở Cơ sở mới gồm m
vectơ: (A b1, ,A bl−1,A K,A bl+1, ,A bm) Phần tử x được gọi là phần tử giải được lk
Bằng phép biến đổi cơ bản và đơn giản biểu thức:
, ( , 1, , )
,
bl
lk bl k lk
lj
lk lj lj lk
x
x x x bi bl l m
x x x x x
x x x bi bl
x x x x
′ =
′ =
Ta biến đổi vectơ A k về vectơ đơn vị với x lk =1 Khi hoàn thành phép biến đổi
ta được bảng đơn hình mới và được tính theo cơ sở mới
Quá trình tính toán tương tự được tiếp tục cho đến khi tìm được phương án tối
ưu
Định nghĩa 1.1.4 Giả sử ma trận A có vectơ hàng là a và các vectơ cột là i A j Giả
sử bài toán gốc có cấu trúc ở bên trái trong bảng sau đây Khi đó, bài toán đối ngẫu được định nghĩa với cấu trúc tương ứng bên phải
, min
Z = <c x> → , Với ràng buộc
1
a x b i M
< >= ∈
2
a x b i M
< > ≤ ∈
2
a x b i M
< > ≥ ∈
1
0,
j
x ≥ j∈N
2
0,
j
x ≤ j∈N
j
x tự do j∈N3
, max
f = <b y> → Với ràng buộc
i
y tự do, i∈M1
2
0,
i
y ≤ i∈M
3
0,
i
y ≥ i∈M
1
, j j,
y A c j N
< >≤ ∈
2
, j j,
y A c j N
< >≥ ∈
3
, j j,
y A c j N
< > = ∈
Định nghĩa 1.1.5
Trang 11 Cặp bài toán đối ngẫu không đối xứng là cặp bài toán đối ngẫu mà trong đó những ràng buộc trong bài toán gốc được cho bằng đẳng thức và những ràng buộc của bài toán đối ngẫu được cho bằng bất đẳng thức
Cặp bài toán đối ngẫu đối xứng là cặp bài toán đối ngẫu mà trong đó các biến của hai bài toán đều không âm và các ràng buộc đều là bất đẳng thức
Định lý 1.1.6.(Định lý đối ngẫu yếu) Cho A là ma trận cỡ m n × , m
b ∈ và
n
c ∈ P={x∈n:Ax≤b} và Q={y∈m: A y T =c y, ≤0} Khi đó
(i) Nếu x P ∈ và y Q ∈ thì <c x, >≥<b y, > (ii) Nếu bài toán min{ ,<c x> ∈:x P} không bị chặn dưới, thì Q = ∅ (iii) Nếu bài toán max{ ,<b y> ∈:y Q} không bị chặn trên thì P = ∅
Chứng minh
Giả sử ma trận A có vectơ hàng là a i i ( =1, , )m và các vectơ cột là ( 1, , )
j
A j= n
(i) Ta đặt
( , ),
u y a x b
v c y A x
= < > −
= − < >
Theo định nghĩa của bài toán đối ngẫu thì y và i <a x i, > − b i cùng dấu, còn ,
c − < y A > và x j cùng dấu Do đó, u i ≥ ∀ và 0, i v j ≥ ∀ 0, j
Nhận xét rằng
,
i i j j
u y Ax b
v c yA x
=< − >
=< − >
∑
∑
Do đó,
≤∑ ∑+ =< > − < > (ii) Nếu bài toán min{ ,<c x> ∈:x P} không bị chặn dưới thì tồn tại dãy { }x k các phương án chấp nhận được sao cho<c x, k >→ −∞ khi k → ∞ Giả sử
Trang 12y Q
∃ ∈ Khi đó, theo (i) ta có 0
< > ≥ < > ∀ Cho k → ∞ ta được
0
,
b y
< > ≤ −∞ (vô lí) Do đó, Q = ∅
(iii) Nếu bài toán max{ ,<b y > ∈:y Q} không bị chặn trên thì thì tồn tại dãy {y k} các phương án chấp nhận được sao cho<b y, k >→ +∞ khi k → ∞ Giả sử
0
x P
∃ ∈ Khi đó, theo (i) ta có 0
< > ≥ < > ∀ Cho k → ∞ ta được
0
,
c x
< > ≥ +∞ (vô lí) Do đó, P = ∅
Định lý 1.1.7.(Định lý đối ngẫu mạnh) Nếu bài toán quy hoạch tuyến tính gốc có
nghiệm tối ưu thì bài toán quy hoạch đối ngẫu cũng có nghiệm tối ưu và giá trị mục tiêu tối ưu bằng nhau
Chứng minh
Ta có thể đưa cặp bài toán đối ngẫu đối xứng về cặp bài toán đối ngẫu không đối xứng, do đó chỉ chứng minh cho cặp bài toán đối ngẫu không đối xứng Giả sử
bài toán đối ngẫu không đối xứng có phương án tối ưu nhận được bằng phương pháp đơn hình (xem trong tài liệu tham khảo [Cảnh 2004], [Khánh – Nương 2000], [Khánh 2002]) Hệ vectơ cơ sở tương ứng với phương án tối ưu gồm các vectơ
1, 2, ,
A A A Đặt A b =(A b1, ,A bm) ma trận được thành lập từ hệ các vectơ cơ sở Khi đó, A j = A X b j Biểu diễn D=(X1, ,X n) ma trận được thành lập từ những hệ
số của bảng đơn hình cuối cùng Ta có:
1
A= A D D=A A−
1
A X = A X = A A−
1 min b opt b b 0, (1.3)
Z =C X =C A A−
trong đó X opt là phương án tối ưu của bài toán thuận Xét vectơ
( , , )
C D C− = Z −c Z −c có các tọa độ là những hiệu Z j −c j Vì là phương án tối ưu nên mọi hiệu Z j − ≤c j 0, (j−1, , )n , do đó:
0 (1.4)
b
C D C− ≤
Trang 13Người ta chứng minh được rằng, phương án tối ưu của bài toán đối ngẫu nhận được theo công thức:
1
(1.5)
Y =C A−
Thật vậy,
Xét vectơ Y A C opt − Khi sử dụng liên tiếp các công thức (1.5), (1.1), (1.4) ta được
1
0
Y A C− =C A A C− − =C D C− ≤
Do đó, Y A opt ≤ C có nghĩa là Y opt là phương án chấp nhận được của bài toán
đối ngẫu Bây giờ tính giá trị của dạng tuyến tính f khi Y =Y opt
1
( opt) opt b b b opt min (1.6)
f Y =Y A =C A A− =C X = Z
ở đây các công thức (1.5), (1.2), (1.3) được dùng liên tiếp
Biểu thức (1.6) chứng tỏ rằng: giá trị dạng tuyến tính của bài toán đối ngẫu (khi Y =Y opt), (f Y opt) trùng với giá trị tối ưu của bài toán gốc
Bây giờ cần chứng minh rằng: Y opt là phương án tối ưu của bài toán đối ngẫu
Ta có:
0
f Y =YA =YAX Một phương án chấp nhận được bất kỳ Y của bài toán đối ngẫu phải thỏa mãn YA≤C, do đó:
( ) ( )
f Y ≤CX =Z X
Suy ra
max ( )f Y ≤min ( ).Z X (1.7) Theo (1.6) với Y =Y opt thì bất đẳng thức (1.7) trở thành đẳng thức Vì vậy Y opt là phương án tối ưu của bài toán đối ngẫu
Định lý 1.1.8.(Điều kiện độ lệch bù) Cho x là nghiệm chấp nhận được của bài
toán min{<c x, >:Ax ≤ và y b} là nghiệm chấp nhận được của bài toán
Trang 14max{<b y, >: A y T =c y, ≤ 0} Giả sử ma trận A có vectơ hàng là ( 1, , ) a i i = m và các vectơ cột là A j (j =1, , )n Khi đó, , x y là nghiệm tối ưu nếu và chỉ nếu
( , ) 0 ,
y <a x> −b = ∀ i
(c j− < A y j, >)x j = ∀ 0 j
Chứng minh
Ở chứng minh định lý 1.1.6 ta đã đặt
( , ),
u y a x b
v c y A x
= < > −
= − < >
Theo định nghĩa của bài toán đối ngẫu ta thấy rằng u i ≥0, v j ≥ ∀ ∀ 0 i, j
Đồng thời ta cũng có
< > − < > = ∑ ∑+
Theo định lý đối ngẫu mạnh , nếu x và y là phương án tối ưu thì
c x b y
< > = < > Do đó, u i =v j = ∀ ∀0, i, j Ngược lại, nếu u i =v j = ∀ ∀ thì 0, i, j
c x b y
< > = < > suy ra ,x y là phương án tối ưu
Định lý 1.1.9 (Bổ đề Farkas) Tập hợp { : x Ax=b x, ≥ là 0} tập khác rỗng khi và chỉ khi không tồn tại vectơ y sao cho A y T ≥ và 0 <b y, >< 0
Chứng minh
Theo Quy hoạch tuyến tính đối ngẫu ta có min{<c x, >: Ax=b x, ≥0}≤ 0 khi và chỉ khi max{ ,<b y >: A y T ≤c}≤ 0
Chọn c=0, khi đó { :x Ax=b x, ≥0}≠ ∅ khi và chỉ khi không tồn tại y sao
cho A y T ≥ và 0 <b y, >< 0
Thuật toán đơn hình đối ngẫu:
Thuật toán đơn hình đối ngẫu bắt đầu từ một phương án sơ sở chấp nhận được của bài toán đối ngẫu nhưng không chấp nhận được của bài toán gốc (vì có biến cơ sở âm) Bằng thuật toán đơn hình chuyển dần đến phương án tối ưu
Thuật toán đơn hình đối ngẫu có thể chia thành hai giai đoạn sau:
Trang 15- Giai đoạn 1: Không quan tâm đến sự không âm của các biến cơ sở mà thuật toán đơn hình đưa bài toán đến một bảng đơn hình có (∀ Z j −c j)≤ 0
+ Nếu ∀ ≥ x bi 0 thì ta có phương án ấy là phương án tối ưu và ngừng tính + Thông thường thì phương án ấy không phải là phương án tối ưu, vì trong các biến cơ sở vẫn còn có biến âm, chuyển sang giai đoạn 2
- Giai đoạn 2: Khi các biến cơ sở còn biến âm ta cần khử các biến âm mà vẫn giữ được (∀ Z j −c j)≤0 Phương án là tối ưu khi mọi biến cơ sở đều không âm
Giả sử x bl <0, khi đó ta loại vectơ A khỏi cơ sở Nếu trong hàng l không l
có thành phần x lj < thì bài 0 toán không có phương án chấp nhận được Nếu có một vài x lj < 0 thì phương án có thể cải thiện được và đưa vectơ A k vào cơ sở với k
được xác định bởi:
0
min
lj
x
Z c Z c
<
= Việc chọn như vậy các hiệu Z j − c j vẫn không dương Quá trình tính toán tương tự được tiếp tục đến khi nhận được phương án tối ưu
Trong trường hợp, nếu có vài biến cơ sở x bl < 0 thì việc chọn phần tử giải được chọn theo công thức:
0
min
ij
x
ij
Z c x
<
−
Phương pháp đơn hình đối ngẫu giảm nhẹ sự biến đổi các ràng buộc và do đó giảm kích thước bảng đơn hình, khối lượng tính toán được giảm một cách đáng kể
1.2 Tập lồi - Tập lồi đa diện
Định nghĩa 1.2.1
Cho tập n
X ⊂ , tập X được gọi là tập lồi nếu với mọi 1 2
,
x x ∈ X ta đều
có λx1+ −(1 λ)x2∈X, ∀ ∈λ (0,1)