Êýѧ½¨Ä£Ö®ÏßÐԹ滮 ÏÂÔØ±¾ÎÄ

µÚÒ»Õ ÏßÐԹ滮

¡ì1 ÏßÐԹ滮

ÔÚÈËÃǵÄÉú²úʵ¼ùÖУ¬¾­³£»áÓöµ½ÈçºÎÀûÓÃÏÖÓÐ×ÊÔ´À´°²ÅÅÉú²ú£¬ÒÔÈ¡µÃ×î´ó¾­¼ÃÐ§ÒæµÄÎÊÌâ¡£´ËÀàÎÊÌâ¹¹³ÉÁËÔ˳ïѧµÄÒ»¸öÖØÒª·ÖÖ§¡ªÊýѧ¹æ»®£¬¶øÏßÐԹ滮(Linear Programming ¼ò¼ÇLP)ÔòÊÇÊýѧ¹æ»®µÄÒ»¸öÖØÒª·ÖÖ§¡£×Ô´Ó1947ÄêG. B. Dantzig Ìá³öÇó½âÏßÐԹ滮µÄµ¥´¿Ðη½·¨ÒÔÀ´£¬ÏßÐԹ滮ÔÚÀíÂÛÉÏÇ÷Ïò³ÉÊ죬ÔÚʵÓÃÖÐÈÕÒæ¹ã·ºÓëÉîÈë¡£ÌØ±ðÊÇÔÚ¼ÆËã»úÄÜ´¦Àí³ÉǧÉÏÍò¸öÔ¼ÊøÌõ¼þºÍ¾ö²ß±äÁ¿µÄÏßÐԹ滮ÎÊÌâÖ®ºó£¬ÏßÐԹ滮µÄÊÊÓÃÁìÓò¸üΪ¹ã·ºÁË£¬ÒѳÉΪÏÖ´ú¹ÜÀíÖо­³£²ÉÓõĻù±¾·½·¨Ö®Ò»¡£

1.1 ÏßÐԹ滮µÄʵÀýÓ붨Òå

Àý1ij»ú´²³§Éú²ú¼×¡¢ÒÒÁ½ÖÖ»ú´²£¬Ã¿Ì¨ÏúÊÛºóµÄÀûÈó·Ö±ðΪ4000ÔªÓë3000Ôª¡£Éú²ú¼×»ú´²ÐèÓÃA¡¢B»úÆ÷¼Ó¹¤£¬¼Ó¹¤Ê±¼ä·Ö±ðΪÿ̨2СʱºÍ1Сʱ£»Éú²úÒÒ»ú´²ÐèÓÃA¡¢B¡¢CÈýÖÖ»úÆ÷¼Ó¹¤£¬¼Ó¹¤Ê±¼äΪÿ̨¸÷һСʱ¡£ÈôÿÌì¿ÉÓÃÓÚ¼Ó¹¤µÄ»úÆ÷ʱÊý·Ö±ðΪA»úÆ÷10Сʱ¡¢B»úÆ÷8СʱºÍC»úÆ÷7Сʱ£¬Îʸó§Ó¦Éú²ú¼×¡¢ÒÒ»ú´²¸÷¼¸Ì¨£¬²ÅÄÜʹ×ÜÀûÈó×î´ó£¿

ÉÏÊöÎÊÌâµÄÊýѧģÐÍ£ºÉè¸Ã³§Éú²úx1̨¼×»ú´²ºÍx2ÒÒ»ú´²Ê±×ÜÀûÈó×î´ó£¬Ôòx1,x2Ó¦Âú×ã

£¨Ä¿±êº¯Êý£©maxz?4x1?3x2 (1)

?2x1?x2?10?x?x?8?12s.t.£¨Ô¼ÊøÌõ¼þ£©?£¨2£©

?x2?7??x1,x2?0ÕâÀï±äÁ¿x1,x2³ÆÖ®Îª¾ö²ß±äÁ¿£¬£¨1£©Ê½±»³ÆÎªÎÊÌâµÄÄ¿±êº¯Êý£¬£¨2£©Öеö²»µÈʽ

