Tải bản đầy đủ (.doc) (147 trang)

Tài liệu ôn thi môn Quy hoạch tuyến tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (922.51 KB, 147 trang )

Chương 1: Bài Toán Quy Hoạch Tuyến Tính
A. Tóm tắt lý thuyết
I. Các dạng của bài toán quy hoạch tuyến tính và các khái niệm cơ bản
1.1.Dạng tổng quát
Bài toán quy hoạch tuyến tính tổng quát có dạng
Tìm
1 2 n
x (x ,x , ,x )=
sao cho
( )
=
=
=


 

 
≥ =

 

 
=
  


 

 


≤ =
 

 

 



n
j j
j 1
n
ij j i
j 1
j
min(max) f(x) c x (1)
a x b , i 1,m (2)
I
0
x 0 , j 1,n (3)
tùy ý
Trong đó:
(1) được gọi là hàm mục tiêu của bài toán. Nếu hàm mục tiêu là
f (x) min→
thì ta
gọi bài toán là bài toán cực tiểu, nếu hàm mục tiêu của bài toán
f (x) max→
thì ta
gọi bài toán là bài toán cực đại. Các

=
j
c , j 1,n
gọi là các hệ số trên hàm mục tiêu.
(2) là hệ gồm những phương trình và bất phương trình bậc nhất, chúng ta gọi là hệ
ràng buộc chung của bài toán. Các
=
i
b ,i 1,m
gọi là các hệ số tự do và
= =
ij
a , i 1,m; j 1,n
gọi là các hệ số của các ràng buộc chung.
(3) là các điều kiện về ràng buộc dấu của các ẩn số, chúng ta gọi chung là ràng
buộc biến.
Hệ (I) gồm các ràng buộc chung và các ràng buộc biến , gọi là hệ ràng buộc của
bài toán.
a) Phương án
Một véc tơ
=
1 2 n
x (x ,x , ,x )
được gọi là phương án (hay phương án chấp
nhận được) của bài toán nếu nó thỏa hệ ràng buộc (I).
1
Tập hợp tất cả các phương án của bài toán gọi là miền phương án hay miền
ràng buộc của bài toán, ký hiệu là D (hoặc X, hoặc Y).
• Ràng buộc chặt, ràng buộc lỏng
Một ràng buộc gọi là chặt đối với phương án x, nếu xảy ra dấu “ = ”, ví dụ

=
= =

n
ij j i j
j 1
a x b ; x 0
.
Một ràng buộc gọi là lỏng đối với phương án x, nếu xảy ra dấu “ > hoặc <
”, ví dụ
= =
> < < >
∑ ∑
n n
ij j i ij j i j j
j 1 j 1
a x b ; a x b ; x 0; x 0.
b) Phương án tối ưu.
Một phương án làm cho hàm mục tiêu đặt cực tiểu ( ứng với bài toán cực
tiểu) hoặc cực đại (ứng với bài toán cực đại) gọi là phương án tối ưu. Ký
hiệu là

x
. Khi đó

f(x )
gọi là giá trị tối ưu của bài toán.
c) Bài toán giải được
Bài toán quy hoạch tuyến tính có ít nhất một phương án tối ưu gọi là
bài toán giải được.

Bài toán quy hoạch tuyến tính không có phương án hay có phương án
nhưng nó làm cho hàm mục tiêu không bi chặn dưới( với bài toán cực tiểu)
hoặc không bị chặn trên( với bài toán cực đại) trong miền phương án thì gọi
là bài toán không giải được.
Giải bài toán quy hoạch tuyến tính là tìm tất cả các phương án tối ưu
của nó (nếu có) và giá trị tối ưu tương ứng, hay là chứng tỏ bài toán là không
giải được.
d) Phương án cực biên
 Một phương án có n ràng buộc chặt độc lập tuyến tính gọi là phương
án cực biên.
• Một phương án cực biên có đúng n ràng buộc chặt gọi là
phương án cực biên không suy biến.
• Một phương án cực biên có nhiều hơn n ràng buộc chặt gọi là
phương án cực biên suy biến.
 Một phương án có ít hơn n ràng buộc chặt độc lập tuyến tính gọi là
phương án không cực biên.
2
Ví dụ 1. Cho quy hoạch tuyến tính dạng tổng quát (S).

= − − −
+ + ≤


+ + ≤











1 2 3
1 2 3
1 2 3
1
2
3
min f(x) x x x
2x x 2x 2
4x 2x x 2
x 0
x 0
x 0
a) Chứng minh rằng x=(0;2/3;2/3) là phương án cực biên không suy biến.
b) Chứng minh rằng x=(1/3;0;0) là phương án cực suy biến.
Giải
a).Trước hết ta chứng minh x là phương án của (S), tức là nó phải thỏa hệ ràng
buộc của bài toán
+ + = + + =
1 2 3
2 2
2x x 2x 2.0 2. 2
3 3
(thỏa chặt)
+ + = + + =
1 2 3
2 2

4x 2x x 4.0 2. 2
3 3
(thỏa chặt)
=
1
x 0
(thỏa chặt)
= >
2
2
x 0
3
(thỏa lỏng)
= >
3
2
x 0
3
(thỏa lỏng)
Ta thấy
2 2
x 0, ,
3 3
 
=
 ÷
 
thỏa tất cả các ràng buộc của bài toán nên x là
phương án của (S), trong đó có 3 ràng buộc thỏa chặt.
Từ ràng buộc chung thứ nhất ta có véc tơ

