数学建模社区-数学中国

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

作者: huiwen    时间: 2011-8-25 16:51
标题: 请求一个整数规划的matlab程序
最近一直在研究整数规划,可是连着看了两个相关编程,用MATLAB实践时总是出错!所以,求助于各位大侠们能否提供一个整数规划的程序。或者,能否分析一下面的程序哪里有问题?谢谢了啊!
  1. function [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)+ a9 P4 D! W3 _+ B8 s7 x1 ~
  2. global upper opt c x0 A b Aeq beq ID options;- ^: w5 N5 \+ p* H7 v
  3. if nargin<10,
    7 D+ r1 q! @1 r
  4.     options =optimset({});& X/ d; s( m1 O$ |1 R3 y
  5.     options.Display='off';1 o& J* ?2 _8 z; T
  6.     options.LargeScale='off';! J" D' g2 Y" _8 U
  7. end9 r: t! Q( \6 i7 F
  8. if nargin<9,* b7 L, b0 `; x. l
  9.     id=ones(size(f));
    ; Y5 W6 X+ A5 x  \" h
  10. end
    4 i8 X1 f4 {0 o* b
  11. if nargin<8,+ |$ _( L7 M( n3 P3 i
  12.     x=[];& Q5 ]! K  J8 G) M, x1 d5 _
  13. end) r) q& J+ i/ O
  14. if nargin<7 | isempty(ub),
    + A. w* ~$ ~* ~! r
  15.     ub =inf*ones(size(f));4 h' g$ h# `" u/ ]' u6 g* j
  16. end
    $ N7 r, e' c4 P
  17. if nargin<6 | isempty(lb),
    3 V5 J3 v, r0 o- E! s
  18.     lb=zeros(size(f));
    ) E3 i+ f2 k3 ^
  19. end
    , n, _% r  \  f1 T$ d8 p! A8 @
  20. if nargin<5,
    " w3 `$ b' V! E( h" x3 i& C
  21.     heq=[];, F  l& c9 p# D! c9 m: a
  22. end
    9 Z# |  q. Q; L: }0 ]% ?$ P
  23. if nargin<4,
    7 q1 q+ h9 q! |
  24.     Geq=[];) G/ L( i# v! v5 }' ?
  25. end$ b& h: ^+ Y1 N# l9 X
  26. upper=inf;c=f;x0=x;) I% `& L8 o" _* p6 K4 E9 o1 x
  27. A=G;
    ( k3 N+ f5 ]% {+ Z/ P
  28. b=h;Aeq=Geq;
    0 ^! d3 q9 }2 d' n
  29. beq=heq;ID=id;( M% s6 c  \. u. ]. `9 u$ J
  30. ftemp=IntL_P(lb(:),ub(:));
    + V+ c% S! ?, P
  31. %以下为子函数2 k+ E& j. `3 u) w  i, }" q5 d
  32. function ftemp=IntL_P(vlb,vub)6 k" O" K& `# a5 w) ]5 P
  33. global upper opt c x0 A b Aeq beq ID options;# v  Z3 S2 [' r9 M2 a( i
  34. [x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);8 w9 u  p/ W. g3 Z
  35. if how<0
    3 O3 \6 a* p) u( b! E6 v
  36.     return;
    5 N; k* r2 b& B2 f" _+ l: c) v) \
  37. end
    : c2 F% D7 T) y
  38. if ftemp-upper>0.00005; m" ~4 {% S/ T
  39.     return;. y% n" @3 E3 q
  40. end
    - Z- y* c' U( J1 a" U
  41. if max(abs(x.*ID-round(x.*ID)))<0.00005$ C' a5 f5 t) v5 B
  42.     if upper-ftemp>0.00005  w% f( x# T6 X
  43.         opt=x';
    & h$ {( R7 y; ^, g& m
  44.         upper=ftemp;0 t& Z: h/ _7 [7 Z, Q# [5 [- }
  45.         return;
    7 m- z7 K/ H! a. ]0 X9 }: k
  46.     else
    4 P  a5 E3 y& s/ E/ Z( H9 Q, _6 a
  47.         opt=[opt;x'];
    % l7 R0 k2 [; `" L4 }2 S5 d
  48.         return;! X! p* x3 P& y% J( r
  49.     end
    : U! a- |' N/ y- O$ V% z
  50. end
    5 ~" t3 ]2 K* ?7 z- z+ C  o% E
  51. notintx=find(abs(x-round(x))<=0.00005);+ n- u7 W: M1 b! n* {" h
  52. intx=fix(x);
    ' _; G4 F1 M8 F3 l. W
  53. tempvlb=vlb;tempvub=vub;
    7 D4 Z) |# [; t1 D2 }
  54. if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+13 z+ L) i* r' L1 n
  55.     tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;
    2 {7 ^" I; `7 X  a; Z( E$ ?
  56.     ftemp=IntLP(tempvlb,vub);; ]5 t% P9 o, S
  57. end
    5 U# Q- l6 o3 R1 f7 D* T, s, O
  58. if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)0 v' R+ N& v" a( o
  59.     tempvub(notintx(1,1),1)=intx(notintx(1,1),1);2 ?/ x8 F$ Y+ o3 S* A9 Q
  60.     ftemp=IntL_P(vlb,tempvub);
    7 Q2 |3 p/ I2 U6 e6 Z* U
  61. end
复制代码

作者: 喜欢就好    时间: 2011-8-25 17:50
来看看   楼主发的程序有点小问题   无法复制  望楼主解决
作者: 蜗牛天使    时间: 2011-8-25 17:57
太长了 也不是很懂 没办法了
作者: huiwen    时间: 2011-8-26 14:33
蜗牛天使 发表于 2011-8-25 17:57
+ M/ A& U  l+ v太长了 也不是很懂 没办法了
0 [8 N1 h. `- V2 t/ U
恩 也谢谢了啊!~
作者: huiwen    时间: 2011-8-26 14:34
喜欢就好 发表于 2011-8-25 17:50 - E- V/ C6 y& g5 W0 |
来看看   楼主发的程序有点小问题   无法复制  望楼主解决
. R! J  L% g9 O" d) y, H
我这里看的时候还是可以的啊!
作者: xueyues3    时间: 2011-9-21 13:38
路过!!!!!!- Y0 f- a0 ~/ y: U  Z: \  s3 s
+ D2 Z! ?4 c; x3 e1 s

: K# N/ y  V5 u
% R  D- v, J$ t- A! ]3 y3 A% r; V+ c
- @# q- _5 m" [' P5 D" V  C2 r9 M- r7 @& D
- A2 W* q5 w+ I. |# {9 ]( }
+ Q/ F7 Y5 h; G  h9 \8 a

3 _; A4 n# L& X/ H# q8 s% d4 H1 X- U. b( q2 }! [& X; D
# C4 ^( p  q6 Z- s
& o) l9 ~$ p* x3 w
7 b* M! t. K4 i6 I; Y8 {0 ^
高密招聘网 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分感谢楼主分8 o# u! |% \  u3 J% T4 E8 Y" t2 e





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