ÊÇÎÊÌâµÄÔ¼ÊøÌõ¼þ£¬¼ÇΪs.t.(¼´subject to)¡£ÓÉÓÚÉÏÃæµÄÄ¿±êº¯Êý¼°Ô¼ÊøÌõ¼þ¾ùΪÏßÐÔº¯Êý£¬¹Ê±»³ÆÎªÏßÐԹ滮ÎÊÌâ¡£

×ÜÖ®£¬ÏßÐԹ滮ÎÊÌâÊÇÔÚÒ»×éÏßÐÔÔ¼ÊøÌõ¼þµÄÏÞÖÆÏ£¬ÇóÒ»ÏßÐÔÄ¿±êº¯Êý×î´ó»ò×îСµÄÎÊÌâ¡£

ÔÚ½â¾öʵ¼ÊÎÊÌâʱ£¬°ÑÎÊÌâ¹é½á³ÉÒ»¸öÏßÐԹ滮ÊýѧģÐÍÊǺÜÖØÒªµÄÒ»²½£¬µ«ÍùÍùÒ²ÊÇÀ§ÄѵÄÒ»²½£¬Ä£Ðͽ¨Á¢µÃÊÇ·ñÇ¡µ±£¬Ö±½ÓÓ°Ïìµ½Çó½â¡£¶øÑ¡Êʵ±µÄ¾ö²ß±äÁ¿£¬ÊÇÎÒÃǽ¨Á¢ÓÐЧģÐ͵ĹؼüÖ®Ò»¡£

1.2 ÏßÐԹ滮µÄMatlab±ê×¼ÐÎʽ

ÏßÐԹ滮µÄÄ¿±êº¯Êý¿ÉÒÔÊÇÇó×î´óÖµ£¬Ò²¿ÉÒÔÊÇÇó×îСֵ£¬Ô¼ÊøÌõ¼þµÄ²»µÈºÅ¿ÉÒÔÊÇСÓÚºÅÒ²¿ÉÒÔÊÇ´óÓںš£ÎªÁ˱ÜÃâÕâÖÖÐÎʽ¶àÑùÐÔ´øÀ´µÄ²»±ã£¬MatlabÖй涨ÏßÐԹ滮µÄ±ê×¼ÐÎʽΪ

min cTx such that Ax?b xAeq?x?beq lb?x?ub

ÆäÖÐcºÍxΪnάÁÐÏòÁ¿£¬A¡¢AeqΪÊʵ±Î¬ÊýµÄ¾ØÕó£¬b¡¢beqΪÊʵ±Î¬ÊýµÄÁÐÏò

Á¿¡£

ÀýÈçÏßÐԹ滮

max cTx such that Ax?b xµÄMatlab±ê×¼ÐÍΪ

min ?cTx such that ?Ax??b x1.3 ÏßÐԹ滮ÎÊÌâµÄ½âµÄ¸ÅÄî Ò»°ãÏßÐԹ滮ÎÊÌâµÄ±ê×¼ÐÍΪ

nmaxz??cjxj(3)

j?1a?s.t.

j?1nijxj?bii?1,2,?,m(4)

xj?0j?1,2,?,n¿ÉÐнâ Âú×ãÔ¼ÊøÌõ¼þ£¨4£©µÄ½âx?(x1,x2,?,xn)£¬³ÆÎªÏßÐԹ滮ÎÊÌâµÄ¿ÉÐн⣬¶øÊ¹Ä¿±êº¯Êý£¨3£©´ïµ½×îСֵµÄ¿ÉÐнâ½Ð×îÓŽ⡣