=
1
u (2,1,2)
Từ ràng buộc chung thứ hai ta có véc tơ
=
2
u (4,2,1)
Từ ràng buộc biến thứ nhất ta có véc tơ
=
3
u (1,0,0)
Ta lập ma trận
3
 
 ÷
=
 ÷
 ÷
 
2 1 2
A 4 2 1
1 0 0
= −
↔ = − ↔
= −
       
 ÷  ÷  ÷  ÷
→ → →
 ÷  ÷  ÷  ÷
 ÷  ÷  ÷  ÷

       
 
 ÷
→
 ÷
 ÷

 
2 2 1
1 3 3 3 1 2 3
3 3 2
d d 4d
d d d d 2d d d
d d 2d
2 1 2 1 0 0 1 0 0 1 0 0
4 2 1 4 2 1 0 2 1 0 1 2
1 0 0 2 1 2 0 1 2 0 2 1
1 0 0
0 1 2
0 0 3
Sau khi đưa ma trận A về dạng bậc thang, ta thấy r(A)= 3, nên 3 véc tơ độc lập
tuyến tính hay số ràng buộc thỏa chặt độc lập tuyến tính= số ràng buộc thỏa
chặt=3. Do đó
2 2
x 0, ,
3 3
 
=
 ÷
 

là phương án cực biên.
Bài toán có 3 biến nên
n 3=
. Số ràng buộc thỏa chặt độc lập tuyến tính
=
số biến
=
3. Nên
2 2
x 0, ,
3 3
 
=
 ÷
 
là phương án cực biên không suy biến
b) .Trước hết ta chứng minh x là phương án của (S), tức là nó phải thỏa hệ ràng
buộc của bài toán
+ + = + + = <
1 2 3
1 2
2x x 2x 2. 0 0 2
3 3
(thỏa lỏng)
+ + = + + = <
1 2 3
1 4
4x 2x x 4. 0 0 2
3 3
(thỏa lỏng)

= >
1
1
x 0
3
(thỏa lỏng)
=
2
x 0
(thỏa chặt)
=
3
x 0
(thỏa chặt)
Ta thấy tất cả các ràng buộc đều thỏa nên x là phương án của (S), trong đó
có 2 ràng buộc thỏa chặt nên x không là phương án cực biên.
Ví dụ 2. Cho quy hoạch tuyến tính dạng tổng quát (S).
4

= − − −
+ + ≤


+ + ≤











1 2 3
1 2 3
1 2 3
1
2
3
min f(x) x x x
2x 2x 2x 2
4x 2x x 2
x 0
x 0
x 0
Chứng minh rằng
x (0,1,0)=
là phương án cực biên suy biến.
Giải
Trước hết ta chứng minh x là phương án của (S), tức là nó phải thỏa hệ ràng
buộc của bài toán
+ + = + + =
1 2 3
2x 2x 2x 2.0 2.1 2.0 2
(thỏa chặt)
+ + = + + =
1 2 3
4x 2x x 4.0 2.1 0 2
(thỏa chặt)

=
1
x 0
(thỏa chặt)
= >
2
x 1 0
(thỏa lỏng)
=
3
x 0
(thỏa chặt)
Ta thấy x=(0,1,0) thỏa tất cả các ràng buộc của bài toán nên x là phương án
của (S), trong đó có 4 ràng buộc thỏa chặt.
Từ ràng buộc chung thứ nhất ta có véc tơ
1
u (2,2,2)=
Từ ràng buộc chung thứ hai ta có véc tơ
=
2
u (4,2,1)
Từ ràng buộc biến thứ nhất ta có véc tơ
=
3
u (1,0,0)
Từ ràng buộc biến thứ ba ta có véc tơ
3
u (0,0,1)=
Ta lập ma trận
2 2 2

4 2 1
A
1 0 0
0 0 1
 
 ÷
 ÷
=
 ÷
 ÷
 
Đưa A về dạng bậc thang
5
2 2 1
3 3 1 3 2 3 3 12 2
4 4 3
d d 4d
d d d d d d d 2d
d d /2
d d d
2 2 2 1 1 1 1 1 1 1 1 1
4 2 1 4 2 1 0 2 3 0 1 1
1 0 0 1 0 0 0 1 1 0 2 3
0 0 1 0 0 1 0 0 1 0 0 1
1 1 1
0 1 1
0 0 1
0 0 1
= −
= − ↔ = −

=
= +
       
 ÷  ÷  ÷  ÷
− − − −
 ÷  ÷  ÷  ÷
→ → → →
 ÷  ÷  ÷  ÷
− − − −
 ÷  ÷  ÷  ÷
       
 
 ÷
− −
 ÷

 ÷

 ÷
 
1 1 1
0 1 1
0 0 1
0 0 0
 
 ÷
− −
 ÷
→
 ÷


 ÷
 
Ta thấy r(A)= 3, nên 3 véc tơ độc lập tuyến tính hay số ràng buộc thỏa chặt độc
lập tuyến tính là 3< số ràng buộc thỏa chặt là 4. Do đó x là phương án cực biên
.Số ràng buộc thỏa chặt nhiều hơn số biến
n 3=
. Do đó
x (0,1,0)=
là phương án
cực biên suy biến.
1.2. Dạng chính tắc
Bài toán quy hoạch tuyến tính dạng chính tắc (P) có dạng:
=
=
=

= =



≥ =



n
j j
j 1
n
ij j i

j 1
j
min(max) f(x) c x
a x b , i 1,m
x 0, j 1,n
Đặt
( )
11 12 1n 1 1
21 22 2n 2 2
1 2 n
m1 m2 mn m n
a a a b x
a a a b x
A ; b ; x ; c c c c

