You are on page 1of 139

BÀI GIẢNG

TOÁN KINH TẾ

GV: BÙI THỊ NHUNG

1
CHƯƠNG 2
MÔ HÌNH QUY HOẠCH TUYẾN TÍNH
CHƯƠNG 2:
QUY HOẠCH TUYẾN TÍNH

2.1. MỘT SỐ ỨNG DỤNG TRONG HOẠT ĐỘNG KINH


TẾ VÀ MÔ HÌNH BÀI TOÁN QHTT

2.2. MÔ HÌNH BÀI TOÁN QHTT

2.3. TÍNH CHẤT BÀI TOÁN QHTT

2.4. PHƯƠNG PHÁP ĐƠN HÌNH

2.5. QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU

3
2.1 MỘT SỐ ỨNG DỤNG TRONG HOẠT ĐỘNG
KINH TẾ VÀ MÔ HÌNH BÀI TOÁN QHTT

2.1.1 Bài toán lập kế hoạch sản xuất

2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản


xuất
2.1.1 Bài toán lập kế hoạch sản xuất
Bài toán 1: Nhân dịp Tết trung thu, 1 xí nghiệp muốn sản
xuất 3 loại bánh: Nướng, thập cẩm, bánh dẻo.
- Để sản xuất 3 loại bánh này, xí nghiệp phải có đường,
đậu, bột, trứng, mứt, lạp xưởng…
- Giả sử số đường có thể chuẩn bị được là 500kg,
đậu là 300kg, các nguyên liệu khác muốn có bao nhiêu
cũng được. Lượng đường, đậu và số tiền lãi khi bán 1
chiếc bánh mỗi loại cho trong bảng:
Cần lập kế hoạch sản xuất mỗi loại bánh bao nhiêu cái
để không bị động về đường, đậu và tổng số lãi thu được
là lớn nhất (nếu sản xuất ra bao nhiêu cũng bán hết).
5
2.1.1 Bài toán lập kế hoạch sản xuất

Bánh Bánh nướng Bánh thập Bánh dẻo


cẩm
Nguyên
Liệu x1 x2 x3

Đường
0,06kg 0,04kg 0,07kg
500 kg

Đậu 0,04kg
0,08kg 0
300 kg
2 ngàn 1,7 ngàn 1,8 ngàn
Lãi đồng đồng đồng
2.1.1 Bài toán lập kế hoạch sản xuất
Phân tích:
Gọi x1, x2, x3 lần lượt là số lượng bánh nướng, thập
cẩm, bánh dẻo cần sản xuất (cái)
Điều kiện của ẩn: xj ≥0 (j=1,2,3)
Tổng tiền lãi: 2x1 + 1,7x2 + 1,8x3

Tổng lượng đường sử dụng: 0,06x1 + 0,04x2 + 0,07x3

Tổng lượng đậu sử dụng: 0,08x1 + 0x2 + 0,04x3

7
2.1.1 Bài toán lập kế hoạch sản xuất

Hàm mục tiêu

Điều kiện ràng buộc

Điều kiện của ẩn xj ≥0 (j=1,2,3) (3)


2.1.1 Bài toán lập kế hoạch sản xuất

Mô hình toán học dưới dạng ma trận:


Ma trận ràng buộc:
0,06 0,04 0,07 
A 
 0, 08 0 0,04 
500
B    véc tơ số hạng tự do.
300
x  x1; x2 ; x3  là véc tơ ẩn số.
Một véc tơ x  x1; x2 ; x3  thỏa (2) và(3) gọi là 1
phương án của bài toán.
Một phương án x  x1; x2 ; x3  thỏa (1) gọi là 1
phương án tối ưu của bài toán.
Các bước lập BTQHTT
• B1 : Gọi ẩn (điều kiện của ẩn, đơn vị)
• B2 : Phân tích, biểu diễn điều kiện bài toán qua ẩn để
lập được hàm mục tiêu, điều kiện ràng buộc
• B3 : Lập được Bài toán QHTT
2.1.1 Bài toán lập kế hoạch sản xuất

Bài toán 2
Sản xuất n sản phẩm, sử dụng m loại nguyên liệu
Để sản xuất 1 đơn vị sản phẩm loại j (j=1…n) cần aij
đơn vị nguyên liệu loại i (i=1…m)
Lượng nguyên liệu loại i tối đa có thể là bi
Gọi cj là giá (hay tiền lãi) 1 đơn vị sản phẩm loại j
Hãy xác định sản lượng sản phẩm loại j sao cho tổng
giá trị sản phẩm sản xuất được (tiền lãi) là lớn nhất
với lượng nguyên liệu hiện có.
11
2.1.1 Bài toán lập kế hoạch sản xuất

SP Dự trữ
A1 A2 … An nguyên
NL x1 x2 xn liệu

B1 a11 a12 … a1n b1

B2 a21 a22 … a2n b2

… … … … …

Bm am1 am2 … amn bm

Lãi c1 c2 cn
12
2.1.1 Bài toán lập kế hoạch sản xuất

SP Dự trữ
A1 A2 … An nguyên
NL x1 x2 xn liệu
Tổng số
B1 a11 a12 … a1n b1 tiền lãi?
B2 a21 a22 … a2n b2
… … … … …
Bm am1 am2 … amn bm
Lãi c1 c2 cn

Số lượng nguyên liệu đã sử


dụng?

13
2.1.1 Bài toán lập kế hoạch sản xuất

Ta có mô hình bài toán:


Tìm x= (x1, x2, x3…xn) sao cho

14
2.1.1 Bài toán lập kế hoạch sản xuất
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
Bài toán 3: Một doanh nghiệp cần đầu tư vốn vào m
nhà máy, để sản xuất n sản phẩm
- Đầu tư 1 đơn vị tiền vào nhà máy i trong 1 năm sẽ
sản xuất được bij đơn vị sản phẩm loại j
- Tổng số nguyên liệu và lao động có thể cung cấp là
A và C
- Định mức hao phí về nguyên liệu và lao động sản
xuất 1 đơn vị sản phẩm loại j tại nhà máy i tương ứng
là aij và cij
Yêu cầu: Hãy lập kế hoạch đầu tư sao cho đảm bảo
sản xuất được ít nhất Bj đơn vị sản phẩm loại j mà
tổng số vốn đầu tư là nhỏ nhất 16
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
Bước 1: Gọi xi là lượng vốn cần đầu tư vào nhà máy Ni
(xi≥0)
Bước 2: Phân tích bài toán, biểu diễn qua ẩn
- Tổng số vốn đầu tư ?
- Lượng sản phẩm Aj (j=1…n) do nhà máy i sản xuất?
- Tổng số sản phẩm loại j do m nhà máy i sản xuất ?
- Tổng số nguyên vật liệu và lao động cần để sản xuất
sản phẩm ở nhà máy i ?
- Tổng số nguyên vật liệu và lao động cần để sản xuất
sản phẩm các loại ở các nhà máy là ? 17
Bài toán lập kế hoạch sản xuất
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
SP …
A1 A2 An
Nhà máy

b11 a11 b12 a12 … b1n a1n


N1 x1
c11 c12 c1n
b21 a21 b22 a22 … b2n a2n
x2
N2
c21 c22 c2n
… … … …
bm1 am1 bm2 am2 … bmn amn
xm
Nm
cm1 cm2 cmn
B1 B2 Bn 18
Tổng
Bài toán lập kế hoạch sản xuất
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
SP A1 A2 … An
NM

Tổng số b11 a11 b12 a12 … b1n a1n


vốn? N1 x1
c11 c12 c1n
b21 a21 b22 a22 … b2n a2n
N2 x2
c21 c22 c2n
Tổng số sản
… … …
phẩm loại j? …
bm1 am1 bm2 am2 … bmn amn
Nm xm
cm1 cm2 cmn
B1 B2 Bn
Tổng

Tổng số nguyên liệu và


Tổng số nguyên liệu và lao động cần để lao động cần để
sản xuất sản phẩm ở nhà máy i ?
sản xuất?
19
Bài toán lập kế hoạch sản xuất
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
… Nguyên liệu Lao động
A1 A2 An
b11 a11 b12 a12 … b1n a1n
x1
c11 c12 c1n
b21 a21 b22 a22 … b2n a2n
x2 ? ?
c21 c22 c2n
… … … …
bm1 am1 bm2 am2 … bmn amn
xm ? ?
cm1 cm2 cmn
Tổng ? ? ? ?
21
Bài toán lập kế hoạch sản xuất
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất

22
2.1.2 Bài toán lập kế hoạch vốn đầu tư cho sản xuất
Ta có mô hình bài toán:
Tìm x= (x1, x2, x3…xm) sao cho

24
Các bước lập BTQHTT

• B1 : Gọi ẩn (điều kiện, đơn vị của ẩn)


• B2 : Phân tích, biểu diễn điều kiện bài
toán qua ẩn
• B3 : Lập được Bài toán QHTT

25
Bài toán lập kế hoạch sản xuất
Bài toán QHTT dạng tổng quát
Tìm x= (x1, x2, x3…xn) sao cho

26
Mô hình bài toán QHTT
Bài tập về nhà

28
2.2 MÔ HÌNH BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
2.2.1 Bài toán QHTT dạng tổng quát
Tìm xj, j=1, 2,…, n sao cho:
n
f(x) =  c x  min (max) (1)
j j
j 1

 
 n
 
Với hệ ràng buộc:  a x
 
j 1
b , i=1, 2,…, m (2)
ij j i

 
 0 
x  0  , j=1,2,…,n (3)

j

 tùy ý 
31
Bài toán qhtt tổng quát

32
Bài toán qhtt tổng quát
VD. Bài toán QHTT dạng tổng quát

1 f  x   2 x1  3x2  x3  x4  max


 2 x1  x2  x3  x4  5 1

 2   x1  x2  2 x3  x4  7 2
5 x  x  3x  x  20  3
 1 2 3 4

3 x1, x2  0, x3  0, x4  R

33
Bài toán qhtt dạng chính tắc và dạng chuẩn tắc
1. Dạng chính tắc
• Dạng tường minh

f(X) = c1x1 + c2x2 + … + cnxn  min (max)


a11x1 + a12x2 + … + a1nxn = b1
a21x1 + a22x2 + … + a2nxn = b2
.. .…….
am1x1 + am2x2 + … + amnxn = bm
xj  0  j = 1, n
• Dạng rút gọn
n
f(X) = cjxj  min (max)
j1

n
 aijxj = bi (i = 1, m )
j1
34
1, n
xj  0, (  j = )
Bài toán qhtt dạng chính tắc và dạng chuẩn tắc

Ví dụ: Bài toán sau đây có dạng chính tắc

f  x   3x1  x2  x3  3x4  x5  min


2 x1  x2  x3  3x4  0
 x  x  x  x  18
 2 3 4 5
 x  2 x  x  17
 3 4 5

 x j  0; j  1,5

35
Bài toán qhtt dạng chính tắc và dạng chuẩn tắc
2. Dạng chuẩn tắc
n
f x    c j x j  min
Bài toán có dạng: j 1

Với hệ ràng buộc: a


j 1
ij x j  bi , i=1,2,…,m

xj ≥0, j=1,2,…,n

VD f (x)  2x1  x 2  3x 3  Min


 x1  2x 2  x 3  2
2x  x  4x  3
 1 2 3

 3x1  4x 2  x 3  4
 x1  0; x 2  0; x 3  0 36
Quy tắc đưa bài toán QHTT dạng tổng quát về dạng
chính tắc, chuẩn tắc

+ Biến hàm mục tiêu f(x)→max thành g(x)= - f(x) →min

+ Trường hợp ràng buộc chung có dấu đẳng thức ta


đưa về hai bất đẳng thức
 a x  b
n

n  ij j i

a x  b 
j 1

ij j i n

 a x  b
j 1

 j 1
ij j i

3x1  2 x2  x3  5 x4  1
3x1  2 x2  x3  5 x4  1  
(3x1  2 x2  x3  5 x4 )  1 37
QT đưa bài toán về dạng chính tắc, chuẩn tắc
- Nếu một ràng buộc có dạng
n n

 ij j i
a
j1
x  b   a ij x j  x n+i  b
j1
i

n
  a ijx j - x n+i  bi
n

a x  b
j1
ij j i
j1

x n+i  0 Hệ số của xn+i trong f(x) bằng 0

Các biến xn+i gọi là biến phụ.


38
QT đưa bài toán về dạng chính tắc, chuẩn tắc

- Nếu xj ≤ 0 thì đổi biến x’j= −xj ≥ 0


- Nếu xj tùy ý thì đặt xj bằng hiệu của hai biến mới

xj = xj’− xj’’ với xj’, xj’’≥ 0

39
Đưa bài toán về dạng Chính tắc

Ví dụ: Đưa bài toán sau về dạng chính tắc

40
Đưa bài toán về dạng Chính tắc

Ví dụ: Đưa bài toán sau về dạng chính tắc


f(x) = –2x1 + x2 + 3x3 + 5x4  min


x1 – 3x2 + 5x3 – x4  16

 2x1 – x2 – 2x3 + 2x4 ≥ – 4


 4x1 + 3x2 + x3 + x4 = 9

x1, x2 ≥ 0, x3  0

41
Đưa bài toán về dạng Chính tắc

Các biến phụ sẽ được đánh số tiếp là x5, x6.


Đặt x3’= – x3 ≥ 0, x4 = x4’ – x4’’, x4’, x4’’ ≥ 0.

Ta được bài toán chính tắc

f(x) = –2x1 + x2 – 3x3’ + 5x4’ – 5x4’’  min

x1 – 3x2 – 5x3’ – x4’ + x4’’ + x5 = 16

2x1 – x2 + 2x3’ + 2x4’ – 2x4’’ – x6 = –4


4x1 + 3x2 – x3’ + x4’ – x4’’ = 9
42
Bước 1: Đổi biến do x1, x2 ≥ 0, x3  0
• Đặt t1 =x1 , t2 =x2 ; t3 =-x3 ; x4 = t4 –t5
(t1,2,3,4,5 ≥0)

• Thay vào hàm mục tiêu


f(x) = –2x1 + x2 + 3x3 + 5x4  min
f(t)= -2t1 + t2 -3 t3 + 5(t4 –t5 )→min
• Thay vào hàm ràng buộc
t1 -3 t2 - 5t3 -(t4 –t5 )≤ 16 (1)
2t1 - t2 +2t3 +2(t4 –t5 )≥ -4 (2)
43
4t +3t - t +(t –t )= 9 (3)
Bước 2: Đưa ràng buộc về dấu =

Thêm vào hai ẩn phụ t6 , t7 vào (1) (2)


Hàm mục tiêu
f(t)= -2t1 + t2 -3t3 +5(t4 –t5 ) + 0t6 + 0t7 →min
• Hàm ràng buộc
t1 -3t2 - 5t3 -(t4 –t5 ) + t6 =16
2t1 - t2 +2t3 +2(t4 –t5 ) - t7 = -4
4t1 +3t2 - t3 +(t4 –t5 ) =9
tj ≥0; j= 1,2…7
44
Đưa về dạng chuẩn tắc
• Đặt t1 =x1 , t2 =x2 ; t3 =-x3 ; x4 = t4 –t5
(t1,2,3,4,5 ≥0)

• Thay vào hàm mục tiêu


f(t)= -2t1 + t2 -3t3 +5(t4 –t5 ) →min

hàm ràng buộc


-(t1 -3t2 - 5t3 -(t4 –t5 )) ≥ - 16
t1 -3t2 - 5t3 -(t4 –t5 )≤ 16
2t1 - t2 +2t3 +2(t4 –t5 )≥ -4
2t1 - t2 +2t3 +2(t4 –t5 )≥ -4
4t1 +3t2 - t3 +(t4 –t5 )= 9 4t1 +3t2 - t3 +(t4 –t5 ) ≥ 9
-(4t1 +3t2 - t3 +(t4 –t5 )) ≥45- 9
Đưa bài toán về dạng Chuẩn tắc

Ví dụ: Đưa bài toán sau về dạng chuẩn tắc


f(x) = 2x1 - x2  max

x 1  2 x 2  x 3  2
2 x  2 x  x  3
 1 2 3

 x 1  x 2  x 3  4
Điều kiện:
x 1  0, x 3  0, x 2 tùy ý

46
Đưa bài toán về dạng Chuẩn tắc

Thay x2 = x4 - x5 (x4, x5 ≥ 0)
Đổi dấu hàm mục tiêu
g(x)= -( 2x1 - x4 + x5)  min

 x1  x3  2 x4  2 x5  2 ( x1  x3  2 x4  2 x5 )  2
2 x  x  2 x  2 x  3  2x  x  2x  2x  3
 1 3 4 5 

1 3 4 5

   x1  x3  x4  x5  4
 x  x  x  x  4
1 3 4 5   x  x  x  x  4

 x j  0 ( j  1, 3, 4, 5)
 1 3 4 5

 x j  0 ( j  1,3, 4,5)