¿ÉÐÐÓò ËùÓпÉÐн⹹³ÉµÄ¼¯ºÏ³ÆÎªÎÊÌâµÄ¿ÉÐÐÓò£¬¼ÇΪR¡£ 1.4 ÏßÐԹ滮µÄͼ½â·¨ 10987654321z=1200246810x1+x2=8(2,6)x2=72x1+x2=10 ͼ½â·¨¼òµ¥Ö±¹Û£¬ÓÐÖúÓÚÁ˽âÏßÐԹ滮ÎÊÌâÇó½âµÄ»ù±¾Ô­Àí¡£ÎÒÃÇÏÈÓ¦ÓÃͼ½â·¨À´Çó½âÀý1¡£¶ÔÓÚÿһ¹Ì¶¨µÄÖµz£¬Ê¹Ä¿±êº¯ÊýÖµµÈÓÚzµÄµã¹¹³ÉµÄÖ±Ïß³ÆÎªÄ¿±êº¯ÊýµÈλÏߣ¬µ±z±ä¶¯Ê±£¬ÎÒÃǵõ½Ò»×寽ÐÐÖ±Ïß¡£¶ÔÓÚÀý1£¬ÏÔÈ»µÈλÏßÔ½Ç÷ÓÚÓÒÉÏ·½£¬ÆäÉϵĵã¾ßÓÐÔ½´óµÄÄ¿±êº¯ÊýÖµ¡£²»ÄÑ¿´³ö£¬±¾ÀýµÄ×îÓŽâΪx*?(2,6)£¬×îÓÅÄ¿±êÖµ

Tz*?26¡£

´ÓÉÏÃæµÄͼ½â¹ý³Ì¿ÉÒÔ¿´³ö²¢²»ÄÑÖ¤Ã÷ÒÔ϶ÏÑÔ£º

£¨1£©¿ÉÐÐÓòR¿ÉÄÜ»á³öÏÖ¶àÖÖÇé¿ö¡£R¿ÉÄÜÊǿռ¯Ò²¿ÉÄÜÊǷǿռ¯ºÏ£¬µ±R·Ç¿Õʱ£¬Ëü±Ø¶¨ÊÇÈô¸É¸ö°ëÆ½ÃæµÄ½»¼¯£¨³ý·ÇÓöµ½¿Õ¼äάÊýµÄÍË»¯£©¡£R¼È¿ÉÄÜÊÇÓнçÇøÓò£¬Ò²¿ÉÄÜÊÇÎÞ½çÇøÓò¡£

£¨2£©ÔÚR·Ç¿Õʱ£¬ÏßÐԹ滮¼È¿ÉÒÔ´æÔÚÓÐÏÞ×îÓŽ⣬Ҳ¿ÉÒÔ²»´æÔÚÓÐÏÞ×îÓŽ⣨ÆäÄ¿±êº¯ÊýÖµÎ޽磩¡£

£¨3£©ÈôÏßÐԹ滮´æÔÚÓÐÏÞ×îÓŽ⣬Ôò±Ø¿ÉÕÒµ½¾ßÓÐ×îÓÅÄ¿±êº¯ÊýÖµµÄ¿ÉÐÐÓòRµÄ¡°¶¥µã¡±¡£

ÉÏÊöÂÛ¶Ï¿ÉÒÔÍÆ¹ãµ½Ò»°ãµÄÏßÐԹ滮ÎÊÌâ£¬Çø±ðÖ»ÔÚÓÚ¿Õ¼äµÄάÊý¡£ÔÚÒ»°ãµÄnά¿Õ¼äÖУ¬Âú×ãÒ»ÏßÐÔµÈʽ

?axii?1ni?bµÄµã¼¯±»³ÆÎªÒ»¸ö³¬Æ½Ã棬¶øÂú×ãÒ»ÏßÐÔ²»µÈʽ

?axii?1ni?b£¨»ò?aixi?b£©µÄµã¼¯±»³ÆÎªÒ»¸ö°ë¿Õ¼ä£¨ÆäÖÐ(a1,?,an)ΪһnάÐÐ

i?1nÏòÁ¿£¬bΪһʵÊý£©¡£Èô¸É¸ö°ë¿Õ¼äµÄ½»¼¯±»³ÆÎª¶à°ûÐΣ¬ÓнçµÄ¶à°ûÐÎÓÖ±»³ÆÎª¶àÃæÌå¡£Ò×¼û£¬ÏßÐԹ滮µÄ¿ÉÐÐÓò±ØÎª¶à°ûÐΣ¨ÎªÍ³Ò»Æð¼û£¬¿Õ¼¯?Ò²±»ÊÓΪ¶à°ûÐΣ©¡£ ÔÚÒ»°ãnά¿Õ¼äÖУ¬ÒªÖ±½ÓµÃ³ö¶à°ûÐΡ°¶¥µã¡±¸ÅÄÓÐһЩÀ§ÄÑ¡£¶þά¿Õ¼äÖеĶ¥µã¿ÉÒÔ¿´³ÉΪ±ß½çÖ±ÏߵĽ»µã£¬µ«ÕâÒ»¼¸ºÎ¸ÅÄîµÄÍÆ¹ãÔÚÒ»°ãnά¿Õ¼äÖеļ¸ºÎÒâÒå²¢²»Ê®·ÖÖ±¹Û¡£Îª´Ë£¬ÎÒÃǽ«²ÉÓÃÁíһ;¾¶À´¶¨ÒåËü¡£

