BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU

Một phần của tài liệu Tập bài giảng Quy hoạch tuyến tính (Trang 72 - 83)

Chương 2: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU

2.1. BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU

Để lập đƣợc bài toán đối ngẫu cho bài toán QHTT ban đầu (P), ta xét 2 quy tắc sau:

a) Quy tắc 1: Bài toán gốc có hàm mục tiêu min

Bài toán gốc (P) Bài toán đối ngẫu (D) f(x) =

n j j j 1

c x

  min g(y) = m i i

i 1

b y

  max

Ràng buộc thứ i:

n ij j j 1

a x

    

 

 

bi Ẩn thứ i: yi 0 0 tuú ý

Ẩn thứ j: xj

0 0 tuú ý

 Ràng buộc thứ j:

m ij i i 1

a y



 

 

  

  cj

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 77 Ví dụ 1: Lập bài toán đối ngẫu của bài toán sau:

f(x) = 3x1 - 2x2 - 5x3 + 4x4 → min 3 x1 + 2x2 - 5x3 - 3x4 ≤ 6

-2 x1 + x2 + x3 + 2x4 = - 7 (P) x1 - 3x2 + 4x3 + x4 ≥ 9

x1, x3 ≥ 0; x2 tùy ý; x4 ≤ 0 Giải:

* Trước hết lấy vế phải của ràng buộc bắt buộc làm hệ số của hàm mục tiêu:

g(y) = 6y1 - 7y2 + 9y3  max

* Chuyển vị ma trận hệ số trong các ràng buộc bắt buộc  ràng buộc bắt buộc của bài toán QHTT đối ngẫu:

3y1 - 2y2 + y3 ≤ 3 (vì ẩn x1 ≥ 0) 2y1 + y2 - 3y3 = -2 (vì ẩn x2 tùy ý) -5y1 + y2 + 4y3 ≤ -5 (vì ẩn x3 ≥ 0) -3y1 + 2y2 + y3 ≥ 4 (vì ẩn x4 ≤ 0)

* Xác định dấu của các ẩn:

Vì ràng buộc (1) có dấu “≤” nên ẩn y1 ≤ 0 Vì ràng buộc (2) có dấu “=” nên ẩn y2 tùy ý Vì ràng buộc (3) có dấu “≥” nên ẩn y3 ≥ 0 Kết luận: bài toán QHTT đối ngẫu của bài toán trên là:

g(y) = 6y1 - 7y2 + 9y3  max 3y1 - 2y2 + y3 ≤ 3 2y1 + y2 - 3y3 = -2 -5y1 + y2 + 4y3 ≤ -5 -3y1 + 2y2 + y3 ≥ 4

y1 ≤ 0, y2 tùy ý, y3 ≥ 0

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 78 b) Quy tắc 2: Bài toán gốc (P) có hàm mục tiêu max

Bài toán gốc (P) Bài toán đối ngẫu (D) f(x) =

n j j j 1

c x

  max g(y) = m i i

i 1

b y

  min

Ràng buộc thứ i:

n ij j j 1

a x

    

 

 

bi Ẩn thứ i: yi 0 0 tuú ý

Ẩn thứ j: xj 0 0 tuú ý

 Ràng buộc thứ j:

m ij i i 1

a y

    

 

  cj

Ví dụ 2: Lập bài toán đối ngẫu của bài toán sau:

f(x) = 3x1 - 2x2 - 5x3 + 4x4 → max 3 x1 + 2x2 - 5x3 - 3x4 ≤ 6

-2 x1 + x2 + x3 + 2x4 = - 7 (P) x1 - 3x2 + 4x3 + x4 ≥ 9

x1, x3 ≥ 0; x2 tùy ý; x4 ≤ 0 Giải:

* Trước hết lấy vế phải của ràng buộc bắt buộc làm hệ số của hàm mục tiêu:

g(y) = 6y1 - 7y2 + 9y3  min

