Bai Giang QHTT PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 70

TRƯỜNG ĐẠI HỌC SÀI GÒN

Bài giảng

QUY HOẠCH TUYẾN TÍNH


GV Thái Trần Phương Thảo

1/2015
MỤC LỤC
Chương 1: Bài toán quy hoạch tuyến tính
1.1. Vấn đề thực tiễn dẫn đến bài toán quy hoạch tuyến tính........................................1
1.2. Các dạng bài toán quy hoạch tuyến tính ..................................................................5
1.3. Phương pháp hình học giải bài toán quy hoạch tuyến tính ....................................11
1.4. Phương pháp đơn hình ...............................................................................................15
1.5. Hiện tượng suy biến ....................................................................................................28
Chương 2: Bài toán đối ngẫu
2.1. Định nghĩa bài toán đối ngẫu .....................................................................................39
2.2. Các định lý cơ bản.......................................................................................................42
2.3. Một số ứng dụng của bài toán đối ngẫu ....................................................................43
Chương 3: Bài toán vận tải
3.1. Phát biểu bài toán vận tải...........................................................................................52
3.2. Một số tính chất về bảng ............................................................................................54
3.3. Các phương pháp phân phối và thuật toán thế vị....................................................55
TÀI LIỆU THAM KHẢO ...................................................................................................68
Bài Giảng Quy Hoạch Tuyến Tính

CHƢƠNG 1: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH


1.1 Vấn đề thực tiễn dẫn đến lập mô hình bài toán tối ƣu tuyến tính
Ví dụ 1. Bài Toán lập kế hoạch sản xuất
Một xí nghiệp gỗ dự định sản xuất bàn, ghế và tủ. Biết rằng định mức tiêu hao các yếu tố sản xuất
khi làm ra 1 sản phẩm cho trong bảng sau:

Sản phẩm
Yếu tố sản xuất
Bàn Ghế Tủ
Gỗ loại 1 2 0.5 3
Gỗ loại 2 2 0.5 3.5

Ngoài ra biết giá bán 1 sản phẩm bàn, ghế, tủ lần lượt là 4; 2 và 6 triệu đồng. Xí nghiệp hiện có
100 tạ gỗ loại 1, 120 tạ gỗ loại 2
Hỏi xí nghiệp cần sản xuất bao nhiêu sản phẩm bàn, ghế và tủ sao cho thỏa mãn yêu cầu: gỗ loại 1
không được vượt quá 100 tạ, gỗ loại 2 không được vượt quá 120 tạ đồng thời tổng doanh thu được là
lớn nhất.
Giải
Gọi x1 , x2 , x3 lần lượt là số sản phẩm bàn, ghế và tủ cần sản xuất.

 Điều kiện về biến gọi (số sản phẩm phải là số thực không âm): x1  0, x2  0, x3  0

 Điều kiện gỗ loại 1 không được vượt quá 100 tạ: 2 x1  0.5 x2  3x3  100

 Điều kiện về gỗ loại 2 không được vượt quá 120 tạ: 2 x1  0.5 x2  3.5x3  120

 Tổng doanh thu thu được: z  4 x1  2 x2  6 x3  max .

Vậy ta thiết lập mô hình bài toán như sau: tìm x1 , x2 , x3 sao cho

max z  4 x1  2 x2  6 x3
2 x1  0.5 x2  3x3  100
đồng thời thỏa các điều kiện sau 
2 x1  0.5 x2  3.5 x3  120.
 x  0, x  0, x  0
 1 2 3

Ví dụ 2. Bài toán khẩu phần thức ăn


Biết yêu cầu các chất dinh dưỡng Protit, Lipit trong 1 ngày của 1 loại gia súc. Tỉ lệ 0
0 theo khối
lượng các chất dinh dưỡng có trong các loại thức ăn A,B,C và giá thức ăn cho trong bảng sau:

1
Bài Giảng Quy Hoạch Tuyến Tính

Tỉ lệ % trong các loại thức


Chất dinh Khối lƣợng Khối lƣợng tối
ăn
dƣỡng tối thiểu(g) đa(g)
A B C
Protit 40 Không hạn chế 60 50 30
Lipit 20 40 30 40 20
Giá(đồng/g) 32 40 25

Ngoài ra, do yêu cầu chế biến thức ăn tỉ lệ các loại thức ăn A và B phải là 2:3. Hãy lập mô hình
tìm khối lượng thức ăn cần mua trong 1 ngày sao cho tổng chi phí là nhỏ nhất.
Giải
Gọi x1 , x2 , x3 lần lượt là số g thức ăn loại A,B,C cần mua trong 1 ngày

 Điều kiện về biến gọi (số g thức ăn phải là số thực không âm): x1  0, x2  0, x3  0

 Điều kiện về chất dinh dưỡng


- Protit: 0.6 x1  0.5 x2  0.3x3  40

0.3 x1  0.4 x2  0.2 x3  40


- Lipit: 
0.3 x1  0.4 x2  0.2 x3  20
x1 2
- Tỉ lệ loại thức ăn A:B=2:3 có nghĩa là:   3x1  2 x2  3x1  2 x2  0
x2 3

 Tổng chi phí là: z  32 x1  40 x2  25 x3  min

Vậy ta thiết lập mô hình bài toán như sau: tìm x1 , x2 , x3 sao cho

min z  32 x1  40 x2  25 x3

0.6 x1  0.5 x2  0.3x3  40


0.3x  0.4 x  0, 2 x  40
 1 2 3

đồng thời thỏa các điều kiện sau: 0.3x1  0.4 x2  0.2 x3  20
3x  2 x  0
 1 2

 x1  0, x2  0, x3  0
Ví dụ 3. Bài toán pha cắt vật liệu
Một xí nghiệp may mặc cần sản xuất đúng 2000 quần và ít nhất 1000 áo. Mỗi tấm vải có 6 cách cắt
như sau:

2
Bài Giảng Quy Hoạch Tuyến Tính

Cách cắt Quần Áo


1 90 35
2 80 55
3 70 70
4 60 90
5 120 0
6 0 100

Hãy tìm phương án cắt quần áo sao cho tổng số tấm vải là ít nhất.
Giải
Gọi x j ( j  1, 2,...,6) là số tấm vải được cắt theo cách thứ j

 Điều kiện về biến gọi: x j  0

 Điều kiện về sản xuất quần xí nghiệp phải sản xuất đúng 2000 quần:
90 x1  80 x2  70 x3  60 x4  120 x5  (0 x6 )  2000

 Điều kiện về sản xuất áo: 35 x1  55 x2  70 x3  90 x4  (0 x5 )  100 x6  1000

 Tổng số tấm vải cần là: z  x1  x2  x3  x4  x5  x6  min

Vậy ta thiết lập mô hình bài toán như sau: tìm x j ( j  1, 2,...,6) sao cho

min z  x1  x2  x3  x4  x5  x6

90 x1  80 x2  70 x3  60 x4  120 x5  2000



đồng thời thỏa các điều kiện sau: 35 x1  55 x2  70 x3  90 x4  100 x6  1000
 x  0( j  1, 2,..., 6)
 j
Ví dụ 4. Bài toán vận tải
Cần vận chuyển xi măng từ 3 kho K1 , K 2 , K 3 tới 4 công trường xây dựng T1 , T2 , T3 , T4 . Biết rằng xi
măng có ở mỗi công trường xây dựng và giá cước vận chuyển (ngàn đồng) một tấn xi măng từ mỗi
kho tới mỗi công trường như sau:

3
Bài Giảng Quy Hoạch Tuyến Tính

Công trƣờng xây dựng


Kho xi măng
T1 : 130 tấn T2 : 160 tấn T3 : 120 tấn T4 : 140 tấn

20
K1 : 170 tấn 18 22 25
(ngàn đồng/tấn)
K 2 : 200 tấn 15 25 30 15

K 3 : 180 tấn 45 30 40 35

Tìm kế hoạch vận chuyển xi măng từ các kho tới các công trường sao cho mọi kho giao hết lượng
xi măng hiện có , mọi công trường nhận đủ lượng xi măng cần và tổng chi phí vận chuyển là nhỏ nhất.
Hãy lập mô hình bài toán.
Giải
Gọi xij (tấn) là lượng xi măng cần vận chuyển từ kho Ki (i  1, 2,3) tới công trường Tj ( j  1, 2,3, 4)

 Điều kiện về biến gọi (lượng xi măng là số thực không âm): xij  0, i  1, 2,3; j  1, 2,3, 4

 Điều kiện mọi kho giao hết lượng xi măng có:


Kho K1 giao hết lượng xi măng có: x11  x12  x13  x14  170

Kho K 2 giao hết lượng xi măng có: x21  x22  x23  x24  200

Kho K 3 giao hết lượng xi măng có: x31  x32  x33  x34  180

 Điều kiện mọi công trường nhận đủ xi măng cần:


Công trường T1 nhận đủ lượng xi măng cần: x11  x21  x31  130

Công trường T2 nhận đủ lượng xi măng cần: x12  x22  x32  160

Công trường T3 nhận đủ lượng xi măng cần: x13  x23  x33  120

Công trường T4 nhận đủ lượng xi măng cần: x14  x24  x34  140

 Tổng chi phí vận chuyển:


z  20 x11  18 x12  22 x13  25 x14

15 x21  25 x22  30 x23  15 x24

45 x31  30 x32  40 x33  35 x34  min

Vậy ta có mô hình bài toán là: Tìm xij , i  1, 2,3; j  1, 2,3, 4 sao cho

4
Bài Giảng Quy Hoạch Tuyến Tính

min z  20 x11  18 x12  22 x13  25 x14

15 x21  25 x22  30 x23  15 x24

45 x31  30 x32  40 x33  35 x34


thỏa các điều kiện sau:
 x11  x12  x13  x14  170
 x  x  x  x  200
 21 22 23 24
 x31  x32  x33  x34  180

 x11  x21  x31  130

 x12  x22  x32  160
 x13  x23  x33  120

 x14  x24  x34  140
 x  0, i  1, 2,3; j  1, 2,3, 4
 ij
1.2 Các dạng của bài toán tối ƣu tuyến tính (quy hoạch tuyến tính)
1.2.1 Dạng tổng quát
I. Phát biểu bài toán
Từ các ví dụ trên ta có bài toán qui hoạch tuyến tính tổng quát cụ thể như sau: tìm
x  ( x1 , x2 ,..., xn ) sao cho:

min(max) z  c1 x1  c2 x2  ...  cn xn

a11 x1  a12 x2  ...  a1n xn (, , ) b1 ,


a x  a x  ...  a x (, , ) b ,
 2
thỏa mãn các điều kiện ràng buộc sau:  21 1 22 2 2n n
(2)
...
am1 x1  am 2 x2  ...  amn xn (, , ) bm ,

x j (≥ 0,≤ 0, tùy ý), j  1, 2,..., n (3)

trong đó:
n
 z  c1 x1  c2 x2  ...  cn xn   ci xi :hàm mục tiêu.
i 1

n
 Hệ ràng buộc (2) gọi là ràng buộc chung bao gồm  aij x j (, ) bi , i  1, 2,..., m : ràng buộc
j 1

n
bất đẳng thức hoặc a x
j 1
ij j  bi , i  1, 2,..., m : ràng buộc đẳng thức.

5
Bài Giảng Quy Hoạch Tuyến Tính

 Hệ ràng buộc (3) gọi là ràng buộc dấu (ràng buộc về biến) x j (≥ 0,≤ 0, tùy ý), j  1, 2,..., n :

ràng buộc dấu.


Bài toán qui hoạch tuyến tính là bài toán tìm cực tiểu (hoặc cực đại) của hàm mục tiêu tuyến tính
với các ràng buộc đẳng thức và bất đẳng thức tuyến tính (bậc nhất theo các biến x j ).

II. Các định nghĩa cơ bản


 x  ( x1 , x2 ,..., xn ) thoả mãn điều kiện (2) và (3) được gọi là một phương án của bài toán
QHTT.
 Tập các phương án của bài toán QHTT được gọi là miền ràng buộc. Kí hiệu là D.
 x*  ( x1* , x2* ,..., xn* ) được gọi là một phương án tối ưu (hay nghiệm tối ưu) của bài toán min

nếu x  D, cT x*  cT x , với c T  (c1 , c 2 ,..., c n )T .

 x*  ( x1* , x2* ,..., xn* ) được gọi là 1 phương án tối ưu (hay nghiệm tối ưu) của bài toán max nếu

x  D, cT x*  cT x , với c T  (c1 , c 2 ,..., c n )T .

 Một ràng buộc được gọi là chặt đối với phương án x nếu khi ta thay x vào ràng buộc này thì
n
dấu “=” xảy ra, ví dụ a x
j 1
ij j  bi hoặc x j  0 .

 Một ràng buộc được gọi là lỏng đối với phương án x nếu khi ta thay x vào ràng buộc này thì
n n
dấu bất đẳng thức xảy ra, ví dụ  aij x j  bi hoặc
j 1
a x
j 1
ij j  bi .

 Phương án x  ( x1 , x2 ,..., xn ) của bài toán QHTT là phương án cực biên nếu x thỏa chặt n ràng
buộc độc lập tuyến tính.
 Phương án x  ( x1 , x2 ,..., xn ) của bài toán QHTT là phương án cực biên suy biến nếu số ràng
buộc thỏa chặt nhiều hơn số ràng buộc chặt độc lập tuyến tính.
Ví dụ 5. Xét bài toán QHTT sau:
min z  2 x1  x2  x3
2 x1  x2  2 x3  4

 x1  2 x2  x3  18
x , x x  0
 1 2, 3
Hỏi X  (0,8, 2); Y  (1,8,1) có phải là phương án cực biên của bài toán?
Giải

6
Bài Giảng Quy Hoạch Tuyến Tính

Xét X  (0,8, 2) , thay X vào hệ ràng buộc ta được:


-2(0) + 1(8) - 2(2) = 4 (rbc)
1(0) +2(8) +1(2) =18 (rbc)
x1  0 (rbc)

x2  8 (rbl)

x3  2 (rbl)

 2 1 2 
Ta trích ra hệ số các ràng buộc chặt, ta được:  1 2 1  , do định thức ma trận bằng 5  0 nên 3
1 0 0
 
ràng buộc thỏa chặt là độc lập tuyến tính. Vậy số rbc = 3= rbcdltt = số biến nên X  (0,8, 2) là phương
án cực biên của bài toán.
Xét Y  (1,8,1) , thay Y vào hệ ràng buộc ta được:
-2(1) + 1(8) – 2(1) = 4 (rbc)
1 + 2(8) + 1 = 18  18 (rbc)
x1  1  0 (rbl)

x2  8  0 (rbl)

x3  1  0 (rbl)

Vậy số rbcdltt = 2 < số biến nên Y  (1,8,1) không là phương án cực biên của bài toán.
Ví dụ 6. Xét bài toán QHTT sau:
min z  x1  x2
2 x1  x2  4
 x  2 x  3
 1 2

3 x1  x2  1
 x1 , x2  0

Chứng minh rằng X  (1, 2) là phương án cực biên suy biến.