¶¨Òå1 ³Ænά¿Õ¼äÖеÄÇøÓòRΪһ͹¼¯£¬Èô?x,x?R¼°???(0,1)£¬ÓÐ

12?x1?(1??)x2?R¡£

¶¨Òå2 ÉèRΪnά¿Õ¼äÖеÄÒ»¸ö͹¼¯£¬RÖеĵãx±»³ÆÎªRµÄÒ»¸ö¼«µã£¬Èô²»

1212´æÔÚx¡¢x?R¼°??(0,1)£¬Ê¹µÃx??x?(1??)x¡£

¶¨Òå1 ˵Ã÷͹¼¯ÖÐÈÎÒâÁ½µãµÄÁ¬Ïß±ØÔÚ´Ë͹¼¯ÖУ»¶ø¶¨Òå2 ˵Ã÷£¬ÈôxÊÇ͹¼¯RµÄÒ»¸ö¼«µã£¬Ôòx²»ÄÜλÓÚRÖÐÈÎÒâÁ½µãµÄÁ¬ÏßÉÏ¡£²»ÄÑÖ¤Ã÷£¬¶à°ûÐαØÎªÍ¹¼¯¡£Í¬ÑùÒ²²»ÄÑÖ¤Ã÷£¬¶þά¿Õ¼äÖпÉÐÐÓòRµÄ¶¥µã¾ùΪRµÄ¼«µã£¨RҲûÓÐÆäËüµÄ¼«µã£©¡£

1.5 Çó½âÏßÐԹ滮µÄMatlab½â·¨

µ¥´¿Ðη¨ÊÇÇó½âÏßÐԹ滮ÎÊÌâµÄ×î³£Óá¢×îÓÐЧµÄËã·¨Ö®Ò»¡£ÕâÀïÎÒÃǾͲ»½éÉܵ¥´¿Ð稣¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒԲο´ÆäËüÏßÐԹ滮Êé¼®¡£ÏÂÃæÎÒÃǽéÉÜÏßÐԹ滮µÄMatlab½â·¨¡£

MatlabÖÐÏßÐԹ滮µÄ±ê×¼ÐÍΪ

min cTx such that Ax?b

xAeq?x?beq

lb?x?ub

»ù±¾º¯ÊýÐÎʽΪlinprog(c,A,b)£¬ËüµÄ·µ»ØÖµÊÇÏòÁ¿xµÄÖµ¡£»¹ÓÐÆäËüµÄһЩº¯Êýµ÷ÓÃÐÎʽ£¨ÔÚ Matlab Ö¸Áî´°ÔËÐÐ help linprog ¿ÉÒÔ¿´µ½ËùÓеĺ¯Êýµ÷ÓÃÐÎʽ£©£¬È磺

[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) ÕâÀïfval·µ»ØÄ¿±êº¯ÊýµÄÖµ£¬LBºÍUB·Ö±ðÊDZäÁ¿xµÄϽçºÍÉϽ磬x0ÊÇxµÄ³õʼֵ£¬OPTIONSÊÇ¿ØÖƲÎÊý¡£

Àý2 Çó½âÏÂÁÐÏßÐԹ滮ÎÊÌâ max z?2x1?3x2?5x3

?x1?x2?x3?7??2x1?5x2?x3?10 ?x,x,x?0?123½â £¨i£©±àдMÎļþ c=[2;3;-5];

a=[-2,5,-1]; b=-10; aeq=[1,1,1]; beq=7;