47
Bài toán qhtt dạng chuẩn

f x    c x  min
n

j j
j1

x  a x  a x 1m 1 m 1
 ......  a x  b
1m  2 m2

1 1n n 1

 x  a x  a x  ......  a x  b
2 2m 1 m 1 2m  2 m2 2n n 2

......................................................................
 x  a x  a x  ......  a x  b
 m mm 1 m 1 mm  2 m2 mn n m


 x  0 (j  1, n )
j

Trong đó: b i  0, (i  1, m) 48
Bài toán qhtt dạng chuẩn
Ví dụ : Bài toán QHTT sau có là bài toán chuẩn
hay không ?

Vậy bài toán QHTT trên là chuẩn ! 49


2.3 TÍNH CHẤT BÀI TOÁN QHTT
2.3.2 Tính chất đặc trưng của PACB
1. Tính chất 1: Sự tồn tại phương án cực biên:
Nếu bài toán có phương án và hạng của ma trận hệ ràng buộc
bằng n (n là số biến số) thì bài toán có phương án cực biên.

Hạng của ma trận hệ ràng buộc của bài toán dạng chính
tắc luôn luôn bằng n nên nếu bài toán chính tắc có phương
án thì phải có phương án cực biên.
2. Tính chất 2: Sự tồn tại phương án tối ưu:
Nếu bài toán có phương án và trị số hàm mục tiêu bị chặn
trên tập phương án thì bài toán có phương án tối ưu.
3. Tính chất 3: Tính hữu hạn của số phương án cực biên:
Số phương án cực biên của mọi bài toán quy hoạch tuyến
50
tính đều hữu hạn.
Phương án: Vectơ x = (x1, x2,..., xn) thoả mãn mọi
điều kiện ràng buộc của bài toán gọi là một phương
án. n
-Nếu  a ij x j  b i thì ràng buộc i gọi là “chặt” đối với
j1
phương án x, hoặc phương án x thoả mãn chặt ràng buộc i.
n
-Nếu a x
j1
ij j  ()b i thì ràng buộc i gọi là “lỏng” đối với
phương án x, hoặc phương án x thoả mãn lỏng ràng buộc i.
Phương án tối ưu: Một phương án mà tại đó trị số hàm
mục tiêu đạt cực tiểu (hoặc cực đại) gọi là phương án tối ưu.
Phương án cực biên: Một phương án thỏa mãn chặt n ràng
buộc độc lập tuyến tính gọi là phương án cực biên.
Các bước tìm PACB
- Tìm hạng của ma trận A.
- Nhận xét về số thành phần dương và suy ra số thành
phần bằng 0 của pacb,
- Dựa vào nhận xét để tìm các pacb, pacb không suy
biến

Giải bài toán Quy hoạch tuyến tính


- Tìm tập các pacb
- Chứng minh hàm mục tiêu bị chặn trên tập phương
án
- Tính giá trị của hàm mục tiêu tại các pacb vừa tìm
được để suy ra patư (nếu hàm mục tiêu bị chặn).

52
Giải bài toán Quy hoạch tuyến tính
Ví dụ 1: Giải bài toán quy hoạch tuyến tính
f(x)= 2x + 3x  max
1 2

4x + 2x + x = 5
1 2 3

x + 3x
1 2 =1
x ≥0, j = 1, 2, 3
j

HD. Trước hết ta tìm các phương án cực biên.


 4  2 1 
Có ba vectơ cột: A1 =  , A2=  , A3 =  
1  3 0

 13 1 
Đối với hệ : A1, A2 : x = 1
 , ,0
 10 10 

Đối với hệ A 1 , A3 x = (1, 0, 1)


2

 1 13 
Đối với hệ A2, A3 x = 3
 0, , 
 3 3

Như vậy chỉ có hai phương án cực biên x và x 2 3

53
Giải bài toán Quy hoạch tuyến tính
Hàm mục tiêu của bài toán bị chặn.

Từ x + 3x =1 có x = 1 - 3x nên
1 2 1 2

f(x) = 2x + 3x = 2(1 - 3x ) + 3x = 2 -3x ≤ 2


1 2 2 2 2

Vì tập phương án không rỗng, hàm mục tiêu bị chặn


nên bài toán có phương án tối ưu.

Mặt khác f(x ) = 2 > f(x ) = 1.


2 3

Vậy x = (1, 0, 1) là phương án tối ưu của bài toán.


2

54
Bài tập
Bài 1. Xét BTQHTT
f  x   4 x1  x2  x3  min
 x1  2 x2  x3  5

 x1  x2  2 x3  5
 x  0; j  1, 2,3
 j
Trong các véctơ sau véctơ nào là phương án,
vectơ nào là pacb không suy biến?
x   0,5,5  ; x  5, 0, 0  ; x  1, 4, 4  .
0 1 2

55
Bài tập

b) f  x   x1  2 x2  x3  min
 x1  x2  x3  4

 x1  x2 0
 x  0; j  1, 2,3
 j
x   2, 2,0  , x   0,0, 4  ; x  1,1, 2 
0 1 2

56
Bài tập
Bài 1. Xét BTQHTT
f  x   x1  2 x2  x3  min
 x1  x2  x3  4

 x1  x2 0
 x  0; j  1, 2,3
 j
Trong các véctơ sau véctơ nào là phương án,
vectơ nào là pacb không suy biến?
x 0   2, 2, 0  , x1   0, 0, 4  ; x 2  1,1, 2  .

57
Bài tập
Bài 2. Tìm tất cả các pacb của BTQHTT sau

a ) f  x   2 x1  x2  5 x4  min
 x1  x3  x4  5

 x2  x3 +2x4  1
 x  0; j  1, 2,3, 4.
 j

58
Bài tập

Bài 2. Tìm tất cả các pacb của BTQHTT sau

b) f  x   2 x1  x3  2 x4  min
 x1  x2  x3  x4  10

2 x2  x3 -x4  6
 x  0; j  1, 2,3, 4.
 j

59
Bài tập

Bài 2. Tìm tất cả các pacb của BTQHTT sau

c) f  x   x1  6 x3  5 x4  min
 x1  2 x2  3x4  5

3x2  x3 +2x4  8
 x  0; j  1, 2,3, 4.
 j

60
f  x   5 x1  2 x2  4 x3  min
4 x1  7 x2  x3  3
 x  x  2 x  1
 1 2 3

2 x1  3 x2  6 x3  11
 x1  0; x2  0; x3 tùy ý

f (x)  2x1  x 2  max


  x1  2x 2  x 3  2
 2x  x  x  2
 1 2 3

 x1  x 2  x 3 4

 x1 , x 3  0, x 2 tùy ý 61
2.5 PHƯƠNG PHÁP ĐƠN HÌNH

TTĐH

Thuật toán Thuật toán


đơn hình đơn hình
gốc mở rộng
5.1 Thuật toán đơn hình gốc
• Tư tưởng của thuật toán đơn hình
- Xuất phát từ 1 PACB X0 ta tìm cách đánh
giá nó, nếu nó tối ưu thì ta dừng lại  X0
là lời giải của bài toán !!!
- Nếu chưa tối ưu ta tìm cách chuyển sang
1 PACB mới X1 tốt hơn theo nghĩa
f(X1) < f(X0)
- Thuật toán sẽ dừng lại sau hữu hạn bước
(vì số PACB là hữu hạn)
Bài toán dạng chuẩn
f x    c x  min
n

j j
j1

x a x a x1m 1 m 1
 ......  a x  b
1m  2 m2

1 1n n 1

 x 2
 a x 
2m 1
a x
m 1
 ......
2m  2
 a x
m2
 b2n n 2

......................................................................
 x  a x  a x  ......  a x  b
 m mm 1 m 1 mm  2 m2 mn n m

x  0 (j  1, n )
j

Trong đó: b i  0, (i  1, m)
Thuật toán
+) Tìm một phương án cực biên ban đầu x0 với cơ
sở {Aj, jJ0} gồm m vectơ độc lập tuyến tính của A

Giả sử x = ( x , x , x ....x , 0,..., 0) , với x  0


0 0 0 0 0
0
1 2 3 m j

( j = 1,…, m ).
Ký hiệu: J0 = {j; xj > 0} = { 1, 2,…, m }.
Hệ {Aj, jJ0} là cơ sở của x0 biến xj jJ0 là biến
cơ sở.
Thuật toán của phương pháp đơn hình
Giả sử đã biết phương án cực biên x0, cơ sở J0. Lập
bảng đơn hình tương ứng:

Cơ sở Hệ số Phương A1 A2 …Ar … Am Am+1 Ak … As … An


