数学建模社区-数学中国

标题: 请求一个整数规划的matlab程序 [打印本页]

作者: huiwen    时间: 2011-8-25 16:51
标题: 请求一个整数规划的matlab程序
最近一直在研究整数规划,可是连着看了两个相关编程,用MATLAB实践时总是出错!所以,求助于各位大侠们能否提供一个整数规划的程序。或者,能否分析一下面的程序哪里有问题?谢谢了啊!
  1. function [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)
    5 @$ P& u) ~, N. i
  2. global upper opt c x0 A b Aeq beq ID options;
    2 `% R$ d9 j7 ^9 A+ b. y# w% q
  3. if nargin<10," N% N& V+ A- Z6 _7 }% ]3 j
  4.     options =optimset({});; H( V) u9 ?1 I. ^6 C. ?
  5.     options.Display='off';$ |* B% E. a( Y& T- w
  6.     options.LargeScale='off';
    + W" `$ T) R  {0 C3 i, ]
  7. end8 F! X$ p, ?  J/ e6 r. s- s
  8. if nargin<9,& V0 K0 f3 F1 q. @' D, X# V! x
  9.     id=ones(size(f));' }+ l* {7 K0 \) K2 L
  10. end 7 h  k( S8 r( [+ r- ~9 m
  11. if nargin<8,- }) L5 N' k/ [7 [! U/ ]# U
  12.     x=[];
    4 ?( d1 b, I; t8 \7 p- g+ C$ f' g
  13. end  m. V5 ?1 T  m( M' R7 m+ d  W- A9 x8 q
  14. if nargin<7 | isempty(ub),
    7 m3 S3 E2 ?. l( t
  15.     ub =inf*ones(size(f));
    ' S) E1 e! V# j5 B
  16. end
    ' b3 b% X& Y! G) L9 y
  17. if nargin<6 | isempty(lb),
    ) O! H% V5 G, P3 i9 H
  18.     lb=zeros(size(f));
    2 A7 u" I) ]) E, I. f
  19. end
    ( l4 z* h0 ]  P8 K+ w% q/ ]# y
  20. if nargin<5,0 {" }% O- c% _$ z* \" j
  21.     heq=[];
    : B3 L- J6 u- F' w. G! l
  22. end
    ; ^. F! |( \( c: e+ N& ^! V( \
  23. if nargin<4,$ e$ ~, |& B) Q* a1 W1 |
  24.     Geq=[];0 v5 x3 O6 F# k+ [" u& }% g9 S
  25. end$ c  I# L/ _' v+ V; p9 z
  26. upper=inf;c=f;x0=x;) `2 a, y3 m4 t9 m6 W. N& T% t
  27. A=G;
      \4 e' l' J+ S0 s" w
  28. b=h;Aeq=Geq;; J; _( V- _7 C6 u$ N
  29. beq=heq;ID=id;; v& H0 Z2 {( q' O' g5 d, p
  30. ftemp=IntL_P(lb(:),ub(:));+ i) x; e. E; y$ R$ s
  31. %以下为子函数9 \0 t9 t2 Z* X' V# [  r5 K0 f8 G
  32. function ftemp=IntL_P(vlb,vub)' k: \0 a4 W0 s' y  ?! L  ^. H* z
  33. global upper opt c x0 A b Aeq beq ID options;7 q) c* J7 |  z: `
  34. [x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);. l. ^; u/ @* q
  35. if how<09 Q- [& N7 `4 `! g$ z  A5 [( c; h
  36.     return;
    ' c: u) x0 Q" L0 ^
  37. end( I* H* ~7 K: l( i( u. n# [& {
  38. if ftemp-upper>0.00005" k8 k( V4 u( H. U
  39.     return;
    * P2 J2 X; p2 `) }' X, f
  40. end! r5 C4 c+ m, n, R" @8 k
  41. if max(abs(x.*ID-round(x.*ID)))<0.00005
    $ p2 f9 ^; _$ W& X  G4 ?1 [# U% `
  42.     if upper-ftemp>0.00005/ u8 F" ]" I' z( j4 h$ }! J
  43.         opt=x';
    - l' O; k; X+ Y" E4 [" |8 I3 _3 o
  44.         upper=ftemp;
    : Q$ ^+ O: B" @) |. C
  45.         return;, D, y( T5 o" _" s, r; ?% u
  46.     else* L4 M& b- h2 u% L- L
  47.         opt=[opt;x'];$ e7 l) Q, S% d% p# I# n. @- t0 M
  48.         return;) Z- Y3 f2 F/ ?7 t! Z
  49.     end
    2 q! O1 k( g! O7 U/ R9 A* v
  50. end
    1 M; @- p5 r- k1 i* {
  51. notintx=find(abs(x-round(x))<=0.00005);/ i# z, v1 z* v0 ?" l# x+ v4 D' R
  52. intx=fix(x);
    " q& V3 T* J4 r* y5 Z, j  g  j
  53. tempvlb=vlb;tempvub=vub;$ S9 c7 ?/ e5 c3 K% I* A2 i
  54. if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+1  [: Z2 ]/ t" `3 n4 P+ F! i
  55.     tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;
    / F$ y" s# R5 O  r
  56.     ftemp=IntLP(tempvlb,vub);5 Y& D' n8 o+ R+ f; C7 u
  57. end
      b+ \% \: M# X# @7 K' W
  58. if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)  A+ c. `7 ~6 N8 L: f8 o; N
  59.     tempvub(notintx(1,1),1)=intx(notintx(1,1),1);1 Y- j  h& F5 W+ ?, b
  60.     ftemp=IntL_P(vlb,tempvub);; L1 K' E/ d; n7 z# Q& t3 @
  61. end
复制代码

作者: 喜欢就好    时间: 2011-8-25 17:50
来看看   楼主发的程序有点小问题   无法复制  望楼主解决
作者: 蜗牛天使    时间: 2011-8-25 17:57
太长了 也不是很懂 没办法了
作者: huiwen    时间: 2011-8-26 14:33
蜗牛天使 发表于 2011-8-25 17:57
" s/ Y4 O) ~' E' A1 W( V" @5 p太长了 也不是很懂 没办法了

# O' Y# \! Q& H; i, ^恩 也谢谢了啊!~
作者: huiwen    时间: 2011-8-26 14:34
喜欢就好 发表于 2011-8-25 17:50
. @/ o+ J% J9 j( I来看看   楼主发的程序有点小问题   无法复制  望楼主解决

  f8 F2 p; l0 I8 W: G我这里看的时候还是可以的啊!
作者: xueyues3    时间: 2011-9-21 13:38
路过!!!!!!4 _  X7 W" h/ u+ H) B% k6 h
8 e1 q8 T3 I2 O0 D
$ a8 u0 M0 N" @  ^6 {
+ u& o4 Y2 m- k6 W( a5 q2 V4 R/ n
/ h6 D+ l1 Z1 B
  C1 q1 }/ H5 V1 q! w8 `: R3 s6 [3 C

  J) b) \1 l% J  w4 G! t3 q. `
/ }4 Y3 M$ V  m* j4 B) o, b$ J4 B: Z0 h2 l# x4 H$ s
7 r) B7 b& o. l8 V6 K

. q" m5 T) j1 k8 j0 ?: G6 Q* p- S* x# K, Q+ k: ~
7 z2 i' ]/ [" d, k' f! W
高密招聘网 gmzhaopin.com
作者: 大鲵2003    时间: 2012-2-2 11:19

作者: 大鲵2003    时间: 2012-2-2 11:22

作者: 大鲵2003    时间: 2012-2-2 11:23

作者: 冰淇淋小芯    时间: 2012-12-30 16:50
                  
作者: NICE--LLL    时间: 2013-8-15 16:59
我也是遇到同样的问题啊
作者: 一束阳光    时间: 2015-9-5 23:19
十W分感谢楼主分
) }1 j$ _5 N' r7 U& R3 u




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5