a a a b x
     
 ÷  ÷  ÷
 ÷  ÷  ÷
= = = =
 ÷  ÷  ÷
 ÷  ÷  ÷
     
Ta sẽ viết bài toán (P) dưới dạng ma trận như sau:
f(x) c,x min(max)
Ax b
x 0
= →
=





Hoặc
6
=
=

=



≥ =


n
j j
j 1
j
min(max) f(x) c,x
x A b
x 0, j 1,2, ,n
trong đó:
1j
2 j
j
mj
a
a
A


a
 
 ÷
 ÷
=
 ÷
 ÷
 ÷
 
là véc tơ cột tương ứng với biến
j
x
1.3. Cách chuyển bài toán QHTT tổng quát về dạng chính tắc
a) Với ràng buộc chung
+
n
ij j i
j 1
a x b
=


, thêm biến bù (slack variable)
n
n 1 ij j n 1 i
j 1
x 0 : a x x b i 1,m
+ +
=

≥ − = =

.
+
n
ij j i
j 1
a x b
=


, thêm biến bù (slack variable)
n
n 1 ij j n 1 i
j 1
x 0 : a x x b i 1,m
+ +
=
≥ + = =

b) Với ràng buộc biến
+ Nếu
j
x 0≤
đặt
'
j j
x x 0= − ≥
.
+ Nếu

j
x R∈
(hay là biến tự do) ta sẽ thay
j
x
bằng hai biến mới
j j
x ; x
+ −
bởi liên
hệ
j j j
x x x ;
+ −
= −
với
j j
x 0; x 0.
+ −
≥ ≥
Ví dụ 1. Cho bài toán quy hoạch tuyến tính tổng quát (S) sau đây
= + −
+ − ≤


− − + =


+ − ≥



≥ ≤

1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
minf(x) x 3x 2x
3x x 2x 7
2x 4x x 12
4x 3x 8x 10
x 0; x tùy ý; x 0
Hãy đưa bài toán trên về dạng chính tắc (P).
Giải
7
Để đưa bài toán về dạng chính tắc, ta phải đưa những ràng buộc bất phương
trình về phương trình, và các biến phải không âm.
Nghĩa là:
Thêm biến bù
4
x 0≥
vào ràng buộc thứ nhất,
5
x 0≥
vào ràng buộc thứ ba.
Thay
′ ′
= − ≥
3 3 3

x x ; x 0
,
′ ′′ ′ ′′
= − ≥ ≥
2 2 2 2 2
x x x ;x 0,x 0.
Vậy ta có bài toán (P) như sau:
′ ′′ ′
= + − +
′ ′′ ′
+ − + + =


′ ′′ ′
− − + − =


′ ′′ ′
+ − + − =


′ ′′ ′


1 2 2 3
1 2 2 3 4
1 2 2 3
1 2 2 3 5
1 2 2 3 4 5
minf(x) x 3x 3x 2x

3x x x 2x x 7
2x 4x 4x x 12
4x 3x 3x 8x x 10
x , x , x ,x , x , x 0
• Quan hệ giữa bài toán (S) và bài toán (P):
- (P) không có phươg án tối ưu thì (S) cũng không có phương án tối ưu
- (P) có phương án tối ưu là:
′ ′′ ′
1 2 2 3 4 5
(x ; x ; x ;x ;x ;x )
thì phương án tối ưu của (S)
là:
1 2 3
(x , x , x )
;với
2 2 2 3 3
x x x , x x
′ ′′ ′
= − = −
;
=
min 1 2 3
f f(x , x , x )
.

Nhận xét:
Bài toán quy hoạch tuyến tính dạng chính tắc (P) đạt nghiệm tối ưu tại ít nhất
một phương án cực biên nên ta có tính chất sau:
Đặt
j

J(x) {j / x 0}= >
.
Định lý.
=
1 2 n
x (x ,x , ,x )
là phương án cực biên của (P) khi và chỉ khi hệ véc tơ

j
{A / j J(x)}
là độc lập tuyến tính.
Hệ quả. Số thành phần dương trong mỗi phương án cực biên của bài toán (P)
không vượt quá hạng của ma trận A
Nghĩa là x là phương án cực biên, ta có
≤J(x) r(A)
.
Nếu
=J(x) r(A)
thì ta nói x là phươg án cực biên không suy biến.
8
Nếu
<J(x) r(A)
thì ta nói x là phương án cực biên suy biến.
Ví dụ 2. Cho quy hoạch tuyến tính dạng chính tắc (P).

= + −

+ + =

+ =



≥ =

1 2 3
1 2 3
1 2 3
j
min f(x) x x 2x
3x 4x 10x 10
x _ x x 1
x 0; j 1,3
a) Chứng minh rằng
x (2,1,0)=
là phương án cực biên không suy biến.
b) Chứng minh rằng
x (0, 0,1)=
là phương án cực biên suy biến.
Giải
a) Ta thấy
x (2,1,0)=
thỏa hệ ràng buộc của bài toán, nên x là phương án
Ta có
m 2,n 3= =
,
j
J(x) {j / x 0} {1,2}= > =
và số thành phần dương
=
J(x) 2


và các véc tơ
∈ =
j 1 2
{A / j J(x)} {A ;A }
, với
 
=
 
 
1
3
A
1

 
=
 

 
2
4
A
1
. Ta thấy
1 2
{A ;A }
độc lập tuyến tính nên
x (2,1,0)=


là phương án cực biên.
Mặt khác

= = −
− −
     
