Bài giảng quy hoạch tuyến tính
Bài ging quy hoch toán Chng 1. BÀI TOÁN QUY HOCH TUYN TÍNH PHNG PHÁP HÌNH HC 1.1. Các bài toán thc t 1.1.1. Bài toán lp k hoch sn xut a) Ví d sn xut ko và bánh cn 2 th nguyên liu chính là đng và bt mì, vi tr lng hin có là 0,9kg đng và 1,1 kg bt mì. 1kg ko cn 0,5 kg đng và 0,3 kg bt mì; 1kg bánh cn 0,2kg đng và 0,4 kg bt mì. Giá 1kg ko là 10000đ; 1kg bánh là 20000đ. Hãy lp k hoch sn xut sao cho tng giá tr sn phm ln nht. Gi x 1 là s kg ko đc sn xut; x 2 là s kg bánh đc sn xut. Có mô hình toán hc: f(x) = 10000x 1 +20000x 2 max ⎪ ⎩ ⎪ ⎨ ⎧ ≥ ≤+ ≤+ 0, 1.14.03.0 9.02.05.0 21 21 21 xx xx xx b)Tng quát sn xut n loi sn phm khác nhau cn m loi yu t sn xut vi tr lng hin có là b 1 , b 2 , ., b m . H s hao phí yu t i ( i=1 m ) cho 1 đn v sn phm j (j=1 n) là a ij . Giá 1 đn v sn phm j là c j (j=1 n). Hãy lp k hoch sn xut trên c s các yu t sn xut hin có sao cho tng giá tr sn phm ln nht. Gi x j là s sn phm j đc sn xut, f(x) là tng doanh thu ng vi k hoch sn xut x = (x 1 ,x 2 , ., x n ). Có mô hình toán hc: f(x) = c ∑ = n j 1 j x j max ⎪ ⎩ ⎪ ⎨ ⎧ =≥ =≤ ∑ = ) 1(0 ) 1( 1 njx mibxa j ij n j ij Bài ging quy hoch toán 1.1.2. Bài toán vn ti Có m kho hàng cha cùng 1 loi hàng hóa vi s lng kho i là ai (i=1 m). ng thi có n ca hàng vi nhu cu ca hàng j là bj (j=1 n). Chi phí vn chuyn 1 đn v hàng t kho i đn ca hàng j là c ij . Hãy lp k hoch vn chuyn sao cho tha mãn nhu cu các ca hàng và chi phí vn chuyn thp nht. Gi x ij là s lng hàng chuyn t kho i đn ca hàng j f(x) là tng chi phí theo k hoch vn chuyn x. Mô hình toán hc: f(x) = ∑ ∑ c = m i 1 = n j 1 ij x ij min ⎪ ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎧ ==≥ == =≤ ∑ ∑ = = ) 1, 1(0 ) 1( ) 1( 1 1 njmix njbx miax ij j m i ij i n j ij 1.1.3. Bài toán xác đnh khu phn Có n loi thc n gia súc, giá 1 đn v thc n j là c (j=1 n). Gia súc cn m cht dinh dng vi nhu cu ti thiu cht i là b i (i=1 m). Bit hàm lng cht i có trong 1 đn v thc n j là a ij . Hãy xác đnh khu phn thc n cho gia súc sao cho chi phí thp nht đng thi đm bo các cht dinh dng cho gia súc. Gi x j là lng thc n j có trong khu phn, f(x) là giá khu phn x = (x 1 ,x 2 , ., x n ). Có mô hình toán hc sau: f(x) = c ∑ = n j 1 j x j min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ =≥ ∑ = ) 1(0 ) 1( 1 njx mibxa j ij n j ij 1.2. Bài toán qui hoch tuyn tính Xét bài toán Bài ging quy hoch toán (1) f(x) = c ∑ = n j 1 j x j min (2) ⎪ ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎧ +=≤ +=≥ == ∑ ∑ ∑ = = = ) 1( ) 1( ) 1( 1 1 1 mkibxa kpibxa pibxa ij n j ij ij n j ij ij n j ij Bài toán (1,2) gi là bài toán quy hoch tuyn tính dng tng quát, ký hin là (d,f). * f(x) gi là hàm mc tiêu. * H (2) gi là h ràng buc. * Ma trn A = (a ij ) mxn gi là ma trn s liu. * Vect C = (c j ) n gi là h s hàm mc tiêu. Mi b s x=(x 1 , x 2 , ., x n ) tha mãn h ràng buc (2) gi là phng án, ký hiu x ∈ d. Phng án làm cho hàm mc tiêu f(x) đt cc tr cn tìm gi là phng án ti u, hay là nghim ca bài toán (d,f) . 1.3. Phng pháp hình hc Phng pháp hình hc dùng đ gii bài toán (d,f) 2 n, hoc nhiu hn 2 n nhng có th đa v bài toán 2 n tng đng. Xét bài toán f(x) = ax +by min (max) (d) { ) 1( miciybxa ii =≤+ Min d d là giao các na mt phng, hay là mt đa giác. Bài toán có th phát biu bng hình hc nh sau: Tìm trong h đng thng song song ax+ by = f gi là h đng mc ,mt đng mc ng vi f nh nht (ln nht) có ít nht 1 đim chung vi min d. Ví d 1.1 f(x,y) = x + 2y max ⎪ ⎩ ⎪ ⎨ ⎧ ≥ ≤+ ≤+ 0, 1143 925 yx yx yx Bài ging quy hoch toán y A(0,11/4) B(1,2) d O C(9/5,0) x Qua hình v thy đng thng qua A(0, 4 11 ) ng vi f ln nht. Vy nghim là x 1 =0, x 2 = 4 11 và f max = 2 11 . Nhn xét - Nghim là đnh ca đa giác. - Nu hàm mc tiêu là f(x,y) = 3x + 4y thì nghim là c đon thng AB. - Giá tr f ca h đng mc tng theo chiu ca pháp vect. Ví d 1.2 f(x,y) = x + y max ⎪ ⎩ ⎪ ⎨ ⎧ ≥ ≤− −≥− 0, 22 1 yx yx yx d A(0,1) O B(2,0) Theo hình v, hàm mc tiêu không b chn trên trong min d nên bài toán vô nghim. ---oOo--- Bài ging Quy hoch toán hc Trang 5 ________________________________________________________________________ 1.4. Bài tp Gii các bài toán sau bng phng pháp hình hc 1. f(x) = x + 2y → max 2. f(x) = 5x - 3y → min 36 34 1 00 xy xy xy +≤ +≤ ≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ , 2 xy xy xy +≤ +≥ ≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ 24 36 00, 3. f(x) = 3x + y → max 4. f(x) = 2x + 3y +10 → max −+≥ +≤ ≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ 36 351 00 xy xy xy, 5 36 4 24 00 xy xy xy xy + ≤ +≤ +≤ ≥≥ ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪ , 5. f(x) = 2x + 5y → max 6. f(x) = x + 3y → max 22 8 3 21 00 xy xy xy xy xy +≥ +≤ +≥ +≤ ≥≥ ⎧ ⎨ ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ , 2 xy xy xy +≤ +≥ ≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ 36 4 00, 7. f(x) = x + 2y → max 8. f(x) = 2x + 3y → min xy xy xy +≤ +≤ ≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ 8 21 00, 4 xy xy xy xy + ≥ +≥ +≥ ≥≥ ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪ 28 36 34 1 00, 2 0 0 9. f(x) = 5x 1 + 2x 2 + 3x 3 → max 10. f(x) = 2x 1 + x 3 → min xxx xx x xx x xxx 123 12 3 12 3 123 1 253 4 432 00 ++= ++≤ ++ ≤ ≥≥≥ ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪ ,, xxx xx x xxx 123 12 3 123 1 223 00 ++= ++ ≥ ≥≥≥ ⎧ ⎨ ⎪ ⎩ ⎪ ,, *********************** ________________________________________________________________________ GV: Phan Thanh Tao Bài ging Quy hoch toán hc Trang 6 ________________________________________________________________________ Chng 2. PHNG PHÁP N HÌNH 2.1. Dng chính tc và dng chun tc 2.1.1. nh ngha Trong thc t, đa s các bài toán có điu kin không âm ca các n. T đó có đnh ngha dng chính tc là bài toán (d,f) nh sau: f(x) = c ∑ = n j 1 j x j min (1) ⎪ ⎩ ⎪ ⎨ ⎧ =≥ == ∑ = )3() 1(0 )2() 1( 1 njx mibxa j ij n j ij (2) gi là ràng buc cng bc, (3) gi là ràng buc t nhiên. Vi bài toán (d,f) chính tc, có th gi s m ≤n. Mt trng hp đc bit ca dng chính tc là ma trn s liu A = (a ij ) mxn có cha đ m vect ct là m vect đn v ca không gian R m và b i ≥ 0 (i=1 m) gi là dng chun tc. Không mt tính tng quát, có th đnh ngha bài toán (d,f) chun tc nh sau: f(x) = c ∑ = n j 1 j x j min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ ==+ ∑ += ) 1(0 ) 1( 1 njx mibxax j ij n mj iji trong đó b i ≥ 0 (i=1 m). 2.1.2. Các phép bin đi Các phép bin đi sau đ đa bài toán (d,f) bt k v dng chính tc tng đng đ gii, và t đó suy ra nghim ca bài toán ban đu. a/ f(x) max g(x) = -f(x) min ⇔ b/ ∑ vi x = ≤ n j ijij bxa 1 ⇔ ∑ = + =+ n j iinjij bxxa 1 n+i ≥0 ∑ vi x = ≥ n j ijij bxa 1 ⇔ ∑ = + =− n j iinjij bxxa 1 n+i ≥0 x n+i gi là n ph. Có kt lun sau: Nu x = (x 1 , x 2 , ., x n , x n+1 , ., x n+m ) là nghim ca bài toán chính tc bin đi thì x=(x 1 , x 2 , ., x n ) là nghim bài toán gc. ________________________________________________________________________ GV: Phan Thanh Tao Bài ging Quy hoch toán hc Trang 7 ________________________________________________________________________ c/ Nu n x j không ràng buc v du thì đc thay bng hiu hai n không âm. Ngha là đt x j =x j ’ – x j ” vi x j ’≥0, x j ”≥0. d/ Trng hp b i < 0 thì nhân hai v phng trình cho -1 có đc b i >0. Vy: Mi bài toán quy hoch tuyn tính đu có th đa v bài toán dng chính tc tng đng. Hn na có th các h s t do b i trong h ràng buc là không âm. 2.1.3. Phng án c bn Xét bài toán (d,f) dng chính tc f(x) = c ∑ = n j 1 j x j min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ == ∑ = ) 1(0 ) 1( 1 njx mibxa j ij n j ij t A j = (a 1j , a 2j , . , a mj ) là vect ct th j trong ma trn A mxn b = (b 1 , b 2 , . , b m ) là ct h s t do. Gi s x = ( x 1 , x 2 , ., x n ) là phng án ca bài toán thì h vect { A j / x j > 0 } gi là h vect liên kt vi phng án x. nh ngha x ∈ d là phng án c bn nu h véct liên kt vi x đc lp tuyn tính. n x j gi là n c bn nu x j > 0. Nhn xét: - Phng án c bn có ti đa m thành phn dng. Phng án c bn có đúng m thành phn dng gi là không suy bin. Ngc li gi là suy bin. Bài toán có phng án c bn suy bin gi là bài toán suy bin. - S phng án c bn ca mt bài toán (d,f) là hu hn. - Vi bài toán dng chun tc thì có phng án c bn là x o = (b 1 , b 2 , . ,b m ,0, .,0). 2.1.4. Các tính cht Tính cht 1 Bài toán (d,f) ch xy ra 1 trong 3 trng hp sau: a) Vô nghim b) Có 1 nghim duy nht c) Vô s nghim. Tính cht 2 Nu hàm mc tiêu f(x) là chn di (trên ) đi vi bài toán dng min (max) trên tp phng án d thì bài toán (d,f) có nghim. ________________________________________________________________________ GV: Phan Thanh Tao Bài ging Quy hoch toán hc Trang 8 ________________________________________________________________________ Tính cht 3 Nu bài toán (d,f) có nghim thì có nghm là phng án c bn. 2.2. Phng pháp đn hình 2.2.1. Ni dung Xut phát t phng án c bn nào đó, tìm cách đánh giá nó. Nu cha ti u thì chuyn sang phng án c bn mi tt hn. Nu bài toán có nghim thì sau hu hn bc s tìm đc phng án c bn ti u. Hn na du hiu vô nghim cng đc th hin trên thut toán . Ví d 2.1 Xét bài toán (d,f) dng chun tc: f(x) = x 1 -2x 2 +3x 3 -2x 4 min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ =++ =+− )4 1(0 5 432 421 321 jx xxx xxx j Có phng án c bn x o = (0, 0, 4, 5) và f(x o )=2 vi x 3 , x 4 là n c bn. ánh giá: ∀ x=(x 1 ,x 2 ,x 3 ,x 4 )∈ d : ⎪ ⎩ ⎪ ⎨ ⎧ =≥ =++ =+− )4 1(0 5 432 421 321 jx xxx xxx j ⇔ ⎪ ⎩ ⎪ ⎨ ⎧ =≥ −−= +−= )4 1(0 5 324 214 213 jx xxx xxx j f(x) = x 1 -2x 2 +3x 3 -2x 4 = x 1 -2x 2 +3(4-2x 1 +3x 2 ) -2(5-x 1 -x 2 ) = 2 -3x 1 +9x 2 = 2-∆ 1 x 1 - ∆ 2 x 2 Vì x 1 , x 2 ≥0 nên nu ∆ 1 , ∆ 2 ≤ 0 thì f(x)≥2 và x o là phng án ti u. Tuy nhiên, đây ∆ 1 =3>0 nên x o cha phi là nghim. Th chn x 1 , x 4 làm n c bn , cho x 2 =0 và x 3 =0. Có ⎩ ⎨ ⎧ =+ = 5 42 41 1 xx x x⇒ 1 =2 và x 4 =3. Rõ ràng A 1 , A 4 đc lp tuyn tính nên có phng án c bn là x = (2, 0, 0, 3) và f( x ) = - 4. ánh giá: ∀ x=(x 1 ,x 2 ,x 3 ,x 4 )∈ d : ________________________________________________________________________ GV: Phan Thanh Tao Bài ging Quy hoch toán hc Trang 9 ________________________________________________________________________ ⎩ ⎨ ⎧ =++ =+− 5 432 421 321 xxx xxx ⇔ ⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ +−= −+= 324 321 2 1 2 5 3 2 1 2 3 2 xxx xxx f(x) = x 1 -2x 2 +3x 3 -2x 4 = (2+ 2 3 x 2 - 2 1 x 3 ) -2x 2 +3x 3 -2(3- 2 5 x 2 + 2 1 x 3 ) = - 4 + 2 9 x 2 + 2 3 x 3 (= -4-∆ 2 x 2 - ∆ 3 x 3 ) ≥ -4 Vì x 2 , x 3 ≥0 nên x là phng án ti u (∆ 2 , ∆ 3 ≤0). 2.2.2. Bng đn hình Cho bài toán (d,f) chun tc: f(x) = c ∑ = n j 1 j x j min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ ==+ ∑ += ) 1(0 ) 1( 1 njx mibxax j ij n mj iji trong đó b i ≥ 0 (i=1 m). ∀ j=1 n đt ∆ j = ∑ c = m i 1 i a ij - c j và gi là c lng ca n x j đi vi phng án c bn x o =(b 1 , b 2 , …, b m , 0, …, 0) vi f(x o )= c ∑ = m i 1 i b i Lu ý: ∆ i = 0 , ∀ i=1 m Có bng đn hình sau: H s n CB P/Án x 1 c 1 x 2 c 2 … x m c m x m+1 c m+1 … x s c s … x n c n c 1 x 1 b 1 1 0 … 0 a 1,m+1 … a 1s … a 1n c 2 x 2 b 2 0 1 … 0 a 2,m+1 … a 2s … a 2n … … … … … … … … … … c r x r b r 0 0 … 0 a r,m+1 … a rs … a rn … … … … … … … … … … c m x m b m 0 0 … 1 a m,m+1 … a ms … a mn f(x) ∆ 1 ∆ 2 ∆ m ∆ m+1 ∆ s ∆ n ________________________________________________________________________ GV: Phan Thanh Tao Bài ging Quy hoch toán hc Trang 10 ________________________________________________________________________ 2.2.3. C s lý lun Cho bài toán (d,f) chun tc: f(x) = c ∑ = n j 1 j x j min ⎪ ⎩ ⎪ ⎨ ⎧ =≥ ==+ ∑ += ) 1(0 ) 1( 1 njx mibxax j ij n mj iji trong đó b i ≥ 0 (i=1 m). ∀ j=1 n đt ∆ j = c ∑ = m i 1 i a ij - c j Có phng án c bn x o =(b 1 , b 2 , …, b m , 0, …, 0) vi f(x o )= c ∑ = m i 1 i b i nh lý 1 ( Du hiu ti u) Nu ∆ j ≤0 vi mi j = 1 n thì x o là phng án ti u. Chng minh Có f(x o )= c ∑ = m i 1 i b i ∀ x=(x j ) n ∈ d : x i + a ∑ += n mj 1 ij x j =b i (i=1 m) ⇒ x i = b i - a ∑ += n mj 1 ij x j (i=1 m) f(x) = c ∑ = n j 1 j x j = c ∑ = m i 1 i x i + c ∑ += n mj 1 j x j = c ∑ = m i 1 i (b i - a ∑ += n mj 1 ij x j ) + c ∑ += n mj 1 j x j = c ∑ = m i 1 i b i - ( c ∑ += n mj 1 ∑ = m i 1 i a ij -c j ) x j = f(x o ) - ∆ ∑ += n mj 1 j x j ≥ f(x o ) : vì ∆ j ≥0 và x j ≥ 0 (j=m+1 n) nh lý 2 ( Du hiu vô nghim) Nu ∃ ∆ k >0 và a ik ≤0 ∀ i = 1 m thì bài toán vô nghim. Chng minh Vì ∆ i = 0 , i=1 m và ∆∀ k >0 nên có k>m. ________________________________________________________________________ GV: Phan Thanh Tao