<< Chapter < Page Chapter >> Page >

Ví dụ : xét quy hoạch tuyến tính chính tắc

max z ( x ) = 2x 1 + 3x 2 4x 1 + 2x 2 + x 3 = 5 x 1 + 3x 2 = 1 x 1 , x 2 , x 3 0 { alignl { stack { size 12{"max"" z" \( x \) ="2x" rSub { size 8{1} } +3x rSub { size 8{2} } } {} #alignl { stack { left lbrace 4x rSub { size 8{1} } +2x rSub { size 8{2} } +x rSub { size 8{3} } =5 {} #right none left lbrace x rSub { size 8{1} } +3x rSub { size 8{2} } =1 {} # right no } } lbrace {} #x rSub { size 8{1} } ,x rSub { size 8{2} } ,x rSub { size 8{3} }>= 0 {} } } {}

Với hệ A1 A2 ta tính được x 1 = 13 3 1 10 0 T size 12{x rSup { size 8{1} } = left [ matrix { { {"13"} over {3} } {} # - { {1} over {"10"} } {} # 0{}} right ] rSup { size 8{T} } } {}

Với hệ A1 A3 ta tính được x 2 = 1 0 1 T size 12{x rSup { size 8{2} } = left [ matrix { 1 {} # 0 {} # 1{}} right ] rSup { size 8{T} } } {}

Với hệ A2 A3 ta tính được x 3 = 0 1 3 13 3 T size 12{x rSup { size 8{3} } = left [ matrix { 0 {} # { {1} over {3} } {} # { {"13"} over {3} } {}} right ] rSup { size 8{T} } } {}

Vì các thành phần của phương án cực biên là>0 nên ta chi xét x2 và x3 . Khi đó :

z(x2)=2.1+3.0=2

z(x3)=2.0+3.1/3=1

Vậy x 2 = 1 0 1 T size 12{x rSup { size 8{2} } = left [ matrix { 1 {} # 0 {} # 1{}} right ] rSup { size 8{T} } } {} là một phương án tối ưu.

Định lý

Điều kiện cần và đủ để một quy hoạch tuyến tính có phương án tối ưu là tập các phương án không rỗng và hàm mục tiêu bị chặn.

Định lý

Nếu tập các phương án của một quy hoạch tuyến tính không rỗng và là một đa diện lồi thì quy hoạch tuyến tính đó sẽ có ít nhất một phương án cực biên là phương án tối ưu.

Phương pháp hình học

Từ những kết quả trên người ta có cách giải một quy hoạch tuyến tính hai biến bằng phương pháp hình học thông qua ví dụ sau :

Ví dụ : xét quy hoạch tuyến tính

max z ( x ) = 3x 1 + 2x 2 x 1 x 2 4 x 1 + 2x 2 14 5x 1 + 2x 2 30 x 1 , x 2 0 { { alignl { stack { size 12{"max"" "z \( x \) =3x rSub { size 8{1} } +2x rSub { size 8{2} } } {} #alignl { stack { left lbrace x rSub { size 8{1} } - x rSub { size 8{2} }>= - 4 {} # right none left lbrace x rSub { size 8{1} } +2x rSub { size 8{2} }<= "14" {} # right none left lbrace 5x rSub { size 8{1} } +2x rSub { size 8{2} }<= "30" {} # right no } } lbrace {} #x rSub { size 8{1} } ,x rSub { size 8{2} }>= 0 {} } } {}

x2x1ABCDO

A,B,C,D,O là các điểm cực biên. Giá trị hàm mục tiêu tại đó là :

z(A)=3.6+2.0=18

z(B)=3.4+2.5=22

z(C)=3.2+2.6=18

z(D)=3.0+2.8=8

z(O)=3.0+2.0=0

Phương án tối ưu của bài toán đạt được tại B : x1=4 và x2=5

Một ví dụ mở đầu

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

min z ( x ) = -5x 1 4x 2 3x 3 2x 1 + 3x 2 + x 3 5 4x 1 + x 2 + 2x 3 11 3x 1 + 4x 2 + 2x 3 8 x 1 , x 2 , x 3 0 { { alignl { stack { size 12{"min z" \( x \) =" -5x" rSub { size 8{1} } - 4x rSub { size 8{2} } - 3x rSub { size 8{3} } } {} #alignl { stack { left lbrace 2x rSub { size 8{1} } +3x rSub { size 8{2} } +x rSub { size 8{3} }<= 5 {} # right none left lbrace 4x rSub { size 8{1} } +x rSub { size 8{2} } +2x rSub { size 8{3} }<= "11" {} # right none left lbrace 3x rSub { size 8{1} } +4x rSub { size 8{2} } +2x rSub { size 8{3} }<= 8 {} # right no } } lbrace {} #x rSub { size 8{1} } ,x rSub { size 8{2} } ,x rSub { size 8{3} }>= 0 {} } } {}

Đưa bài toán về dạng chính tắc bằng cách đưa vào các biến phụ w1, w2, w3  0 ( làm cho các ràng buộc bất đẳng thức thành đẳng thức ) . Ta được :

min z ( x ) = -5x 1 4x 2 3x 3 2x 1 + 3x 2 + x 3 + w 1 = 5 4x 1 + x 2 + 2x 3 + w 2 = 11 3x 1 + 4x 2 + 2x 3 + w 3 = 8 x 1 , x 2 , x 3 , w 1 , w 2 , w 3 0 { { alignl { stack { size 12{"min z" \( x \) =" -5x" rSub { size 8{1} } - 4x rSub { size 8{2} } - 3x rSub { size 8{3} } } {} #alignl { stack { left lbrace 2x rSub { size 8{1} } +3x rSub { size 8{2} } +x rSub { size 8{3} } +w rSub { size 8{1} } =5 {} #right none left lbrace 4x rSub { size 8{1} } +x rSub { size 8{2} } +2x rSub { size 8{3} } +w rSub { size 8{2} } ="11" {} # right none left lbrace 3x rSub { size 8{1} } +4x rSub { size 8{2} } +2x rSub { size 8{3} } +w rSub { size 8{3} } =8 {} #right no } } lbrace {} # x rSub { size 8{1} } ,x rSub { size 8{2} } ,x rSub { size 8{3} } ,w rSub { size 8{1} } ,w rSub { size 8{2} } ,w rSub { size 8{3} }>= 0 {} } } {}

Thực hiện việc chuyển vế ta được bài toán ban đầu như sau :

min z ( x ) = -5x 1 4x 2 3x 3 w 1 = 5 2x 1 3x 2 x 3 w 2 = 11 4x 1 x 2 2x 3 w 3 = 8 3x 1 4x 2 2x 3 x 1 , x 2 , x 3 , w 1 , w 2 , w 3 0 { { alignl { stack { size 12{"min z" \( x \) =" -5x" rSub { size 8{1} } - 4x rSub { size 8{2} } - 3x rSub { size 8{3} } } {} #alignl { stack { left lbrace w rSub { size 8{1} } =5 - 2x rSub { size 8{1} } - 3x rSub { size 8{2} } - x rSub { size 8{3} } {} #right none left lbrace w rSub { size 8{2} } ="11" - 4x rSub { size 8{1} } - x rSub { size 8{2} } - 2x rSub { size 8{3} } {} # right none left lbrace w rSub { size 8{3} } =8 - 3x rSub { size 8{1} } - 4x rSub { size 8{2} } - 2x rSub { size 8{3} } {} #right no } } lbrace {} # x rSub { size 8{1} } ,x rSub { size 8{2} } ,x rSub { size 8{3} } ,w rSub { size 8{1} } ,w rSub { size 8{2} } ,w rSub { size 8{3} }>= 0 {} } } {} (I)

Một phương án khả thi xuất phát ( chưa là phương án tối ưu ) của bài toán là :

x1 = x2 = x3 = 0

w1=5w2=11w3 = 8

Giá trị tương ứng của hàm mục tiêu là z(x) = 0

Người ta sẽ cải tiến phương án xuất phát này để được một phương án mới tốt hơn, nó làm cho giá trị của hàm mục tiêu giảm xuống. Người ta làm như sau :

Vì hệ số của x1 trong hàm mục tiêu là âm và có giá trị tuyệt đối lớn nhất nên nếu tăng x1 từ bằng 0 lên một giá trị dương ( càng lớn càng tốt ) và đồng thời vẫn giữ x2 và x3 bằng 0 thì giá trị của hàm của hàm mục tiêu sẽ giảm xuống. Khi đó các biến ở vế trái của bài toán (I) sẽ bị thay đổi theo nhưng phải thoả  0 . Sự thay đổi của chúng không ảnh hưởng đến sự thay đổi của hàm mục tiêu. Thực hiện ý tưởng trên ta được :

w 1 = 5 2x 1 0 w 2 = 11 4x 1 0 w 3 = 8 3x 1 0 x 2 = x 3 = 0 { { alignl { stack { size 12{alignl { stack {left lbrace w rSub { size 8{1} } =5 - 2x rSub { size 8{1} }>= 0 {} # right none left lbrace w rSub { size 8{2} } ="11" - 4x rSub { size 8{1} }>= 0 {} # right none left lbrace w rSub { size 8{3} } =8 - 3x rSub { size 8{1} }>= 0 {} # right no } } lbrace } {} #x rSub { size 8{2} } =x rSub { size 8{3} } =0 {} } } {}

Suy ra : x 1 5 2 x 1 11 4 x 1 8 3 x 1 5 2 { { size 12{alignl { stack { left lbrace x rSub { size 8{1} }<= { {5} over {2} } {} # right none left lbrace x rSub { size 8{1} }<= { {"11"} over {4} } {} # right none left lbrace x rSub { size 8{1} }<= { {8} over {3} } {} # right no } } lbrace " " drarrow " x" rSub { size 8{1} }<= { {5} over {2} } } {} (dòng 1 được chọn)

Người ta chọn x 1 = 5 2 size 12{x rSub { size 8{1} } = { {5} over {2} } } {} nên nhận được một phương án tốt hơn được xác định như sau :

x 2 = x 3 = w 1 = 0 x 1 = 5 2 w 2 = 1 w 3 = 1 2 alignl { stack { size 12{x rSub { size 8{2} } =x rSub { size 8{3} } =w rSub { size 8{1} } =0} {} #x rSub { size 8{1} } = { {5} over {2} } " w" rSub { size 8{2} } =1" w" rSub { size 8{3} } = { {1} over {2} } {} } } {}

Giá trị tương ứng của hàm mục tiêu là z ( x ) = 25 2 size 12{z \( x \) = - { {"25"} over {2} } } {}

Bước tiếp theo là biến đổi bài toán (I) thành một bài toán tương đương bằng cách từ dòng 1 ( dòng được chọn ) tính x1 theo các biến còn lại và thế giá trị nhận được vào các dòng còn lại, ta được :

min z ( x ) = - 25 2 + 5 2 w 1 + 7 2 x 2 1 2 x 3 x 1 = 5 2 1 2 w 1 3 2 x 2 1 2 x 3 w 2 = 1 + 2w 1 + 5x 2 w 3 = 1 2 + 3 2 w 1 + 1 2 x 2 1 2 x 3 x 1 , x 2 , x 3 , w 1 , w 2 , w 3 0 { { alignl { stack { size 12{"min z" \( x \) =" -" { {"25"} over {2} } + { {5} over {2} } w rSub { size 8{1} } + { {7} over {2} } x rSub { size 8{2} } - { {1} over {2} } x rSub { size 8{3} } } {} #alignl { stack { left lbrace x rSub { size 8{1} } = { {5} over {2} } - { {1} over {2} } w rSub { size 8{1} } - { {3} over {2} } x rSub { size 8{2} } - { {1} over {2} } x rSub { size 8{3} } {} #right none left lbrace w rSub { size 8{2} } =1+2w rSub { size 8{1} } +5x rSub { size 8{2} } {} # right none left lbrace w rSub { size 8{3} } = { {1} over {2} } + { {3} over {2} } w rSub { size 8{1} } + { {1} over {2} } x rSub { size 8{2} } - { {1} over {2} } x rSub { size 8{3} } {} #right no } } lbrace {} # x rSub { size 8{1} } ,x rSub { size 8{2} } ,x rSub { size 8{3} } ,w rSub { size 8{1} } ,w rSub { size 8{2} } ,w rSub { size 8{3} }>= 0 {} } } {} (II)

Thực hiện tương tự như trên, người ta tăng x3 từ bằng 0 lên một giá trị dương cho phép và đồng thời vẫn giữ x2 và w1 bằng 0 thì giá trị của hàm của hàm mục tiêu sẽ giảm xuống. Khi đó các biến ở vế trái của bài toán (II) sẽ bị thay đổi theo nhưng phải thoả  0 . Ta được :

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Quy hoạch tuyến tính. OpenStax CNX. Aug 08, 2009 Download for free at http://cnx.org/content/col10903/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Quy hoạch tuyến tính' conversation and receive update notifications?

Ask