= → →
 ÷  ÷  ÷

     
1 2 2 2 2
d : d d : d 3d
3 4 10 1 1 1 1 1 1
A
1 1 1 3 4 10 0 7 7
Hạng của ma trận A:
r(A) 2 m= =
. Vậy ta có
= =
J(x) 2 r(A)
nên
x (2,1,0)=

phương án cực biên không suy biến.
b) Ta thấy
x (0, 0,1)=
thỏa hệ ràng buộc của bài toán, nên x là phương án
Ta có
m 2,n 3= =
,

j
J(x) {j / x 0} {3}= > =
và số thành phần dương
=
J(x) 1
và các
véc tơ
∈ =
j 3
{A / j J(x)} {A }
, với
 
=
 
 
3
10
A
1
, ta thấy
3
{A }
độc lập tuyến tính nên
x (0, 0,1)=
là phương án cực biên.
Mặt khác hạng của
r(A) 2 m= =
. Vậy ta có
= <
J(x) 1 r(A)

nên
x (0, 0,1)=

phương án cực biên suy biến.
1.4. Dạng chuẩn
9
Bài toán quy hoạch tuyến tính dạng chuẩn là bài toán quy hoạch tuyến tính
dạng chính tắc và thỏa hai điều kiện sau:
+ Các hằng số
i
b
ở vế phải của các ràng buộc chung phải không âm, tức là
≥ =
i
b 0 ; i 1,m
.
+ Mỗi ràng buộc chung phải có biến cơ sở tương ứng.
Biến cơ sở là biến có hệ số là 1 ở một ràng buộc chung và có hệ số là 0 ở các
ràng buộc chung còn lại.
Các biến còn lại, gọi là biến tự do.
Bài toán quy hoạch tuyến tính dạng chuẩn:

n
j j
j 1
1 1m 1 m 1 1n n 1
2 2m 1 m 1 2n n 2
m mm 1 m 1 mn n m
j
min(max) f(x) c x

x a x a x b
x a x a x b

x a x a x b
x 0 ; j 1,n
=
+ +
+ +
+ +
=
+ + + =


+ + + =




+ + + =

≥ =

trong đó:+

≥ =
i
b 0 ; i 1,m
+
1 2 m
x , x , ,x

là biến cơ sở tương ứng với mỗi ràng buộc chung.
+
+ +m 1 m 2 n
x , x , , x
là biến tự do.

Với bài toán quy hoạch tuyến tính dạng chuẩn chúng ta sẽ có phương án
cực biên ban đầu x được xác định như sau: Cho các ẩn tự do nhận các giá trị bằng
0, khi đó các ẩn cơ sở sẽ có giá trị là số hạng tự do trong các ràng buộc chung
tương ứng. Tức là ta có phương án cực biên xuất phát cho bài toán dạng chuẩn là :

=
1 2 m
x (b ,b , ,b ,0, ,0)

Ví dụ 1. Cho bài toán quy hoạch tuyến tính ở dạng chuẩn tắc, tìm một phương án
cực biên của bài toán
10

1 2 3 4
1 2 3
2 3 4
j
min f(x) x 2x x x
x x x 7
2x x x 5
x 0, j 1,4
= + + −
+ − =



+ + + =

≥ =
Giải
Ta có:
1 4
x ,x
là biến cơ sở
2 3
x ,x
là biến tự do.
Cho các biến tự do bằng 0, ta có
1 4
x 7;x 5= =
Do đó ta có phương án xuất phát x=(7,0,0,5). Ta chứng min nó là phương án cực
biên
Thật vậy ta có:
j
J(x) {j / x 0} {1,4}= > =
và số thành phần dương
J(x) 2
=
và các véc

j 1 4
{A / j J(x)} {A ,A }∈ =
, với

1

1
A
0
 
=
 
 
,
4
0
A
1
 
=
 
 
Hệ véc tơ cột
1 4
A ; A
là độc lập tuyến tính nên
x (7,0, 0,5)=
là phương án
cực biên. Mặt khác
= =J(x) r(A) 2
nên x là phương án cực biên không suy biến.

Ví dụ 2. Bài toán quy hoạch tuyến tính sau đây có ở dạng chuẩn hay không?


= + −

+ + =


− + =

≥ =
1 2 3
1 3 4
2 3
j
max f(x) x x x
x x x 4
x 2x 7
x 0, j 1,4.
Giải

Ràng buộc thứ hai không có biến cơ sở nên bài không có dạng chuẩn.
II. Phương pháp hình học
Phương pháp hình học sẽ giải bài toán quy hoạch tuyến tính hai biến.
11
Xét bài toán quy hoạch tuyến tính có hai biến
1 1 2 2
i1 1 i2 2 i
j
min(max) f(x) c x c x
a x a x b ; i 1,m
0
x 0 ; j 1,2
R
= +



 

 
+ ≥ =

 

 
=
  


 

 

≤ =
 

 


 

Bước 1: Xác định tập phương án D
Biểu diễn các phương trình và các bất phương trình trong hệ ràng buộc của
bài toán trên cùng một mặt phẳng tọa độ
1 2

Ox x
và xác định phần giao của các miền
nghiệm. Phần giao này ta gọi là miền phương án D.
Ví dụ. Biểu diễn bất phương trình
+ ≤
i1 1 i2 2 i
a x a x b
trên
1 2
Ox x
. Đầu tiên ta vẽ đường
thẳng
+ =
i1 1 i2 2 i
a x a x b
, đường thẳng này chia mặt phẳng tọa độ
1 2
Ox x
làm hai nửa
mặt phẳng. Một nửa mặt phẳng bao gồm các điểm
1 2
(x ,x )
thỏa
+ ≤
i1 1 i2 2 i
a x a x b
. Một
nửa mặt phẳng kia bao gồm các điểm
1 2
(x ,x )