Giải
Xét X  (1, 2) thay X vào hệ ràng buộc ta được
2(1) + 1(2) = 4 (rbc)
-1(1) + 2(2) = 3 (rbc)
3(1) – 1(2) = 1 (rbc)

7
Bài Giảng Quy Hoạch Tuyến Tính

x1  1  0 (rbl)

x2  2  0 (rbl)
Vậy X là 1 phương án của bài toán. Ta chứng minh X là phương án cực biên suy biến. Ma trận hệ số
2 1
 
của các ràng buộc thỏa chặt A   1 2   rank (A )  2 , nên trong 3 ràng buộc thỏa chặt chỉ có 2
 3 1
 
ràng buộc độc lập tuyến tính.
Nên X là phương án cực biên suy biến.
Chú ý: Ta có thể chuyển bài toán max về bài toán min nhờ mối quan hệ max z = - min(-z).
1.2.2 Dạng chuẩn
Xét bài toán có dạng
min z  c1 x1  c2 x2  ...  cn xn
a11 x1  a12 x2  ...  a1n xn  b1

a21 x1  a22 x2  ...  a2 n xn  b2

...
a x  a x  ...  a x  b
 m1 1 m 2 2 mn n m

 x j  0, j  1, 2..., m

Chú ý: Bài toán dạng chuẩn là bài toán có dạng tổng quát, thỏa các điều kiện sau:
- Các ràng buộc đều là “  ”.
- Các biến đều không âm.
Ràng buộc: ai1 x1  ai2 x2  ...  ain xn  bi  ai1 x1  ai2 x2  ...  ain xn  bi , ta có thể đưa ràng buộc “  ”
về ràng buộc “  ” bằng cách nhân hai vế của bất đẳng thức với -1 và đổi dấu bất đẳng thức.
1.2.3 Dạng chính tắc
I. Phát biểu bài toán
Xét bài toán QHTT có dạng sau:
min z  c1 x1  c2 x2  ...  cn xn
a11 x1  a12 x2  ...  a1n xn  b1

a21 x1  a22 x2  ...  a2 n xn  b2
thỏa mãn các điều kiện ràng buộc sau: 

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

 x j  0, j  1,..., n

Ta có thể biểu diễn lại bài toán trên dưới dạng ma trận:
8
Bài Giảng Quy Hoạch Tuyến Tính

min cT x
Ax  b
x0
 x1   a11 a12 ... a1n   b1 
     
 x2  a a22 ... a2 n  b
trong đó: c  (c1 , c2 ,..., cn ) , x 
T
, A   21 ,b   2 
   ... ... ... ...   
     
 xn   am1 am 2 ... amn   bn 
Chú ý: Bài toán dạng chính tắc là bài toán có dạng tổng quát, thỏa các điều kiện sau:
- Các ràng buộc đều là ràng buộc đẳng thức “=”.
- Các biến đều không âm.
II. Cách chuyển bài toán tổng quát về dạng chính tắc
a) Ràng buộc dấu:
Nếu x j  0 thì ta đặt x 'j   x j  0 .

Nếu x j tùy ý ta thay x j  x 'j  x ''j với điều kiện x 'j  0, x ''j  0 .

b) Ràng buộc chung:


Nếu ai1 x1  ai2 x2  ...  ain xn  bi ta cộng thêm biến bù vào vế trái để cân bằng

ai1 x1  ai2 x2  ...  ain xn + xi'+n = bi , xi'+n  0 (hệ số của biến bù trên hàm mục tiêu là 0)

Nếu ai1 x1  ai2 x2  ...  ain xn  bi ta trừ đi biến bù vào vế trái để cân bằng

ai1 x1  ai2 x2  ...  ain xn - xi'+n = bi , xi'+n  0 (hệ số của biến bù trên hàm mục tiêu là 0).

(i '  1,2,...) .
Chú ý:
Khi ta chuyển bài toán QHTT ở dạng tổng quát về dạng chính tắc thì từ phương án tối ưu của bài
toán ban đầu ta suy ra được phương án tối ưu của bài toán dạng chính tắc và ngược lại (nếu một trong
hai bài toán đó không có phương án tối ưu thì bài toán còn lại cũng không có phương án tối ưu). Do
đó, việc giải bài toán ban đầu là tương đương với việc giải bài toán dạng chính tắc.
Ví dụ 7. Chuyển các bài toán sau đây về dạng chính tắc
min z  2 x1  2 x2  x3
min z   x1  2 x2  x3
3 x1  4 x2  x3  16
 2 x1  x2  3x3  9
a) (P)  x1  2 x2  3 x3  12 b) (P) 
 4 x1  3x2  x3  1
2 x1  5 x2  4 x3  15  x  0, x  0
 x1  0, x2  0, x3  0  1 2

9
Bài Giảng Quy Hoạch Tuyến Tính

Giải
min z  2 x1  2 x2  x3
3x1  4 x2  x3  x4  16

 
a) P  x1  2 x2  3x3  12
2 x  5 x  4 x  x5 
 1 2 3 15
x1  0, x2  0, x3  0, x4  0, x5 0

b) Do bài toán không đề cập đến biến x3 nên biến x3 là tùy ý

x2'   x2 ( x2'  0)
Đặt thay thế các biến trên vào hàm mục tiêu và các ràng buộc ta được bài
x3  x3'  x3" ( x3'  0, x3"  0)
toán dạng chính tắc như sau:
min z '   x1  2 x2'  x3'  x3"
2 x1  x2'  3x3'  3x3"  9
 
P 
4 x1  3 x2  x3  x3  1
' ' "


 x1  0, x2  0, x3  0, x3  0
' ' "

III. Một số tính chất đặc trƣng của bài toán QHTT dạng chính tắc
Định lí 1. (Tính chất đặc trƣng của phƣơng án cực biên)
Một phương án X  ( x1 , x2 ,..., xn ) của bài toán QHTT dạng chính tắc là phương án cực biên nếu và

chỉ nếu vectơ cột A j ứng với thành phần x j  0 là độc lập tuyến tính.

Ví dụ 8. Xét bài toán QHTT sau:


min z   x1  x2  x3
 x1  x2  2 x3  2

 x1  x2  0
 x  0, x  0, x  0
 1 2 3

2 2 1
Hỏi các vectơ nào sau đây là phương án cực biên của bài toán X  (1,1, 0), Y  (0, 0,1), Z  ( , , ) .
3 3 3
Giải
X , Y , Z thỏa hệ ràng buộc nên cả 3 vectơ trên đều là 1 phương án.

 1 1  2
Ta có A1    , A2    , A3   
 1  1 0

10
Bài Giảng Quy Hoạch Tuyến Tính

1 1 
Xét X  (1,1,0) có 2 thành phần dương ứng với biến x1 , x2 , det    2  0 nên X là phương
1 1
án cực biên.
Xét Y  (0, 0,1) có 1 thành phần dương ứng với biến x3 , hệ chỉ gồm 1 vectơ A3  (2, 0)  (0, 0) : A3
độc lập tuyến tính nên Y là phương án cực biên.
 2 2 1
Xét Z   , ,  có 3 thành phần dương ứng với biến x1 , x2 , x3 hệ vectơ { A1 , A2 , A3} phụ thuộc
 3 3 3
tuyến tính vì A1  A2  A3  0 nên Z không là phương án cực biên.

Hệ quả 1. Xét bài toán QHTT dạng chính tắc, nếu rank ( A)  m thì phương án cực biên gọi là
không suy biến nếu có đúng m thành phần dương. Nếu phương án cực biên có ít hơn m thành phần
dương thì được gọi là phương án cực biên suy biến.
Ví dụ 9. Xét bài toán QHTT như ví dụ 8. Chứng minh rằng X  (1,1,0) là phương án cực biên
không suy biến, Y  (0, 0,1) là phương án cực biên suy biến.
Giải
Biến đổi A thành ma trận bậc thang rút gọn ta được rank ( A)  2 , X có 2 thành phần dương nên X
là phương án cực biên không suy biến. Y có 1 thành phần dương nên là phương án cực biên suy biến.
1.3 Phƣơng pháp hình học giải bài toán qui hoạch tuyến tính
Đối với bài toán qui hoạch tuyến tính 2 biến ta có thể dùng phương pháp hình học để giải. Bài
toán qui hoạch tuyến tính 2 biến có dạng như sau:
min z  c1 x1  c2 x2
ai1 x1  ai2 x2 (, , )bi

 x1 , x2 (, )0
1.3.1 Một số vấn đề cần lƣu ý khi giải bằng phƣơng pháp hình học
 ax  by  c
 Đường thẳng ax  by  c chia mặt phẳng Oxy thành 2 miền  . Ta muốn biết miền
 ax  by  c
nào thỏa ax  by  c thì ta thay 1 điểm bất kì nằm ngoài đường thẳng (thông thường lấy điểm
(0,0) ) thay tọa độ điểm đó vào bất phương trình trên nếu thỏa thì miền đó là miền cần tìm.

 Đường thẳng  d  : c1 x1  c2 x2  k gọi là đường mức , có vectơ pháp tuyến n  (c1 , c2 ) .

- Nếu di chuyển ( d ) cùng chiều với n thì mức k tăng lên.

- Nếu di chuyển ( d ) ngược chiều với n thì mức k giảm xuống.

11
Bài Giảng Quy Hoạch Tuyến Tính

1.3.2 Các bƣớc giải bài toán QHTT(2 biến) bằng phƣơng pháp hình học
Bƣớc 1: Vẽ miền chấp nhận được D (miền giao của các ràng buộc).
 Nếu D   kết luận bài toán không có phương án tối ưu
o min  
o max  
 Nếu D   tiếp tục bước 2.

Bƣớc 2: Vẽ đường mức  d  : c1 x1  c2 x2  k (chọn k=0), xác định vectơ pháp tuyến n  (c1 , c2 ) .

Bƣớc 3: Dịch chuyển đường mức theo bài toán min hoặc max để tìm phương án tối ưu.

o Bài toán min: dịch chuyển ( d ) song song ngược chiều với n .

o Bài toán max: dịch chuyển ( d ) song song cùng chiều với n .
Việc dịch chuyển đến khi nào đường mức chạm đến điểm cuối cùng của miền D thì ngưng, có 3
trường hợp có thể xảy ra:
TH1: Có duy nhất 1 phương án tối ưu có nghĩa là chỉ có đúng duy nhất 1 điểm khi cho ( d ) trượt
khỏi miền D , thay tọa độ điểm đó vào hàm mục tiêu ta tìm được min z hoặc max z .
TH2: Bài toán có vô số phương án tối ưu thay tọa độ 1 điểm cuối cùng tuỳ ý vào hàm tiêu ta tìm
được min z hoặc max z .
TH3: Bài toán có phương án nhưng không có phương án tối ưu (miền D không kín) có nghĩa là
( d ) dịch chuyển mãi nhưng không tìm được diểm cuối cùng.
min  
max  
Ví dụ 10. Giải các bài toán sau bằng phương pháp hình học
min(max) z   x1  2 x2 min(max) z  2 x1  2 x2
2 x1  x2  6  x1  4 x2  8
a)  x1  x2  2 b)  x1  1
 
 x1  x3  3  x1  3
 x1  0, x2  0  x2  0

min(max) z  2 x1  2 x2 max(min) z  3x1  x2


 x1  x2  5  x1  2 x2  2
c) 2 x1  x2  4 d)  x1  2 x2  2
 
 x1  2 x2  4 3 x1  2 x2  4
 x1  0, x2  0  x1  0

12
Bài Giảng Quy Hoạch Tuyến Tính

min z  2 x1  3 x2
 x1  x2  8
e)  x1  2 x2  8

2 x1  x2  10
 x1  0, x2  0

Giải
a) Bài toán min: dịch chuyển đường mức ngược chiều với vectơ pháp tuyến ta thấy điểm cuối cùng mà
đường mức còn cắt miền chấp nhận được có toạ độ (0,6). Vậy bài toán có duy nhất 1 phương án tối ưu
là x1  0, x2  6, min z  0  2(6)  12 .
Bài toán max: dịch chuyển đường mức cùng chiều với vectơ pháp tuyến ta thấy điểm cuối cùng mà
đường mức còn cắt miền chấp nhận được có toạ độ (0,3). Vậy bài toán có duy nhất 1 phương án tối ưu
là x1  0, x2  3, max z  0  2(3)  6 .

b)

13
Bài Giảng Quy Hoạch Tuyến Tính

Bài toán min: dịch chuyển đường mức ngược chiều với vectơ pháp tuyến ta thấy điểm cuối cùng
mà đường mức còn cắt miền chấp nhận được có toạ độ B(1,0). Vậy bài toán có duy nhất 1 phương án
tối ưu là x1  1, x2  0, min z  2 .
Bài toán max: dịch chuyển đường mức cùng chiều với vectơ pháp tuyến ta thấy điểm cuối cùng mà
đường mức còn cắt miền chấp nhận được là điểm A. A là giao điểm của đường thẳng x1  4 x2  8 và

đường thẳng x1  3 . Giải hệ phương trình sau ta tìm được toạ độ của điểm A.

x  3
 x1  4 x2  8  1
  5
 x1  3  x2 
 4
17
max z 
2

c)

Bài toán min: dịch chuyển đường mức ngược chiều với vectơ pháp tuyến ta thấy điểm cuối cùng
mà đường mức còn cắt miền chấp nhận được là tất cả các điểm thuộc đoạn AB. Vậy bài toán có vô số
phương án tối ưu và tất cả những điểm thuộc đoạn AB đều là những phương án tối ưu của bài toán và
giá trị z đều bằng nhau. Ta chọn điểm A để tính z, A là giao điểm của hệ:
 x1  x2  5 x  2
  1
 x1  2 x2  4  x2  3
min z  10.
Bài toán max: dịch chuyển đường mức cùng chiều với vectơ pháp tuyến ta thấy điểm cuối cùng mà
đường mức còn cắt miền chấp nhận được có toạ độ O(0,0). Vậy bài toán có duy nhất 1 phương án tối
ưu là x1  0, x2  0, max z  0 .

14
Bài Giảng Quy Hoạch Tuyến Tính

d)

Bài toán max: dịch chuyển đường mức cùng chiều với vectơ pháp tuyến ta thấy bài toán có phương
án nhưng không có phương án tối ưu max   .
Bài toán min: dịch chuyển đường mức ngược chiều với vectơ pháp tuyến ta thấy điểm cuối cùng
mà đường mức còn cắt miền chấp nhận được có toạ độ A(0,1). Vậy bài toán có duy nhất 1 phương án
tối ưu là x1  0, x2  1, min z  1 .
e)

Ta nhận thấy miền ràng buộc chung D   . Vậy bài toán không có phương án tối ưu.
1.4 Phƣơng pháp đơn hình
Do bài toán QHTT có 1 số tính chất đặc biệt sau:
1) Miền ràng buộc của bài toán QHTT là 1 tập lồi đa diện với số điểm cực biên là hữu hạn.
2) Nếu bài toán QHTT có nghiệm tối ưu thì nghiệm tối ưu chính là đỉnh.

15
Bài Giảng Quy Hoạch Tuyến Tính