c án: xJ c c … c … c c … c … c … c
1 2 r m m+1 k s n

A1 c1 x10 1 0 … 0 …0 z1,m+1… z1k … z1s… z1n


A2 c2 x20 0 1 … 0 …0 z2,m+1… z2k … z2s … z2n
… … … …………………………………………….
Ar cr xr0 0 0 … 1 … 0 zr,m+1… zrk … zrs … zrn
… … … …………………………………………………….
Am cm xm0 0 0 … 0 … 1 zm,m+1…zmk …zms ... zmn
f(x0) 0 0 … 0 … 0 ∆m+1 … ∆k … ∆s … ∆n
+ Mỗi vectơ cột Ak (k = 1, 2, … , n) của A được biểu diễn
qua cơ sở {Aj, jJ0}
Ak = z1k A1 + z2k A2 + … + zmk Am , k = 1, 2, …, n
Do A1,A2...,Am là các véc tơ cơ sở nên ở bảng đơn hình xuất
phát ta có aik= zik
+ Tính các giá trị của hàm mục tiêu:

f  x o   c, x 0  c1 x10  c2 x20  c3 x30  ...  cm xm0

= cột hệ số cj*cột phương án


+ Tính hệ số ước lượng của tham số:

 k  (c1 z1k  c2 z2 k  c3 z3k  ...  cm zmk )  ck ; k  1...n


= (cột hệ số cj*cột hệ số Ak ) - ck
Ví dụ 1: Lập bảng đơn hình xuất phát của bt sau

f  x   x1  x2  x3  x4  min
 x1  x3  x4  2

 x1  x2  2 x3  1
 x  0, j  1, 4
 j

Bài toán đã cho có dạng chuẩn


chưa? Xác định hệ véc tơ cơ sở,
pacb ban đầu
Hệ cơ Hệ số Phương A1 A2 A3 A4
sở cj án
1 1 1 -1
A4 -1

A2 1
Cơ Hệ Phương A1 A2 A3 A4 θ
sở số án
1 1 1 -1
A4 -1 2 1 0 1 1
A2 1 1 1 1 -2 0

Bảng 1 -1 -1 0 -4 0
Ví dụ 2. Lập bảng đơn hình xuất phát của bài
toán sau

f  x   x1  2 x2  2 x3  x4  x5  2 x6  min
2 x1  x2  5 x3  x4  5
x  2x  2x  x  4
 1 2 3 5

4 x1  x2  x3  x6  2
 x j  0, j  1, 6

Bài toán có dạng chuẩn, các biến cơ sở là x4, x5, x6 nên
phương án cực biên tương ứng x0 = (0, 0, 0, 5, 4, 2), cơ sở
là {A4, A5, A6}, do đó ta có thể lập ngay được bảng đơn
hình ứng với phương án cực biên x0:
Cơ Hệ số xJ A1 A2 A3 A4 A5 A6
sở
1 -2 2 -1 1 -2
A4 -1 5 [2] -1 -5 1 0 0
A5 1 4 1 -2 2 0 1 0
A6 -2 2 -4 1 1 0 0 1
6 3 0 0
-5 -1 0
Ở bước 1 ta thấy phương án tương ứng chưa tối ưu. Vectơ đưa vào cơ
sở là A1 ứng với 1 = 6, θ0 = 5/2min nên vectơ A4 bị loại khỏi cơ sở,
phần tử trục là [2].
cơ sở là {A1, A5, A6}, do đó ta có thể lập ngay được bảng
đơn hình ứng với phương án cực biên x0:

Cơ Hệ số xJ A1 A2 A3 A4 A5 A6
sở
1 -2 2 -1 1 -2
A1 1 5/2 1 -1/2 -5/2 1/2 0 0
A5 1 3/2 0 -3/2 9/2 -1/2 1 0
A6 -2 12 0 -1 -9 2 0 1
18 0 0
-20 0 2 -3
Ở bảng 2 2 = 2>0, cột hệ số âm nên bài toán ko có patu. Hàm mục
tiêu giảm vô hạn
Bước 1: Kiểm tra dấu hiệu tối ưu
Tính các ước lượng ∆k theo công thức
Δ k   c j z jk  c k
jJ
-Nếu ∆k ≤ 0, (k  J0) thì x0 là phương án tối ưu.
-Nếu ∆k > 0 thì x0 không phải là phương án tối ưu, chuyển
sang bước 2.

Kết luận cho VD1, VD2


Bước 2: Kiểm tra bài toán không có phương án tối ưu
a) Nếu
 k ;1  k  n sao cho  k  0 và z ik  0,
i  1, 2..., m.
Thì bài toán đã cho không có phương án tối ưu và
hàm mục tiêu giảm vô hạn trong miền ràng buộc: dừng
thuật toán.

b) Nếu k  J 0 mà  k > 0 đều tồn tại ít nhất một hệ


số zik > 0 chuyển sang bước 3.
Bước 3: Xây dựng phương án cực biên mới
+ Chọn vectơ đưa vào cơ sở:
Chọn s thỏa mãn:  s  max  k ;  k  0} ta có cột xoay là cột s
Đưa vectơ As vào cơ sở
+ Xác định vectơ loại khỏi cơ sở:
 xi 0  x
 0  min  ; zis  0   r 0
Tính tỷ số đơn hình  zis  zrs

(cột phương án chia cho cột xoay)


Đưa Ar ra khỏi hệ cơ sở, hàng r là hàng xoay.
Trong bảng đơn hình thay Ar bằng As , cr bằng cs
Giao của hàng xoay, cột xoay là phần tử trục
+ Xây dựng phương án cực biên mới:
Phương án mới x1 được xác định như sau:
 x 0j   0 z js , j  J 0

x j  0, j  J 0 , j  s
0

 , j  s
 0
Phương án x1 tương ứng với cơ sở J1 = ( J0 \ {r})  {s}
1
j  
Tính các x ; f x ;  ; z
1 1
k
1
ik

Và    f 0   0  s  f  x0 
1
f x
Để tính toán lại các hệ số zik khi thay đổi từ cơ sở cũ
sang cơ sở mới, có thể sử dụng các công thức sau:
- Ở hàng xoay thì chia cho phần tử trục

- Ở cột xoay phần tử trục chuyển thành 1 còn các phần tử


khác chuyển thành 0
(i = 1, 2, …, m+1; k = 0, 1, …, n)
(Chỉ số cột s và chỉ số hàng r được xác định ở bước 2)
- Còn ở các hàng khác thì các phần tử được tính theo quy
zrk
z  zik  .zis
,
ik
tắc sau zrs
Hoặc A mới = (A.D – C.B)/ D
Ví dụ 1: Giải bài toán sau bằng phương pháp đơn hình:
f(x) = 2x1 + 3x2 – x3 – 1/2x4  min

 x1 – x2 + x3 + 1/2x4 = 18



x2 – 4x3 + 8x4  8

 –2x2 + 2x3 – 3x4  20


 xj ≥ 0 (j =1…4)
Trước hết đưa bài toán về dạng chính tắc bằng cách cộng
vào ràng buộc hai và ba hai biến phụ x5 và x6. Ta có:

f(x) = 2x1 + 3x2 – x3 – 1/2x4 + 0.x5 + 0.x6 min

 x1 – x2 + x3 + 1/2x4 = 18



x2 – 4x3 + 8x4 + x5 = 8

 –2x2 + 2x3 – 3x4 + x6 = 20

xj ≥ 0 (j = 1…6)
Bài toán có dạng chuẩn, các biến cơ sở là x1, x5, x6 nên
phương án cực biên tương ứng x0 = (18, 0, 0, 0, 8, 20), cơ
sở là {A1, A5, A6}, do đó ta có thể lập ngay được bảng đơn
hình ứng với phương án cực biên x0:
Cơ Hệ số xJ A1 A2 A3 A4 A5 A6
sở
2 3 -1 -1/2 0 0
A1 2 18 1 –1 1 1/2 0 0
A5 0 8 0 1 –4 8 1 0
A6 0 20 0 –2 [2] –3 0 1
36 0 −5 3 3/2 0 0