thỏa
+ ≥
i1 1 i2 2 i
a x a x b
. Do đó để xác
định được miền nghiệm cần tìm, sau khi vẽ đường thẳng
+ =
i1 1 i2 2 i
a x a x b
, ta lấy một
điểm bất kỳ, thường là chọn các điểm (0,0),(0,1), (1,0)…. rồi thế vào
+ ≤
i1 1 i2 2 i
a x a x b
, nếu nó thỏa mãn thì nửa mặt phẳng chứa điểm đó là miền nghiệm
cần tìm, còn nếu nó không thỏa thì miền nghiệm phải tìm là nửa mặt phẳng còn lại.
Tương tự cho các ràng buộc khác trong hệ, sau khi biểu diễn xong, ta lấy
phần giao của các miền nghiệm ta sẽ được miền phương án D.
Bước 2: Biểu diễn hàm mục tiêu
Hàm mục tiêu
+ =
1 1 2 2
c x c x f
. Ta thấy nếu lấy điểm
1 2
(x ,x )
trong
2
R
thế vào hàm

mục tiêu, thì hàm mục tiêu sẽ nhận được giá trị là
α
, ta nó hàm mục tiêu đạt mức

α
. Khi đó tập hợp tất cả các điểm
2
1 2
(x ,x ) R∈
mà có cùng mức
α
sẽ hình thành
một đường mức L vuông góc với véc tơ
1 2
n oc (c ,c )= =
r uur
, ta ký hiệu
{ }
2
1 2 1 1 2 2
L(α,f ) x (x ,x ) R / c x c x α= = ∈ + =
.
Đặc điểm của đường mức L:
Nếu dịch chuyển song song đường mức L theo hướng , cùng hướng với vec tơ
n
r

thì giá trị hàm mục tiêu sẽ tăng lên.Còn nếu dịch chuyển song song đường mức L
theo hướng, ngược với véc tơ
n

r
thì giá trị hàm mục tiêu sẽ giảm xuống.
12
Trong thực hành ta làm như sau:
Đầu tiên ta vẽ đường
0
L
đi qua O(0,0) và có véc tơ pháp tuyến
=
r
1 2
n (c ,c )
. Sau đó
lấy một điểm
=
1 2
M (x ,x )
bất kỳ nằm trong D, vẽ đường thẳng L đi qua M và song
song với
0
L
. Đường thẳng L chính là đường mức của hàm mục tiêu .
Bước 3: Xác định phương án tối ưu
 Trường hợp bài toán có hàm mục tiêu cực tiểu
Dịch chuyển song song đường L theo hướng, ngược hướng với véc tơ
r
n
. Khi đó có
hai khả năng xảy ra:
a) Nếu L luôn cắt D thì bài toán không có phương án tối ưu, hàm mục tiêu

không bị chặn dưới, (
→ −∞
f
).
b) Nếu dịch chuyển L đến mức thấp nhất mà L còn giao với D, khi đó D sẽ
nằm về một phía của L, và điểm
= ∩
0 0
(x ,y ) L D
chính là phương án tối ưu
của bài toán, giá trị hàm mục tiêu tối ưu là
= +
1 0 2 0
f c x c x
.
 Trường hợp hàm mục tiên cực đại
Dịch chuyển song song đường L theo hướng, cùng hướng với véc tơ
r
n
. Khi đó có
hai khả năng xảy ra:
a) Nếu L luôn cắt D thì bài toán không có phương án tối ưu, hàm mục tiêu
không bị chặn trên, (
→ +∞
f
).
b) Nếu dịch chuyển L đến mức cao nhất mà L còn giao với D, khi đó D sẽ nằm
về một phía của L, và điểm
= ∩
0 0

(x ,y ) L D
chính là phương án tối ưu của bài
toán, giá trị hàm mục tiêu tối ưu là
= +
1 0 2 0
f c x c x
.
Ví dụ 1. Giải các quy hoạch tuyến tính sau bằng phương pháp hình học
a)
= − +
− + ≤


+ ≤





≥ =

1 2
1 2
1 2
1
i
minf(x) 2x x
x 2x 4
x x 5
x 4

x 0 ,i 1,2
13
Ta có miền phương án D là miền được tô đậm, các đường mức
0
L ;L
,được minh
họa bằng đường nét đứt trên hình.
Theo thuật toán, dịch chuyển song song đường mức L theo hướng, ngược hướng
với véc tơ
uur
oc
, ta thấy đường mức cuối cùng của hàm f mà còn cắt tập phương án D
là đường mức đi qua điểm (4,0).
Vậy bài toán có phương án tối ưu duy nhất là
x (4,0)

=

min
f f(x ) 8

= = −
.
b)
= −
− + ≤


+ ≤






≥ =

1 2
1 2
1 2
1
i
minf(x) x 2x
x 2x 4
x x 5
x 4
x 0 ,i 1,2
14
Ta có miền phương án D là miền to đậm, các đường mức
0
L ;L
,được minh họa ở
hình vẽ trên.
Theo thuật toán, dịch chuyển song song đường mức L theo hướng, ngược hướng
với véc tơ
uur
oc
, ta thấy đường mức cuối cùng của hàm f trùng với đường thẳng
1 2
x 2x 4− + =
.Ta nhận được tập nghiệm tối ưu là cả cạnh [(0,2) ; (2,3)], khi đó bài