Do đó, nội dung của phương pháp đơn hình là xuất phát từ 1 đỉnh của miền chấp nhận được, ở mỗi
bước lặp ta đi sang 1 đỉnh kề của nó có giá trị hàm mục tiêu nhỏ hơn. Vì số đỉnh là hữu hạn nên sau
hữu hạn bước ta sẽ đi đến đỉnh tối ưu.
1.4.1 Biến cơ sở, biến không cơ sở
Biến cơ sở là biến chỉ xuất hiện 1 lần duy nhất trong 1 ràng buộc chung và có hệ số là 1.
Biến không cơ sở là biến xuất hiện ít nhất trong 2 ràng buộc trở lên.
1.4.2 Thuật toán đơn hình
Ý tưởng thuật toán
Bước 1: Xuất phát từ 1 đỉnh x 0 của miền ràng buộc chung.
Bước 2: Nếu x 0 là phương án tối ưu thì dừng thuật toán. Ngược lại sang bước 3.
Bước 3: Từ đỉnh x 0 tìm cách di chuyển đến đỉnh kề tiếp theo của miền ràng buộc sao cho đỉnh mới tốt
hơn x 0 (theo nghĩa giá trị hàm mục tiêu nhỏ hơn).
Bước 4: Lặp lại bước 2,3 thay x 0 bằng x1 .
Điều kiện áp dụng
- Bài toán phải ở dạng chính tắc với các bi  0 .
- Mỗi ràng buộc chung phải có biến cơ sở tương ứng.
Nhận xét
Để áp dụng thuật toán đơn hình thì bài toán QHTT phải có phương án cực biên ban đầu.
Chi tiết thuật toán
Bƣớc 1: Kiểm tra điều kiện áp dụng phƣơng pháp đơn hình
Nếu thỏa qua bước 2.
Nếu không thỏa áp dụng phương pháp tạo biến giả để tìm phương án cực biên ban đầu (sẽ
được trình bày ở mục 1.4.3).
Bƣớc 2: Viết bảng đơn hình xuất phát tƣơng ứng

16
Bài Giảng Quy Hoạch Tuyến Tính

Biến Hệ số ứng
Tất cả các biến
cơ với biến cơ Phƣơng
sở sở án Hệ số ứng với các biến trên
xB cB hàm mục tiêu

x1 c1 b1 a11 a12 . . . a1n

x2 c2 b2 a21 a22 a2n

. . . . . .
. . . . . .
. . . . . .
xm cm bm am1 am 2 . . . amn

z 0 1 2 . . . n

Phương án cực biên của bài toán là: ( x10 , x20 ,..., xm0 , xm0 1 ,..., xn0 )  (b1, b2 ,..., bm ,0,...,0)

0  z ( x 0 ) .
m
 j   cBi aij  c j , j  1,..., n được gọi là các hệ số ước lượng của các biến x j , j  1, 2,..., n .
i 1

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


- Nếu  j  0, j  1, 2,..., n đối với bài toán min thì ta dừng thuật toán và kết luận dựa vào 2

trường hợp sau đây:


1. Bài toán có duy nhất một phương án tối ưu nếu tất cả các biến không cơ sở (biến
không nằm trong cột đầu tiên) đều có hệ số ước lượng <0.
2. Nếu có hệ số ước lượng ứng với biến không cơ sở =0.
Giả sử ứng với  k  0 (với cột k là cột chứa biến không cơ sở)


 nhöõng giaù trò x cuûa coät phöông aùn  
Đặt   min   . Lƣu ý ta không chia cho
 nhöõng giaù trò aij cuûa coät öùng vôùi k  0 
 

những giá trị aij  0 và aij  0 . Do đó,

Nếu   0 thì bài toán có phương án tối ưu duy nhất. Ngược lại, bài toán có vô số phương án tối
ưu.
- Ngược lại, nếu  j  0 đối với bài toán min thì ta qua bước 4.

17
Bài Giảng Quy Hoạch Tuyến Tính

Bƣớc 4: Xác định biến vào cơ sở, biến ra cơ sở, phần tử then chốt
- Quy tắc chọn biến vào (  ): biến vào x j sẽ được chọn ứng  j dương nhất. Khi đó, ta được cột

then chốt là cột chứa biến vào (nếu có nhiều biến vào cùng 1 lúc thì ta chọn bất kì trong chúng).
Nếu các hệ số aij , i  1,..., m của cột then chốt đều âm  0 thì ta dừng thuật toán và kết luận bài

toán QHTT có biến vào mà không có biến ra nên bài toán không có phương án tối ưu min z   .
Ngược lại aij  0 thì ta tiếp tục chọn biến ra như sau:

b
 
- Quy tắc chọn biến ra (  ): biến ra: min  i , aij  0, i  1,..., m  (nếu có nhiều biến ra cùng lúc

 aij 
thì ta chọn bất kì trong chúng). Khi đó dòng then chốt sẽ là dòng chứa biến ra.
- Phần tử then chốt chính là phần tử nằm trên giao điểm của cột then chốt và dòng then chốt.
Bƣớc 5: Cải tiến phƣơng án bằng cách thực hiện phép biến đổi Gauss-Jordan
Bƣớc 5.1: Nếu phần tử then chốt =1 thì qua bước 5.2. Ngược lại phần tử then chốt  1 thì ta
nhân hàng then chốt với nghịch đảo của phần tử then chốt để phần tử then chốt =1 rồi tiếp tục sang
bước 5.2.
Bƣớc 5.2: Dùng phép biến đổi sơ cấp trên dòng để biến đổi tất cả các phần tử  0 trên cột then
chốt thành số 0.
Bƣớc 6: Quá trình đƣợc lặp lại kể từ bƣớc 3.
Chú ý:
Bài toán QHTT ban đầu khi ta thêm các biến bù vào để đưa bài toán về dạng chính tắc với các bi  0
được gọi là bài toán phụ. Từ phương án tối ưu của bài toán phụ ta suy ra phương án tối ưu của bài toán
ban đầu như sau:
 Nếu bài toán phụ không có phương án tối ưu thì bài toán gốc cũng không có phương án tối ưu.
 Nếu bài toán phụ có phương án tối ưu thì bài toán gốc cũng có phương án tối ưu. Khi đó, hàm
mục tiêu của hai bài toán bằng nhau và phương án tối ưu của bài toán gốc được suy ra từ
phương án tối ưu của bài toán phụ bằng cách bỏ đi các biến bù.
Ví dụ 11.
Giải các bài toán QHTT sau bằng phương pháp đơn hình

18
Bài Giảng Quy Hoạch Tuyến Tính

min z  3x1  x2  2 x3  3 x4  2 x5  4 x6
min z  5 x1  5 x2
2 x1  x3  x4  2 x6  5
2 x  x  10 3x  x
a)  1 2 b)  1  2 x4  x6  11
 x1  2 x2  8
2

 x  0, x  0  x1  2 x4  x5  x6  5
 1 2
 x j  0, j  1,..., 6

min z  2 x1  2 x2
min z   x1  3x2
 x1  x2  5
 x  2 x2  4
c)  2 x1  x2  4 d)  1
  x2  6
  x1  2 x2  4  x  0, x  0
 x1  0, x2  0  1 2

Giải
a) Chuyển bài toán về dạng chính tắc
min z  5 x1  5 x2
2 x1  x2  x3  10

 x1  2 x2  x4  8
 x  0, x  0, x  0, x  0
 1 2 3 4

Lập bảng đơn hình xuất phát



x1 x2 x3 x4
xB cB PA 5 5 0 0
 x3 0 10 2 1 1 0
x4 0 8 1 2 0 1
z 0 5 5 0 0


1 1
x1 5 1 0
2 2
3 1
 x4 3 0  1
2 2
5 5
z 25 0  0
2 2

19
Bài Giảng Quy Hoạch Tuyến Tính

2 1
x1 4 1 0 
3 3
1 2
x2 2 0 1 
3 3
5 5
z 30 0 0  
3 3
Do các hệ số ước lượng ứng với các biến không cơ sở ( x3 , x4 ) đều khác 0 nên bài toán phụ chỉ có 1

phương án tối ưu duy nhất là (4, 2, 0, 0) với min z  30 và suy ra bài toán ban đầu cũng có 1 phương
án tối ưu duy nhất là (4, 2) với min z  30 .
b) Bài toán thỏa điều kiện áp dụng
Lập bảng đơn hình xuất phát

x1 x2 x3 x4 x5 x6
xB cB PA 3 1 2 3 2 4
 x3 2 5 2 0 1 1 0 2
x2 1 11 3 1 0 2 0 1
x5 2 5 1 0 0 2 1 1
z 31 6 0 0 5 0 3


x1 x2 x3 x4 x5 x6
5 1 1
x1 1 0 0 1
2 2 2
7 3 1
x2 0 1  0 2
2 2 2
5 1 3
 x5 0 0  1 0
2 2 2
z 16 0 0 3 2 0 3

5 2 1
x1 1 0 0  1
3 3 3
8 4 1
x2 0 1  0  2
3 3 3
5 1 2
x4 0 0  1 0
3 3 3
38 7 4
z 0 0  0  3
3 3 3
20
Bài Giảng Quy Hoạch Tuyến Tính

Do các hệ số ước lượng ứng với các biến không cơ sở ( x3 , x5 , x6 ) đều khác 0 nên bài toán chỉ có 1

5 8 5 38
phương án tối ưu duy nhất là ( , , 0, , 0, 0) với min z  .
3 3 3 3
c) Chuyển bài toán về dạng chính tắc
min z /  2 x1  2 x2
 x1  x2  x3  5
2x  x   4
 1 2 x4


 1 x  2 x 2  x5  4
 x1 , x2 , x3 , x4 , x5  0

Lập bảng đơn hình xuất phát



x1 x2 x3 x4 x5
xB cB PA 2 2 0 0 0
x3 0 5 1 1 1 0 0
 x4 0 4 2 1 0 1 0
x5 0 4 1 2 0 0 1
z/ 0 2 2 0 0 0


PA x1 x2 x3 x4 x5
3 1
 x3 3 0 1  0
2 2
1 1
x1 2 1  0 0
2 2
3 1
x5 6 0 0 1
2 2
z/ 4 0 3 0 1 0
2 1
x2 2 0 1  0
3 3
1 1
x1 3 1 0 0
3 3
x5 3 0 0 1 1 1
z/ 10 0 0 2 0 0

21
Bài Giảng Quy Hoạch Tuyến Tính

Do hệ số ước lượng ứng với biến không sơ sở x4 bằng 0, trong trường hợp này ta tìm được

 3 3
  min  ,   3 , nên bài toán phụ có vô số phương án tối ưu và phương án tối ưu ứng với bảng
1/ 3 1 
đơn hình là (3, 2, 0, 0,3) với min z /  10 . Nên bài toán gốc cũng có vô số phương án tối ưu và một
trong những phương án tối ưu của bài toán ban đầu là (3, 2 ) với min z  10 .

d) Chuyển bài toán về dạng chính tắc


min z /   x1  3x2
 x1  2 x2  x3  4

 x2  x4  6
x , x , x , x  0
 1 2 3 4
Lập bảng đơn hình xuất phát

x1 x2 x3 x4
xB cB PA 1 3 0 0
x3 0 4 1 2 1 0
x4 0 6 0 1 0 1
z/ 0 1 3 0 0
Có biến vào mà không có biến ra nên hàm mục tiêu không bị chặn dưới min z   . Vậy bài toán phụ
không có phương án tối ưu nên suy ra bài toán ban đầu cũng không có phương án tối ưu.
Chú ý:
Trong trường hợp bài toán QHTT có vô số phương án tối ưu (không tồn tại  hoặc tồn tại   0 ),
ta có thể xác định một phương án tối ưu khác hay phương án tối ưu tổng quát của bài toán.
Bước 1: Tìm vectơ chỉ phƣơng (nếu có)
Chọn các cột ứng với các hệ số ước lượng của biến không cơ sở bằng không. Nếu tồn tại cột r
thỏa air  0, i  1, m

1 taïi vò trí thöù r



- Tìm vectơ chỉ phương bằng cách đặt tr  air taïi vò trí chöùa bieán cô sôû
0 taïi vò trí khoâng chöùa bieán cô sô

Lưu ý: có bao nhiêu biến thì vectơ tr sẽ có bấy nhiêu thành phần
- Lặp lại quá trình trên với các cột còn lại.

22
Bài Giảng Quy Hoạch Tuyến Tính

Bước 2: Tìm phƣơng án cực biên tối ƣu khác (nếu có)


Chọn các cột ứng với các hệ số ước lượng của biến không cơ sở bằng không. Nếu tồn tại cột k sao
cho chỉ cần aik  0 , thì ta chọn phần tử aik là phần tử trụ và thực hiện phép biến đổi Guass- Jordan để
xác định phương án tối ưu mới.
Lặp lại quá trình trên cho đến khi phương án tối ưu mới vừa tìm trùng với phương án tối ưu đã có
ở bảng đơn hình trước thì ngưng.
Giả sử ta tìm được k phương án cực biên tối ưu khác nhau, và r vectơ chỉ phương thì ta sẽ được
phương án tối ưu tổng quát như sau:
k r k
x  i xi  i ti với i  0, i  1,..., k và   i  1 , i  0, i  1,..., r .
i 1 i 1 i1

Ví dụ 12. Xét bài toán QHTT sau


min z  27 x1  2 x2  x3  14 x4  2 x5  6 x6  5 x7
2 x1  x2 3 x4 2 x6 2 x7  4

 3 x1  x3 4 x4  x7  3
 5 x 2 x4  x5  x6  x7  5
 1

xi  0, i  1, , 7

Lập bảng đơn hình xuất phát


x1 x2 x3 x4 x5 x6 x7
xB cB PA 27 2 1 14 2 6 5
x2 2 4 2 1 0 3 0 2 2
 x3 1 3 3 0 1 4 0 0 1
x5 2 5 5 0 0 2 1 1 1
z 5 18 0 0 12 0 0 6

23
Bài Giảng Quy Hoạch Tuyến Tính


x1 x2 x3 x4 x5 x6 x7
xB PA
7 1 3 5
 x2 1  0 0 2
4 4 4 4
3 3 1 1
x4  0 1 0 0
4 4 4 4
7 7 1 1
x5  0  0 1 1
2 2 2 2
z 14 9 0 3 0 0 0 3


x1 x2 x3 x4 x5 x6 x7
xB PA
7 1 4 3 8
x7  0 0  1
5 5 5 5 5
2 4 1 2 2
 x4   1 0 0
5 5 5 5 5
14 18 2 1 9
x5    0 1 0
5 5 5 5 5
91 48 12 6 24
z     0 0 0
5 5 5 5 5

x1 x2 x3 x4 x5 x6 x7
xB PA
x7 3 3
0 1 4 0 0 1
1 5
x6 1 2  1 0 1 0
2 2
1 9
x5 1 0 2  1 0 0
2 2
23 0 0 6 12 0 0 0

Bảng đơn hình là bảng đơn hình tối ưu với phương án tối ưu hiện tại là x7  3, x6  1, x5  1 . Ta

thấy ứng với hệ số ước lượng của biến không cơ sở 1  2  0

24
Bài Giảng Quy Hoạch Tuyến Tính