Ở bước 1 ta thấy phương án tương ứng chưa tối ưu. Vectơ đưa vào cơ
sở là A3 ứng với 3 = 3, θ0 = 20/2 nên vectơ A6 bị loại khỏi cơ sở, phần
tử trục là [2].
cJ J xJ A1 A2 A3 A4 A5 A6
2 3 -1 -1/2 0 0
2 A1 18 1 –1 1 1/2 0 0
0 A5 8 0 1 –4 8 1 0
0 A6 20 0 –2 [2] –3 0 1
36 0 –5 3 3/2 0 0
8 1 0 0 2 0 −1/2
2 A1
48 0 −3 0 2 1 2
0 A5
−1 10 0 −1 1 −3/2 0 1/2
A3 6 0 −2 0 6 0 −3/2
cJ J xJ A1 A2 A3 A4 A5 A6
2 3 -1 -1/2 0 0
2 A1 8 1 0 0 [2] 0 – 1/2
0 A5 48 0 −3 0 2 1 2
−1 A3 10 0 –1 1 – 3/2 0 1/2
f(x) 6 0 –2 0 6 0 – 3/2
−1/2 4 1/2 0 0 1 0 −1/4
A4
40 −1 −3 0 0 1 5/2
0 A5
16 3/4 −1 1 0 0 1/8
−1 A3
f(x) −3 −2 0 0 0
−18 0
Ở bước thứ ba ta thấy k  0 (k  J)
Phương án tương ứng là tối ưu: x* = (0, 0, 16, 4, 40, 0)
Giá trị tối ưu của hàm mục tiêu là: f* = –18.
Các chú ý khi áp dụng thuật toán:
1) Đối với bài toán có hàm f(x)  max thì có thể chuyển về
giải bài toán với hàm g(x) = −f(x)  min
chú ý là fmax = −gmin
hoặc cũng có thể giải trực tiếp với dấu hiệu tối ưu là k ≥ 0,
dấu hiệu để điều chỉnh phương án là k < 0, còn các yếu tố
khác của thuật toán không đổi.
2) Chọn vectơ đưa vào cơ sở ứng với max  k là với hy vọng
 0
k
làm trị số hàm mục tiêu giảm nhiều nhất sau mỗi bước biến
đổi, tuy nhiên vectơ đưa vào cơ sở thực sự làm trị số hàm
mục tiêu giảm nhiều nhất phải ứng với max
Δ 0
θ 0 .Δ k  nhưng
k

trên nguyên tắc thì đưa bất kỳ vectơ nào ứng với k > 0 vào
k

cơ sở cũng cải tiến được phương án.


3) Trường hợp bài toán suy biến thì θ0 có thể bằng 0, khi
θ0 = 0 vẫn thực hiện thuật toán một cách bình thường,
nghĩa là vectơ ứng với θ0 vẫn bị loại khỏi cơ sở.
Dấu hiệu xuất hiện phương án cực biên suy biến là θ0
đạt tại nhiều chỉ số, khi đó vectơ loại khỏi cơ sở được
chọn trong số những vectơ ứng với θ0 theo quy tắc ngẫu
nhiên.
Khi áp dụng thuật toán cần lưu ý hai trường hợp:
-Phương án cực biên x0 có cơ sở J0 là cơ sở đơn vị, lúc
đó ma trận hệ số phân tích của [ A | b] theo cơ sở đơn vị là
chính nó nên ta có thể lập ngay được bảng đơn hình.
Bài toán dạng chuẩn là bài toán cho ngay một phương
án cực biên với cơ sở là đơn vị, nên từ bài toán ta có thể lập
được bảng đơn hình ứng với phương án cực biên ấy.
-Nếu J0 không phải là cơ sở đơn vị thì để lập bảng đơn
hình trước hết cần phải tìm ma trận hệ số phân tích theo J 0.
Để làm điều này ta viết ma trận mở rộng [A | b] sau đó
thực hiện các phép biến đổi sơ cấp trên các hàng của ma trận,
biến đổi sao cho các vectơ cơ sở trở thành các vectơ đơn vị
khác nhau. Khi đó ma trận mở rộng sẽ trở thành ma trận hệ
số phân tích.
Ví dụ 2: Cho bài toán:

f(x) = −2x1 − 6x2 + 8x3 – 5x4  min


x1 + 2x2 − 3x3 + x4 = 8



−2x1 + x2 + x3 − 5x4  2



4x1 + 7x2 − 8x3 + 2x4 ≥ 20
xj ≥ 0 (j = 1…4)
và vectơ x0 = (8, 0, 0, 0).
Chứng tỏ x0 là phương án cực biên, lợi dụng x0 giải
bài toán bằng phương pháp đơn hình.
Dễ thấy rằng x0 thỏa mãn mọi ràng buộc của bài toán,
các ràng buộc là độc lập tuyến tính, vậy x0 là phương án cực
biên không suy biến.

Để giải bài toán bằng phương pháp đơn hình trước hết
phải đưa bài toán về dạng chính tắc.
f(x) = −2x1 − 6x2 + 8x3 – 5x4  min
 x1 + 2x2 − 3x3 + x4 = 8


 −2x1 + x2 + x3 − 5x4 + x5 = 2

 4x1 + 7x2 − 8x3 + 2x4 – x6 = 20

xj ≥ 0 (j = 1…6)
Từ x0 suy ra phương án cực biên không suy biến của bài
toán dạng chính tắc: x 0 = (8, 0, 0, 0, 18, 12) với cơ sở là J0
= {A1, A5, A6} không phải là cơ sở đơn vị.

Vì vậy để lập được bảng đơn hình ứng với phương án cực
biên x 0 ta phải tìm ma trận hệ số phân tích của ma trận
điều kiện của bài toán dạng chính tắc qua cơ sở J0 .
Chú ý rằng vế phải của ma trận hệ số phân tích phải
trùng với các thành phần cơ sở của phương án cực biên.
Quá trình biến đổi thực hiện trên các ma trận sau:

 1 2 3 1 0 0 8 1 2  3 1 0 0 8
   
 2 1 1  5 1 0 2   0 5  5 3 1 0 18
 4 7  8 2 0  1 20 0 1  4 2 0 1 12

Trên cơ sở ma trận hệ số phân tích, lập bảng đơn hình


cJ J xJ −6 8 −5 0 0
−2

−2 x1 8 1 2 −3 1 0 0
0 x5 18 0 5 −5 −3 1 0
0 x6 12 0 1 −4 [2] 0 1
f(x) − 16 0 2 −2 3 0 0
−2 x1 2 1 3/2 −1 0 0 − 1/2
0 x5 36 0 13/2 − 11 0 1 3/2
−5 x4 6 0 1/2 − 2 1 0 1/2
Sau bước có 30= 4 >1/2
f(x) 2−ta34 4 xj3 <0 0 (j0 J), −bài
0, nhưng 3/2
toán không có phương án tối ưu.
5.2 Thuật toán đơn hình mở rộng
Ta xét bài toán mở rộng sau (thường gọi là bài toán M)
F = c1 x1 + c2 x2 + c3 x3+…+ cn xn + M.xn+1 +…+M.xn+m → min

a11 x1  a12 x2  ...  a1n xn  xn 1  b1



a21 x1  a22 x2  ...  a2 n xn +x n+2  b2

............................................
a x  a x  ...  a x  x m+n  bm
 m1 1 m 2 2 mn n

 x j  0  j  1, 2...n  m 
Trong đó xn+1, xn+2,..., xn+m gọi là ẩn giả,
M là hằng số dương tùy ý
Định lý: Nếu bài toán (M) không có phương án tối
ưu hoặc có một phương án tối ưu mà trong đó có ít
nhất một ẩn giả dương thì (D, f) vô nghiệm.

Nếu bài toán (M) có phương án tối ưu


xM*   x1 ,..., xn ,0,...,0 
thì x*   x1 ,..., xn 
là phương án tối ưu của bài toán (D, f )

Do đó có thể giải bài toán (M) thay cho


giải bài toán (D, f )
Chú ý: Trong bài toán (M), do hàm mục tiêu F phụ thuộc tuyến
tính vào M nên các ước lượng của các biến cũng phụ thuộc tuyến
tính vào M:
F   0  0 M
 k   k   k M  k  1, 2...n  m 
Quy tắc xét dấu và ước lượng k như sau :
  k  0  k bât kì 
k  0 
nếu   k  0;  k  0  k  1, 2...n  m 

  i   j  i ; j bât kì 
i   j nếu     ;    k  1, 2...n  m 
 i j i j
Chú ý:
- Nếu ma trận A của bài toán (D, f) có
chứa k vectơ cột đơn vị khác nhau (k <
m) thì ta cần đưa m – k ẩn giả vào bài
toán (M)
- Nếu trong quá trình tính toán một ẩn
giả xn+i (i=1…m) khi ra khỏi hệ cơ sở thì
sẽ không thể vào hệ cơ sở được nữa. Do
vậy việc tính toán trong bảng tiếp theo
đối với cột An+i (i= 1…m) là không cần
thiết (chỉ đối với ẩn giả)
Ví dụ 1: Xét bài toán