toán có vô số phương án tối ưu
Ta có thể lấy một phương án tối đại diện là
x (0,2)

=

min
f f(x ) 4

= = −
c)
= − +
+ ≥ −


− + ≤


− ≤

1 2
1 2
1 2
1 2
min(max)f(x) x x
2x x 2
2x x 2
x x 4
15



Ta có miền phương án D là miền to đậm, các đường mức
0
L ;L
,được minh họa ở
hình vẽ trên.
Với bài toán min
Theo thuật toán, dịch chuyển song song đường mức L theo hướng, ngược hướng
với véctơ
uur
oc
, ta thấy đường mức của hàm f trùng với đường thẳng
1 2
x x 4− =
.Ta
nhận được tập nghiệm tối ưu là nửa đường thẳng Al, khi đó bài toán có vô số
phương án tối ưu
Ta có thể lấy một phương án tối đại diện là
2 10
x ( , )
3 3


=

min
f f(x ) 4

= = −
Với bài toán max

Theo thuật toán, dịch chuyển song song đường mức L theo hướng, cùng hướng với
véc tơ
uur
oc
, ta thấy đường mức của hàm f luôn cắt miền phương án (D), bài toán vô
nghiệm,hàm mục tiêu của bài toán tăng vô hạn trên tập phương án.
III. Phương Pháp Đơn Hình Giải Bài Toán Quy Hoạch Tuyến Tính
III.1) Bài toán quy hoạch tuyến tính dạng chuẩn
Thuật toán đơn hình của Dantzig
1.1. Bài toán quy hoạch tuyến tính có hàm mục tiêu cực tiểu
Bước 1: Lập bảng đơn hình xuất phát
+ Xác định phương án cực biên ban đầu xuất phát
0 0 0 0
1 2 n
x (x ,x , ,x )
=
.
16
+
Xác định
0
B j
J J(x ) {j/ x 0}= = >

+
Xác định hệ véc tơ cơ sở
j B
B {A / j J }
= ∈
.

Ta có bảng đơn hình xuất phát gồm
(n 3)+
cột, dùng để ghi các thông tin
về một bước lặp tính toán tương ứng với một phương án cực biên
17

sở
Hệ
số
Phương
án
1
c

k
c

n
c
1
A

k
A

n
A
… … … … … … … …
0
j J(x ).∈

j
A
j
c
0
j
x
j1
z

jk
z

jn
z


… … … … …
0
f(x )
1


k


n

trong đó:
+

0
j j
j J(x )
f(x) c x

=

(
=
cột hệ số* cột phương án), đây chính là giá trị hàm mục tiêu
ứng với phương án x.
+
0
k j jk k
j J(x )
Δ c z c

= −

(=(cột hệ số *cột
k
A
)-
k
c
), là hệ số ước lượng của biến
k
x ,k 1,n=
.
+

0
k
Δ 0,k J(x ).= ∈
(tương ứng với các biến cơ sở).
Bước 2: Xét dấu hiệu tối ưu
Xét dòng chứa
k
Δ , k 1,n∀ =
. Khi đó:
• Nếu
k
Δ 0, k 1,n≤ ∀ =
thì phương án đang xét là phương án tối ưu
→
thuật
toán kết thúc.
• Nếu tồn tại
0
k J(x )∉
sao cho
k
Δ 0>

→
chuyển sang bước 3.
Bước 3: Xét dấu hiệu không tối ưu
• Nếu tồn tại
0
k J(x )∉
sao cho

k
Δ 0>

0
jk
z 0, j J(x )≤ ∀ ∈
thì hàm mục tiêu
giảm vô hạn trên tập phương án D và bài toán không có phương án tối ưu.
Ta dừng thuật toán.
• Nếu tồn tại
0
k J(x )∉
sao cho
k
Δ 0>

0
j J(x )∃ ∈
sao cho
jk
z 0>
thì ta có thể
chuyển được tới phương án cực biên mới
x

tốt hơn x, nghĩa là
f(x ) f(x)

<
→

chuyển sang bước 4.
Bước 4. Tìm phương án cực biên mới
/
x
tốt hơn x, nghĩa là:

f(x ) f(x)


.
18
Lập bảng đơn hình mới như sau:
a) Chọn cột xoay : Chọn s sao cho
s k k
Δ max{Δ / Δ 0}= >
.
(nghĩa là chọn cột có
Δ
dương lớn nhất)
Cột
s
A
gọi là cột xoay, và véc tơ
s
A
được đưa vào cơ sở.
b) Chọn dòng xoay: Chọn r sao cho
Ta xét
j
r

B js
js
rs
x
x
min j J ,z 0
z
z
 
 
λ = = ∈ >
 
 
 
là tỷ số đơn hình
(hoặc
λ
=
min {[cột phương án/cột xoay] / với các thành phần dương của cột
xoay})
Khi đó dòng
r
A
gọi là dòng xoay, và véc tơ
r
A
bị đưa ra khỏi cơ sở.
Giá trị hàm mục tiêu sẽ giảm một lượng :
s
f(x ) f(x)