Tại cột thứ 1 ta tìm được vectơ chỉ phương t1  (1,0,0,0,0,2,3) , cột thứ 2 ta tìm được phần tử trụ

1
a32  (tìm phần tử trụ theo quy tắc tạo min). Do đó ta sẽ xoay bảng đơn hình hiện tại thành bảng
2
đơn hình mới với x2 sẽ là biến vào cơ sở và x5 là biến ra cơ sở ta được phương án cực biên mới

x1 x2 x3 x4 x5 x6 x7
xB PA
x7 3 3 0 1 4 0 0 1
x6 2 2 0 1 2 1 1 0
x2 2 0 1 4 9 2 0 0
23 0 0 6 12 0 0 0

Tại bảng đơn hình này ta xác định được phương án cực biên tối ưu khác là  x7 , x6 , x2   (3,2,2) ,

và ứng với cột thứ nhất ta tìm được vectơ chỉ phương t1  (1,0,0,0,0,2,3) và ứng với cột thứ 2 ta tìm

được phần tử trụ phần tử trụ là a35  2  0 thì lúc này biến cơ sở của ta sẽ là  x7 , x5 , x2  trùng với bảng

trên.
Ta tìm được 2 phương án cực biên tối ưu và 1 vectơ chỉ phương. Vậy phương án tối ưu tổng quát

x  1 x1   2 x2   t1  1 (0, 0, 0, 0,1,1,3)   2 (0,2, 0, 0, 0,2,3)   (1, 0, 0, 0, 0,2,3)
 (  ,2  2 , 0, 0,  ,2    2  ,3  3 )

Với 1 ,2  0, 1  2  1,   0 .
1.4.3 Thuật toán đơn hình mở rộng
Mục 1.4.2 ta đã biết chuyển 1 bài toán QHTT bất kì về dạng chính tắc. Do đó, điều kiện để áp
dụng thuật toán đơn hình là tất cả các hệ số bi  0 và mỗi ràng buộc chung phải tìm được biến cơ sở
tương ứng. Nếu điều kiện (1) bị vi phạm thì ta dễ dàng xử lí bằng cách nhân 2 vế của ràng buộc bị vi
phạm với -1. Vấn đề đặt ra ở đây là làm thế nào để tìm được biến cơ sở cho mỗi ràng buộc chung. Trở
lại ví dụ 11 câu b ta dễ dàng tìm được biến cơ sở ứng với ràng buộc thứ 1, thứ 2 và thứ 3 lần lượt là
x3 , x2 và x5 chính nhờ các biến cơ sở giúp ta tìm được phương án cực biên ban đầu bằng cách cho các

biến không sơ sở bằng 0. Tuy nhiên, trong thực tế có nhiều bài toán QHTT không thỏa điều kiện (2).
Ví dụ 13.

25
Bài Giảng Quy Hoạch Tuyến Tính

min z  x1  x2
x1  x2  1
2 x1  x2  2
x1  0, x2  0
Ví dụ 13 ta không tìm được biến cơ sở ứng với ràng buộc chung thứ 1 cũng như ràng buộc chung
thứ 2.
Ví dụ 14.
min z  2 x1  3 x2  4 x3  x4
 x1  x2  x3  x4  x5  5
2 x  2 x  3x  18
 1 2 3

2
 1 x  x 2  2 x4  x6  8
 x j  0, j  1, 2,...6

Ví dụ 14 ta chỉ tìm được biến cơ sở cho ràng buộc chung thứ 1 là x5 nhưng đối với ràng buộc
chung thứ 2 và thứ 3 ta không tìm được biến cơ sở. Do đó, ta không tìm được phương án cực biên ban
đầu nên chưa thể áp dụng được thuật toán đơn hình.
Vì vậy để áp dụng được thuật toán đơn hình ta sử dụng phương pháp tạo biến giả .
Ý tưởng của phương pháp tạo biến giả
Bước 1: Làm cho bài toán có phương án cực biên ban đầu.
Bước 2: Làm cho bài toán trở thành tối ưu.
Chi tiết thuật toán (áp dụng cho bài toán min)
Bƣớc 1: Làm cho bài toán có phương án cực biên ban đầu.
- Đưa bài toán về dạng chính tắc với các bi  0.
- Ứng với mỗi ràng buộc chung ta tìm biến cơ sở cho ràng buộc đó. Nếu ràng buộc đó không có
biến cơ sở ta đưa vào 1 biến giả cho mỗi ràng buộc =.
- Ứng với mỗi biến giả xi ta cộng Mxi vào hàm mục tiêu .
Bƣớc 2: Áp dụng thuật toán đơn hình để giải bài toán.
Chú ý:
Bài toán QHTT ban đầu khi ta thêm các biến bù và các biến giả vào để đưa bài toán về dạng chính tắc
với các bi  0 được gọi là bài toán mở rộng hay bài toán (M). Từ phương án tối ưu của bài toán (M) ta
suy ra phương án tối ưu của bài toán ban đầu như sau:

26
Bài Giảng Quy Hoạch Tuyến Tính

 Bài toán (M) có phương án tối ưu với các biến giả đều bằng không thì bài toán ban đầu sẽ có
phương án tối ưu bằng cách bỏ đi các biến giả và các biến bù.
 Nếu phương án tối ưu có các ẩn giả khác không thì kết luận bài toán ban đầu không có
phƣơng án tối ƣu.
Ví dụ 15. Giải bài toán QHTT sau:
min z   x1  x2  3x3
 x1  x2  20
x  x3  5
 1
 (*)
 x2  x3  10
 x1  0, x2  0, x3  0

Chuyển bài toán về dạng chính tắc với các bi  0

min z   x1  x2  3x3
 x1  x2  x4  20
x  x3  5
 1

 x2  x3  x5  10
 x1 , x2 , x4 , x5  0

Ta không tìm được biến cơ sở do đó ta cũng không tìm được phương án cực biên ban đầu. Áp
dụng phương pháp tạo biến giả ta chuyển bài toán (*) thành:
min z '   x1  x2 3x3  Mx6  Mx7
x1  x2  x4  20
x1  x3  x6  5
x2  x3  x5  x7  10
x1 , x2 , x3 , x4 , x5 , x6 , x7  0

Vậy ta đã tìm được biến cơ sở cho mỗi ràng buộc chung theo thứ tự lần lượt là x4 , x6 và x7 cũng
như 1 phương án cực biên ban đầu. Do đó, ta có thể áp dụng được thuật toán đơn hình.
Lập bảng đơn hình xuất phát

27
Bài Giảng Quy Hoạch Tuyến Tính

PA x1  x2 x3 x4 x5 x6 x7
x4 20 1 1 0 1 0 0 0
x3 5 1 0 1 0 0 1 0
 x7 5 1 1 0 0 1 1 1
z' 5M  15  M  2 M  1 0 0 M 2M  3 0

PA x1 x2 x3 x4 x5 x6 x7
x4 15 2 0 0 1 1 1 1
x3 5 1 0 1 0 0 1 0
x2 5 1 1 0 0 1 1 1
z' 10 3 0 0 0 1  M  4  M  1
Do các hệ số ước lượng ứng với các biến không cơ sở ( x1 , x5 , x6 , x7 ) đều khác 0 nên bài toán (M)

chỉ có 1 phương án tối ưu duy nhất là (0,5,5,15,0,0,0) với min z '  10 . Suy ra bài toán ban đầu có
duy nhất một phương án tối ưu là (0,5,5 ) với min z  10.
1.5 Hiện tƣợng suy biến
Hiện tượng suy biến là hiện tượng xảy ra khi ta thực hiện một số hữu hạn các bước lặp giả sử là k
bước thì bảng đơn hình ở bước lặp đó lại trùng với 1 bảng đơn hình ở k-1 bước lặp trên. Hay nói cách
khác hiện tượng suy biến là hiện tượng xảy ra khi ta thực hiện các phép biến đổi đơn hình đều dẫn đến
cùng một phương án cực biên. Từ đó có thể dẫn đến sự xoay vòng của thuật toán đơn hình
Ví dụ 16.
Xét bài toán QHTT sau:

28
Bài Giảng Quy Hoạch Tuyến Tính

min z  10 x1  57 x2  9 x3  24 x4
1 11 5
 2 x1  2 x2  2 x3  9 x4  0

1 x  3 x  1 x  x  0
2 1 2 2 2 3 4

 x1  1
 x  0, j  1,2,3, 4
 j
Ta chuyển bài toán về dạng chính tắc
min z  10 x1  57 x2  9 x3  24 x4
1 11 5
 2 x1  2 x2  2 x3 9 x4  x5 0

1 x  3 x  1 x  x4  x6 0
2 1 2 2 2 3

 x1  x7 1
 x  0, j  1, , 7
 j
Lặp bảng đơn hình xuất phát

x1 x2 x3 x4 x5 x6 x7
xB cB PA 10 57 9 24 0 0 0
1 11 5
 x5 0 0   9 1 0 0
2 2 2
1 3 1
x6 0 0   1 0 1 0
2 2 2
x7 0 1 1 0 0 0 0 0 1
z 0 10 57 9 24 0 0 0

Lặp 1:

x1 x2 x3 x4 x5 x6 x7
xB PA
x1 0 1 11 5 18 2 0 0
 x6 0 0 4 2 8 1 1 0
x7 1 0 11 5 18 2 0 1
z 0 0 53 41 204 20 0 0

29
Bài Giảng Quy Hoạch Tuyến Tính

Lặp 2:

x1 x2 x3 x4 x5 x6 x7
xB PA
1 3 11
 x1 0 1 0 4  0
2 4 4
1 1 1
x2 0 0 1 2  0
2 4 4
1 3 11
x7 1 0 0  4  1
2 4 4
29 27 53
z 0 0 0 98   0
2 4 4
Lặp 3:

x1 x2 x3 x4 x5 x6 x7
xB PA
3 11
x3 0 2 0 1 8  0
2 2
1 5
 x2 0 1 1 0 2  0
2 2
x7 1 1 0 0 0 0 0 1
z 0 29 0 0 18 15 93 0
Lặp 4:

x1 x2 x3 x4 x5 x6 x7
xB PA
1 9
 x3 0 2 4 1 0  0
2 2
1 1 1 5
x4 0  0 1  0
2 2 4 4
x7 1 1 0 0 0 0 0 1
21 141
z 0 20 9 0 0  0
2 2
Lặp 5:

30
Bài Giảng Quy Hoạch Tuyến Tính


x1 x2 x3 x4 x5 x6 x7
xB PA
x5 0 4 8 2 0 1 9 0
1 3 1
 x4 0   1 0 1 0
2 2 2
x7 1 1 0 0 0 0 0 1
z 0 22 93 21 0 0 24 0
Lặp 6:

x1 x2 x3 x4 x5 x6 x7
xB cB PA 10 57 9 24 0 0 0
1 11 5
 x5 0 0   9 1 0 0
2 2 2
1 3 1
x6 0 0   1 0 1 0
2 2 2
x7 0 1 1 0 0 0 0 0 1
z 0 10 57 9 24 0 0 0
Nhận xét: Sau 6 bước lặp bảng đơn hình lại quay về bảng đơn hình xuất phát và thuật toán bị xoay
vòng.
Trong thực tế hiện tượng này rất ít khi xảy ra. Nếu có hiện tượng này xảy ra thì ta cũng có cách
khắc phục hiện tượng này đó là sử dụng Quy tắc Bland.
Quy tắc Bland
Quy tắc Bland được chứng minh là luôn tránh được hiện tượng xoay vòng bằng kỹ thuật chọn biến
vào. Biến vào được chọn là biến có chỉ số nhỏ nhất trong các biến trong các biến có hệ số ước lượng
dương (  j  0 ). Biến ra được chọn bình thường, trong trường hợp có nhiều biến ra ta ưu tiên chọn

biến có chỉ số nhỏ nhất.


Trở lại ví dụ trên ta phát hiện ra rằng ở bước lặp 6 bảng đơn hình lại quay về bước xuất phát nên
thay vì thực hiện tiếp bước 6 ta quay trở về bước 5 để chọn lại biến vào.
Ở bước 5 ta thấy có 1  22  0 và  6  24  0 thay vì ta chọn biến vào là x6 thì ta sẽ chọn biến vào

là biến chỉ số nhỏ nhất giữa 1 và  6 . Vậy nên biến vào sẽ là biến x1 và biến ra sẽ là x4

31
Bài Giảng Quy Hoạch Tuyến Tính


x1 x2 x3 x4 x5 x6 x7
xB PA
x5 0 4 8 2 0 1 9 0
1 3 1
 x4 0   1 0 1 0
2 2 2
x7 1 1 0 0 0 0 0 1
z 0 22 93 21 0 0 24 0


x1 x2 x3 x4 x5 x6 x7
xB PA
x5 0 0 4 2 8 1 1 0
x1 0 1 3 1 2 0 2 0
 x7 1 0 3 1 2 0 2 1
z 0 0 27 1 44 0 20 0

x1 x2 x3 x4 x5 x6 x7
xB PA
x5 2 0 2 0 4 1 5 2
x1 1 1 0 0 0 0 0 1
x3 1 0 3 1 2 0 2 1
z 1 0 30 0 42 0 18 1
Do các hệ số ước lượng ứng với các biến không cơ sở ( x2 , x4 , x6 , x7 ) đều khác 0 nên bài toán phụ chỉ

có 1 phương án tối ưu duy nhất là (1, 0,1, 0, 0, 0, 0) với min z  1 . Suy ra bài toán ban đầu có 1 phương
án tối ưu duy nhất là (1, 0,1, 0) với min z  1 .

32
Bài Giảng Quy Hoạch Tuyến Tính

BÀI TẬP CHƢƠNG 1

Bài 1. Một xí nghiệp sản xuất ra hai loại sản phẩm: SP1, SP2 bằng các loại nguyên liệu sản xuất N1,
N2, N3. Biết số lượng các nguyên liệu xí nghiệp hiện có lần lượt là 2 tấn, 3 tấn và 9 tấn. Tiền lời thu
được khi bán SP1, SP2 lần lượt là 3 và 5 triệu đồng/tấn.
Tỷ lệ pha chế các loại nguyên liệu để sản xuất ra các loại sản phẩm được cho trong bảng sau:

Số lƣợng hiện có Tỷ lệ pha chế