x=linprog(-c,a,b,aeq,beq,zeros(3,1)) value=c'*x

£¨ii£©½«MÎļþ´æÅÌ£¬²¢ÃüÃûΪexample1.m¡£

£¨iii£©ÔÚMatlabÖ¸Áî´°ÔËÐÐexample1¼´¿ÉµÃËùÇó½á¹û¡£ Àý3 Çó½âÏßÐԹ滮ÎÊÌâ

min z?2x1?3x2?x3

?x1?4x2?2x3?8? ?3x1?2x2?6?x,x,x?0?123½â ±àдMatlab³ÌÐòÈçÏ£º c=[2;3;1];

a=[1,4,2;3,2,0]; b=[8;6];

[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))

1.6 ¿ÉÒÔת»¯ÎªÏßÐԹ滮µÄÎÊÌâ

ºÜ¶à¿´ÆðÀ´²»ÊÇÏßÐԹ滮µÄÎÊÌâÒ²¿ÉÒÔͨ¹ý±ä»»±ä³ÉÏßÐԹ滮µÄÎÊÌâÀ´½â¾ö¡£È磺 Àý4 ¹æ»®ÎÊÌâΪ

min|x1|?|x2|???|xn|s. t. Ax?bTÆäÖÐx?[x1?xn]£¬AºÍbΪÏàӦάÊýµÄ¾ØÕóºÍÏòÁ¿¡£

Òª°ÑÉÏÃæµÄÎÊÌâ±ä»»³ÉÏßÐԹ滮ÎÊÌ⣬ֻҪעÒâµ½ÊÂʵ£º¶ÔÈÎÒâµÄxi£¬´æÔÚ

ui,vi?0Âú×ã

xi?ui?vi£¬|xi|?ui?vi

x?|xi||x|?xiÊÂʵÉÏ£¬ÎÒÃÇֻҪȡui?i£¬vi?i¾Í¿ÉÒÔÂú×ãÉÏÃæµÄÌõ¼þ¡£

22TTÕâÑù£¬¼Çu?[u1?un]£¬v?[v1?vn]£¬´Ó¶øÎÒÃÇ¿ÉÒÔ°ÑÉÏÃæµÄÎÊÌâ

±ä³É

min?(ui?1ni?vi)

?A(u?v)?b s. t. ??u,v?0Àý5 min{max|?i|}

xiyiÆäÖÐ?i?xi?yi¡£

¶ÔÓÚÕâ¸öÎÊÌ⣬Èç¹ûÎÒÃÇÈ¡x0?max|?i|£¬ÕâÑù£¬ÉÏÃæµÄÎÊÌâ¾Í±ä»»³É

yiminx0

s. t. x1?y1?x0,?,xn?yn?x0

´Ë¼´ÎÒÃÇͨ³£µÄÏßÐԹ滮ÎÊÌâ¡£ ¡ì2 ÔËÊäÎÊÌâ(²úÏúƽºâ)

Àý6 ijÉÌÆ·ÓÐm¸ö²úµØ¡¢n¸öÏúµØ£¬¸÷²úµØµÄ²úÁ¿·Ö±ðΪa1,?,am£¬¸÷ÏúµØµÄÐèÇóÁ¿·Ö±ðΪb1,?,bn¡£Èô¸ÃÉÌÆ·ÓÉi²úµØÔ˵½jÏúµØµÄµ¥Î»Ô˼ÛΪcij£¬ÎÊÓ¦¸ÃÈçºÎµ÷Ô˲ÅÄÜʹ×ÜÔË·Ñ×îÊ¡£¿

½â£ºÒýÈë±äÁ¿xij£¬ÆäȡֵΪÓÉi²úµØÔËÍùjÏúµØµÄ¸ÃÉÌÆ·ÊýÁ¿£¬ÊýѧģÐÍΪ

min??cxi?1j?1mnijij

?n??xij?ai,i?1,?,m?j?1?ms.t. ??xij?bj,j?1,2,?,n

?i?1?xij?0??ÏÔÈ»ÊÇÒ»¸öÏßÐԹ滮ÎÊÌ⣬µ±È»¿ÉÒÔÓõ¥´¿Ðη¨Çó½â¡£