= −λ∆
Phần tử
rs
z 0>
là giao của cột xoay và dòng xoay, gọi là phần tử chính của
phép xoay. Các phần tử
js
z ,j r≠
, gọi là phần tử xoay.
c) Ta có bảng đơn hình mới từ bảng đơn hình cũ như sau:
+ Trên cột cơ sở : thay
r
A
bởi
s
A
, và giữ nguyên các thành phần còn lại.
+ Trên cột hệ số
j
c
: thay
r
c
bởi
s
c
, và giữ nguyên các thành phần còn lại.
+ Chia tất cả các phần tử ở dòng xoay cho phần tử chính(để phần tử chính là 1 ở
bảng đơn hình mới), kết quả thu được gọi là dòng chính( dòng ứng với

s
A
trong
bảng đơn hình mới).
+ Các dòng còn lại (không phải là dòng xoay) sẽ biến đổi như sau:
Dòng mới = Dòng cũ tương ứng - Dòng chính* phần tử xoay tương ứng.
(nghĩa là làm cho các phần tử khác phần tử chính trên cột xoay sẽ bằng 0)
+ Khi đó ta tính lại các
k
Δ ; f
theo công thức ở bước 1.
19
Quay lại bước 2.
Ví dụ 1. Giải bài toán quy hoạch tuyến tính sau bằng phương pháp đơn hình
= + + + + +
+ =



− + + =


+ =


+ − =


≥ =
1 2 3 4 5 6

1 4
1 5 6
3 6
1 2 6
j
minf(x) 2x 10x 4x 8x 8x 3x
x x 5
3
x x x 11
5
x x 5
3 6
x x x 4
5 5
x 0, j 1,6
Giải
Ta có bảng 1 là bảng đơn hình xuất phát tương ứng với phương án cực biên
x=(0;4;5;5;11;0); và cơ sở B={A4;A5;A3;A2}.

sở
Hệ
số
Phương
án
2 10 4 8 8 3
A1 A2 A3 A4 A5 A6
A4 8 5 (1) 0 0 1 0 0
A5 8 11 -3/5 0 0 0 1 2
A3 4 5 0 0 1 0 0 1
A2 10 4 3/5 1 0 0 0 -6/5

B1 188 [36/5] 0 0 0 0 5
Vì dòng chứa các
Δ
còn có
1
36
0
5
∆ = >

6
5 0
∆ = >
nên x chưa phải là phương án
tối ưu.
Véc tơ đưa vào cơ sở là A1(ứng với
1
36
5
∆ =
lớn nhất), véc tơ loại ra khỏi cơ sở là
A4 (ứng với
4 2 4
41 21 41
x x 5 4 5 x
min ; min ;
z z 1 3 / 5 1 z
 
 
λ = = = =

   
 
 
). Phần tử chính là
41
z
, phần tử xoay là
51
z
;
31
z
;
21
z
. Thực hiện phép xoay như trong bước 4 ta có bảng
đơn hình mới là bảng số 2.
20

sở
Hệ
số
Phương
án
2 10 4 8 8 3
A1 A2 A3 A4 A5 A6
A1 2 5 1 0 0 1 0 0
A5 8 14 0 0 0 3/5 1 2
A3 4 5 0 0 1 0 0 (1)
A2 10 1 0 1 0 -3/5 0 -6/5

B2 152 0 0 0 -36/5 0 [5]
Vì dòng chứa các
Δ
còn có
6
5 0
∆ = >
nên x chưa phải là phương án tối ưu.
Véc tơ đưa vào cơ sở là A5(ứng với
6
5
∆ =
lớn nhất), véc tơ loại ra khỏi cơ sở là
A3 (ứng với
5 3 3
56 36 36
x x x
14 5 5
min ; min ;
z z 2 1 1 z
 
 
λ = = = =
   
 
 
). Phần tử chính là
36
z
,

phần tử xoay là
16
z
;
56
z
;
26
z
. Thực hiện phép xoay như trong bước 4 ta có bảng đơn
hình mới là bảng số 3

sở
Hệ
số
Phương
án
2 10 4 8 8 3
A1 A2 A3 A4 A5 A6
A1 2 5 1 0 0 1 0 0
A5 8 4 0 0 -2 3/5 1 0
A6 3 5 0 0 1 0 0 1
A2 10 7 0 1 6/5 -3/5 0 0
B3 127 0 0 -5 -36/5 0 0
Trong bảng 3 ta thấy các
∆ ≤ ∀ =
k
0 ; k 1,6
. Phương án hiện hành là tối ưu. Bài toán
có phương án tối ưu là


= =
min
x (5,7,0,0,4,5) ;f 127
.
Ví dụ 2 Giải bài toán quy hoạch tuyến tính sau
21
1 2 3 4 5 6
1 2 5 6 7
2 3 5 6 7
2 4 5 6 7
j
minf(x) x x 2x 3x 4x x
3
x x 2x x x 40
2
2x x x 3x x 10
1
x x x 2x x 60
2
x 0; j 1,7
= + − + + +

− + − + =


− + − + − =




− + + + + =


≥ =

Giải
Ta có các bảng đơn hình :

sở
B
Hệ
số
B
C
Phương
án
1 1 -2 3 4 1 0
A1 A2 A3 A4 A5 A6 A7
A1 1 40 1 -3/2 0 0 2 -1 (1)
A3 -2 10 0 -2 1 0 -1 3 -1
A4 3 60 0 -1/2 0 1 1 2 1
B1 0 0 0 0 3 -2 [6]

sở
Hệ
số
Phương
án
1 1 -2 3 4 1 0
A1 A2 A3 A4 A5 A6 A7

A7 0 40 1 -3/2 0 0 2 -1 1
A3 -2 50 1 -7/2 1 0 1 2 0
A4 3 20 -1 1 0 1 -1 3 0
B2 -40 -6 [9] 0 0 -1 4 0