f  x   x1  2 x2  x3  min

2 x1  3 x2  4 x3 =12

4x1  5 x2 =10
 x  0 j  1, 2...5
 j  
Đưa bài toán về bài toán (M)
Đưa về bài toán M
F  x   x1  2 x2  x3  Mx4  Mx5  min

2 x1  3 x2  4 x3  x4 =12

4x1  5 x2 +x 5 =10
Điều kiện:  x  0  j  1, 2...5 
 j
Ma trận hệ số ràng buộc có chứa ma trận đơn vị I2 ứng với
cột 4 và cột 5
Vậy x0 = (0,0,0,12,10) là phương án cực biên với cơ sở
tương ứng là {A4,A5}
Ví dụ 2: Dùng phương pháp đơn hình giải bài toán
quy hoạch tuyến tính sau:

f  x   2 x1  2 x2  3x3  min

 x1  2 x2  x3  10
 x  2 x  3 x  15
 1 2 3
 2 x  x  5 x  20
 1 2 3

 x j  0  j  1, 2, 3

Đưa vào 1 ẩn phụ x4 và 2 ẩn giả x5, x6 ta có bài
toán (M):
F  x   2 x1  2 x2  3x3  0 x4  Mx5  Mx6  min

 x1  2 x2  x3  x4  10
 x  2 x  3x +x 5  15
 1 2 3
2 x  x  5 x +x 6  20
 1 2 3

 x j  0  j  1, 2,...6 

Bài toán có dạng chuẩn, các biến cơ sở là x4, x5, x6 nên
phương án cực biên tương ứng x0 = (0, 0, 0,10, 15, 20), cơ
sở là {A4, A5, A6}, do đó ta có thể lập ngay được bảng đơn
hình ứng với phương án cực biên x0:
Cơ Hệ số xJ A1 A2 A3 A4 A5 A6
sở
-2 -2 -3 0 M M
A4 0 10 1 2 1 1 0 0
A5 M 15 1 2 3 0 1 0
A6 M 20 2 1 [5] 0 0 1
35M 3+8M 0 0 0
2+3M 2+3M
Ở bước 1 ta thấy phương án tương ứng chưa tối ưu. Vectơ đưa vào cơ
sở là A3 ứng với 3 = 3+8M, θ0 = 20/5 nên vectơ A6 bị loại khỏi cơ sở,
phần tử trục là [5].
cJ J xJ A1 A2 A3 A4 A5 A6
-2 -2 -3 0 M M
0 A4 10 1 2 1 1 0 0
M A5 15 1 2 3 0 1 0
M A6 20 2 1 [5] 0 0 1
2+3M 2+3M 3+8M 0 0 0
6 3/5 9/5 0 0 ///////
0 A4 1
3 -1/5 [7/5] 0 1
M A5 0 ///////
-3 4 2/5 1/5 1 0 0 /////
A3 4/5 7/5+ 0 0 0 ///////
-1/5M 7/5M
A4 0 15/7 [6/7] 0 0 1 15/6
A2 –2 15/7 – 1/7 1 0 0 _
A3 –3 25/7 3/7 0 1 0 25/3
Bảng 3 1 0 0 0
A1 –2 5/2 1 0 0 7/6
A2 –2 5/2 0 1 0 1/6
A3 –3 5/2 0 0 1 – 1/2
Bảng 4 – 35/2 0 0 0 – 7/6
• KL: Bài toán (M) có patư là
xM*= (5/2,5/2,5/2,0,0,0)
Vậy bài toán ban đầu có phương án tối ưu
x = ( 5/2, 5/2, 5/2 ) fmin = – 35/2
2. 6 QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU

2.6.1. Cách thành lập bài toán đối ngẫu

2.6.2 Thuật toán của phương pháp đơn


hình đối ngẫu
2.6.3. Bài tập

107
2.6.1 Bài toán đối ngẫu
2.6.1.1 Khái niệm đối ngẫu
Đối ngẫu là một phương pháp mà ứng dụng với mỗi bài
toán Quy hoạch tuyến tính đã cho (gọi là bài toán gốc), ta có
thể thiết lập một bài toán Quy hoạch tuyến tính khác (gọi là
bài toán đối ngẫu) sao cho từ lời giải của bài toán này ta có
thể thu được thông tin về lời giải của bài toán kia.
Khi phân tích đồng thời cả hai bài toán gốc và đối ngẫu ta
có thể rút ra các kết luận sâu sắc cả về mặt toán học lẫn về ý
nghĩa thực tiễn.
Cách thành lập bài toán đối ngẫu
Xét bài toán dạng chính tắc: Bài toán đối ngẫu của bài
n
f x    c j x j  min
toán (I) có dạng sau:
j1
 m

n gy    b i y i  max
 a ij x j  b(I) (i  1, m)  i 1
i m
 j1  a y c

 i 1 ij i jj  1, n 
x  0 (j  1, n )
 j

109
Cách thành lập bài toán đối ngẫu
Quy tắc thành lập bài toán đối ngẫu:
- Nếu f(x)  min thì và hệ ràng buộc của bài toán đối
ngẫu có dạng “  ”.
- Nếu f(x)  max thì và hệ ràng buộc của bài toán đối
ngẫu có dạng “ ≥ ”.
- Số ràng buộc (không kể ràng buộc dấu) trong bài toán này
bằng số biến số trong bài toán kia, nghĩa là tương ứng với một
ràng buộc của bài toán này là một biến số của bài toán kia.
- Hệ số trong hàm mục tiêu của bài toán này là vế phải của
hệ ràng buộc trong bài toán kia.
- Ma trận điều kiện trong hai bài toán là chuyển vị của
nhau.
- Các biến số trong bài toán đối ngẫu không có ràng buộc
về dấu.
110
Cách thành lập bài toán đối ngẫu
Định nghĩa: Cặp ràng buộc đối ngẫu: 2 ràng buộc bất
đẳng thức (kể cả ràng buộc dấu) trong hai bài toán cùng
tương ứng với một chỉ số là một cặp ràng buộc đối ngẫu.
~
Trong bài toán (I) và ( I ) có n cặp ràng buộc đối ngẫu:

j  1, n 
m
x j  0   a ij y i  c j
i 1

Cách viết bài toán đối ngẫu:


Trừ các ràng buộc về dấu, ta cho tương ứng với mỗi
phương trình ràng buộc i của bài toán gốc một biến của bài
toán đối ngẫu 
y i i  1, m 
, thực hiện phép nhân vô

hướng vectơ y lần lượt với vectơ b và các vectơ A j j  1, n 
ta sẽ được hàm mục tiêu và toàn bộ hệ ràng buộc của
bài toán đối ngẫu.
111
Cách thành lập bài toán đối ngẫu
Ví dụ 1: Viết bài toán đối ngẫu của bài toán sau:

f(x) = −3x1 + 5x2 + 4x3 – 2x4 + x5  max

 2x1 − 3x2 − x3 + 6x4 – 2x5 + 2x6 = –14



 −x1 + 2x2 + 5x3 + 3x5 − 4x6 = 8

 6x1 − 3x2 + 2x3 − x4 + x5 + 3x6 = 12


xj ≥ 0 (j =1…6)

112
Cách thành lập bài toán đối ngẫu

Bài toán đối ngẫu có 3 biến số y1, y2, y3.


Theo cách viết trên ta có:

gy  = – 14y1 + 8y2 + 12y3  min

 2y1 − y2 + 6y3 ≥ –3
 −3y1 + 2y2 − 3y3 ≥ 5
 − y + 5y + 2y ≥ 4
1 2 3

 6y1 − y3 ≥ –2
 −2y1 + 3y2 + y3 ≥ 1

2y1 − 4y2 + 3y3 ≥ 0

113
Cách thành lập bài toán đối ngẫu
Đối với bài toán bất kỳ thì đưa bài toán về dạng chính
tắc, xây dựng bài toán đối ngẫu của bài toán này và gọi nó
là bài toán đối ngẫu của bài toán đã cho.
Xét bài toán sau gọi là bài toán (II):
n
f x    c j x j  min
n
f x    c j x j  min
j1 j1
(II’)
 n
n
 a ij x j  b i (i  1, m)  a ij x j  x n i  b i (i  1, m)
(II)

 j1  j1
x  0 (j  1, n ) x  0 (j  1, n  m)
 j  j