Nguyên liệu
(tấn) SP1 (tấn) SP2 (tấn)
N1 2 1 0
N2 3 0 1
N3 9 3 2
Tiền lời (triệu đồng/tấn) 3 5
Hãy lập mô hình bài toán tìm kế hoạch sản xuất tối ưu và tìm phương án tối ưu.
Bài 2. Một xí nghiệp có thể sử dụng tối đa 510 giờ máy cán, 360 giờ máy tiện và 150 giờ máy mài để
chế tạo 3 sản phẩm A,B và C. Để chế tạo sản phẩm A cần 9 giờ máy cán, 5 giờ máy tiện và 3 giờ máy
mài. Sản phẩm B cần 3 giờ máy cán, 4 giờ máy tiện. Sản phẩm C cần 5 giờ máy cán, 3 giờ máy tiện và
2 giờ máy mài. Mỗi sản phẩm A giá 50 ngàn đồng, mỗi sản phẩm B giá 20 ngàn đồng, mỗi sản phẩm
C giá 30 ngàn đồng.
Hãy lập mô hình bài toán xí nghiệp cần chế tạo mỗi loại bao nhiêu sản phẩm để có tổng giá trị sản
phẩm là lớn nhất.
Bải 3. Một công ty có kế hoạch quảng cáo một loại sản phẩm do công ty sản xuất trong thời gian 1
tháng với tổng chi phí là 100 triệu đồng. Các phương tiện được chọn để làm quảng cáo là truyền hình,
báo và phát thanh với số liệu dự kiến như sau:
Chi phí cho mỗi lần Dự đoán số ngƣời
Phƣơng tiện quảng Số lần quảng cáo tối
quảng cáo (triệu xem quảng cáo trong
cáo đa trong tháng
đồng) mỗi lần
Truyền hình (1 phút) 1,5 60 15.000
Báo (1/2 trang) 1 26 30.000
Phát thanh (1 phút) 0,5 90 9.000
Vì lý do chiến lược tiếp thị nên công ty yêu cầu phải có ít nhất 30 lần quảng cáo trên truyền hình
trong tháng. Hãy lập mô hình bài toán sao cho phương án quảng cáo sản phẩm công ty là tối ưu.
33
Bài Giảng Quy Hoạch Tuyến Tính

Bài 4. Một xí nghiệp sản xuất ra 3 loại sản phẩm A, B, C với các số liệu như sau:

Loại sản phẩm A B C


Giá bán (1.000 đ/đv) 32 50 58
Chi phí sản xuất (1.000 đ/đv) 20 30 40
Thời gian hoàn tất sản phẩm(giờ/đv) 1 2 3

Biết rằng xí nghiệp hiện có số vốn dùng cho sản xuất là 3 triệu đồng. Quỹ thời gian sản xuất là 180
giờ. Theo các hợp đồng đã kí với khách hàng, yêu cầu sản phẩm A phải có lượng sản xuất ít nhất là
100 đơn vị. Giả sử mọi sản phẩm xuất ra đều tiêu thụ được hết.
Tìm kế hoạch sản xuất sao cho tổng lợi nhuận là lớn nhất.
Biết rằng tổng lợi nhuận = giá bán – chi phí sản xuất.
Bài 5. Một công ty có kế hoạch quảng cáo sản phẩm mới do công ty sản xuất. Các phương tiện được
chọn để quảng cáo sản phẩm là: truyền hình phát thanh và báo. Ba thị trường Hà Nôi, Thành Phố Hồ
Chí Minh và Đà Nẵng được chọn là các thị trường trong điểm để thực hiện chiến lược quảng cáo. Biết
rằng 1 lần quảng cáo trên truyền hình tốn 20 triệu, trên phát thanh tốn 10 triệu và trên báo chí tốn 10
triệu. Theo kết quả khảo sát thực tế cho thấy rằng:
1. Tại Hà Nội: cứ mỗi lần quảng cáo trên truyền hình, phát thanh và báo thì số lượt người xem
chiếm lần lượt như sau: 2.000 người, 1.000 người và 1.000 người.
2. Tại TPHCM: Số lượng người xem quảng cáo trên truyền hình, phát thanh và báo lần lượt là:
3.000 người, 1.000 người và 1.000 người.
3. Tại Đà Nẵng: Số lượng người nghe phát thanh hầu như không có và số lượt người xem quảng
cáo trên truyền hình, báo lần lượt là: 2.000 người, 1.000 người.
Đề sản phẩm được tung ra thị trường thành công thì công ty ước tính số lượng người tối thiểu biết về
sản phẩm tại thị trường Hà Nội, TPHCM, Đà Nẵng lần lượt là 7.000 ; 8.000 ; và 5.000 người.
Hãy lập mô hình bài toán sao cho phương án quảng cáo sản phẩm của công ty là tối ưu.
Bài 6. Đề thi HKII 2012-1013
Một xí nghiệp sản xuất hai loại sản phẩm A và B từ ba loại nguyên liệu C,D và E với số lượng dự trữ
lần lượt là 100, 82 và 120 đơn vị. Để sản xuất ra mỗi đơn vị sản phẩm loại A cần sử dụng 4 đơn vị
nguyên liệu C, 4 đơn vị nguyên liệu D và 6 đơn vị nguyên liệu E. Các chỉ số đó cho mỗi đơn vị sản
phẩm B theo thứ tự trên là 6, 3 và 4. Do điều kiện thực tế, xí nghiệp phải bắt buộc sử dụng hết 120

34
Bài Giảng Quy Hoạch Tuyến Tính

đơn vị nguyên liệu loại E hiện có. Cho biết lợi nhuận thu được trên mỗi sản phẩm loại A và loại B lần
lượt là 4 triệu đồng và 6 triệu đồng.
Hãy thiết lập kế hoạch sản xuất sản phẩm nhằm đạt tổng lợi nhuận tối đa và tìm phương án sản xuất
tối ưu.
Bài 7. Ta cần vận chuyển máy tính từ 2 công ty C1, C2 đến 3 nơi tiêu thụ T1, T2, T3. Biết số lượng
máy tính ở mỗi công ty cần chuyển, nhu cầu máy tính tại các nơi tiêu thụ cũng nư cước phí vận chuyển
cho mỗi máy tính được chuyển từ công ty Ci (i  1, 2) đến nơi tiêu thụ Tj ( j  1, 2,3) được cho bởi bảng

sau:
Nơi tiêu thụ
T1: 15 máy T2: 20 máy T3: 25 máy
Công ty
C1: 20 máy 5(nghìn đồng) 7 2
C2: 40 máy 4 4 6
Hãy lập kế hoạch vận chuyển thoả:
- Các công ty phải phân phối hết số máy tính hiện có.
- Các nơi tiêu thụ nhận đủ máy tính theo yêu cầu.
- Tổng cước phí vận chuyển là thấp nhất.
Bài 8. Để chuẩn bị 35 năm giải phóng thành phố, UBND cho phép tổ chức đêm lễ hội. Để chuẩn bị
đêm lể hội ban tổ chức cần cung cấp 1 số thiết bị từ 3 cơ sở A1, A2, A3 đến 4 địa điểm tổ chức lễ hội
B1, B2, B3, B4.
Với lượng thiết bị có tại các cơ sở này lần lượt là 500, 150, 350.
Với nhu cầu thiết bị tại các nơi tổ chức lễ hội tương ứng là 100, 200, 300, 400. Đơn giá cước phí vận
chuyển từ cơ sở Ai (i  1,...3) đến nơi tổ chức lễ hội B j ( j  1,..., 4) lần lượt là

B1 B2 B3 B4
A1 4 12 16 28
A2 40 32 16 20
A3 24 8 12 8
Hãy lập kế hoạch sản xuất sao cho tổng chi phí vận chuyển là bé nhất.
Bài 9. Tìm giá trị lớn nhất (max), giá trị nhỏ nhất (min) của các bài toán sau:
a) b) c)

35
Bài Giảng Quy Hoạch Tuyến Tính

z  2 x1  2 x2 z  2 x1  2 x2
z  2 x1  x2
 x1  2 x2  9 5 x1  2 x2  15
x  1 3 x  5 x  10  x2  3
 1  1 
 x1  x2  3
2
 
 x1  3  x1  0  x  0, x  0
 x2  0  x2  0  1 2

e) f)
z  3 x1  5 x2
z  5 x1  6 x2  x1  2 x2  6
x  x  4
 x1  2 x2  2  1 2
 
2 x1  3x2  2 2 x1  3 x2  12
 x1  0, x2  0

Bài 10. Giải các bài toán quy hoạch tuyến tính sau bằng phƣơng pháp đơn hình
a) HKI 2014-2015 b) c)
min z  x 1  2x 2  x 3
max z  2 x1  3 x2  5 x3 min z  2 x1  x2  x3  x4
x1  x 2  2x 3  8
 2 x1  3 x2  3 x3  150  x1  x2  2 x3  x4  2
2x 1  x 3  16  x  3 x  5 x  120  x  7 x  3x  2
x  x  2  1 2 3  2 3 4
 1  
4 x1  8 x2  x3  100 3 x3  2 x4  5
3

x1  0, x 2  0, x 3  0.  x1 , x2 , x3  0  x1 , x2 , x3 , x4  0

d) e) f)
max z  2 x1  x2  x3  x4 min z   x1  x2  x3
max z  2 x1  x2
 x1  x2  2 x3  x4  2  x1  x3  0
 x  2x  5  x1  2 x2  6
 x2  7 x3  3x4  2  2 
 x1  x2  3
3
3 x  2 x  5 
 3 4  1x  2 x2  3 x3  8  x  0, x  0
 xi  0, (i  1, 2,3)  1
xi  0, i (1, 2,3, 4).
2

g) h) i)
min z  2 x1  x2 min z  4 x1  3x2 min z  3x1  2 x2  3x3
 x2  3  x1  2 x2  2  x1  x2  x3  1
  
 x1  x2  3  x1  x2  4 2 x1  x2  2 x3  2
 x  0, x  0  x  0, x  0  x  0, (i  1,...,3)
 1 2  1 2  i
j) k) l)

36
Bài Giảng Quy Hoạch Tuyến Tính

min z  4 x1  4 x2  10 x3
max z  3x1  4 x2 min z  3 x1  2 x2
3 x1  3 x2  6 x3  42
x  x  x  4  x1  2 x2  2  x1  5 x2  5
 1 2 3  
  x1  x2  5 2 x1  x2  12
3 x1  2 x2  5 x5  23  x  0, x  0  x  0, x  0
 xi  0, (i  1,...,3)  1 2  1 2

m)
min z  6 x1  x2  x3  3x4  x5  7 x6
  x1  x2  x4  x6  x7  3
2 x  x3 4 x4 2 x6  x7  9
 1

 4 x1 2 x4  x5 3x6  2
 xi  0, (i  1,..., 7)

n)
min z  5 x1  4 x2  5 x3  2 x4  x5  3x6
2 x1  x2 3x3  x4  152
4 x 2 x 3x  x5  60
 1 2 3

3x1  x3  x6  2
 xi  0, (i  1,..., 6)

o) p)
min z  x1  x2  x3 min z  2 x1  2 x2  x3
 x1  x2  x3  1 2 x1  x2  x3  1
 
 x2  5  x1  x3  5
 x2  x3  2   x3  1
 
x1  0, x2  0, x3 0 x1  0, x2  0, x3  0

ĐS:
a) min z  6, x*   4, 0, 2  .

b) max z  140, x*  (20, 0, 20,50, 0, 0).

c) min z  25, x*  (0, 0,9,16,17, 0) .

d) max z  25, x*   0, 0,9,16  .

e) min z  4, x*  (0, 4, 0, 0,1, 0).

f) max z  12, x*  (6, 0, 0,3, 0) .

37
Bài Giảng Quy Hoạch Tuyến Tính

g) min z   , không có phương án tối ưu.


h) min z   , không có phương án tối ưu.
i) min z  3 , vô số phương án tối ưu.
j) min z  16 , vô số phương án tối ưu.
k) max z  , không có phương án tối ưu.
l) không có phương án tối ưu vì ẩn giả khác không.
m) min z   , không có phương án tối ưu.
n) min z  356 ,vô số phương án tối ưu.
o) min z  2 ,vô số phương án tối ưu.
p) min z  9, x*  (4, 0,1, 6, 0, 0).
Bài 11. Chứng minh rằng hiện tượng xoay vòng xảy ra khi giải các bài toán sau đây bằng thuật toán
đơn hình và sử dụng quy tắc Bland để giải
2 2 9
min z   x1  x2  x3
min z   x1  7 x2  x3  2 x4 5 5 5
 x1  x2  x3  x4  1 3 32 24
1  5 x1  5 x2  5 x3  0
 x1  11 x2  5 x3  9 x4  0 
a)  2 2 2 b)  1 9 3
  x1  x2  x3  0
1 3 1
 x1  x2  x3  x4  0 5 5 5
2 2 2 2 8 1
 x  0, j  1, 2,3, 4  x1  x2  x3  0
 j 5 5 5
 x j  0, j  1, 2,3

ĐS
a) min z  0, x*  (0, 0, 0).
b) min z   ,không có phương án tối ưu.
Bài 12. Cho X  R n là miền phương án, x *  X là một phương án tối ưu của bài toán min z  c T x
với x  X . Hỏi có kết luận được bài toán max z  c T x với x  X luôn có phương án tối ưu được hay
không? Giải thích.

38
Bài Giảng Quy Hoạch Tuyến Tính

CHƢƠNG 2: BÀI TOÁN ĐỐI NGẪU


2.1 Định nghĩa bài toán đối ngẫu
Giả sử Amn có hàng aiT và các cột A j , b   m , y   m . Giả sử bài toán gốc có cấu trúc bên trái

trong bảng dưới đây thì 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 cT x max yT b
aiT x  bi , i  M1  yi töï do, i  M1
 T 
ai x  bi , i  M2  yi  0, i  M2
 T  y  0, i  M
ai x  bi , i  M3  i 3

 x j  0, j  N1  y Aj  c j , j  N1
T T

  T
 y Aj  c j , j  N2
T
 x j  0, j  N2
  T
 x j töï do, j  N3  y Aj  c j , j  N3
T

Nhận xét:
- Mỗi ràng buộc chung của bài toán gốc ứng với 1 biến của bài toán đối ngẫu.
- Mỗi ràng buộc dấu (ràng buộc biến) của bài toán gốc ứng với 1 ràng buộc chung của bài toán
đối ngẫu.
- Chiều của bất đẳng thức được cho bởi quy tắc về dấu sau đây:

GỐC min max ĐỐI NGẪU


 bi tự do

Ràng buộc chung  bi 0 Biến

 bi 0

0  cj

Biến 0  cj Ràng buộc chung

tự do  cj

Cách nhớ:
- Bài toán gốc min: ràng buộc chung cùng dấu, ràng buộc biến trái dấu.
- Bài toán gốc max: ràng buộc chung trái dấu, ràng buộc biến cùng dấu.
Các bước thiết lập bài toán đối ngẫu:
- Bƣớc 1: Chuyển bài toán về dạng ma trận bằng cách tách các giá trị số và biến.

39
Bài Giảng Quy Hoạch Tuyến Tính

- Bƣớc 2: Hàm mục tiêu của bài toán gốc là min(max) thì hàm mục tiêu bài toán đối ngẫu là
max(min).
- Bƣớc 3: Hệ số hàm mục tiêu của bài toán gốc trở thành hệ số của các vectơ bi của bài toán

đối ngẫu. Hệ số vectơ bi của bài toán gốc trở thành hệ số hàm mục tiêu của bài toán đối
ngẫu.
- Bƣớc 4: Ma trận hệ số bài toán gốc lấy chuyển vị trở thành ma trận hệ số bài toán đối ngẫu.
- Bƣớc 5: Áp dụng quy tắc về dấu.
Ví dụ 1. Thiết lập bài toán đối ngẫu của các bài toán QHTT sau:
a) b)
min z  x1  0 x2  x3  2 x4
2 x1  x2  3 x3  x4  18 max z  7x 1  10x 2  4x 3

