Tải bản đầy đủ (.docx) (43 trang)

BÀI TOÁN QUY HOẠCH TUYẾN TÍNH đối NGẪU và một số ỨNG DỤNG

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

Đề tài:“ BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU VÀ MỘT
SỐ ỨNG DỤNG”
MỞ ĐẦU
1. Lí do chọn đề tài
Cùng với sự tiến bộ về kinh tế - xã hội của loài người, đã thút đẩy toán học
từng bước phát triển nhảy vọt. Nhất là khi con người biết tạo ra sản phẩm cần thiết
để phục vụ cho nhu cầu của đời sống xã hội thì việc trao đổi hàng hóa cần có sự
tính toán.
Toán học là một trong những môn học cơ bản mang tính trừu tượng, khái
quát, nhưng mô hình ứng dụng của nó rất rộng rãi trong mọi lĩnh vực của đời sống
xã hội.
Bộ môn quy hoạch tuyến tính là một môn học có tác dụng rất lớn trong việc
rèn luyện tư duy logic và khả năng sáng tạo cho người học.
Không những thế, ngay từ khi con người biết suy nghĩ để tìm cách hành động
sao cho có lợi nhất cho mình theo những mục đích xác định. Những yêu cầu cấp
bách của sự phát triển nền kinh tế và quốc phòng lại càng làm nảy sinh những ý
tưởng tương tự. Do đó đã xuất hiện một bài toán cần phải giải quyết, đó là bài toán
về tìm phương án tối ưu.
Trong thực tế ta thường hay gặp các tình huống là phải lựa chọn một trong số
những quyết định quan trọng để đưa ra những phương án hoặc chiến lược tốt nhất
trong sản xuất kinh doanh. Khi đó ta cần phải lập mô hình toán học quy hoạch
tuyến tính để được phương án tối ưu cần thiết.
Kiến thức sau khi học quy hoạch tuyến tính rất cần thiết, đây là những kiến
thức rất quan trọng để xây dựng một mô hình toán học cho bất kỳ bài toán phức tạp
nào trong thực tế, chỉ cần xây dựng các thuật toán đã mô hình hóa ngôn ngữ nhờ
việc lập trình trên máy tính ta có thể giải quy hoạch tuyến tính một cách dể dàng
nhanh chóng và chính xác. Như vậy việc học quy hoạch tuyến tính rất quan trọng,
nó đem lại những hiệu quả kinh tế rất lớn nếu biết lập các mô hình và tính toán
đúng quy cách



Trong đó “ Bài toán đối ngẫu” cũng được đề cập dưới nhiều mảng kiến thức
với các hình thức đa dạng và phong phú.Với lý do nêu trên em đã chọn đề tài: Một
số dạng bài toán quy hoạch tuyến tính đối ngẫu và ứng dụng”.
2. Mục đích nghiên cứu
- Hệ thống lại một cách chi tiết các vấn đề lý thuyết về bài toán đối ngẫu.
- Xây dựng hệ thống bài tập về bài toán quy hoạch tuyến tính đối ngẫu
- Từ đó có thể rèn luyện và trau dồi khả năng tư duy về sự hứng thú trong
việc giải các bài tập về bài toán đối ngẫu
3. Phạm vi nghiên cứu
Phạm vi nghiên cứu: Một số dạng bài toán cơ bản quy hoạch tuyến tính đối
ngẫu.
4. Phương pháp nghiên cứu
+ Phương pháp nghiên cứu lý luận: Đọc cái tài liệu về môn quy hoạch tuyến
tính, các luận văn tốt nghiệp về bài toán đối ngẫu của các khóa trước ở trường Đại
học Hà Tĩnh.
+ Phương pháp lấy ý kiến chuyên gia: Tham khảo ý kiến của giảng viên
hướng dẫn, và các giảng viên dạy môn quy hoạch tuyến tính của trường.
+ Phương pháp tổng kết kinh nghiệm: Tổng kết kinh nghiệm của bản thân
trong quá trình học tập học phần quy hoạch tuyến tính và các bạn sinh viên đã học
bài toán đối ngẫu của các lớp sư phạm và các lớp quản trị kinh doanh...
5. Nội dung nghiên cứu
Ngoài phần mở đầu, kết luận, và tài liệu tham khảo nội dung đề tài gồm có ba
chương.
Chương 1: Cơ sở lý thuyết
Trong chương này, tôi đã hệ thống những kiến thức cơ bản về bài toán quy
hoạch tuyến tính đối ngẫu nhằm làm cơ sở cho chương 2.
Chương 2: Bài toán quy hoạch tuyến tính đối ngẫu và một số ứng dụng
Nội dung của chương 2 là nội dung chính của đề tài, trong chương này tôi đã
sử dụng cơ sở lý thuyết để giải quyết một số dạng bài toán đối ngẫu.



2.1. Viết bài toán đối ngẫu của các bài toán dạng chính tắc, chuẩn tắc, và
dạng tổng quát
2.2 Chứng tỏ tính tối ưu của một phương án
2.3 Tìm tập phương án tối ưu của bài toán đối ngẫu
2.4 Ý nghĩa kinh tế của bài toán quy hoạch tuyến tính đối ngẫu
2.5 Bài toán hậu tối ưu
2.6 Giải bài toán có dạng đặc biệt

Chương I. CƠ SỞ LÝ THUYẾT


