µÚÒ»Õ ÏßÐԹ滮
¡ì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¡£