4 x1  x2  x3  x4  36 x 1  x 2  3x 3  10
 x  3 x  x  2 x  60 
 1 2 3 4 2x 1  x 2  2x 3  2
2 x  x  x  8
x1  0  1 2 3

x2  0 x1  0
x3  0 x 2 töï do ï
x4 töï do. x3  0
Giải
a)
min z  (1, 0,1, 2)( x1 , x2 , x3 , x4 )T
x  max z  (18,36,60)( y 1 , y 2 , y 3 )T
 2 1 3 1   1    18 
   x2    2 4 1  1 
 4 1 1 1   x    36     y1   
 1 3 1 2   3    60   1 1 3   y    0 
  x   
 4 
ĐN  3 1 1  2  1 
   y 3   
x1  0  1 1 2    2 
x2  0 y1  0
x3  0 y2  0
x4 töï do. y 3 töï do.

Vậy bài toán đối ngẫu là:

40
Bài Giảng Quy Hoạch Tuyến Tính

max z  18 y1  36 y2  60 y3
2 y1  4 y2  y3  1

 y1  y2  3y3  0

3y1  y2  y3  1
 y  y  2 y  2
 1 2 3

y1  0
y2  0
y3 töï do.
b)

max z  (7,10, 4)( x1 , x2 , x3 )T min z  (10,2,8)( y1 , y2 , y3 )T


 1 1 3  x1    10   1 2 2  y1    7 
         
 2 1 2  x2    2   1 1 1  y2    10 
 2 1 1  x    8   3 2 1  y    4 
  3      3   
x1  0  y1  0
ĐN

x2 töï do y2  0
x3  0. y3 töï do.
Vậy bài toán đối ngẫu là:
min z  10 y1  2 y2  8 y3
 y1  2 y2  2 y3  7

 y1  y2  y3  10
3 y  2 y  y  4
 1 2 3

y1  0
y2 töï do
y3  0.
Ý nghĩa kinh tế của cặp bài toán đối ngẫu
Xét lại Ví dụ 1 chương 1 bài toán lập kế hoạch sản xuất ở phần trên. Câu hỏi đặt ra là giả sử có
doanh nghiệp muốn mua lại toàn bộ các yếu tố sản xuất của xí nghiệp (gỗ loại 1, gỗ loại 2). Khi đó, xí
nghiệp nên đặt giá bán là bao nhiêu?
Giải
Gọi y1 , y2 lần lượt là giá bán của 1 tạ gỗ loại 1, 1 tạ gỗ loại 2:

 Điều kiện về biến gọi (giá bán phải là số thực không âm): y1  0, y2  0

 Số tiền thu được khi bán các yếu tố sản xuất để sản xuất ra 1 sản phẩm bàn là 2 y1  2 y2
41
Bài Giảng Quy Hoạch Tuyến Tính

 Số tiền thu được khi bán các yếu tố sản xuất để sản xuất ra 1 sản phẩm ghế là 0.5 y1  0.5 y2

 Số tiền thu được khi bán các yếu tố sản xuất để sản xuất ra 1 sản phẩm tủ là 3 y1  3.5 y2
Ta thấy có 2 ý tưởng sau:
 Đối với người bán (đối với xí nghiệp): Giá bán các yếu tố sản xuất chỉ được chấp nhận khi số
tiền thu được do bán các yếu tố sản xuất không được ít hơn số tiền thu được khi sử dụng các
yếu tố sản xuất đó để sản xuất ra 1 đơn vị sản phẩm:
o Bàn: 2 y1  2 y2  4

o Ghế: 0.5 y1  0.5 y2  2

o Tủ: 3 y1  3.5 y2  6

 Đối với người mua (đối với doanh nghiệp): Chỉ chấp nhận giá các yếu tố sản xuất khi tổng số
tiền dùng để mua tất cả các yếu tố sản xuất là ít nhất: min z '  100 y1  120 y2 .
Vậy ta xây dựng được mô hình bài toán thỏa đồng thời nhu cầu của người bán lẫn người mua
min z '  100 y1  120 y2
2 y1  2 y2  4

0.5 y1  0.5 y2  2
3 y  3.5 y  6
 1 2

y1  0, y2  0
2.2 Các định lý cơ bản
Xét cặp bài toán đối ngẫu sau:

min z  cT x max z '  y T b



ĐN

x X y Y
- X là miền ràng buộc bài toán gốc (min).
- Y là miền ràng buộc bài toán đối ngẫu (max).
2.2.1 Định lý đối ngẫu yếu. Nếu x là phương án của bài toán QHTT gốc, y là phương án của bài

toán QHTT đối ngẫu thì yT b  cT x


Hệ quả:
1. Nếu bài toán gốc có hàm mục không bị chặn dưới trên X thì Y   .
2. Nếu bài toán đối ngẫu có hàm mục tiêu không bị chặn trên trên Y thì X   .

42
Bài Giảng Quy Hoạch Tuyến Tính
_ _ _ _
3. Giả sử x, y lần lượt là phương án của bài toán gốc và bài toán đối ngẫu. Nếu ( y )T b  cT x thì
_ _
x và y là phương án tối ưu tương ứng của 2 bài toán.

2.2.2 Định lý đối ngẫu mạnh: Nếu bài toán QHTT gốc có phương án tối ưu là x * thì bài toán QHTT
đối ngẫu cũng có phương án tối ưu là y * và cT x*  ( y* )T b .
2.2.3 Độ lệch bù
Định lý đối ngẫu mạnh cho ta điều kiện để kiểm tra tính tối ưu. Nói cách khác nó cho ta điều kiện
tối ưu cT x*  ( y* )T b . Điều kiện này biểu thị qua giá trị của hàm mục tiêu. Từ định lý đối ngẫu ta suy
ra điều kiện tối ưu biểu thị qua các dữ liệu bài toán. Điều kiện này ta thường gọi là điều kiện độ lệch
bù. Trong kinh tế định lý này thường có tên là định lý cân bằng vì trạng thái tối ưu có ý nghĩa là trạng
thái cân bằng kinh tế.
Định lý điều kiện độ lệch bù. Giả sử x và y là các phương án của bài toán gốc và bài toán đối
ngẫu tương ứng. Khi đó, x và y là phương án tối ưu khi và chỉ khi

yi (aiT x  bi )  0, i
(c j  yT Aj ) x j  0, j

2.3 Một số ứng dụng của bài toán đối ngẫu


Ứng dụng 1: Bài toán gốc không có phương án cực biên ban đầu
Ví dụ 2.
( P) : min z  x1  x2 min z  x1  x2 min z  x1  x2
2 x1  x2  4 2 x1  x2  x3  4 2 x1  x2  x3  4
  
2 x1  4 x2  8  2 x1  4 x2  x4  8  2 x1  4 x2  x4  8
 x  3 x  7   x  3 x  x  7  x  3x  x  7
 1 2  1 2 5  1 2 5

x1 , x2  0 xi  0, i  1,...,5 xi  0, i  1,...,5
Bài toán trên không có phương án cực biên ban đầu do đó, ta có thể giải bài toán trên bằng thuật
toán đơn hình mở rộng bằng cách thêm các biến giả. Để tránh việc thêm các biến giả ta có thể giải bài
toán trên thông qua bài toán đối ngẫu rồi áp dụng định lý điều kiện độ lệch bù để tìm phương án tối ưu
của bài toán gốc.
Xét bài toán đối ngẫu của (P)

43
Bài Giảng Quy Hoạch Tuyến Tính

max z /  4 y1  8 y2  7 y3 max z / /  4 y1  8 y2  7 y3
2 y1  2 y2  y3  1 y1  y1 , y2  y2 , y3  y3 2 y  2 y2  y3  1
   1
 y1  4 y2  3 y3  1  y1  4 y2  3 y3  1
y1  0, y2  0, y3  0 y1  0, y2  0, y3  0

Giải bài toán đối ngẫu trên bằng phương pháp đơn hình ta được max z '  7 và phương án tối ưu là
y  (0, 0,1) .
Áp dụng định lý điều kiện độ lệch bù ta lần lượt xét các ràng buộc chung và ràng buộc dấu của bài
toán đối ngẫu.
Xét ràng buộc chung thứ 1: 2 y1  2 y2  y3  1 , thế y vào ràng buộc này ta thấy y thoả chặt (tức là

c1  yT A1  0 , với c1  1 , y  (0, 0,1), A1  (2, 2,1) ).

Xét ràng buộc chung thứ 2: y1  4 y2  3 y3  1 thế y vào ràng buộc này ta thấy y không thoả chặt vì

3  1(tức là c2  yT A2  0 , với c2  1 , y  (0, 0,1), A2  (1, 4, 3) ). Vậy biến tương ứng với ràng buộc

này là x2 = 0 vì theo điều kiện độ lệch bù ta có (c2  yT A2 ) x2  0 .

Xét ràng buộc dấu thứ 1: y1  0 ,ta thấy ràng buộc này thoả chặt.

Xét ràng buộc dấu thứ 2: y2  0 ,ta thấy ràng buộc này thoả chặt.

Xét ràng buộc dấu thứ 3: y3  0 ,ta thấy ràng buộc này không thoả chặt.Vậy ràng buộc chung tương

ứng là  x1  3x2  7 , theo điều kiện độ lệch bù ta có y3 (a3T x  b3 )  0 với y3  1, a3  (1,3), b3  7

mà y3  0 do đó (a3T x  b3 )  0 tức là  x1  3x2  7  0   x1  3x2  7 . Do x2 = 0 nên x1 = 7.

Thế x1  7, x2  0 vào bài toán gốc ta thấy x  ( x1 , x2 )  (7, 0) là 1 phương án của bài toán gốc. Mặt

khác, y  (0, 0,1) là phương án của bài toán đối ngẫu và min z  max z '  7  x  (7, 0) là phương án
tối ưu của bài toán gốc.
Nhận xét: Khi ta xét các ràng buộc chung (ràng buộc dấu) nếu ràng buộc đó không thỏa chặt thì
biến tương ứng (hoặc ràng buộc chung tương ứng) sẽ bằng không.
Ứng dụng 2: Áp dụng định lý điều kiện độ lệch bù để tìm phương án tối ưu của bài toán đối ngẫu
Ví dụ 3. Cho bài toán gốc:
( P) : min z  4 x1  3x2  8 x3
 x1  x3  2

 x2 2 x3  5
x1  0, x2  0, x3  0

44
Bài Giảng Quy Hoạch Tuyến Tính

a) Giải bài toán trên bằng thuật toán đơn hình.


b) Viết bài toán đối ngẫu của bài toán (P).
c) Tìm phương án tối ưu của bài toán đối ngẫu thông qua phương án tối ưu của bài toán
gốc.
Giải
a) Áp dụng thuật toán đơn hình ta tìm được phương án tối ưu của bài toán (P) là
x  (0,1, 2), min z  19 .

max z '  2 y1  5 y2
( P) : min z  4 x1  3 x2  8 x3
1 0  4
 x1     y1   
1 0 1   2
b)    x2     
ĐN 0 1 y    3
1 2 2  8
0 1 2 x   3    
 3
y1 tùy ý
x1  0, x2  0, x3  0
y2 tùy ý
c)
Các cặp ràng buộc đối ngẫu
x1  x3  2  y1 tùy ý

x2  2 x3  5  y2 tùy ý

x1  0

x2  0  y2  3 , ta nhận thấy ràng buộc này không thoả chặt tại x2 nên y2  3

x3  0  y1  2 y2  8 , ta nhận thấy ràng buộc này không thoả chặt tại x3 nên
y2 3
y1  2 y2  8   y1  2

Ta có: y  ( y1 , y2 )  (2,3) là phương án của bài toán đối ngẫu nên y chính là phương án tối ưu của
bài toán đối ngẫu.
Ứng dụng 3: Dùng bài toán rất thuận tiện trong trường hợp bài toán gốc có số các ràng buộc là khá
lớn so với số biến
Ví dụ 4. Giải bài toán QHTT sau:

45
Bài Giảng Quy Hoạch Tuyến Tính

( P) : min z  3 x1  2 x2
 x1 2 x2  1
x
 1  x2  2
2 x1  x2  6

 x1  5

2 x1  x2  16
 x1  x2  12

 x1 2 x2  21
 
 x2 10
x1  0, x2  0
Giải
Ta có thể giải bài toán sau trên bằng phương pháp hình học, thuật toán đơn hình, sử dụng phương
pháp lấy đối ngẫu để giải cũng là 1 phương pháp.
Bằng phương pháp hình học ta dịch chuyển hàm mục tiêu ngược chiều với vectơ pháp tuyến ta
được phương án tối ưu là (0,0) và min z  0.

Bằng phương pháp lấy đối ngẫu

Bài toán đối ngẫu của (P) là:

46
Bài Giảng Quy Hoạch Tuyến Tính

max z '  y1  2 y2  6 y3  5 y4  16 y5  12 y6  21y7  10 y8


 y1  y2 2 y3  y4 2 y5  y6  y7  3
 (1)
2 y1  y2  y3  y5  y6 2 y7  y8  2
yi  0, i  1,...,8

Ta đưa bài toán về dạng chính tắc bằng cách đặt yi   yi

max z ''   y1  2 y2  6 y3  5 y4  16 y5  12 y6  21y7  10 y8


 y1  y2 2 y3  y4 2 y5  y6  y7  3

 2 y1  y2  y3  y5  y6 2 y7  y8  2
yi  0, i  1,...,8.

max z ''   y1  2 y2  6 y3  5 y4  16 y5  12 y6  21y7  10 y8


 y1  y2 2 y3  y4 2 y5  y6  y7  y9  3

 2 y1  y2  y3  y5  y6 2 y7  y8  y10  2
yi  0, i  1,...,10.
Lập bảng đơn hình xuất phát

y1 y2 y3 y4 y5 y6 y7 y8 y9 y10
yB cB PA 1 2 6 5 16 12 21 10 0 0
y9 0 3 1 1 2 1 2 1 1 0 1 0
y10 0 2 2 1 1 0 1 1 2 1 0 1
z '' 1 2 6 5 16 12 21 10 0 0
Bảng đơn hình xuất phát cũng chính là bảng đơn hình tối ưu vì các hệ số ước lượng đều đều dương.
Vậy, bài toán phụ có duy nhất một phương án tối ưu là y*  (0,0,0,0,0,0,0,0,3,2) và max z''  0 . Suy
ra, bài toán ban đầu cũng có duy nhất một phương án tối ưu là y*  (0,0,0,0,0,0,0,0) và max z'  0 .
Thế y*  (0,0,0,0,0,0,0,0) vào (1) ta thấy:

 Ràng buộc chung thứ 1: 0  3  x1  0.

 Ràng buộc chung thứ 2: 0  2  x2  0.

Vậy phương án tối ưu của bài toán gốc (bài toán min) là (0, 0) và min z  0.

47
Bài Giảng Quy Hoạch Tuyến Tính

BÀI TẬP CHƢƠNG 2


