VIN KHOA HC VÀ CÔNG NGH VIT NAM
VIN TOÁN HC
PGS.TS. BÙI TH TÂM
QUY HOCH RI RC
BÀI GING CAO HC
HÀ NI 10-2008
Bùi Thế Tâm i Quy hoch ri rc
LI NÓI ĐẦU
Tài liu này là các Bài ging ca môn Quy hoch ri rc thuc Trung tâm đào to
sau đại hc, Vin Toán hc, Vin Khoa hc và Công ngh Vit nam trong các năm
2006, 2007 và 2008. Đây là tài liu đầu tiên được viết bng tiếng Vit trình bày mt
cách h thng v Quy hoch ri rc vi cơ s lý thuyết cht ch, chng minh tính hu
hn ca các thut toán Gomory, hơn na còn đưa ra chương trình ngun viết bng C cho
các thut toán.
Kiến thc chun b để tiếp thu giáo trình này là lý thuyết căn bn v quy hoch
tuyến tính và phương pháp đơn hình [9], lp trình bng ngôn ng C++ [11], bng tính
đin t Microsoft Excel [12].
Tài liu gm by chương. Chương 1 trình bày các bài toán phát sinh trong thc
tin dn đến các bài toán quy hoch ri rc, phát biu bài toán quy hoch ri rc tng
quát. Các bài tp cui chương 1 có th dùng lnh Solver trong Microsoft Excel để
gii, hướng dn lnh này cho trong tài liu [12] hoc[13].
Trong Chương 2 nêu nhng khái nim cơ bn v quy hoch tuyến tính, phương
pháp đơn hình bình thường, phương pháp đơn hình đối ngu t vng và chương trình
máy tính viết bng C++, và khái nim v bài toán quy hoch tuyến tính nguyên.
Chương 3 trình bày tư tưởng phương pháp ct, thut toán Gomory th nht và
chng minh s hi t ca nó (tài liu gc trong [1], [2]), chương trình máy tính ca
thut toán Gomory th nht.
Chương 4 xét hai thut toán: thut toán Gomory th hai dùng để gii bài toán quy
hoch tuyến tính nguyên b phn [3], thut toán Dalton - Llewellyn dùng để gii bài
toán quy hoch tuyến tính vi các biến nhn giá tr ri rc [4], chương trình máy tính
ca hai thut toán này.
Chương 5 trình bày thut toán Gomory th ba nhm xây dng các lát ct đảm bo
tt c các Bng đơn hình mi bước đều có tt c các phn t là nguyên [5], [6],
chương trình máy tính ca thut toán Gomory th ba.
Chương 6 trình bày tư tưởng ca phương pháp nhánh cn, phương pháp Land
A.H và Doig A.G gii bài toán qui hoch nguyên [7], phương pháp Little J.D, Murty
K.G, Sweeney D.W và Karen C gii bài toán người du lch [8].
Các tài liu gc [1]-[8] được A.A. Korbut, Iu. Iu. Phinkenstein trình bày li trong
cun sách [10]. Năm chương trình bng ngôn ng C trong tài liu này v Phương pháp
đơn ngu t vng, ba thut toán Gomory, thut toán Dalton đều do chính tác gi lp.
Bn đọc quan tâm ti lp trình bng Pascal cho các bài toán ti ưu ca Quy hoch tuyến
tính, Quy hoch phi tuyến và Quy hoch ri rc có th tham kho tài liu [14].
Các trường Đại hc, các cơ s đào to có nhu cu ging dy môn này, hoc hướng
dn ging viên để ging dy môn này, hoc bn đọc mun góp ý v giáo trình này xin
vui lòng liên h vi tác gi theo địa ch: Bùi Thế Tâm, Vin Toán hc, Vin Khoa hc
và Công ngh Vit Nam, 18 Hoàng Quc Vit, Cu giy, Hà ni ; địa ch email:
bttam@math.ac.vn
Hà Ni, ngày 4 tháng10 năm 2008
Bùi Thế Tâm ii Quy hoch ri rc
TÀI LIU THAM KHO
1. Gomory R.E. An algorithm for integer solutions to linear programs. Recent
Advances Math. Program. New York - San Francisco - Toronto - London, McGraw-Hill
Book Co., Inc., 1963, 269-302.
2. Gomory R.E. Outline of an algorithm for integer solution to linear programs.
Bull. Amer. Math. Soc., 1958, 64, N5, 275-278.
3. Gomory R.E. An algorithm for the mixed integer problem. Rand. Corp., P-
1885, Santa Monica, California, February 22, 1960.
4. Dalton R.E, Llewellyn R.W. An extension of the Gomory mixed-integer
algorithm to mixed-discrete variable. Manag. Sci., 1966, 12, N7, 562-575.
5. Gomory R.E. An all-integer integer programming algorithm. IBM Research
Center, 1960, January, Research Report RC-189.
6. Gomory R.E. An all-integer integer programming algorithm. In "Industrial
scheduling", Englewood Cliffs, New Jersey, Prentice Hall, 1963, ch. 13.
7. Land A.H, Doig A.G. An automatic method of solving discrete programming
problems. Econometrica, 1960, 28, N3, 497-520.
8. Little J.D.C,Murty K.G, Sweeney D.W, Karel C. An algorithm for the traveling
salesman problem. Operat. Res., 1963, 11, N6, 972-989.
9. Bùi Thế Tâm, Trn Vũ Thiu. Các phương pháp ti ưu hóa. NXB GTVT, 1998,
408 trang
10. A.A. Korbut, Iu. Iu. Phinkenstein. Quy hoch ri rc (tiếng Nga). NXB Khoa
hc, Mascva, 1969, 368 trang
11. Bùi Thế Tâm. Ngôn ng C và lp trình hướng đối tượng. NXB GTVT, 2006,
240 trang.
12. Bùi Thế Tâm. Giáo trình Windows 2000, Word 2000, Excel 2000, Powerpoint
2000. NXB GTVT, 2002.
13. Bùi Thế Tâm. Gii các bài toán ti ưu và thng kê trên Microsoft Exel. Công
b trên http://ebook.edu.net.vn, phn Công ngh thông tin, 2007.
14. Bùi Thế Tâm. Turbo Pascal: lý thuyết cơ bn, bài tp, nhng chương trình
mu trong khoa hc k thut và kinh tế. NXB GTVT, 1993, 460 trang.
VÀI NÉT V TÁC GI
B.T. Tâm sinh năm 1948 ti Hip Hoà, Bc Giang; hin làm vic ti Phòng Ti ưu
Điu khin thuc Vin Toán hc, Vin Khoa hc và Công ngh Vit nam; bo v
Tiến s tháng 5/1978 ti Vin Hàn lâm Khoa hc Liên xô; nhn hc hàm Phó giáo sư
tháng 7/1996.
Bùi Thế Tâm iii Quy hoch ri rc
MC LC
Chương 1. Bài toán quy hoch ri rc I.1
1. Định nghĩa bài toán I.1
2. Các bài toán thc tế dn đến bài toán quy hoch ri rc I.2
Chương 2. Nhng khái nim m đầu II.1
1. Nhng khái nim cơ bn v quy hoch tuyến tính II.1
2. So sánh theo nghĩa t vng II.3
3. Bng đơn hình, các phương án và gi phương án II.4
4. Phương pháp đơn hình II.5
5. Phương pháp đơn hình đối ngu t vng II.6
6. Bài toán quy hoch tuyến tính nguyên II.16
Chương 3. Thut toán Gomory th nht III.1
1. Tư tưởng phương pháp ct III.1
2. Thut toán Gomory th nht III.5
3. Tính hu hn ca thut toán Gomory th nht III.9
4. Gii ví d s III.11
5. Chương trình máy tính III.15
Bài tp III.23
Chương 4. Thut toán Gomory th hai IV.1
1. Lược đồ logic ca thut toán IV.1
2. Thut toán Gomory th hai IV.2
3. Thut toán Dalton và Llewellyn IV.20
Bìa tp IV.33
Chương 5. Thut toán Gomory th ba V.1
1. nh hưởng sai s làm tròn và tư tưởng ca thut toán Gomory th ba V.1
2. Xây dng lát ct đúng nguyên, thut toán Gomory th ba V.3
3. Chương trình máy tính V.13
Bài tp V.22
Chương 6. Thut toán nhánh và cn VI.1
1. Tư tưởng ca phương pháp nhánh và cn VI.1
2. Phương pháp Land và Doig gii bài toán quy hoch nguyên VI.3
3. Phương pháp nhánh cn gii bài toán người du lch VI.6
Bài tp VI.19
http://www.ebook.edu.vn
Bùi Thế Tâm I.1 Quy hoch ri rc
Chương 1
BÀI TOÁN QUY HOCH RI RC
1. ĐỊNH NGHĨA BÀI TOÁN QUY HOCH RI RC
Trong các bài toán quy hoch tuyến tính, các biến s có th nhn nhng giá tr
thc không âm. Tuy nhiên, trong thc tin thường gp các bài toán mà các biến s ch
có th nhn mt s hu hn hay đếm được giá tr, thường là các giá tr nguyên. Chng
hn s là vô nghĩa khi đưa ra câu tr li: cn sn xut na cái bàn hay cn thuê 2,7 cái ô
để vn chuyn hàng hoá…Trong mt s bài toán, chng hn bài toán vn ti vi các
lượng hàng cung và cu là các s nguyên, song nhiu bài toán khác thì không phi như
vy. Vì thế trong chương này s đề cp đến ni dung và phương pháp gii các bài toán
ti ưu trên lưới các đim nguyên hay trên các tp ri rc, gi tt là bài toán quy hoch
ri rc hay bài toán quy hoch nguyên.
Bài toán quy hoch ri rc có dng sau:
Tìm cc đại ca hàm (, )
f
xy ph thuc hai nhóm biến x và y vi các ràng buc
có dng:
( , ) 0, 1, 2,... ,
i
g
xy i m x D
=∈
trong đó, 12 12
( , ,..., ), ( , ,..., ), 0, 0
pq
xxx x yyy yp q==>
, D là tp hu hn các véc tơ
p- chiu, còn ,i
f
g là nhng hàm cho trước ca n biến s ( npq
=
+).
Nếu ,i
f
g là các hàm tuyến tính và D là lưới các đim nguyên, thì ta có bài toán
quy hoch nguyên tuyến tính, còn nếu D là tp các véc tơ
p
thành phn 0 hay 1 thì ta
có bài toán quy hoch nguyên 01
.
Nếu 0q=, nghĩa là ch có các biến ri rc 12
, ,...,
p
x
xx
thì bài toán được gi là bài
toán quy hoch nguyên hoàn toàn. Còn nếu 0q> thì bài toán được gi là bài toán
nguyên b phn.
Chú ý
S dĩ bài toán quy hoch ri rc còn được gi là bài toán quy hoch nguyên là vì
bt k bài toán vi các biến s ch nhn mt s hu hn giá tr cho trước, đều có th quy
v bài toán trong đó các biến ch nhn các giá tr nguyên. Ví d, gi s biến
x
biu th
quy mô công sut ca nhà máy đin cn xây dng chth ly mt trong các giá tr
cho trước 12
, ,..., k
aa a (các quy mô công sut tiêu chun). Khi đó bng cách đặt:
11 2 2 ... kk
x
au au a u
=
+++,
vi
{
}
12
... 1, 0;1 , 1, 2...,
kj
uu u u j k+++= =
thì biến ri rc
x
có th được thay thế bi mt s biến j
uch nhn giá tr 0 hay 1, gi
tt là biến 01 hay biến Boolean.