114
Cách thành lập bài toán đối ngẫu
Đưa bài toán về dạng Bài toán đối ngẫu của (II’) và
chính tắc, ký hiệu là cũng là bài toán đối ngẫu của (II)
(II’): có dạng:
n m
f x    c j x j  min gy    b i y i  max
j1 i 1
(II’)
 n m
 a ij x j  x n i  b i (i  1, m)  a ij y i  c j (j  1, n )
 i 1
 j1 y  0
x  0 (j  1, n  m)  i (i  1, m)
 j

115
Cách thành lập bài toán đối ngẫu

Bài toán đối ngẫu của (II’) và cũng là bài toán đối ngẫu
của (II) có dạng:
m
gy    b i y i  max
i 1
~
 m
( II )
 a ij y i  c j (j  1, n )
 i 1
y  0 (i  1, m)
 i
Hai bài toán này có n + m cặp ràng buộc đối ngẫu sau:
j  1, n 
m
x j  0   a ij y i  c j
i 1

i  1, m
n
và a x
j1
ij j  bi  yi  0
116
Lược đồ tổng quát xây dựng bài toán đối ngẫu:

Bài toán gốc Bài toán đối ngẫu


n
f x    c j x j  min gy    b y  max
m

i i
j1 i 1

n
yi không có ràng buộc dấu
 a ijx j  bi i  I1 
j1 (i  I1)
n

a x ij j  bi i  I 2  yi  0 i  I 2 
j1
m
xj không có ràng buộc dấu
a ij yi  c j  j  J1 
(j  J1) i 1
m
xj ≥ 0 (j  J2)
a ij yi  c j j  J 2 
i 1 117
VD1. Lập bài toán đối ngẫu của bài toán sau:

bài toán gốc: bài toán đối ngẫu

118
Cách thành lập bài toán đối ngẫu

Ví dụ 2: Viết bài toán đối ngẫu của bài toán sau:

f(x) = −4x1 + x2 + 5x3 + 3x5  min


3x1 − 6x2 − x3 + 2x4 + 4x5 ≥ –15
 −2x1 + 3x2 + 4x3 − 5x4 + x5  8


− 6x2 + 3x3 + 8x4 − 4x5 = 9
 3x1 + 2x2 − 3x4 + x5 ≥ 24

 x1, x3, x5 ≥ 0

119
Lược đồ tổng quát xây dựng bài toán đối ngẫu:

Bài toán gốc Bài toán đối ngẫu


n
f x    c j x j  min gy    b y  max
m

i i
j1 i 1

 a ijx j  bi i  I1  yi không có ràng buộc dấu


j1 (i  I1)
i  I 2 
n

 a ijx j  bi i  I 2  yi  0
j1
m

xj không có ràng buộc dấu a ij yi  c j  j  J1 


i 1
(j  J1)
m

a ij yi  c j j  J 2 
i 1 120
120
Cách thành lập bài toán đối ngẫu

VD. Tìm bài toán đối ngẫu của bài toán

1 f  x   2 x1  3x2  x3  x4  max


 2 x1  x2  x3  x4  5 1

 2   x1  x2  2 x3  x4  7 2 
5 x  x  3 x  x  20 3 
 1 2 3 4

3 x1 , x2  0, x3  0, x4  R

121
 2 1 1 1 2 1 5
 1 1 1
A  1 1 2 1
   AT   
 5 1 3 1  1 2 3
 
1 1 1

Bài toán đối ngẫu là :


1 g  y   5 y1  7 y2  20 y3  min
 2 y1  1y2  5 y3  2
 y  y  y  3

  1 2 3
2
 y1  2 y2  3 y3  1
 y1  y2  y3  1
3 y1  0, y2  R, y3  0
122
Thuật toán của phương pháp đơn hình đối ngẫu

Xét bài toán dạng chính tắc với hàm f(x)  min
Giả sử đã biết phương án cực biên y, cơ sở J của bài toán
đối ngẫu.
Thành lập bảng đơn hình ứng với cơ sở J:
- Ở cột cơ sở ghi các thành phần cơ sở của giả phương án
x vì đó là các hệ số phân tích của vectơ b qua cơ sở J.
- Thay cho f(x) ghi g(x) .
- Trị số của f(x) ứng với giả phương án x ghi trong bảng
đơn hình xác định bởi:
 -1
J   -1
J 
f(x)  c J , x J   c J , A b  c J A , b  (y, b)
đó cũng chính là trị số của hàm mục tiêu ứng với phương án
cực biên y.

123
Thuật toán của phương pháp đơn hình đối ngẫu

Bước 1: Kiểm tra dấu hiệu tối ưu


- Nếu xj ≥ 0 (j J) thì giả phương án trở thành phương án
tối ưu của bài toán gốc, đồng thời phương án cực biên y tương
ứng cũng tối ưu.
- Nếu tồn tại một xj < 0 thì y không phải phương án tối ưu,
chuyển sang bước 2.
Bước 2: Kiểm tra tính không giải được của bài toán
- Nếu tồn tại một xj < 0 mà xjk ≥ 0 (k  J) thì bài toán đối
ngẫu không giải được vì hàm mục tiêu không bị chặn, bài toán
gốc không có phương án.
- Nếu với mỗi xj < 0 đều có ít nhất một xjk < 0 thì chuyển
sang bước 3.

124
Thuật toán của phương pháp đơn hình đối ngẫu

Bước 3: Đổi cơ sở
- Giả sử vectơ Ar bị loại khỏi cơ sở.

- Tính θ0 theo công thức:  Δk 


θ 0  min  
x rk  0, kJ x
Δs  rk 
giả sử θ0  , vectơ As được đưa vào cơ sở.
x rs
Phần tử xoay của phép biến đổi cơ sở là xrs < 0.
Lập bảng đơn hình mới và chuyển sang bước 4.

125
Thuật toán của phương pháp đơn hình đối ngẫu

Bước 4: Biến đổi bảng


Thực hiện phép biến đổi cơ sở cho toàn bộ bảng, kết quả
sẽ cho ta bảng đơn hình ứng với phương án cực biên mới y’
của bài toán đối ngẫu tốt hơn y với cơ sở là
J’ = [J \ {r}]{s}.

Đối với y’ quay trở lại bước 1, và vì số phương án cực biên


là hữu hạn nên sau một số hữu hạn bước hoặc sẽ kết luận bài
toán gốc không có phương án hoặc sẽ tìm được phương án
cực biên tối ưu.

126
Thuật toán của phương pháp đơn hình đối ngẫu

Khi giải bài toán cụ thể cần chú ý hai trường hợp:

- Bài toán dạng chính tắc có một cơ sở gồm các vectơ {


ei}, dễ dàng lập bảng đơn hình ứng với cơ sở này, nếu k 
0, k  J thì đó là cơ sở đối ngẫu và áp dụng được thuật
toán.

- Biết phương án cực biên y của bài toán đối ngẫu của bài
toán dạng chính tắc. Khi đó xác định cơ sở của y, tìm ma
trận hệ số phân tích theo cơ sở này và lập bảng đơn hình
tương ứng, trong bảng phải có k  0, k  J.

127
Thuật toán của phương pháp đơn hình đối ngẫu

Ví dụ 1: Giải bài toán bằng phương pháp đơn hình đối ngẫu:

f(x) = x1 + 3x2 + 2x3 + 3x4 + 5x5  min





 x1 + 2x2 − x3 + x4 − x5 = −3

 − x2 − x3 + 2x4 + 4x5 ≥ 18

− x2 − 3x3 + 2x5  10
xj ≥ 0 (j = 1…5)

128
Thuật toán của phương pháp đơn hình đối ngẫu

Đưa bài toán về dạng chính tắc:

 f(x) = x1 + 3x2 + 2x3 + 3x4 + 5x5  min





x1 + 2x2 − x3 + x4 − x5 = −3

 − x2 − x3 + 2x4 + 4x5 − x6 = 18
− x2 − 3x3 + 2x5 + x7 = 10
xj ≥ 0 (j = 1…7)
Cơ sở {A1, A6, A7} = {e1, − e2, e3 }.
Dễ dàng tính được ma trận hệ số phân tích theo cơ sở này
bằng cách đổi dấu phương trình ràng buộc 2.
Lập bảng đơn hình tương ứng:
129
Thuật toán của phương pháp đơn hình đối ngẫu

cJ J xJ 1 3 2 3 5 0 0
x1 x2 x3 x4 x5 x6 x7
1 x1 −3 1 2 −1 1 −1 0 0
0 x6 −18 0 1 1 −2 −4 1 0
0 x7 10 0 −1 −3 0 2 0 1
g(y) −3
0
0 −1 −3 −2 −6 0

Ta thấy k  0 (k  J), đó là cơ sở đối ngẫu nên áp dụng