Dạng 1: Giải bài toán đối ngẫu bằng cách dùng các định lý đối ngẫu
Bài 1. Xét bài toán gốc:
( P) : min z  (4,3,8)( x1 , x2 , x3 )T
 x1 
1 0 1   2
   x2    
0 1 2 x  5
 3
xi  0

(P) có phương án tối ưu là x*  (0,1, 2), min z  19.


a) Viết bài toán đối ngẫu của (P).
b) Tìm phương án tối ưu y * của bài toán đối ngẫu.
Bài 2. Xét bài toán gốc:
(P ) : min z  (6,10, 4)( x1 , x 2 , x 3 )T
2 3 0  1
   
 1 0 0   x   1 
 0 0 1  1   1 
   x2    .
 1 1 2   x   0 
 0 1 2  3   2 
   
0 1 0 0
x i töï do

(P) có phương án tối ưu là x*  (5,3,1) và min z  4


a) Viết bài toán đối ngẫu của (P).
b) Tìm phương án tối ưu y * của bài toán đối ngẫu.
Bài 3. Xét bài toán gốc
( P) min z  2 x1  3x2  x3
 x1  x2  x3  4

2 x1  2 x2  x3  5
 x  0, (i  1,...,3)
 i
 1 4
Chứng minh rằng x  (0,3,1) là phương án tối ưu của (P), y    ,   là phương án tối ưu của bài
 3 3
toán đối ngẫu.
Bài 4. Xét bài toán gốc
48
Bài Giảng Quy Hoạch Tuyến Tính

( P) min z  5 x1  4 x2  7 x3
7 x1  2 x2  6 x3  17
5 x  x  7 x  14
 1 2 3

6 x1  3x2  4 x3  14
 xi  0, (i  1,...,3)

 21 7 1 2
Hỏi x   , 0,  có là phương án tối ưu của (P), y   , 0,  có là phương án tối ưu của bài toán
 11 11  4 4
đối ngẫu hay không?
Bài 5. Xét bài toán
max z  2 x1  4 x2  x3  x4
 x1 3x2  x4  1
 5 x2 2 x4  3


 x2 4 x3  x4  3
 x j  0, ( j  1,..., 4)

a) Viết bài toán đối ngẫu bài toán trên.


b) Giải bài toán gốc, suy ra bài toán đối ngẫu.
Bài 6. Xét bài toán gốc
( P) min z  2 x1  x2
 x1  x2  1
x  2x  2
 1 2

 x1  x2  4
2 x  x  5
 1 2
 x1  0, x2  0

Chứng minh rằng x*  (0,1) là phương án tối ưu của bài toán gốc, y*  (1, 0, 0, 0) là phương án tối ưu
của bài toán đối ngẫu.
Bài 7. Xét bài toán gốc
(P ) min z  17x 1  10x 2  4x 3
3x 1  x 2  7x 3  20

x 1  5x 2  x 3  0
4x  3x  x  40
 1 2 3

x1  0, x 2 tuøy yù, x 3  0.

49
Bài Giảng Quy Hoạch Tuyến Tính

Biết x *  (0,13,1) là phương án tối ưu của (P) max z =134. Tìm phương án tối ưu của bài toán đối
ngẫu của (P).
Bài 8. Đề thi HKI 2014-2015

Cho bài toán quy hoạch tuyến tính:

(P1 ) : max  z  y 1  5 y 2  y 3 
2 y 1  y 2  2

y1  2
 y  y y3  1
 1 2

y 1  0, y 2  0, y 3 tuøy yù.

a) Tìm bài bài toán đối ngẫu (P2 ) của bài toán (P1 ) .

b) Cho y *  (0, 2,1) là một phương án tối ưu của bài toán (P1 ) , tìm phương án tối ưu của (P2 ).

HD:
1) y*  (2,3) .
2) y*  (4, 0,8, 2, 0, 0) .
3) Kiểm tra x là phương án của (P), y là phương án của bài toán đối ngẫu và z ( x)  z ' ( y ) .
4) Kiểm tra x là phương án của (P), y không là phương án của bài toán đối ngẫu.
11  3  11  1
5) min z  , x*  1, 0, , 0  , max z '  , y*   2, 0,  .
4  4  4  4
6) Kiểm tra x là phương án của (P), y là phương án của bài toán đối ngẫu và z ( x* )  z ' ( y* ) .
* *

7) Sử dụng định lý diều kiện độ lệch bù.


8) x *  (4,0,1) .

Dạng 2: Giải bài toán QHTT bằng cách giải bài toán đối ngẫu
Bài 9. Giải bài toán QHTT sau:
a) b)
max z  3 x1  x2
max z   x1  3x2  x3
 x1  x2  1
2 x1  5 x2  x3  5   x  x  3
  1 2
2 x1  x2  2 x3  4 
x , x , x  0 2 x1  x2  2
 1 2 3  x1  0, x2  0

c) d)

50
Bài Giảng Quy Hoạch Tuyến Tính

min z   x1  4 x2  2 x3
max z   x1  4 x2  5 x3
 x1  2
 x1  x2  3x3  6  x  x
  1  x3  1
 x1  3x2  2 x3  6
2

3x  2 x  2 x  3  x2  6
 1 2 3  x3  3

ĐS:
 3 11 8 
a) min z '  3, y*   , 0, , 0,   x*  (0,1, 0) .
5 5 5

b) min z '    max z   cả 2 bài toán gốc và đôi ngẫu đều không có phương án tối ưu.
177 *  7 47 21   33 15 30 
c) min z '  , y   y1 , y2 , y3    , ,   x*   , , .
23  23 23 23   23 23 23 
d) max z '  16, y*  (3, 4, 0, 2)  x*  (2, 6, 3) .

51
Bài Giảng Quy Hoạch Tuyến Tính

CHƢƠNG 3: BÀI TOÁN VẬN TẢI


3.1. Phát biểu bài toán vận tải
Giả sử có m nơi phát hàng (điểm phát), n nơi tiêu thụ hàng (điểm thu)
Điểm phát Điểm thu
a1 P1 T1 b1
a2 P2 T2 b2
   
am Pm Tn bn
Giả sử tất cả các điểm phát đều phát đều phát hết cho n kho và tất cả các kho đều hàng từ m điểm
phát.
- Số lượng hàng có ở điểm phát Pi là ai (i  1,..., m) .

- Số lượng hàng có ở điểm thu T j là b j ( j  1,..., n) .

- Số lượng hàng cần vận chuyển từ Pi đến T j là xij (i  1,..., m; j  1,..., n) .

- Chi phí vận chuyển từ điểm phát Pi đến điểm thu T j là cij (i  1,..., m; j  1,..., n) .

- Tổng chi phí vận chuyển:


z  c11 x11 c12 x12 ...  c1n x1n
c21 x21 c22 x22 ...  c2 n x2 n
...
cm1 xm1 cm 2 xm 2 ...  cmn xmn
m n
hoặc z   cij xij
i 1 j 1

Hãy lập kế hoạch vận chuyển hàng từ các điểm phát đến các điểm thu sao cho: các điểm phát thì
giao hết hàng, các điểm thu nhận đủ hàng và tổng chi phí vận chuyển là bé nhất.

a) Mô hình toán học


Tìm xij (i  1,..., m; j  1,..., n) sao cho:

min z  c11 x11 c12 x12 ...  c1n x1n


c21 x21 c22 x22 ...  c2 n x2 n
(1.1)
...
cm1 xm1 cm 2 xm 2 ...  cmn xmn
thỏa

52
Bài Giảng Quy Hoạch Tuyến Tính

 x11  x12  ...  x1n  a1



 x21  x22  ...  x2 n  a2
...

 xm1  xm 2  ...  xmn  am

 x11  x21  ...  xm1  b1 (1.2)
 x  x  ...  x  b
 12 22 m2 2

...

 x1n  x2 n  ...  xmn  bn
 xij  0(i  1,..., m; j  1,..., n).

Ta có thể viết mô hình bài toán vận tải trên gọn hơn
m n
min z   cij xij
i 1 j 1

 n

 xij  ai (i  1,..., m)
 j 1
m
 x  b ( j  1,..., n)
i 1
ij j

xij  0, i, j

Ta kí hiệu như sau:


 c11 c12 ... c1n 
 
 c21 c22 ... c2 n 
C : ma trận cước phí.
   
 
 cm1 cm 2 ... cmn 

 x11 x12 ... x1n 


 
x x22 ... x2 n 
X   21 : phương án của bài toán.
   
 
 xm1 xm 2 ... xmn 

A  (a1 , a2 ,..., am ) : vectơ lượng phát.

B  (b1 , b2 ,..., bn ) : vectơ lượng thu.


Ma trận X được gọi là 1 phương án của bài toán nếu X thỏa tất cả ràng buộc trong (1.2).
Ma trận X được gọi là 1 phương án tối ưu của bài toán nếu X thỏa tất cả ràng buộc trong (1.2) và
làm cho hàm mục tiêu đạt cực tiểu.
b) Dạng bảng của bài toán vận tải
Tuy nhiên trong quá trình giải bài toán vận tải dạng bảng được sử dụng rất phổ biến.
53
Bài Giảng Quy Hoạch Tuyến Tính

Thu
b1  bj  bn
Phát
c11 cij c1n
a1  
x11 xij x1n

     
ci1 cij cin
ai  
xi1 xij xin

     
c m1 cmj cmn
am  
xm1 xmj xmn

Ô giao nhau ở dòng i và cột j kí hiệu là ô (i,j).


Các thành phần ai , b j , cij là các thành phần đã biết xij chưa biết.

3.2. Một số tính chất về bảng


Định nghĩa
a) Dây chuyền trong bảng vận tải là 1 dãy các ô thỏa điều kiện:
i) Hai ô cạnh nhau bao giờ cũng nằm trong cùng 1 hàng hoặc cùng 1 cột.
ii) Không có ba ô nào nằm cùng hàng hoặc cùng cột.
Dãy các ô có dạng (i1 , j1 )(i1 , j2 )(i2 , j2 )(i3 , j3 )... được gọi là 1 dây chuyền.
b) Một dây chuyền khép kín được gọi là 1 chu trình.
Dãy các ô có dạng (i1 , j1 )(i1 , j2 )(i2 , j2 )(i3 , j3 )...(ik , jk )(ik , j1 ) là 1 chu trình.
m n
c) Bài toán vận tải cân bằng thu-phát là bài toán thỏa điều kiện  ai   b j .
i 1 j 1

d) Với một phương án cực biên bất kì của bài toán vận tải ô (i,j) được gọi là ô chọn nếu ô đó
chứa biến xij là biến cơ sở.

54
Bài Giảng Quy Hoạch Tuyến Tính

Ví dụ 1.
Bảng 1
X X
X X
X X
Bảng 1 các ô (1,1)(1,4)(2,4)(2,3)(3,3)(3,1) lập thành 1 chu trình.

Bảng 2
X X
X X
X X

Bảng 2 các ô (1,4)(1,2)(2,2)(2,3)(3,3)(3,1) là 1 dây chuyền.

Bảng 3

Bảng 3 ta xác định được hai chu trình bằng cách


 Xóa bỏ cột 1,3,5,6,7,9,25,16,11 và 13.
 Xóa hàng 2 và 5.
 Xóa cột 4 và 8.

Định lý 1. Bài toán vận tải cân bằng thu phát luôn có phương án tối ưu.
Định lý 2. Hệ ràng buộc chung của bài toán vận tải có hạng là m  n  1 .
Hệ quả 1. Cho bảng vận tải gồm mn ô số ô chọn trong 1 phương án cực biên của bài toán vận tải
là m  n  1 và phương án cực biên có m  n  1 thành phần dương là phương án cực biên không suy
biến.
3.3. Các phƣơng pháp phân phối và thuật toán thế vị
55
Bài Giảng Quy Hoạch Tuyến Tính

Bài toán vận tải cũng chính là bài toán QHTT do đó ta có thể giải bài toán bằng thuật toán đơn hình.
Tuy nhiên việc giải bài toán bằng phương pháp đơn hình sẽ rất phức tạp vì số lượng biến quá lớn. Do
đó, dựa vào cấu trúc đặc biệt của bài toán vận tải người ta chuyển bài toán vận tải dưới dạng bảng và
cũng tìm phương án cực biên ban đầu rồi áp dụng thuật toán thế vị để giải.
Một số phương pháp thông dụng để tìm phương án cực biên ban đầu là:
- Phương pháp cực tiểu cước phí.
- Phương pháp gốc Tây-Bắc.
- Phương pháp cực tiểu cước phí theo dòng.
- Phương pháp cực tiểu cước phí theo cột.
- Phương pháp Fogels.
- …
Trong nội dung của bài giảng này chỉ trình bày 2 phương pháp: phương pháp cực tiểu cước phí và
phương pháp gốc Tây-Bắc.
Các phƣơng pháp phân phối
Phương pháp cực tiểu cước phí:
- Bước 1: Trong bảng vận tải ta tìm ô có chi phí bé nhất. Phân phối cho ô này 1 lượng hàng tối
đa.
- Bước 2: Phân phối vào ô đó 1 lượng hàng tối đa xij  min{ai , b j }

a) Nếu ai  b j (phát  thu) thì x ij  ai . Xoá dòng i, b'j  b j  ai .

b) Nếu ai  b j (phát  thu) thì x ij  b j . Xoá cột j, ai'  ai  b j .

c) Nếu ai  b j (phát  thu) thì x ij  ai xoá dòng i, hoặc x ij  b j xoá cột j , không

xoá đồng thời cả 2


- Bước 3: Ghi kết quả, những ô bị và chưa có giá trị thì qui ước giá trị đó bằng 0. Cuối cùng ta
nhận được phương án cực biên ban đầu là ma trận X 0 .
Ví dụ 2a. Tìm phương án cực biên ban đầu của bài toán vận tải sau theo phƣơng pháp cực tiểu
cƣớc phí.

56
Bài Giảng Quy Hoạch Tuyến Tính

Thu 20(0) 50(10)(0) 30(0)


Phát
40(30) 7 3 4
10 30
60(40)(0) 1 2 3
20 40
 0 10 30 
Vậy phương án X 0    là phương án cực biên ban đầu có số thành phần  0 là
 20 40 0 
4  m  n  1  2  3  1 . Vậy X 0 là phương án cực biên không suy biến.

Phương pháp gốc Tây-Bắc:


- Bước 1: Trong bảng vận tải ta tìm ô đầu tiên của bảng,ô(1,1) , phân phối cho ô này 1 lượng
hàng tối đa.
- Bước 2: Phân phối vào ô(1, 1) lượng hàng tối đa xij  min{ai , b j }

a) Nếu ai  b j (phát  thu) thì x ij  ai . Xoá dòng i, b'j  b j  ai .

b) Nếu ai  b j (phát  thu) thì x ij  b j . Xoá cột j, ai'  ai  b j .

- Nếu ai  b j (phát  thu) thì x ij  ai xoá dòng i, hoặc x ij  b j xoá cột j .

- Bước 3: Ghi kết quả, những ô chưa có giá trị thì qui ước giá trị đó bằng 0.
Ví dụ 2b. Tìm phương án cực biên ban đầu của bài toán vận tải sau theo phƣơng pháp gốc Tây-
Bắc.