* Chuyển vị ma trận hệ số trong các ràng buộc bắt buộc  ràng buộc bắt buộc của bài toán QHTT đối ngẫu:

3y1 - 2y2 + y3 ≥ 3 (vì ẩn x1 ≥ 0) 2y1 + y2 - 3y3 = -2 (vì ẩn x2 tùy ý)

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 79 -5y1 + y2 + 4y3 ≥ -5 (vì ẩn x3 ≥ 0)

-3y1 + 2y2 + y3 ≤ 4 (vì ẩn x4 ≤ 0)

* Xác định dấu của các ẩn:

Vì ràng buộc (1) có dấu “≤” nên ẩn y1 ≥ 0 Vì ràng buộc (2) có dấu “=” nên ẩn y2 tùy ý Vì ràng buộc (3) có dấu “≥” nên ẩn y3 ≤ 0 Kết luận: bài toán QHTT đối ngẫu của bài toán trên là:

g(y) = 6y1 - 7y2 + 9y3  min 3y1 - 2y2 + y3 ≥ 3 2y1 + y2 - 3y3 = -2 -5y1 + y2 + 4y3 ≥ -5 -3y1 + 2y2 + y3 ≤ 4 y1 ≥ 0, y2 tùy ý, y3 ≤ 0

Chú ý: Bài toán đối ngẫu của bài toán đối ngẫu chính là bài toán gốc.

2.1.2. Quan hệ giữa bài toán gốc (P) và bài toán đỗi ngẫu (D) a. Các định lý đối ngẫu

Định lý 1: Với bài toán P và D, chỉ xảy ra một trong 3 trường hợp sau:

1) Cả 2 đều không có phương án.

2) Cả 2 đều có phương án, lúc đó cả 2 đều có PATƯ và giá trị hàm mục tiêu đối với PATƢ là nhƣ nhau.

3) Một trong 2 bài toán có phương án, còn bài toán kia không có phương án. Khi đó bài toán có phương án sẽ không có PATƯ và hàm mục tiêu không bị chặn.

Hệ quả 1: Nếu một trong hai bài toán có PATƢ thì bài toán kia cũng có PATƢ Hệ quả 2: Điều kiện cần và đủ để x* là PATƢ của bài toán (P) và y* là PATƢ của bài toán (D) là:

f(x*) = g(y*)

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 80

Định lý 2: Điều kiện cần và đủ để x* = (x , x , . . . , x*1 *2 *n) là PATƢ của bài toán (P) và y*= (y , y , . . . , y*1 *2 *m) là PATƢ của bài toán (D) là:

n

* *

i ij j i

j 1 m

* *

j ij i j

i 1

y a x b 0 (j 1, m)

x a y c 0 (i 1, n)

    

  

  

  

    

  

Chú ý: các phương trình ở hệ trên đều có dạng A.B = 0, do đó nếu ta thấy một thừa số A hoặc B khác không thì thừa số còn lại phải bằng không.

b. Các ví dụ

Ví dụ 3: Cho bài toán gốc (P):

F(x) = 2x1 - x2 + 3x3 → min - x1 + x2 + 3x3 = 3 2x1 - x2 + x3 = 1 2x2 + 3x3 = 3

xj ≥ 0 (j = 1, 2, 3) a) Giải bài toán gốc (P)

b) Tìm bài toán đối ngẫu (D)

c) Tìm nghiệm của bài toán đối ngẫu Giải a) Bài toán mở rộng của bài toán trên là:

F(x) = 2x1 - x2 + 3x3 + Mx4 + Mx5 + Mx6 → min - x1 + x2 + 3x3 + x4 = 3

2x1 - x2 + x3 + x5 = 1 2x2 + 3x3 + x6 = 3 xj ≥ 0 (j = 1, 2, . . . , 6)

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 81 Có ma trận hệ số là:

1 1 3 1 0 0

A 2 1 1 0 1 0