sở
Hệ
số
Phương
án
1 1 -2 3 4 1 0
A1 A2 A3 A4 A5 A6 A7
A7 0 70 -1/2 0 0 3/2 1/2 7/2 1
A3 -2 120 -5/2 0 1 7/2 -5/2 25/2 0
A2 1 20 -1 1 0 1 -1 3 0
B3 -40 3 0 0 -9 0 -23 0
Từ bảng số 3 ta có
1
3 0∆ = >
và các phần tử
71 31 21
1 5
z 0; z 0; z 1 0
2 2
= − < = − < = − <
.
22
Bài toán không có phương án tối ưu, hàm mục tiêu không bị chặn dưới.
1.2. Bài toán quy hoạch tuyến tính có hàm mục tiêu cực đại.(da sua den day)
Cách 1: Giải trực tiếp

Khi áp dụng thuật toán đơn hình lên bài toán max thì cơ bản cũng giống như
bài toán min nhưng chỉ khác:
Bước 1: Giống bài toán min.
Bước 2: Xét dấu hiệu tối ưu
Xét dòng chứa
k
Δ , k 1,n∀ =
. Khi đó:
• Nếu
k
Δ 0, k 1,n≥ ∀ =
thì phương án đang xét là phương án tối ưu
→
thuật
toán kết thúc.
• Nếu tồn tại
0
k J(x )∉
sao cho
k
Δ 0<

→
chuyển sang bước 3.
Bước 3: Xét dấu hiệu không tối ưu
• Nếu tồn tại
0
k J(x )∉
sao cho
k

Δ 0<

0
jk
z 0, j J(x )≤ ∀ ∈
thì hàm mục tiêu
tăng vô hạn trên tập phương án D và bài toán không có phương án tối ưu. Ta
dừng thuật toán.
• Nếu tồn tại
0
k J(x )∉
sao cho
k
Δ 0<

0
j J(x )∃ ∈
sao cho
jk
z 0>
thì ta có thể
chuyển được tới phương án cực biên mới
x

tốt hơn x, nghĩa là
f(x ) f(x)

>
→
chuyển sang bước 4.

Bước 4
a) Chọn cột xoay: Chọn s sao cho
s k k
Δ min{Δ / Δ 0}= <
.
(nghĩa là chọn cột có
Δ
âm bé nhất).
b)Chọn cột xoay:giống bài toán cực tiểu
chú ý: hàm mục tiêu khi ấy sẽ tăng thêm 1 lượng là
s
λ.Δ
, nghĩa là
s
f(x ) f(x)λ.Δ

= +
c) Lập bảng đơn hình mới: giống bài toán cực tiểu
Ví dụ. Giải bài toán quy hoạch tuyến tính sau
23
1 2 3
1 2 4
1 2 3
j
max f(x) 3x 4x 2x
x 2x x 5
2x 4x x 2
x 0, j 1,4
= − − −


− + + =

+ + =


≥ =

Giải
Ta có bảng 1 là bảng đơn hình xuất phát tương ứng với phương án cực biên
x=(0;0;2;5); và cơ sở B= {A4;A3}.
Cơ sở
Hệ số
Phương
án
-3 -4 -2 0
A1 A2 A3 A4
A4 0 5 -1 2 0 1
A3 -2 2 2 (4) 1 0
B1 -4 -1 [-4] 0 0
Vì dòng chứa các
Δ
còn có
1
1 0
∆ = − <

2
4 0
∆ = − <
nên x chưa phải là phương án

tối ưu.
Véc tơ đưa vào cơ sở là A2(ứng với
2
4
∆ = −
nhỏ nhất), véc tơ loại ra khỏi cơ sở là
A3 (ứng với
3 3
4
42 32 32
x x
x 5 2 2
min ; min ;
z z 2 4 4 z
 
 
λ = = = =
   
 
 
). Phần tử chính là
32
z
,
phần tử xoay là
42
z
. Thực hiện phép xoay như trong bước 4 ta có bảng đơn hình
mới là bảng số 2.
Cơ sở

Hệ số
Phương
án
-3 -4 -2 0
A1 A2 A3 A4
A4 0 4 -2 0 -1/2 1
A2 -4 1/2 1/2 1 1/4 0
B1 -2 1 0 1 0
Trong bảng 2 ta thấy phương án đang xét là tối ưu vì
k
0, k 1,4
∆ ≥ ∀ =
.

=
x (0,1/ 2,0,4);

= −
max
f 2.
Cách 2. Giải gián tiếp qua bài toán min
24
Chuyển bài toán max về bài toán min
Giải
Dùng phương pháp đơn hình giải bài toán min, ta có bảng đơn hình:
Cơ sở Hệ số
Phương
án
3 4 2 0
A1 A2 A3 A4

A4 0 5 -1 2 0 1
A3 2 2 2 (4) 1 0
B1 4 1 [4] 0 0
Cơ sở
Hệ số
Phương
án
3 4 2 0
A1 A2 A3 A4
A4 0 4 -2 0 -1/2 1
A2 4 1/2 1/2 1 1/4 0
B1 2 -1 0 -1 0
Trong bảng 2 ta thấy phương án đang xét là tối ưu vì
k
0, k 1,4
∆ ≤ ∀ =

= = − = −
max min
x (0,1/ 2,0,4); f g 2.
III.2) Bài toán quy hoạch tuyến tính không phải dạng chuẩn
1. Bài toán dạng chuẩn mở rộng M
25
1 2 3
1 2 4
1 2 3
j
min g(x) 3x 4x 2x
x 2x x 5
2x 4x x 2

x 0, j 1,4
= + +

− + + =

+ + =


≥ =

×