数学建模社区-数学中国

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

作者: huiwen    时间: 2011-8-25 16:51
标题: 请求一个整数规划的matlab程序
最近一直在研究整数规划,可是连着看了两个相关编程,用MATLAB实践时总是出错!所以,求助于各位大侠们能否提供一个整数规划的程序。或者,能否分析一下面的程序哪里有问题?谢谢了啊!
  1. function [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)* e  H. Q) U) P; p& h
  2. global upper opt c x0 A b Aeq beq ID options;, o7 e, k4 I9 `$ @9 o) H
  3. if nargin<10,) ^/ k( s+ Z( X: K4 \3 S
  4.     options =optimset({});' |: [# D- m2 @+ j& {( ?3 K5 C
  5.     options.Display='off';' H6 m2 N! Z$ G+ B' n5 A* t
  6.     options.LargeScale='off';
    0 a" @. z9 @, {" V! {- p0 r1 v
  7. end
    6 e1 ?# r. P6 D/ T* f$ F
  8. if nargin<9,% D  Y: ^2 Q+ ?
  9.     id=ones(size(f));7 l6 l  o$ {$ k3 h' z) h% ^
  10. end 0 |/ T- Q3 W0 J: q2 U- P
  11. if nargin<8,% S8 ^. D# r& k& t
  12.     x=[];
    ; {& ]  g) ~3 @
  13. end
    % S2 o# n) I+ S5 M: W
  14. if nargin<7 | isempty(ub),
    , Z, F4 r+ @; {2 `9 B
  15.     ub =inf*ones(size(f));
      q( m. y4 @9 G0 I" r5 z
  16. end' P3 R  i6 m2 I5 |  D' {
  17. if nargin<6 | isempty(lb),
    3 h0 R# c" w( d( m* `
  18.     lb=zeros(size(f));
    0 I' n/ K$ J& @; l% y5 T
  19. end
    ' m" l2 B9 }. Z2 P! `
  20. if nargin<5,
      ^- q2 R% g0 a
  21.     heq=[];& a1 H- v/ C/ B* N
  22. end
    1 D7 S6 d. Z# b! C
  23. if nargin<4,) E$ M* N1 X# ^! B4 |
  24.     Geq=[];' |+ a4 O7 o0 x. [% m0 g+ F
  25. end1 [/ \; a! h3 e' r5 n5 x
  26. upper=inf;c=f;x0=x;2 E% N. h4 h# K9 R9 h0 }
  27. A=G;) [. @$ q1 r1 D7 c$ O  a
  28. b=h;Aeq=Geq;; ?# G: j& t6 }& f$ K- _
  29. beq=heq;ID=id;& @$ o4 _2 i. D# ?3 a) y9 Y
  30. ftemp=IntL_P(lb(:),ub(:));
    , W* H* N6 m6 N1 S/ v1 x  t' t5 E
  31. %以下为子函数! Y1 m0 ^& A: W+ Z
  32. function ftemp=IntL_P(vlb,vub)7 L: d3 C6 m$ F9 ~
  33. global upper opt c x0 A b Aeq beq ID options;
    * @6 o. P. R" ^
  34. [x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);
    , z8 K1 a: w$ h+ f# N9 ?5 @
  35. if how<0$ u+ N& p2 a0 k- d; p- w
  36.     return;
    2 d$ m. q$ A. X9 Z
  37. end* H1 v- J2 n8 x/ u+ S
  38. if ftemp-upper>0.00005
    9 z0 n' h+ a% Q3 Q* ?' G! S. t
  39.     return;9 g9 ?/ g+ T5 S. M6 q% ^7 x3 I
  40. end
    4 O5 k7 `+ o3 ~: Q% W+ ~* Z: d
  41. if max(abs(x.*ID-round(x.*ID)))<0.00005
    ! J& i; L% q" ^) H/ @2 c& C: H" N
  42.     if upper-ftemp>0.00005
    : f" K; |* X+ q
  43.         opt=x';& ^7 L! ]/ {7 F, i
  44.         upper=ftemp;
    4 _  b7 l! }$ r6 b# L4 G3 J
  45.         return;3 }# N% L, ?- R5 x3 @
  46.     else8 O- h, r  C3 B; O
  47.         opt=[opt;x'];) n9 E' k7 t1 v, K5 V+ P# O
  48.         return;- q# P" }( t6 \4 q$ a% [8 }
  49.     end
    , s$ o. X7 ~. t$ z: r
  50. end! h/ `; ^% v; t
  51. notintx=find(abs(x-round(x))<=0.00005);/ Z/ F5 @8 _# x9 M8 n. w! M  U
  52. intx=fix(x);
    6 M' a1 e/ e$ x" ]" T
  53. tempvlb=vlb;tempvub=vub;6 d& p9 p; Q0 c% P4 O( j% p3 R
  54. if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+17 j) S  c+ U2 H! ?; t6 A5 v% i, Q  o
  55.     tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;
    % l/ s0 |, ^# }1 t& t- r
  56.     ftemp=IntLP(tempvlb,vub);1 |" P. m) O/ L# _  i
  57. end: N* j; U4 k: z$ ^% n$ b( `5 Q
  58. if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)
    & n4 d8 }) b: W* g4 h: T
  59.     tempvub(notintx(1,1),1)=intx(notintx(1,1),1);$ R* t/ P* f: [
  60.     ftemp=IntL_P(vlb,tempvub);$ ^+ _( P* T/ @( Y7 V8 @5 a/ t
  61. end
复制代码

作者: 喜欢就好    时间: 2011-8-25 17:50
来看看   楼主发的程序有点小问题   无法复制  望楼主解决
作者: 蜗牛天使    时间: 2011-8-25 17:57
太长了 也不是很懂 没办法了
作者: huiwen    时间: 2011-8-26 14:33
蜗牛天使 发表于 2011-8-25 17:57 1 V4 T6 U# I" _. I' t
太长了 也不是很懂 没办法了

( k" W& Y# v5 V恩 也谢谢了啊!~
作者: huiwen    时间: 2011-8-26 14:34
喜欢就好 发表于 2011-8-25 17:50 5 t" T1 W0 t$ }' o
来看看   楼主发的程序有点小问题   无法复制  望楼主解决

  B5 c, g6 r+ v9 Q- r# J5 @8 s我这里看的时候还是可以的啊!
作者: xueyues3    时间: 2011-9-21 13:38
路过!!!!!!
# j# f# W: c2 O) X2 r( M, |, j! B% F( }5 E, G$ Z* S8 |

- }5 M( K, T: o/ c: I, P* f5 ^
- S  e- v3 [8 f! [' W1 ?; D) a
2 I; r1 Y$ z) G! }6 y" b6 |0 E# P* u1 ~- N8 L  {7 Y, \! j( r

/ u% \- @" h2 `" d5 P
  s; b5 y5 r# O1 O
/ {3 D: [! v& ^" z& |
0 s6 l+ j) U( P# w  ^: K) P: a, @; q' `  S9 x

3 Y5 ?8 W+ L  C2 U$ U' F6 @' l( h# J+ X
高密招聘网 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分感谢楼主分5 s& a/ P' m" ^, N! G- Y# p# P





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