0 2 3 0 0 1

 

 

  

 

 

Có PACB ban đầu là: x = (0; 0; 0; 3; 1; 3) Lập bảng đơn hình:

Hệ số ẩn

CB PA

2 -1 3 M M M

i

x1 x2 x3 x4 x5 x6

M x4 3 -1 1 3 1 0 0 1

M x5 1 2 -1 1 0 1 0 1

M x6 3 0 2 3 0 0 1 1

Lần 1

aj 0 -2 1 -3 0 0 0

bj 7 1 2 7 0 0 0

3 x3 1 -1/3 1/3 1 -

M x5 0 7/3 -4/3 0 0

M x6 0 1 1 0 0

Lần 2

aj 3 -3 2 0

bj 0 10/3 -1/3 0

3 x3 1 0 1/7 1 7

2 x1 0 1 -4/7 0 -

M x6 0 0 11/7 0 0

Lần 3

aj 3 0 2/7 0

bj 0 0 11/7 0

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 82

3 x3 1 0 0 1

2 x1 0 1 0 0

-1 x2 0 0 1 0

Lần 4

aj 3 0 0 0

bj 0 0 0 0

Kết luận: PATƢ của bài toán (P) là (x1 , x2 , x3) = (0 , 0 , 1) Giá trị tối ƣu là f* = 3

b) Tìm bài toán đối ngẫu:

g(y) = 3y1 + y2 + 3y3 → max

ơ

- y1 + 2y2 ≤ 2

y1 - y2 + 2y3 ≤ -1 (D) 3y1 + y2 + 3y3 ≤ 3

yj tùy ý (j = 1, 2, 3) c) Tìm nghiệm của bài toán đối ngẫu (D):

Theo định lý 2 ta có:

x1( - y1 + 2y2 - 2) = 0 x2( y1 - y2 + 2y3 + 1) = 0 x3( 3y1 + y2 + 3y3 - 3) = 0 y1( - x1 + x2 + 3x3 - 3) = 0 y2( 2x1 - x2 + x3 - 1) = 0 y3 ( 2x2 + 3x3 - 3) = 0 Vì x1 = x2 = 0, x3 = 1 ≠ 0 nên:

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 83 3y1 + y2 + 3y3 - 3 = 0 (*)

Như vậy, trong trường hợp này bài toán đối ngẫu (D) có vô số nghiệm (y1 , y2 , y3) thỏa mãn (*)

Ví dụ 4: Cho bài toán gốc (P)

f(x) = 52x1 + 60x2 + 36x3 → min

x1 ≥ -2

2x1 + 4x2 + 3x3 ≥ 6 4x1 + 2x2 ≥ 4

x2 ≥ -2

x3 ≥ 3 xj tùy ý (j = 1, 2, 3) a) Tìm bài toán đối ngẫu (D)

b) Giải bài toán đối ngẫu (D)

c) Tìm nghiệm tối ƣu của bài toán gốc (P) Giải a) Bài toán đối ngẫu (D) là:

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

4y2 + 2y3 + y4 = 60 3y2 + y5 = 36 yi ≥ 0 (i = 1, 2, . . . , 5)

b) Giải bài toán đối ngẫu

Chuyển bài toán (D) về dạng chuẩn, ta đƣợc:

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 84 g’(y) = - g(y) = 2y1 - 6y2 - 4y3 + 2y4 - 3y5 → min

y1 + 2y2 + 4y3 = 52 4y2 + 2y3 + y4 = 60 3y2 + y5 = 36 yi ≥ 0 (i = 1, 2, . . . , 5)

PACB ban đầu là y = (52; 0; 0; 60; 36)

Hệ số ẩn

CB PA

2 -6 -4 2 -3

i y1 y2 y3 y4 y5

2 y1 52 1 2 4 0 0 13

2 y4 60 0 4 2 1 0 30

-3 y5 36 0 3 0 0 1 -

Lần 1 g’(y) 116 0 9 16 0 0