• Đối ngẫu là một phương pháp mà ứng dụng với mỗi bài toán QHTT đã cho (gọi là
bài toán gốc), ta có thể thiết lập một bài toán QHTT 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.
Định nghĩa cặp bài toán đối ngẫu

1.1

Cho bài toán gốc P

Bài toán đối ngẫu Q

n

f ( x ) = ∑ c j x j → min


( 1)

j =1

n

∑a x
j =1

ij

j

n

∑a x
j =1

ij

n

∑a x
j =1

ij

j

j


≥ bi , i ∈ I1
≤ bi , i ∈ I 2
= bi , i ∈ I

x j ≥ 0, j ∈ J1
x j ≤ 0, j ∈ J 2
xj ∈¡ , j ∈ J

1.2

'

( 2)
( 3)

n

g ( y ) = ∑ bi yi → max
i =1

n

∑a
i =1

ij

n


∑a
i =1

ij

n

yi ≤ c j , j ∈ J1

( 5')

yi ≥ c j , j ∈ J 2

( 6')

yi = c j , j ∈ J '

( 7')

( 4)

∑a

( 5)
( 6)
( 7)

yi ≥ 0, i ∈ I1

i =1


ij

( 1')

yi ≤ 0, i ∈ I 2
yi ∈ ¡ , i ∈ I '

( 2')
( 3')
( 4')

Định nghĩa cặp điều kiện đối ngẫu
Bài toán P và Q được gọi là một cặp bài toán đối ngẫu
Các cặp điều kiện đối ngẫu (2) và (2’)
(3) và (3’)
(5) và (5’)
(6) và (6’)
Ví dụ: Chuyển bài toán sau sang bài toán đối ngẫu và tìm các cặp điều kiện của bài
toán đối ngẫu.


f ( x ) = − x1 − 3 x2 + x3 − 2 x4 → min
4 x1 + 12 x2 + 4 x3 = 2

→ y1 ∈ ¡

x1 + 3x2 − x3 ≥ 3

→ y2 ≥ 0


4 x1 − 18 x2 + 2 x3 + 3 x4 ≥ −7

→ y3 ≥ 0

( 1)
( 2)
( 3)
( 4)

x j ≥ 0, j = 1,4
x0 , y 0
Giải
Bài toán đối ngẫu:
g ( y ) = 2 y1 + 3 y2 − 7 y3 → max
4 y1 + y2 + 4 y3 ≤ −1



12 y1 + 3 y2 − 18 y3 ≤ −3



x2 ≥ 0



x3 ≥ 0

y2 + 2 y3 ≤ 1

4 y1

+ 3 y3 ≤ −2



x1 ≥ 0

x4 ≥ 0

y1 ∈ ¡ , y2 ≥ 0, y3 ≥ 0
Ví dụ: Cho bài toán quy hoạch tuyến tính
f ( x) = 13x1 − 3x2 − 4x3 + 19x4 → min
2x1 + x2 − x3 + 3x4 ≥ 44
− x1 + 2x2 + 3x3 + x4 ≤ 23
3x1 − x2 − x3 + 6x4 = 96
xj ≥ 0, j = 1,4

Viết bài toán đối ngẫu cho bài toán này và chỉ ra các cặp điều kiện đối ngẫu.
Giải
Do bài toán gốc tìm Min nên bài toán đối ngẫu tìm Max và bài toán gốc có 3
ràng buộc( không kể ràng buộc về dấu) nên bài toán đối ngẫu có số ẩn là 3
Hệ số hàm mục tiêu của bài toán đối ngẫu tương ứng là vế phải hệ ràng buộc
của bài toán gốc


Do đó:
g( Y ) = 44y1 + 23y2 + 96y3 → max

Các cặp điều kiện đối ngẫu:

2x1 + x2 − x3 + 3x4 = 44 vaø y1 ≥ 0

− x1 + 2x2 + 3x3 + x4 = 23 vaøy2 ≤ 0
3x − x − x + 6x = 96 vaø y ∈ ¡
4
3
 1 2 3
vaø 2y1 − y2 + 3y3 ≤ 13
 x1 ≥ 0
x ≥ 0
vaøy1 + y2 − 3y3 ≤ −3
 2
 x3 ≥ 0
vaø − y1 + 3y2 − 3y3 ≤ −4

vaø 3y1 + y2 + 6y3 ≤ 19
 x4 ≥ 0
Ta có bài toán đối ngẫu:
 y1 ≥ 0, y2 ≥ 0, y3 ∈ ¡

2y1 − y2 + 3y3 ≤ 13

 y1 + y2 − 3y3 ≤ −3
− y + 3y − 3y ≤ −4
2
3
 1
3y1 + y2 + 6y3 ≤ 19



 SƠ ĐỒ ĐỐI NGẪU TỔNG QUÁT
Sơ đồ đối ngẫu tổng quát
Bài toán gốc
Các biến gốc: x1, x2,…, xn
Hàm mục tiêu
f(x) = c1x1 + c2x2 +…+ cnxn → min

Bài toán đối ngẫu
Các biến đối ngẫu: y1, y2,…,ym
g(y) = b1y1+ b2y2 +…+ bmym → max

ai1 x1 + ai 2 x2 + …+ ain xn  ≥ bi , i ∈ I1

yi ≥ 0, i ≥ I1

ai1 x1 + ai 2 x2 + … + ain xn  = bi , i ∈ I 2

yi = 0, i ∈ I 2

ai1 x1 + ai 2 x2 + … + ain xn  ≤ bi i ∈ I 3

yi ≤ 0, i ≤ I 3


a1 j y1 + a2 j y2 + …+ amj ym ≤ c j , j ∈ J1
a1 j y1 + a2 j y2 + …+ amj ym = c j , j ∈ J 2
x j ≥ 0, j ∈ J1
x j = 0, j ∈ J 2

a1 j y1 + a2 j y2 + … + amj ym ≥ c j , j ∈ J 3


x j ≤ 0, j ∈ J 3

1.3

Các tính chất của cặp bài toán đối ngẫu
1.3.1 Nguyên lí đối ngẫu
Bổ đề: Xét cặp bài toán quy hoạch tuyến tính đối ngẫu
f ( x ) → min
g ( y ) → max
x0 , y0

với mỗi cặp phương án bất kì
của
g ( y) ≤ f ( x)
cặp bài toán đối ngẫu ta luôn có
Chứng minh:
f ( x ) = cx → min

f ( x) = g ( y)

Ax = b ↔ y
x≥0

g ( y ) = by → max
Ay = c ↔ x

g ( y ) = by = ( Ax ) y = ( Ay ) x ≤ ( x = f ( x ) )
1.3.2 Định lí đối ngẫu thứ nhất và các hệ quả
Xét cặp bài toán quy hoạch tuyến tính tổng quát nếu bài toán gốc có

phương án tối ưu thì bài toán đối ngẫu cũng có phương án tối ưu và
ngược lại. Đồng thời giá trị tối ưu của hai bài toán bằng nhau
x0 , y 0
x0 , y 0
Hệ quả 1.
là phương án của cặp bài toán đối ngẫu,

0
0
f ( x ) = g( y )
phương án tối ưu của hai bài toán


Hệ quả 2. Trong cặp bài toán đối ngẫu nếu một trong hai bài toán có
phương án nhưng không có phương án tối ưu thì bài toán kia không có
phương án
Hệ quả 3. Xét cặp bài toán quy hoạch tuyến tính đối ngẫu dạng tổng
quát nếu cả hai bài toán đều có phương án tối ưu thì chúng đều có
phương án tối ưu.
Ví dụ: Cho bài toán quy hoạch tuyến tính
f ( x ) = 2 x1 + 7 x2 + 5 x3 → max
2 x1 + 5 x2 + 6 x3 ≤ 8

y1 ≥ 0

3x1 + 7 x2 + 4 x3 ≤ 9

y2 ≥ 0

3x1 + 7 x2 + 4 x3 = 16


y3 ∈ ¡

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

(1)
Chứng minh bài toán có phương án tối ưu bằng cách dựa vào bài toán
đối ngẫu.
Giải
g ( y ) = 8 y1 + 9 y2 + 16 y3 → min
2 y1 + 3 y2 + 4 y3 ≥ 2

x1 ≥ 0

5 y1 + 7 y2 + 3 y3 ≥ 7

x2 ≥ 0

6 y1 + 4 y2 + 6 y3 ≥ 5

x3 ≥ 0

y1 ≥ 0, y2 ≥ 0, y3 ∈ ¡

(2)
Ta thấy : x=(0,0,4) là một phương án của (1)
y=(0,1,1) là một phương án của (2)
Từ hệ quả 3: Bài toán có phương án tối ưu
1.3.3 Định lí đối ngẫu thứ 2.
Xét cặp bài toán quy hoạch tuyến tính đối ngẫu có dạng tổng quát ít

x0 , y0
nhất một cặp điều kiện đối ngẫu, cặp phương án
tương ứng là
cặp phương án tối ưu của hai bài toán khi và chỉ khi ứng với cặp
phương án đó với cặp điều kiện đối ngẫu nếu một điều kiện này thỏa
mãn với dấu bất đẳng thức thực sự thì điều kiện đối ngẫu kia phải xảy
ra dấu bằng.
Ví dụ: Tìm tập phương án tối ưu của bài toán đối ngẫu
1.4 Một số phương pháp suy nghiệm


Cho bài toán gốc
 f ( x ) = Cx → min

 Ax = b
x ≥ 0

Bài toán đối ngẫu
g ( y ) = by → max
Ay ≤ c

=>Phương án tối ưu

(

x* → J 0

j ∈ J , Ay = c )

y* , j ∈ J 0

y 2 = ( ∆ 5 + c5 ; ∆ 6 + c6 ; ∆ 7 + c7 )
1.4.1 Chứng minh phương án tối ưu
Nếu biết phương án tối ưu của bài toán gốc, vận dụng lý thuyết đối ngẫu ta có
thể suy ra phương án tối ưu của bài tối đối ngẫu tương ứng mà không cần giải nó.
Ví dụ: Bài toán qui hoạch tuyến tính

f ( x) = x1 + x2 + x3 + x4 + x5 → min
3x1 + x2 + x3

=1

5 x1 + x2 + x3 + x4

=3

2 x1 + 5 x2 + x3

+ x5 = 8

x j ≥ 0, j = 1, 2, 3, 4, 5.

Có phương án tối ưu x* = (0, 1, 0, 2, 3) với f min = 6. Hãy tìm phương án tối
ưu của bài toán đối ngẫu tương ứng.
Giải
g ( y ) = y1 + 3 y2 + 8 y3 → max
Do
Cặp điều kiện đối ngẫu:


3x1 + x2 + x3


=1

vaø y1 ∈ ¡

5x1 + x2 + x3 + x4

=3

vaø y2 ∈ ¡

+ x5 = 8

vaø y3 ∈ ¡

2x1 + 5x2 + x3
x1 ≥ 0

vaø 3y1 + 5y2 + 2y3 ≤ 1

x2 ≥ 0

vaø y1 + y2 + 5y3 ≤ 1

x3 ≥ 0

vaø y1 + y2 + y3 ≤ 1

x4 ≥ 0


vaø

x5 ≥ 0

vaø

y2

≤1
y3 ≤ 1

Ta có bài toán đối ngẫu
3y1 + 5y2 + 2y3 ≤ 1

 y1 + y2 + 5y3 ≤ 1
 y + y + y ≤1
 1 2 3

y2
≤1


y3 ≤ 1

y yù
 y1, y2, y3 tuø
Gọi y* là phương án tối ưu của bài toán đối ngẫu
Do x*2, x*3, x*5 >0, nên theo định lý độ lệch bù, y* là nghiệm đúng hệ
phương trình:
 y1 + y 2 + 5 y 3 = 1


y2
=1


y3 = 1

 y1 = −5

 y2 = 1
 y =1
 3

Giải hệ phương trình ta có:
Vậy y* (-5, 1, 1) là phương án tối ưu của g(y) với
gmax = -5 +(3*1) + (8*1) = 6 = fmin


1.4.2 Suy nghiệm cho bài toán đối ngẫu hoặc bài toán gốc

x0

Dạng 1. Nếu
là phương án tối ưu của bài toán gốc. Ta tìm phương án tối
ưu của bài toán đối ngẫu.
Ví dụ. Cho bài toán quy hoạch tuyến tính:

f ( x ) = 84 x1 + x3 → min
2 x1 + x2 + x3 ≥ 5
x1 − x2 + x3 ≥ 1

− x3 ≥ −3

4 x1
x1 ≥ 0

x 0 = ( 0, 2,3)

Biết
là phương án tối ưu của bài toán đã cho. Hãy tìm phương
án tối ưu của bài toán đối ngẫu.
Giải
Bài toán đối ngẫu

g ( y ) = 5 y1 + y2 − 3 y3 → max
2 y1 + y2 + 4 y3 ≤ 84
y1 − y2

=0

y1 + y2 − y3

=1

yi ≥ 0, i = 1,3
x 0 = ( 0, 2,3)

Thay
Mặt khác

 x2 = 2 > 0


 x3 = 3 > 0

vào bài toán gốc ta có: 5=5, 1=1,-3=-3
 y1 − y2
⇒
 y1 + y2 − y3

=0
=1

Tập phương án tối ưu của bài toán đối ngẫu là nghiệm của hệ


2 y1 + y2 + 4 y3 ≤ 84  y1 = y2
 y1 = y2
y − y
 y = −1 + 2 y
=
0
1
2
3
1



⇔
⇔  y3 = 2 y1 − 1
y + y − y

=1
2
3
 1
2 y1 + 4(2 y1 − 1) + y1 ≤ 84 1 / 2 ≤ y ≤ 8

1
 y ≥ 0, y = 1,3
 y ≥ 0, y = 1,3
 i
 i

Vậy
đối ngẫu.

y* = { ( y1 , y1, 2 y1 − 1) :1 / 2 ≤ y1 ≤ 8}

là tập phương án tối ưu của bài toán

y0
Dạng 2. Nếu
là phương án tối ưu của bài toán đối ngẫu. Ta tìm phương án
tối ưu của bài toán gốc.
Ví dụ. Cho bài toán quy hoạch tuyến tính
f ( x ) = x1 + x2 + 2 x3 − 2 x4 − 4 x5 → min
− x1 + x2 − 3x3 + 2 x4 − 2 x5 = 8
− 2 x1

− x3 + x4 − x5 ≥ −21


3x1

+ 5 x3 − 3x4 + 2 x5 = 25

2 x1

+ x4 + 4 x5 ≤ 20

( 1)
( 2)
( 3)
( 4)

x j ≥ 0, j = 1,5
y 0 = ( 1,0,1, −1)

Biết rằng
là phương án tối ưu của bài toán đối ngẫu. Tìm
phương án tối ưu của bài toán đã cho.
Giải
Bài toán đối ngẫu là


g ( y ) = 8 y1 − 21 y2 + 25 y3 + 20 y4 → max
− y1 − 2 y2 + 3 y3 + 2 y4 ≤ 1
y1
− 3 y1 − 2 y2 + 5 y3
2 y1 + y2 − 3 y3 +

1 ...x1 ≥ 0


≤1

2 ...x2 ≥ 0

≤2

3 ...x3 ≥ 0

y4 ≤ −2

4 ...x4 ≥ 0

− 2 y1 − 2 y2 + 2 y3 + 4 y4 ≤ −4

5 ...x5 ≥ 0

y2 ≥ 0, y 4 ≤ 0

y *4 = −1 < 0


án tối ưu.

nên (4) phải được thỏa mãn với dấu “=” đối với mọi phương
x1 = 0

Vì y* thỏa mãn với dấu “<” đối với ràng buộc <1> nên
trong mọi
phương án tối ưu.

Vậy tập phương án tối ưu của bài toán đã cho là tập nghiệm của hệ.
− x1 + x2 − 3x3 + 2 x4 − 2 x5 = 8

−2 x1 − x3 + x4 − x5 ≥ −21
3x + 5 x − 3x + 2 x = 25
 1
3
4
5

2 x1 + x4 + 4 x5 = 20
x = 0
 1
 x j ≥ 0, j = 1,5

x5

( 1)  x2 − 3x3 + 2 x4 − 2 x5 = 8

( 2 ) − x3 + x4 − x5 ≥ −21
( 3) 5 x3 − 3x4 + 2 x5 = 25
⇔
( 4 )  x4 + 4 x5 = 20
x = 0
 1
 x j ≥ 0, j = 1,5


Giải hệ (a), (c), (d) theo
ta được:

8
14
x2 = 19 + x5 , x3 = 17 − x5 , x4 = 20 − 4 x5 .
5
5

x5 ≤
Thế vào (b) ta được:

70
11

( a)
( b)
( c)
( d)


x5 ≥ 0

x2 , x3 , x4 ≥ 0

0 ≤ x5 ≤ 5

Với
thì để
cần và đủ là
Vậy tập phương án tối ưu của bài toán đã cho là:

x5 ≤

(thỏa mãn

70
11

)


8
14
70 

 0,19 + x5 , 17 − x5 , 20 − 4 x5 , x5 ÷: x5 ≤ 
5
5
11 


1.4.3 Suy nghiệm từ bảng đơn hình
Giả sử giải bài toán quy hoạch tuyến tính mà vế phải của hệ ràng buộc cưỡng
bức không âm.
Bước 1. Ta đưa nó về dạng chính tắc. Sau đó dùng thuật toán đơn hình gốc để
giải hoặc giải bằng thuật toán M.
Bước 2. Nếu bước cuối cùng xuất hiện dấu hiệu tối ưu và ở đó xác định
phương án tối ưu với cơ sở:

{A

j


: j ∈ J0}

B là ma trận gồm các cột

A j ( j ∈ J ) , c = ( c j ) ( j ∈ J0 ) .

Bước 3. Từ dấu hiệu tối ưu,

y −T = c −T B −1

là phương án tối ưu của bài toán đối

ngẫu.
Ví dụ: Dùng phương pháp đơn hình giải quy hoạch gốc (P) sau đây, từ đó
suy ra lời giải của bài toán đối ngẫu tương ứng với nó.
 f ( x) = x1 − x2 − 2 x4 + 2 x5 − 3x6 → min

+ x 4 + x5 − x 6 = 2
 x1

+ x6 = 12
 x2 + x 4

x3 + 2 x 4 + 4 x5 + 3 x 6 = 9

 x j ≥ 0, j = 1, 2, 3, 4, 5, 6

Xuất phát từ phương án cực biên ban đầu x0=(2, 12, 9, 0, 0, 0), cơ sở tương
ứng {A1, A2, A3). Quá trình giải được ghi lại trong bảng đơn hình dưới đây.
C


H

Ph

A

A

A

A

A

A


ơ

ệ số
S



ương
c

1


2

1

án

-

4

0

1

j

A

3

1

2

1

5

-


6

2

2
0

0

3
[

1

1]

1

A

-

θ

-

2

1


-

12

0

1

0

1

0

1

12

0

9

0

0

1

2


4

3

4,5

-

0

0

0

2

-1

1

2

1

0

0

1


1

-

1

2

A
3

Bảng 1
10
A
4

2

A
2

1
-

10

1
A

1


0

0

-1

2

5

-

0

1

0

2

[

1

1
0

5


3

2
Bảng 2

14

A
4

-

2

3

-

0

0

0

-3

3

3


0

1

1

7/

0

-

0

2/

1

-

0

/5
-

8

1
A


5]

2

2
A

6

-

/5
-

1

1/5
-

1

3
Bảng 3

0

2/5
17

0

9/5

1

0

/5
-

4/5

2/5

-

-

5

0

5
-

3/5

0
21/5

Để tìm lời giải (phương án tối ưu) của bài toán đối ngẫu ta áp dụng qui tắc

sau:
Qui tắc
Nếu cơ sở ban đầu của (P) là cơ sở chính tắc (các vecto đơn vị), giả sử là {A j,
j∈J}.


Để tìm lời giải của bài toán đối ngẫu, ta chọn ra từ bảng đơn hình cuối cùng
của (P) các ∆j (j∈J) rồi cộng với hệ số cj tương ứng.
Vì thế, lời giải của bài toán đối ngẫu y* = (y* 1, y*2, y*3) được xác định như
sau:
−4
1

y
*
=

+
c
=
+
1
=
1
1
1

5
5


 y 2 * = ∆ 2 + c 2 = 0 − 1 = −1

−3
−3
 y 3 * = ∆ 3 + c3 =
+0=
5
5


1
5

Vậy y* =( , -1,

−3
5

) và gmax = -17 = fmin

Chương II. BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU VÀ
MỘT SỐ ỨNG DỤNG
2.1. Viết bài toán đối ngẫu của các bài toán dạng chính tắc, chuẩn tắc, và
dạng tổng quát
Bài 1. Tìm bài toán đối ngẫu và tìm cặp điều kiện đối ngẫu:
f ( x ) = 2 x1 + 3 x2 − x3 + x4 → max
2 x1 − x2 − x3 + x4 ≤ 5
x1 + x2 + 2 x3 + x4 = 7
5 x1 + x2 + 3x3 + 4 x4 ≥ 20
x1; x2 ≥ 0, x3 ≤ 0


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

( 1) ...y1 ≥ 0
( 2 ) ...y 2 ∈ ¡
( 3) ...y3 ≥ 0


g ( y ) = 5 y1 + 7 y2 + 20 y3 → min
2 y1 + y2 + 5 y3 ≥ 2

1 ... x1 ≥ 0

− y1 + y2 + y3 ≥ 3

2 ...x2 ≥ 0

− y1 + 2 y2 + 3 y3 ≤ −1

3 ... x3 ≤ 0

y1 + y2 + y3 = 1

4 ...x4 ∈ ¡

y1 ≥ 0; y3 ≥ 0

Bài 2. Viết bài toán đối ngẫu và cặp điều kiện đối ngẫu:
f ( x ) = 5 x1 − x2 + 2 x3 + 3x4 − 6 x5 → min

3x1 − x2 + 2 x3 + 3x4 + 4 x5 = 80
x1 + x2 + x3 + x4 + x5 ≥ −10
3x1 − 2 x2 − 2 x3 − x4 + x5 ≤ 30
x1

+ x3 ≤ 6

( 1) ....y1 ∈ ¡
( 2 ) ....y2 ≥ ¡
( 3) ....y3 ≤ ¡
( 4 ) ....y 4 ≤ ¡

x1 ≤ 0, x2 ; x3 ≥ 0

Giải: Bài toán đối ngẫu là:
g ( y ) = 80 y1 − 10 y2 + 30 y3 + 6 y4 → max
3 y1 + y2 + 3 y3 + y4 ≥ 5

1 ....x1 ≤ 0

− y1 + y2 − 2 y3 ≤ −1

2 ....x2 ≥ 0

2 y1 + y2 − 2 y3 + y4 ≤ 2

3 ....x3 ≥ 0

3 y1 + y2 − y3 = 3


4 ....x4 ∈ ¡

4 y1 + y2 − y3 = −6

5 ....x5 ∈ ¡

y2 ≥ 0, y3 ; y4 ≤ 0

Bài 3. Viết bài toán đối ngẫu của các bài toán sau:


f = 3x1 + 2 x2 + 5 x3 − 2 x4 → min

( 1) ..... y1 ∈ ¡
( 2 ) ..... y2 ∈ ¡
( 3) ..... y3 ∈ ¡

+ 7 x3 − 3x4 = 7

x1

x2 − 2 x3 + x4 = 1
3x3 − x4 + x5 = 16
x j ≥ 0, j = 1, 2, 3, 4,5.
Giải Bài toán đối ngẫu là:
g ( y ) = 7 y1 + y2 + 16 y3 → max
y1 ≤ 3

1 ...x1 ≥ 0
y2 ≤ 2


1 ...x2 ≥ 0

7 y1 − 2 y2 + 3 y3 ≤ 5

1 ...x3 ≥ 0

− 3 y1 + y2 − 3 y3 ≤ −2

1 ...x4 ≥ 0

y3 ≤ 0

1 ...x5 ≥ 0

2.2Chứng tỏ tính tối ưu của một phương án
Bài 1.Xét bài toán quy hoạch tuyến tính:
f ( x ) = 4 x1 – x2 − 3 x3 → min
x1 + 3 x2 − 4 x3 ≥ −2
x2 − x3 ≤ 4,
2 x1 − 4 x2 + 3 x3 ≥ − 3
x1 − 3x2
− x1

≥ −6,

+ 2 x3 ≤ 3.

(*)
Viết bài toán đối ngẫu. Chứng tỏ x0 = (-1, 1, 1) là phương án tối ưu. Xác định

một phương án tối ưu của bài toán đối ngẫu.
Giải
Bài toán đối ngẫu của bài toán gốc:


g ( y ) = − 2 y1 + 4 y2 − 3 y3 − 6 y4 + 3 y5 → max
y1

+ 2 y3 + y4 − y5 = 4

3 y1 + y2 − 4 y3 − 3 y4
− 4 y1 − y2 + 3 y3

= −1,

+ 2 y5 = −3,

y1 , y3 , y4 ≥ 0 ; y2 , y5 ≤ 0.

Thay x0 = (-1, 1, 1) vào hệ ràng buộc (*), ta có:
− 1 + 3 − 4

1−1

− 2 − 4 + 3
− 1 − 3

1
+2


= −2,
= 0 ≤ 4,
= −3,
= −4 ≥ −6,
= 3.

x0 = (-1, 1, 1) thỏa (*) ⇒ x0 là phương án của bài toán gốc.
Gọi y0 = (y1, y2, y3, y4, y5) là phương án của bài toán đối ngẫu.
Do độ lệch ràng buộc 2, 4 của bài toán gốc khác 0 nên theo định lí về độ lệch
bù, y0 là nghiệm đúng hệ phương trình:
+ 2 y 3 − y 5 = 4,
 y1
 3y
− 4 y3
= −1,

1

+ 3 y 3 + 2 y 5 = −3,
− 4 y1
 y 2 = 0, y 4 = 0.

Giải hệ phương trình, ta được y0 = (1, 0, 1, 0, -1).
Với: f(x) = g(x) = -8.
⇒ x0 = (-1, 1, 1) là phương án tối ưu của bài toán gốc.
⇒ y0 = (1, 0, 1, 0, -1) là phương án tối ưu của bài toán đối ngẫu.
Bài 2. Xét qui hoạch tuyến tính:


f ( x) = x1 − 2 x2 + x3 − x4 + x5 → min

x1 − 2 x2 + x3 + 3 x4 − 2 x5 = 6,
− 2 x1 − 3 x2 + 2 x3 + x4 − x5 ≥ −4,
+ 3 x3

x1

− 4 x5 ≥ 8,

x j ≥ 0, j = 1,2,3,4,5
(*)
a Kiểm tra tính tối ưu của phương án x0 = (5, -6, 1, -4, 0).
b Chứng tỏ bài toán đã cho không có phương án tối ưu.
Giải
a Thế x0 = (5, -6, 1, -4, 0) vào hệ ràng buộc (*), ta có
5 + 12 + 1 − 12 = 6,

− 10 + 18 + 2 − 4 = 6,
5 + 3 = 8.


Do độ lệch ràng buộc 2 khác 0 và x 10, x20, x30, x40 khác 0 nên theo định lí về
độ lệch bù vectơ x0 = (5, -6, 1, -4, 0) là phương án tối ưu của bài toán gốc khi tồn
tại vectơ

y0 = (y1, y2, y3) ∈ R3 sao cho:

 y1 − 2 y 2 + 3 y 3 = 1,
− 2 y − 3 y = −2,
1
2


 y1 + 2 y 2 + 3 y 3 = 1,

3 y1 + y 2 = −1,
− 2 y1 − y 2 − 4 y 3 ≤ 1,

 y 2 = 0, y 3 ≥ 0.

Hệ này vô nghiệm
⇒ không tồn tại y0 ∈ R3 thoả hệ trên.
⇒ phương án x0 = (5, -6, 1, -4, 0) không phải là phương án tối ưu của bài
toán gốc.
b Bài toán đối ngẫu của bài toán gốc:


 g ( y ) = 6 y1 − 4 y 2 + 8 y 3 → max,
 y − 2 y + y ≤ 1,
2
3
 1
− 2 y1 − 3 y 2 = −2,

 y1 + 2 y 2 + 3 y 3 ≤ 1,
3 y + y = −1,
2
 1
− 2 y1 − y 2 − 4 y 3 ≤ 1,

 y 2 ≥ 0, y 3 ≥ 0.


Ta giải hệ ràng buộc của bài toán đối ngẫu:
−5

 y1 = 7 ,

y = 8 ,
 2 7

 y 3 ≤ 4,

y ≤ − 4 ,
 3 21

−5
 y3≥
,
28

 y 3 ≥ 0.

Hệ này vô nghiệm ⇒ bài toán đối ngẫu có tập phương án rỗng
Mà bài toán gốc có tập phương án khác rỗng (vì x0 là 1 phương án)
⇒ bài toán gốc không có phương án tối ưu (theo định lí tồn tại).
Bài 3. Xét qui hoạch tuyến tính:
f ( x) = −4 x1 + 9 x2 + 16 x3 − 8 x4 − 20 x5 → min
5 x1 + 4 x2 − x3 + 3x4 + x5 ≥ 5,
− x1 + 2 x2 + 4 x3 − 2 x4 − 5 x5 ≥ −9,
− x1 − 2 x2 − x3 + 2 x4 + 3 x5 = 2,
x j ≥ 0, j = 1,2,3,4,5.
(*)

a Kiểm tra tính tối ưu của phương án x0 = (2, 0, 1, -2, 3).
b Tìm phương án tối ưu của bài toán đối ngẫu.
Giải
a Thế x0 = (2, 0, 1, -2, 3) vào hệ ràng buộc (*), ta có:


10 − 1 − 6 + 3 = 6,

− 2 + 4 + 4 − 15 = −9,
 − 2 − 1 − 4 + 9 = 2.


Do độ lệch ràng buộc 1 của bài toán gốc khác 0 và x 10, x30, x40, x50 khác không
nên theo định lí về độ lệch bù vectơ x 0 = (2, 0, 1, -2, 3) là phương án tối ưu của bài
toán gốc khi tồn tại vectơ y0 = (y1, y2, y3) ∈ R3 sao cho:
5 y1 − y 2 − y 3 = −4,
4 y + 2 y − 2 y ≤ 9,
2
3
 1
− y1 + 4 y 2 − y 3 = 16,

3 y1 − 2 y 2 + 2 y 3 = −8,
 y1 − 5 y 2 + 3 y 3 = −20,

 y1 = 0, y 2 ≥ 0.

Giải hệ phương trình, ta được y0 = (0, 4, 0).



f ( x) = g ( y)

⇒ tồn tại y0 ∈ R3 thỏa hệ trên.
⇒ phương án x0 = ( 2, 0, 1, -2, 3) là phương án tối ưu của bài toán gốc.
b Bài toán đối ngẫu của bài toán gốc:
 g ( y ) = 5 y1 − 9 y 2 + 2 y 3 → max,
5 y − y − y ≤ −4,
2
3
 1
4 y1 + 2 y 2 − 2 y 3 ≤ 9,

− y1 + 4 y 2 − y 3 ≤ 16,
3 y − 2 y + 2 y = −8,
2
3
 1
 y1 − 5 y 2 + 3 y 3 = −20,

 y1 ≥ 0, y 2 ≥ 0.

Vì đã biết x0 = (2, 0, 1, -2, 3) là phương án tối ưu của bài toán gốc nên
phương án tối ưu y0 của bài toán đối ngẫu có thể tìm từ định lí độ lệch bù:


[ 5 − ( 5 x1 + 4 x 2 − x3 + 3 x 4 + x5 ) y1 ] = 0
[ − 9 − ( − x + 2 x + 4 x − 2 x − 5 x ) ] y = 0
1
2
3

4
5
2

[ 2 − ( − x1 − 2 x 2 − x3 + 2 x 4 + 3 x5 ) ] y 3 = 0

[ − 4 − ( 5 y1 − y 2 − y 3 ) ] x1 = 0

[ 9 − ( 4 y1 + 2 y 2 − 2 y 3 ) ] x 2 = 0
[16 − ( − y1 + 4 y 2 − y 3 ) ] x3 = 0

[ − 8 − ( 3 y1 − 2 y 2 + 2 y 3 ) ] x 4 = 0
[ − 20 − ( y − 5 y + 3 y ) ] x = 0
1
2
3
5


Thay các giá trị đã biết vào hệ, ta được:
 y1 = 0
 y1 = 0
4 y − y = 0
 2

3
⇔  y2 = 4

− 2 y 2 + 2 y 3 = −8
y = 0

 3

− 5 y 2 + 3 y 3 = −20

Vậy phương án tối ưu của bài toán đối ngẫu là y0 = (0, 4, 0).
Vì gmax = fmin = -36.
Bài 4. Xét bài toán quy hoạch tuyến tính sau :
f ( x ) = x1 + 3x2 + 2 x3 + x4 → min
2 x1 + x2 + x3 ≥ 2
x1 + x2 + 2 x3 ≥ 5
2 x1 + 2 x2 + 3 x3 ≥ 1
x j ≥ 0, j = 1, 2, 3, 4
Hãy chứng tỏ rằng nếu X* là phương án tối ưu thì thành phần thứ 2 và thành phần
thứ 4 phải bằng 0.
Giải :
Bài toán đối ngẫu của bài toán trên là :


g ( y ) = 2 y1 + 5 y2 + y3 → max
2 y1 + y2 + 2 y3 ≤ 1
y1 + y2 + 2 y3 ≤ 3
0 y1 + 0 y2 + 0 y3 ≤ 1
yi ≥ 0, j = 1,3
Nếu bài toán gốc có phương án tối ưu thì bài toán đối ngẫu có phương án tối
xj, yj
ưu. Gọi

là các thành phần của hai phương án tối ưu
x4 ≥ 0, 0 y1 + 0 y2 + 0 y3 ≤ 1
Xét cặp điều kiện đối ngẫu:

0 y1 + 0 y2 + 0 y3 = 0 ≠ 1
x4 = 0
Do
nên theo định lý độ lệch bù ta phải có
x2 ≥ 0, y1 + y2 + 2 y3 ≤ 3
Xét cặp điều kiện đối ngẫu:
Xét ràng buộc (1) và (2) của bài tóan đối ngẫu ta có:
y1 + y2 + 2 y3 ≤ 2 y1 + y2 + 2 y3 ≤ 1 ⇒ y1 + y2 + 2 y3 ≠ 3
y1 + y2 + 2 y3 ≠ 3

Do

nên theo định lý độ lệch bù yếu, ta phải có

x2 = 0

Vậy X* là phương án tối ưu.
Suy ra thành phần thứ 2 và thành phần thứ 4 bằng 0.
2.3 Tìm tập phương án tối ưu của bài toán đối ngẫu
Nhờ tiêu chuẩn tối ưu nên khi ta biết được phương án tối ưu của một trong cặp bài
toán đối ngẫu thì dễ dàng tìm được phương án tối ưu của bài toán còn lại.
Bài 1. Cho bài toán quy hoạch tuyến tính sau:
f ( x ) = 3x1 + 4 x2 + x3 → min
− 3x1 + 2 x2 − 4 x3
2 x1 − x2 − 5 x3
4 x1 + 2 x2 + 2 x3
x1 ≥ 0, x2 ≥ 0, x3 ≤ 0


Cho biết bài toán trên có phương án tối ưu là

bài toán đối ngẫu của bài toán trên.
Giải
Bài toán đối ngẫu là

x 0 = ( 7,0, −9 )

. Hãy lập và giải

g ( y ) = 15 y1 + 8 y2 + 10 y3 → max
− 3 y1 + 2 y2 + 4 y3 ≤ 3
2 y1 − y2 + 2 y3 ≤ 4
− 4 y1 − 5 y2 + 2 y3 ≤ 1
yj ≥ 0

Do bài toán gốc có phương án tối ưu là
bù ta có
−3 y1 + 2 y2 + 4 y3 = 3
− 4 y1 − 5 y2 + 2 y3 = 1

x 0 = ( 7,0, −9 )

nên theo định lí độ lệch

( 1)
( 2)
x 0 = ( 7,0, −9 )

Mặt khác khi thay phương án
vào các ràng buộc của bài toán
gốc ta thấy ràng buộc thứ 3 thỏa mãn không chặt nên :


y2 = 0

( 3)
y 0 = ( 1 / 5,0,9 / 10 )

Từ hệ phương trình (1), (2), (3) ta dễ dàng suy ra nghiệm
ta thấy nghiệm này thỏa mãn hai ràng buộc còn lại của bài toán đối ngẫu nên nó là
phương án tối ưu của bài toán đối ngẫu.
Vậy bài toán đối ngẫu có phương án tối ưu là
g ( y 0 ) = 12

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

y 0 = ( 1 / 5,0,9 / 10 )




×