được thuật toán.

130
Thuật toán của phương pháp đơn hình đối ngẫu

cJ J xJ 1 3 2 3 5 0 0
x1 x2 x3 x4 x5 x6 x7
1 x1 −3 1 2 −1 1 −1 0 0
0 x6 −18 0 1 1 [−2] −4 1 0
0 x7 10 0 −1 −3 0 2 0 1
3 g(y) − 3 0 −1 −3 −2 −6 0 0
5/2
1 x1 −12 1 −1/2 0 −3 1/2 0
9 0 −1/2 −1/2 1 2 −1/2 0
x4
−3 0
0 x7 10 0 −1 0 2 1
g(y) 15 0 −2 −4 0 −2 −1 0
131
Thuật toán của phương pháp đơn hình đối ngẫu

cJ J xJ 1 3 2 3 5 0 0
x1 x2 x3 x4 x5 x6 x7
1 x1 −12 1 5/2 −1/2 0 [−3] 1/2 0
3 x4 9 0 −1/2 −1/2 1 2 −1/2 0
0 g(y)
x7 10 0 −1 −3 0 2 0 1
15 0 −2 −4 0 −2 −1 0
4 −1/3 −5/6 1/6 0 1 −1/6 0
5 x5
1 2/3 7/6 5/6 1 0 −1/6 0
3 x4 0 0
2 2/3 2/3 −10/3 1/3 1
0 g(y)
x7
23 −2/3 −11/3 −11/3 0 0 −4/3 0
Phương án tối ưu của bài toán gốc: x* = (0, 0, 0, 1, 4, 0, 2) 132
và f* = 23.
Thuật toán của phương pháp đơn hình đối ngẫu

Phương án tối ưu của bài toán đối ngẫu xác định bởi hệ
m
phương trình:
a y ij i  c j j  J 
i 1

với J là cơ sở ứng với bảng đơn hình cuối cùng.

 − y1 + 4y2 + 2y3 = 5


 y1 + 2y2 = 3


 y3 = 0

Giải hệ phương trình này được y* = (1/3, 4/3, 0).


133
Thuật toán của phương pháp đơn hình đối ngẫu
Ví dụ 2: Cho bài toán:

f(x) = −2x1 + 3x2 − 4x3 + 3x4 + x5  min


−x1 + x2 − 2x3 − x5 ≥ −6


x1 + 3x2 + x3 − 2x4 + 2x5  21
 2x1 − x2 + 3x3 + x4 = 6



xj ≥ 0 (j = 1…5)

Viết bài toán đối ngẫu, chứng tỏ y0 = (3, −1, 1) là phương


án cực biên của nó, xuất phát từ y0 giải bài toán bằng phương
pháp đơn hình đối ngẫu.
Xác định phương án tối ưu của bài toán đối ngẫu.

134
Thuật toán của phương pháp đơn hình đối ngẫu

Bài toán dạng chính tắc:

f(x) = −2x1 + 3x2 − 4x3 + 3x4 + x5  min

 −x1 + x2 − 2x3 − x5 − x6 = −6

 x1 + 3x2 + x3 − 2x4 + 2x5 + x7 = 21
 2x1 − x2 + 3x3 + x4 = 6

 xj ≥ 0 (j = 1…7)


135
Thuật toán của phương pháp đơn hình đối ngẫu
Bài toán đối ngẫu:

gy  = –6y1 + 21y2 + 6y3  max

−y1 + y2 + 2y3  –2
 y1 + 3y2 − y3  3
 −2y1 + y2 + 3y3  −4

− 2y2 + y3  3
 −y1 + 2y2  1

 −y1  0
 y2  0

136
Thuật toán của phương pháp đơn hình đối ngẫu

Thử y0 vào các ràng buộc, chúng đều thoả mãn nên y0 là
phương án.
Phương án y0 thoả mãn chặt các ràng buộc 1, 3, 4,
dễ thấy chúng độc lập tuyến tính nên y0 là phương án cực
biên không suy biến.
Cơ sở của phương án cực biên y0 là J0 = {A1, A3, A4}.
Tìm ma trận hệ số phân tích của bài toán chính tắc theo J0:
 1 1  2 0  1  1 0  6  1  1 2 0 1 1 0 6
   
 1 3 1 2 2 0 1 21   0 4  1 2 1 1 1 15 
 2  1 3 1 0 0 0 6  0 1 1 1 2 2 0  6

1 7 0  4 3  1 2 36  1 3 0 0 1  7 / 3 2/3 8
   
0  4 1 2  1 1 1  15  0  2 1 0 1 5/3  1/ 3  1
0  3 0 3  3  1 1  21 0  1 0 1 1  1/ 3  1/ 3  7 
137
Thuật toán của phương pháp đơn hình đối ngẫu
cJ J xJ –2 3 –4 3 1 0 0
x1 x2 x3 x4 x5 x6 x7
–2 x1 8 1 3 0 0 –1 – 7/3 2/3
–4 x3 –1 0 –2 1 0 1 5/3 – 1/3
3 x4 –7 0 –1 0 1 –1 – 1/3 [–1/3]
g(y) – 33 0 –4 0 0 –6 –3 –1
–2 x1 –6 1 1 0 2 –3 [–3] 0
–4 x3 6 0 –1 1 –1 2 2 0
0 x7 21 0 3 0 –3 3 1 1
g(y) – 12 0 –1 0 –3 –3 –2 0
0 x6 2 – 1/3 – 1/3 0 – 2/3 1 1 0
–4 x3 2 2/3 – 1/3 1 1/3 0 0 0
0 x7 19 1/3 10/3 0 – 7/3 2 0 1
138
g(y) –8 – 2/3 – 5/3 0 – 13/3 –1 0 0
Thuật toán của phương pháp đơn hình đối ngẫu
Phương án tối ưu của bài toán đối ngẫu là nghiệm của hệ
phương trình:

 − y1 = 0



−2y1 + y2 + 3y3 = 3

 y2 = 0


Suy ra y* = (0, 0, −4/3).

139
Bài tập
Bài 1. Cho bài toán QHTT sau:
f (x)   3x1  3x 2  8x 3  6x 4  Min
3x1  3 / 2x 2  x 3  3x 4  57
2x  x  2x  2x  18
 1 2 3 4
3x  3x  5x  4x   49
 1 2 3 4

 x  0; j  1, 4
 j
a. Hãy giải bài toán trên bằng phương pháp đơn hình
b. Hãy lập bài toán đối ngẫu của bài toán trên và xét tính
tối ưu của vecto y0 = (3/2; 51/4; 6) đối với bài toán đối ngẫu đó?

140
Bài tập
Bài 2. Cho bài toán QHTT (P) sau:
f (x)   8x1  6x 2  4x 3  5x 4  Min
 x1  2x 3  x 4  7
2x  x  x  3x   4
 1 2 3 4

 3x1  x 2  2x 3  6x 4  5
 x1  0; x 2  0; x 4  0

a. Hãy viết bài toán đối ngẫu (D) của (P)?


b. Chứng tỏ rằng x* = (3; 0; -2; 0) là một phương án của (P),
lợi dụng x* để tìm tập phương án tối ưu của bài toán (D). Tìm
phương án tối ưu của bài toán (D) có thành phần thứ 3 bằng 1
c. Hãy tìm tập phương án tối ưu của bài toán (P)
141
Bài tập

Bài 3. Giải bài toán sau bằng thuật toán đơn hình đối ngẫu
a. f  x   3x1  7 x2  10 x3  6 x4  min
2 x1  2 x2  2 x3  x4  12
 x2  4 x3  2 x4  4

 x  2 x  x  x  11
 1 2 3 4

 x j  0, j  1,4

ĐS: x*= (3, 4, 0,0). f(x*)= 37

142
Bài tập
Giải bài toán sau bằng thuật toán đơn hình đối ngẫu

b. f  x   x1  x2  2 x4  2 x5  3x6  min
 x1  x4  x5  x6  2
 x2  x4  x6  12

 x3  2 x4  4 x5  3 x6  9

 x j  0, j  1,6

ĐS: x*= (0, 8, 0,3, 0, 1). f(x*)= -17

143
Bài tập

Giải bài toán sau bằng thuật toán đơn hình


đối ngẫu
c. f  x   x1  3x2  x4  2 x6  min
 x1  x4  3x5  7 x6  5
 x
 2  x4  x5  x6  1
 x3  3x4  x5  10 x6  8

 x j  0, j  1,6

ĐS: x*= (0, 0, 3, 1, 2, 0). f(x*)= 1

144

You might also like