-4 y3 13 1/4 1/2 1 0 0 26

2 y4 34 -1/2 3 0 1 0 34/3

-3 y5 36 0 3 0 0 1 12

Lần 2 g’(y) -92 -4 1 0 0 0

-4 y3 22/3 1/3 0 1 -1/6 0 -

-6 y2 34/3 -1/6 1 0 1/3 0 -

-3 y5 2 1/2 0 0 -1 1 -

g’(y) -310/3 -23/6 0 0 -1/3 0 Kết luận:

Nghiệm tối ƣu của bài toán đối ngẫu (D) là y* = (0 , 34/3 , 22/3 , 0 , 2)

Giá trị tối ƣu đạt đƣợc là g(y*) = - g’(y*) = 310/3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 85 c) Tìm nghiệm của bài toán gốc (P)

Theo định lý 2, ta có:

y1 (x1 + 2) = 0

y2 (2x1 + 4x2 + 3x3 - 6) = 0 y3 (4x1 + 2x2 - 4) = 0 y4 (x2 + 2) = 0

y5 (x3 - 3) = 0

x1 (y1 + 2y2 + 4y3 - 52) = 0 x2 (4y2 + 2y3 + y4 - 60) = 0 x3 (3y2 + y5 - 36) = 0

mà y = (0 , 34/3 , 22/3 , 0 , 2)

 y1 = 0 , y2 = 34/3 , y3 = 22/3 , y4 = 0 , y5 = 2 Suy ra:

2x1 + 4x2 + 3x3 - 6 = 0 4x1 + 2x2 - 4 = 0 x3 - 3 = 0

 x1 = 11/6 , x2 = -5/3 , x3 = 3

Vậy: PATƢ của bài toán gốc là x = (11/6 , -5/3 , 3) Ví dụ 5: Cho bài toán gốc (P):

f(x) = 2x1 + 3x2 - x3 → max 2x1 + x2 + 3x3 ≥ 5 - x1 + 2x3 = 6 3x1 + 2x2 - x3 ≤ 3 xj ≥ 0 (j = 1, 2, 3)

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH 86 a) Tìm bài toán đối ngẫu (D)

b) Chứng minh rằng x* = (0 , 3 , 3) là nghiệm tối ƣu của bài toán (P) Giải:

a) Tìm bài toán đối ngẫu (D):

g(y) = 5y1 + 6y2 + 3y3  min 2y1 - y2 + 3y3 ≥ 2 y1 + 2y3 ≥ 3 3y1 + 2y2 - y3 ≥ -1 y1 ≤ 0; y2 tùy ý; y3 ≥ 0

b) Chứng minh rằng x* = (0 , 3 , 3) là nghiệm tối ƣu của bài toán (P) Theo định lý đối ngẫu:

(2x1 + x2 + 3x3 - 5) y1 = 0 ( - x1 + 2x3 - 6) y2 = 0 (3x1 + 2x2 - x3 - 3) y3 = 0 (2y1 - y2 + 3y3 - 2) x1 = 0 (y1 + 2y3 - 3) x2 = 0 (3y1 + 2y2 - y3 + 1) x3 = 0

Giả sử x = (0, 3, 3) là PATƢ của bài toán (P), thay x1 = 0, x2 = 3, x3 = 3 vào hệ trên ta đƣợc:

12y1 = 0

y1 + 2y3 - 3 = 0 3y1 + 2y2 - y3 + 1 = 0

 y1 = 0, y2 = 1/4 , y3 = 3/2  y = (0 , 1/4 , 3/2) mà f(x) = 6 = g(y)

Suy ra: x = (0, 3, 3) là PATƢ của bài toán (P) và y = (0 , 1/4 , 3/2) là PATƢ của bài toán (D)

Một phần của tài liệu Tập bài giảng Quy hoạch tuyến tính (Trang 72 - 83)

Tải bản đầy đủ (PDF)

(147 trang)