数学建模社区-数学中国

标题: lingo读取求助啊,书上例题可我却运行出错 [打印本页]

作者: zzpals    时间: 2012-7-7 01:35
标题: lingo读取求助啊,书上例题可我却运行出错
本帖最后由 zzpals 于 2012-7-7 01:55 编辑

例题和程序都来自《优化建模与lindo/lingo软件》,程序第36行读取A时出现问题,实际读取了Req应该读取的内容。求解释! exam0502.rar (2.1 KB, 下载次数: 0)

程序源代码:
  1. MODEL:
  2. TITLE 瓶颈设备的多级生产计划;
  3. ! 从文本文件exam0502.LDT中读取数据;
  4. SETS:
  5. ! PART = 项目集合, Setup = 生产准备费,Hold = 单件库存成本,
  6.   A = 对瓶颈资源的消耗系数;
  7. PART/ @FILE( 'exam0502.LDT')/ : Setup, Hold, A;
  8. ! TIME = 计划期集合,Capacity = 瓶颈设备的能力;
  9. TIME / @FILE( 'exam0502.LDT')/ : Capacity;
  10. ! USES = 项目结构关系,Req = 项目之间的消耗系数;
  11. USES( PART, PART) : Req;
  12. ! PXT = 项目与时间的派生集合,Demand = 外部需求,
  13.   X = 产量(批量), Y = 0/1变量,INV = 库存;
  14. PXT( PART, TIME): Demand, X, Y, Inv;
  15. ENDSETS
  16. ! 目标函数;
  17. [OBJ] Min = @sum(PXT(i,t):
  18.                 setup(i)*Y(i,t) + hold(i)*Inv(i,t) );
  19. ! 物流平衡方程;
  20. @FOR( PXT(i, t) | t #NE# 1 : [Bal]
  21.   Inv(i,t-1)+X(i,t)-Inv(i,t) = Demand(i, t) +
  22.    @SUM( USES(i,j): Req(i,j)*X(j,t)) );
  23. @FOR( PXT(i, t) | t #eq# 1 : [Ba0]
  24.   X(i,t)-Inv(i,t) = Demand(i, t) +
  25.    @SUM( USES(i,j): Req(i,j)*X(j,t)) );
  26. ! 能力约束;
  27. @FOR( TIME(t):
  28.   [Cap] @SUM( PART(i): A(i)*X(i,t) ) < Capacity(t) );
  29. ! 其他约束;
  30. M = 25000;
  31. @FOR( PXT(i,t): X(i,t) <= M*Y(i,t));
  32. @FOR( PXT: @BIN(Y) );
  33. DATA:
  34. Demand = @FILE( 'exam0502.LDT');  
  35. Capacity = @FILE( 'exam0502.LDT');   
  36. Setup = @FILE( 'exam0502.LDT');  
  37. Hold = @FILE( 'exam0502.LDT');   
  38. A = @FILE( 'exam0502.LDT');   
  39. Req = @FILE( 'exam0502.LDT');
  40. ENDDATA
  41. END
复制代码
数据源代码:
  1. ! 项目集合;
  2. A        B        C        D        E        F        G~
  3. ! 计划期集合;
  4. 1        2        3        4        5        6~
  5. ! 需求;
  6. 40        0        100        0        90        10
  7. 0       0         0     0        0       0
  8. 0       0         0     0        0       0
  9. 0       0         0     0        0       0
  10. 0       0         0     0        0       0
  11. 0       0         0     0        0       0
  12. 0       0         0     0        0       0~
  13. ! 能力;
  14. 10000        0        5000        5000        1000        1000~
  15. ! 生产准备费;
  16. 400        500        1000        300        200        400        100~
  17. ! 库存费;
  18. 12        0.6        1.0        0.04        0.03        0.04        0.04~
  19. ! 对能力的消耗系数;
  20. 0        5        8        0        0        0        0~
  21. ! 项目间的消耗系数: req(i,j)表示j用到多少i;
  22. 0       0       0       0       0       0       0
  23. 5       0       0       0       0       0       0
  24. 7       0       0       0       0       0       0
  25. 0       9       0       0       0       0       0
  26. 0      11       0       0       0       0       0
  27. 0       0      13       0       0       0       0
  28. 0       0      15       0       0       0       0
  29. ! 数据结束;
复制代码

作者: zzpals    时间: 2012-7-7 23:28
好吧,这个论坛人太少了。最后是被我找出原因了:数据源代码的第19行最后面是中文的分号,改为英文的分号lingo11、13就可以正确读取了。lingo9一直都可以读取的。




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