¶Ô²úÏúƽºâµÄÔËÊäÎÊÌ⣬ÓÉÓÚÓÐÒÔϹØÏµÊ½´æÔÚ£º

?n?n?m?m?bj??????xij?????xij???ai

j?1i?1?j?1?j?1?i?1?i?1nmÆäÔ¼ÊøÌõ¼þµÄϵÊý¾ØÕóÏàµ±ÌØÊ⣬¿ÉÓñȽϼòµ¥µÄ¼ÆËã·½·¨£¬Ï°¹ßÉϳÆÎª±íÉÏ×÷Òµ·¨£¨ÓÉ

¿µÍÐÂåÎ¬ÆæºÍÏ£Ææ¿Â¿ËÁ½È˶ÀÁ¢µØÌá³ö£¬¼ò³Æ¿µ¡ªÏ£±íÉÏ×÷Òµ·¨£©¡£ ¡ì3 Ö¸ÅÉÎÊÌâ

3.1 Ö¸ÅÉÎÊÌâµÄÊýѧģÐÍ

Àý7Äâ·ÖÅänÈËÈ¥¸ÉnÏ×÷£¬Ã¿È˸ÉÇÒ½ö¸ÉÒ»Ï×÷£¬Èô·ÖÅäµÚiÈËÈ¥¸ÉµÚjÏ×÷£¬Ð軨·Ñcijµ¥Î»Ê±¼ä£¬ÎÊÓ¦ÈçºÎ·ÖÅ乤×÷²ÅÄÜʹ¹¤ÈË»¨·ÑµÄ×Üʱ¼ä×îÉÙ£¿

ÈÝÒ׿´³ö£¬Òª¸ø³öÒ»¸öÖ¸ÅÉÎÊÌâµÄʵÀý£¬Ö»Ðè¸ø³ö¾ØÕóC?(cij)£¬C±»³ÆÎªÖ¸ÅÉÎÊÌâµÄϵÊý¾ØÕó¡£

ÒýÈë±äÁ¿xij£¬Èô·ÖÅäi¸Éj¹¤×÷£¬ÔòÈ¡xij?1£¬·ñÔòÈ¡xij?0¡£ÉÏÊöÖ¸ÅÉÎÊÌâµÄÊýѧģÐÍΪ

min??cxi?1j?1nnijij

?n??xij?1?j?1?ns.t. ??xij?1 ?i?1?xij?0 »ò 1 ?? (5)

(5)µÄ¿ÉÐнâ¼È¿ÉÒÔÓÃÒ»¸ö¾ØÕó±íʾ£¬ÆäÿÐÐÿÁоùÓÐÇÒÖ»ÓÐÒ»¸öÔªËØÎª1£¬ÆäÓàÔªËØ¾ùΪ0£¬Ò²¿ÉÒÔÓÃ1,?,nÖеÄÒ»¸öÖû»±íʾ¡£

(5)µÄ±äÁ¿Ö»ÄÜÈ¡0»ò1£¬´Ó¶øÊÇÒ»¸ö0-1¹æ»®ÎÊÌâ¡£Ò»°ãµÄ0-1¹æ»®ÎÊÌâÇó½â¼«ÎªÀ§ÄÑ¡£µ«Ö¸ÅÉÎÊÌâ²¢²»Äѽ⣬ÆäÔ¼Êø·½³Ì×éµÄϵÊý¾ØÕóÊ®·ÖÌØÊ⣨±»³ÆÎªÈ«µ¥Î»Ä£¾ØÕ󣬯ä¸÷½×·ÇÁã×Óʽ¾ùΪ?1£©£¬Æä·Ç¸º¿ÉÐнâµÄ·ÖÁ¿Ö»ÄÜÈ¡0»ò1£¬¹ÊÔ¼Êøxij?0»ò1¿É¸ÄдΪxij?0¶ø²»¸Ä±äÆä½â¡£´Ëʱ£¬Ö¸ÅÉÎÊÌⱻת»¯ÎªÒ»¸öÌØÊâµÄÔËÊäÎÊÌ⣬ÆäÖÐm?n£¬

ai?bj?1¡£