GII THUT ĐƠN HÌNH
34
CHƯƠNG II
GII THUT ĐƠN HÌNH
Chương này trình bày mt cách chi tiết ni dung ca gii thut đơn hình. Sau
phn cơ s lý thuyết ca gii thut là các ví d tương ng. Các ví d được trình bày
đúng theo các bước ca gii thut. Kiến thc trong chương này cn thiết cho vic lp
trình gii quy hoch tuyến tính trên máy tính.
Ni dung chi tiết ca chương bao gm :
I- GII THUT ĐƠN HÌNH CƠ BN
1- Cơ s xây dng gii thut đơn hình cơ bn
2- Định lý v s hi t
3- Gii thut đơn hình cơ bn
4- Chú ý trong trường hp suy biến
II- GII THUT ĐƠN HÌNH CI TIN
1- Mt cách tính ma trn nghch đảo
2- Quy hoch tuyến tính dng chun
3- Gii thut đơn hình ci tiến
4- Phép tính trên dòng - Bng đơn hình
III- PHƯƠNG PHÁP BIN GI CI BIÊN
1- Bài toán ci biên
a- Ci biên bài toán quy hoch tuyến tính
b- Quan h gia bài toán xut phát và bài toán ci biên
2- Phương pháp hai pha
3- Phương pháp M vô cùng ln
IV- QUY HOCH TUYN TÍNH SUY BIN
1- Các ví d v quy hoch tuyến tính suy biến
2- X lý quy hoch tuyến tính suy biến
GII THUT ĐƠN HÌNH
35
CHƯƠNG II: GII THUT ĐƠN HÌNH
I- GII THUT ĐƠN HÌNH CƠ BN
Chương này trình bày mt phương pháp để gii bài toán quy hoch tuyến tính
đó là phương pháp đơn hình. Phương pháp đơn hình được George Bernard Dantzig
đưa ra năm 1947 cùng lúc vi vic ông khai sinh ra quy hoch tuyến tính. Đây là mt
phương pháp thc s có hiu qu để gii nhng bài toán quy hoch tuyến tính c ln
trong thc tế. Vi cách nhìn hin đại ý tưởng ca phương pháp đơn hình rt đơn gin.
Có nhiu cách tiếp cn phương pháp đơn hình, chương này trình bày mt trong các
cách đó.
1- Cơ s xây dng gii thut đơn hình cơ bn
Xét bài toán quy hoch tuyến tính chính tc :
=
=
0x
bAx
xcz(x) max T
Gi s rng B0 là mt cơ s kh thi xut phát ca bài toán ( không nht thiết là
m ct đầu tiên ca ma trn A ) . Thut toán đơn hình cơ bn được xây dng da trên
các bước sau :
a- Gán B = B0 và l=0 ( s ln lp )
b- l = l+1
c- Vi cơ s hin thi B tính :
=
=
=
0x
bBx
x
N
1
B : phương án cơ s kh thi tương ng
bBb 1
=
NBccc 1T
N
T
N
T
N
= : du hiu ti ưu
d- Nếu 0NBccc 1T
B
T
N
T
N= thì gii thut dng bài toán
phương án ti ưu là x .
Ngược li, nếu tn ti s sao cho 0cs> ( s
c là thành phn th s
ca N
c) thì sang bước e
GII THUT ĐƠN HÌNH
36
e- Tính : s
1
sABA
= ( As là ct th s ca A )
Nếu 0As thì gii thut dng và phương án ti ưu không gii ni.
Ngược li, nếu tn ti s
is Aa 0ais >thì tính :
rs
r
is
is
i
sa
b
0a ,
a
b
minx =
>=
( i = 1 m)
is
a là các thành phn ca s
A.
là thành phn th s ca phương án mi .
s
x
x
f- Gi xt là biến tương ng vi ct th r ca cơ s B. Khi đó biến xs s
nhn giá tr ( vào cơ s ), biến x0xs>
t s nhn giá tr ( ra khi cơ s ). Như
vy phương án mi tương ng vi cơ s mi ( thay đổi cơ s ) được xác định
như sau :
0xt=
x
B
= B { t } - { s }
B
g- Gán B = và quay v b .
B
V mt hình hc, gii thut này được hiu như là mt quá trình duyt qua các
đim cc biên ca đa din li S các phương án kh thi ca bài toán.
V mt đại s, gii thut này được hiu như là mt quá trình xác định mt
chui các ma trn cơ s k B0 B1 B2 ......... mà các phương án cơ s tương ng x0 x1
x2........ là ngày càng tt hơn, tc là :
z(x
0) < z(x1) < z(x2) .............
Chú ý :
Nếu cơ s ban đầu B0 chính là m ct đầu tiên ca ma trn A thì trong gii
thut trên t chính là r .
2- Định lý v s hi t
Vi gi thiết bài toán không suy biến, gii thut đơn hình trên đây s hi t v
phương án ti ưu sau mt s hu hn ln lp.
Bng s thng kê người thy rng nói chung gii thut đơn hình s hi t vi
s ln lp ít nht phi là t m đến 3m ( m là s ràng buc ) .
GII THUT ĐƠN HÌNH
37
3- Gii thut đơn hình cơ bn
Xét bài toán quy hoch tuyến tính chính tc
=
=
0x
bAx
xc)x(zmin/max T
Gi s rng sau khi hoán v các ct trong A ta chn được ma trn cơ s B tho
s phân hoch sau đây :
A = [ B N ]
]c c[c NB
T=
]x x[x NB
T=
Gii thut đơn hình cơ bn được thc hin như sau :
a- Tính ma trn nghch đảo B-1
b- Tính các tham s :
. Phương án cơ s kh thi tt hơn
=
==
=
0x
bbBx
x
N
1
B
. Giá tr hàm mc tiêu
B
T
Bxc)x(z =
. Ma trn = B
__
N-1N
c- Xét du hiu ti ưu :
__
T
B
T
N
1T
B
T
N
T
NNccNBccc ==
- Nếu 0cT
N thì kết thúc gii thut vi phương án ti ưu là :
=
==
=
0x
bbBx
x
N
1
B
và giá tr hàm mc tiêu là :
B
T
Bxc)x(z =
- Nếu tn ti Ns cc 0cs>thì sang bước d.
d- Xác định ch s ca phn t pivot trong ma trn N
. Xác định ch s ct s ca pivot
{
}
Nks c0c max c >=
GII THUT ĐƠN HÌNH
38
Nếu 0Nis thì gii thut dng, bài toán không có phương án ti ưu.
Ngược li thì tiếp tc.
. Xác định ch s dòng r ca pivot
m)1,2,...,(i
N
b
0N ,
N
b
min
rs
r
is
is
i==
>
Phn t rs
N trong ma trn được gi là phn t pivot
__
N
Trong trường hp bài toán min
c- Xét du hiu ti ưu :
__
T
B
T
N
1T
B
T
N
T
NNccNBccc ==
- Nếu
T
N
c0 thì kết thúc gii thut vi phương án ti ưu là :
=
==
=
0x
bbBx
x
N
1
B
giá tr hàm mc tiêu là :
B
T
Bxc)x(z =
- Nếu tn ti Ns cc 0cs<thì sang bước d.
d- Xác định ch s ca phn t pivot trong ma trn N
. Xác định ch s ct s ca pivot
{
}
Nkks c0c |c| max c <=
Nếu 0Nis thì gii thut dng, bài toán không có phương án ti ưu.
Ngược li thì tiếp tc.
. Xác định ch s dòng r ca pivot
m)1,2,...,(i
N
b
0N ,
N
b
min
rs
r
is
is
i==
>
Phn t rs
N trong ma trn được gi là phn t pivot
__
N
e- Thc hin các hoán v :
. Ct th s trong ma trn N vi ct th r trong ma trn B
. Phn t th s trong vi phn t th r trong
T
N
cT
B
c
. Biến xs trong vi biến x
T
N
xr trong
T
B
x
f- Quay v (a)