Thu 20(0) 50(30)(0) 30


Phát
40(20)(0) 7 3 4
20 20
60(30)(0) 1 2 3
30 30
 20 20 0 
Vậy phương án X 0    là phương án cực biên ban đầu có số thành phần  0 là
 0 30 30 
4  m  n  1  2  3  1 . Vậy X 0 là phương án cực biên không suy biến.

Thuật toán thế vị

57
Bài Giảng Quy Hoạch Tuyến Tính

- Bƣớc 1: Kiểm tra điều kiện áp dụng


m n
Nếu thỏa điều kiện tổng phát = tổng thu:  ai   b j sang bước 2.
i 1 j 1

- Bƣớc 2: Tìm phƣơng án cực biên ban đầu


Nếu phương án cực biên ban đầu không suy biến sang bước 3.
Ngược lại, thêm ô bất kì không phải là ô chọn sao cho đủ m  n  1 ô với điều kiện các ô
thêm vào không tạo thành chu trình với các ô chọn. (Lưu ý các ô thêm được thêm vào
đều có xij  0 ).

- Bƣớc 3: Tìm hệ thống thế vị (pi,qj)


X 0  ( xij ) là phương án cực biên không suy biến, có đủ m  n  1 ô chọn .

Ta xây dựng hệ thống thế vị (pi,qj) theo công thức: pi  q j  cij , với mọi ô chọn (i,j). Qui ước chọn

p1=0.

Ví dụ 3. Tính thế các thế vị dòng và thế vị cột của bảng sau:
Thu
20 50 30 pi
Phát
7 3 4
40 p1  0
10 30

1 2 3
60
20 40 p2  1

qj q1  2 q2  3 q3  4

Cách tính các ô chọn ở bảng trên là các ô: (1,2) (1,3) (2,1) (2,2)
p1  0

c12  p1  q2  3  q2  3

c13  p1  q3  4  q3  4

c21  p2  q1  1

c22  p2  q2  2  p2  1

Thế p2  1 vào phương trình c21  p2  q1  1  q1  2


Ví dụ 4. Tính các thế vị dòng và thế vị cột của bảng sau:

58
Bài Giảng Quy Hoạch Tuyến Tính

Thu
20 50 30 pi
Phát
7 3 4
40 p1  0
20 20

1 2 3
60
30 30 p2  1

qj q1  7 q2  3 q3  4

- Bƣớc 4: Kiểm tra tính tối ƣu


Tính các hệ số ước lượng ij  pi  q j  cij tại những ô không chứa biến cơ sở. Ta có 2 trường hợp

sau đây xảy ra:


1. Trường hợp 1: ij  0, i, j : Bài toán vận tải có phương án tối ưu

a) Nếu ij  0, i, j : Bài toán có phương án tối ưu duy nhất. Tính z   xij cij , tại

những ô chọn  dừng.

b) Nếu ij  0 : Bài toán có vô số phương án tối ưu. Tính z   xij cij , tại những

ô chọn  dừng.
2. Trường hợp 2: ij  0 : Bài toán chưa có phương án tối ưu sang bước 5.

- Bƣớc 5: Cải thiện phƣơng án tối ƣu


Bước 5.1: Chọn ô vào
Ô vào là ô có ij  0 và lớn nhất (nếu có nhiều ô thỏa thì ta chọn 1 ô tuỳ ý trong số các

ô đó).
Bước 5.2: Xác định chu trình
- Xoá bỏ dòng hoặc cột chỉ chứa đúng 1 ô chọn.
- Xác định một chu trình: xuất phát từ ô vào và đi đến các ô chọn theo qui tắc: đi ngang
chỉ lấy 2 ô, đi dọc chỉ lấy 2 ô cho đến khi ô kết thúc trùng với ô vào và lần lượt đánh số
theo thứ tự (1) (2)…
Bƣớc 5.3: Cập nhật phương án tối ưu mới

59
Bài Giảng Quy Hoạch Tuyến Tính

d  min{xij tại những ô có vị trí chẵn trong vòng 


x ij (cuõ) - d taïi nhöõng oâ chaün trong voøng

xij (mới)  x ij (cuõ) + d taïi nhöõng oâ leû trong voøng

x ij (cuõ ) taïi nhöõng oâ coøn laïi.
- Bƣớc 6: Quay lại bƣớc 3.
Ví dụ 5. Cực tiểu hoá cước phí của bài toán vận tải sau:
1 4 2 3 
 
T  (15,10,17,18), P  (20,30,10), C   4 7 9 6  .
 5 8 2 10 
 
Giải
Lập bảng vận tải sau:

Thu
15 10 17 18
Phát
20 1 4 2 3
30 4 7 9 6
10 5 8 2 10
Lặp 1
Bƣớc 1: Bài toán thoả điều kiện áp dụng tổng thu = tổng phát.
Bƣớc 2: Tìm phương án cực biên ban đầu bằng phương pháp cực tiểu cước phí ta được bảng sau:

Thu
15(0) 10(0) 17(12)(2) 18(0)
Phát
1 4 2 3
20(5)(0)
15 5
4 7 9 6
30(20)(2)(0)
10 2 18
5 8 2 10
10(0)
10

60
Bài Giảng Quy Hoạch Tuyến Tính

15 0 5 0 
Vậy phương án X 0   0 10 2 18  là phương án cực biên ban đầu có số thành phần  0 là
 0 0 10 0 
 
6  m  n  1  3  4  1 . Vậy X 0 là phương án cực biên không suy biến.

Bƣớc 3: Tìm hệ thống thế vị (pi,qj)

Thu
15 10 17 18 pi
Phát
1 4 2 3
20 p1  0
15 5
4 7 9 6
30 p2  7
10 2 18
5 8 2 10
10 p3  0
10
qj q1  1 q2  0 q3  2 q4  1

Bƣớc 4: Kiểm tra tính tối ƣu


12  p1  q2  c12  0  0  4  4
14  p1  q4  c14  0  1  3  4
 21  p2  q1  c21  7  1  4  3
 31  p3  q1  c31  0  1  5  4
 32  p3  q2  c32  0  0  8  8
 34  p3  q4  c34  0  1  10  11
Bƣớc 5:
Chọn ô vào là ô (2,1) .
Xoá bỏ dòng 3 và cột 2 chỉ chứa đúng 1 ô chọn.
Xác định chu trình: bắt đầu từ ô vào (2,1) đi theo hàng ngang qua ô (2,3) đánh số (2) (vì ô (2,2) đã bị
xoá). Đi theo hàng dọc đến ô (1,3) đánh số (3), tiếp theo đi theo hàng ngang đến ô (1,1) đánh số (4) và
cuối cùng trở về ô xuất phát là (2,1) ta được 1 chu trình khép kín.

61
Bài Giảng Quy Hoạch Tuyến Tính

d  min{2,15}  2
x11  x11  d  15  2  13
x13  x13  d  5  2  7
x21  x21  d  0  2  2
x23  x23  d  2  2  0

13 0 7 0 
Các vị trí xij còn lại được giữ nguyên. Vậy ta có phương án cực biên mới X 0   2 10 0 18 
 0 0 10 0 
 
Lặp 2
- Bƣớc 3: Tìm hệ thống thế vị (pi,qj)

Thu pi
15 10 17 18
Phát
1 4 2 3 p1  0
20
13 7
4 7 9 6 p2  3
30
2 10 18
5 8 2 10 p3  0
10
10
qj q1  1 q2  4 q3  2 q4  3

Bƣớc 4: Kiểm tra tính tối ƣu

62
Bài Giảng Quy Hoạch Tuyến Tính

12  p1  q2  c12  0  4  4  0
14  p1  q4  c14  0  3  3  0
 23  p2  q3  c23  3  2  9  4
 31  p3  q1  c31  0  1  5  4
 32  p3  q2  c32  0  4  8  4
 34  p3  q4  c34  0  3  10  7

13 0 7 0 
Vậy bài toán có vô số phương án tối ưu và phương án X 0   2 10 0 18  là 1 phương án tối ưu
 0 0 10 0 
 
của bài toán với min z  13.1  7.2  2.4  10.7  18.6  10.2  233 .
Lưu ý: Trong trường hợp bài toán có vô số phương án tối ưu thì ta có thể chọn một phương án tối ưu
khác bằng cách chọn ô có ij  0 làm ô vào trong bước 5.

3.4. Các trƣờng hợp đặc biệt của bài toán vận tải
Bài toán vận tải không cân bằng thu-phát
Phương pháp chung: tìm cách chuyển về bài toán vận tải cân bằng
m n
Trường hợp tổng phát  tổng thu:  a  b
i 1
i
j 1
j : ta thêm ô “điểm thu giả” bn 1 với lượng hàng

m n
bn 1   ai   b j và chi phí là ci ,n1  0, i .
i 1 j 1

Lúc này bài toán trở về bài toán cân bằng thu phát. Áp dụng thuật toán thế vị để giải và trong phương
án tối ưu ta bỏ đi cột điểm thu giả thì thu được phương án tối ưu cho bài toán ban đầu.
m n
Trường hợp tổng phát  tổng thu:  ai   b j : ta thêm ô “điểm phát giả” am1 với lượng hàng
i 1 j 1

n m
am1   b j   ai và chi phí là cm1, j  0, j .
j 1 i 1

Lúc này bài toán trở về bài toán cân bằng thu phát. Áp dụng thuật toán thế vị để giải và trong phương
án tối ưu ta bỏ đi dòng điểm phát giả thì thu được phương án tối ưu cho bài toán ban đầu.
Lưu ý: Khi tìm phương án cực biên ban đầu ta ưu tiên cho các ô không là ô “điểm thu giả” hoặc “điểm
phát giả” trước.
Bài toán vận tải có ô cấm

63
Bài Giảng Quy Hoạch Tuyến Tính

Giả sử ta không thể vận chuyển hàng từ ai đến b j tương ứng với ô (i,j) trong bảng vận tải, nên ô

(i,j) không thể phân phối hàng vào được, do đó nó sẽ là ô cấm.


Tại những ô cấm ta đặt cước phí cij  M  0 ( M là số rất lớn).

Dùng thuật toán thế vị để giải bài toán M ta được phương án tối ưu là X * ( M )

- Nếu trong X * ( M ) có các thành phần ứng với ô cấm đều bằng 0 thì bài toán vận tải ban đầu có
phương án tối ưu.
- Nếu trong X * ( M ) có các thành phần ứng với ô cấm  0 thì bài toán vận tải ban đầu không có
phương án tối ưu.

64
Bài Giảng Quy Hoạch Tuyến Tính

BÀI TẬP CHƢƠNG 3


Giải các bài toán vận tải với vectơ phát là A , vectơ thu là B và ma trận cước phí C được cho sau
đây:
1 5 6 2
a) A  (50,80, 20), B  (20, 40, 60,30), C   3 4 1 7  .
 4 2 3 5
 

 2 3 2 1
b) A  (13,3,10), B  (3, 6,5,12), C   4 2 1 3  .
 1 2 2 3
 

7 6 5
c) A  (25, 20, 45), B  (10,30,50), C   2 1 4  .
 3 5 2
 

7 3 5 4
d) A  (9,5,11), B  (5,8, 4,8), C   6 2 3 5  .
7 4 2 5
 
4 3 5
 
6 2 1
e) A  (4, 6, 6,3), B  (6,8, 4), C   .
7 4 2
 
5 6 3

 2 1 4 3
f) A  (100,80, 20), B  (60, 70, 40,30), C   5 3 2 6  .
6 2 1 5
 
 9 5 6 14 
 
10 7 9 15 
g) A  (38, 45, 66, 45), B  (52, 45,38,59), C   .
10 10 6 7 
 
 4 8 13 14 
 4 16 10 14 
 
 10 18 12 20 
h) A  (105, 65,55, 45), B  (85, 75, 60,50), C  .
 6 4 14 18 
 
 8 6 8 12 

65
Bài Giảng Quy Hoạch Tuyến Tính

 6 5 1 2
i) A  (50,80,30), B  (60, 40, 20, 40), C   1 4 3 7  .
 3 2 4 5
 
6 8 3 7
 
 9 10 11 4 
j) A  (100,300,150, 250), B  (120, 280,130, 270), C  .
 5 7 9 10 
 
12 13 8 9 
5 1 4 6 7
 
3 4 2 7 8
k) A  (5,15, 20,30), B  (10,10,10, 20, 20), C   .
4 3 1 7 9
 
6 5 4 9 11

6 3 1 4 5
 
1 2 5 4 3
l) A  (120,150,150, 25), B  (20,100,145,30,150), C   .
2 4 3 1 6
 
3 1 4 2 7
ĐS
 20 0 0 30 
a) X *   0 20 60 0  , min z  260 .
 0 20 0 0 
 

 0 0 1 12 
b) X   0 0 3 0  , min z  34 .
*

3 6 1 0 
 

 0 10 15 
c) X   0 20 0  , min z  255 .
*

10 0 35 
 
d) vô số phương án tối ưu và min z  96 .
f) vô số phương án tối ưu và min z  460 .
3 1 0
 
0 6 0
e) X  
*
, min z  54 .
0 1 4
 
3 0 0

66
Bài Giảng Quy Hoạch Tuyến Tính

 0 7 31 0 
 
 7 38 0 0 
g) X 
*
, min z  1192 .
 0 0 7 59 
 
 45 0 0 0 
h) vô số phương án tối ưu và min z  2080 .
 0 0 10 40 
i) X *   60 10 10 0  , min z  280 .
 0 30 0 0 
 
j) vô số phương án tối ưu và min z  5590 .
k) vô số phương án tối ưu và min z  435 .
 0 0 120 0 0 
 
 0 0 0 0 150 
l) X 
*
, min z  1040 .
 20 75 25 30 0 
 
 0 25 0 0 0 

67
Bài Giảng Quy Hoạch Tuyến Tính

TÀI LIỆU THAM KHẢO


[1] Phan Quốc Khánh, Trần Huệ Nương, Quy hoạch tuyến tính, NXBGD, 2002.
[2] Phan Quốc Khánh, Vận Trù Học, NXBGD, 2002.
[3] Phạm Trí Cao, Tối Ưu Hóa Ứng Dụng, NXB Thống Kê, 2009.
[4] Ngô Thành Phong, Đại Số Tuyến Tính & Quy Hoạch Tuyến Tính, NXB ĐHKHTN TPHCM,
2000.
[5] Nguyễn Thành Cả, Tối Ưu Hoá Tuyến Tính, NXB Lao Động, 2011.
[6] Nguyễn Quốc Huy, Đinh Ngọc Thanh, Trần Thị Ngọc Tuyết, Giáo Trình Toán Kinh Tế, Vĩnh
Long, 2007.
[7] Nguyễn Hải Nam, Toán Ứng Dụng(Giáo Trình Sau Đại Học), NXB ĐHSP Hà Nội, 2005.
[8] Bùi Phước Trung, Giáo trình tối ưu hóa, NXB Thống Kê 2010.
[9] Christopher Grin, Linear Programming: Penn State Math 484 Notes, Ver. 1.8
[10] Matthias Ehrgott , Muticriteria Optimization, Springer, Berlin, 2000.

68

You might also like