lingo求解.docx

上传人:b****5 文档编号:4331987 上传时间:2022-11-29 格式:DOCX 页数:12 大小:23.71KB
下载 相关 举报
lingo求解.docx_第1页
第1页 / 共12页
lingo求解.docx_第2页
第2页 / 共12页
lingo求解.docx_第3页
第3页 / 共12页
lingo求解.docx_第4页
第4页 / 共12页
lingo求解.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

lingo求解.docx

《lingo求解.docx》由会员分享,可在线阅读,更多相关《lingo求解.docx(12页珍藏版)》请在冰豆网上搜索。

lingo求解.docx

lingo求解

Lingo超经典案例大全网址

 

lingo只能得出一个解

【1】

Extendedsolversteps

特殊求解程序当前运行步数:

分枝数(对B-and-B程序);

子问题数(对Global程序);

初始点数(对Multistart程序)

【2】

Totalsolveriterations

目前为止的迭代次数

【3】Row

对照lingo--generate--display中每行

【4】SlackorSurplus

各种原料的剩余

【5】DualPrice

影子价格

求改lingo程序,用sets:

endsets

2012-08-1508:

55_楓零|分类:

其他编程语言|浏览207次

min=1020*2-(48.7*(x11+x12)+52.0*(x21+x22)+61.3*(x31+x32)+72.0*(x41+x42)+48.7*(x51+x52)+52.0*(x61+x62)+64.0*(x71+x72));

2*x11+3*x21+x31+0.5*x41+4*x51+2*x61+x71<=40;

2*x12+3*x22+x32+0.5*x42+4*x52+2*x62+x72<=40;

48.7*x11+52.0*x21+61.3*x31+72.0*x41+48.7*x51+52.0*x61+64.0*x71<=1020;

48.7*x12+52.0*x22+61.3*x32+72.0*x42+48.7*x52+52.0*x62+64.0*x72<=1020;

x11+x12<=8;

x21+x22<=7;

x31+x32<=9;

x41+x42<=6;

x51+x52<=6;

x61+x62<=4;

x71+x72<=8;

48.7*x51+52.0*x61+64.0*x71<=302.7;

48.7*x52+52.0*x62+64.0*x72<=302.7;

x11>=0;x21>=0;x31>=0;x41>=0;x51>=0;x61>=0;x71>=0;

x12>=0;x22>=0;x32>=0;x42>=0;x52>=0;x62>=0;x72>=0;

@gin(x11);

@gin(x21);

@gin(x31);

@gin(x41);

@gin(x51);

@gin(x61);

@gin(x71);

@gin(x12);

@gin(x22);

@gin(x32);

@gin(x42);

@gin(x52);

@gin(x62);

@gin(x72);

end

sets:

r/1..7/:

d1,d2,d3;

c/1..2/:

;

link(r,c):

x;

endsets

data:

d1=48.752.061.372.048.752.064.0;

d2=2310.5421;

d3=8796648;

enddata

min=1020*2-@sum(link(i,j):

d1(i)*x(i,j));

@for(c(j):

@sum(r(i):

d2(i)*x(i,j))<=40);

@for(c(j):

@sum(r(i):

d1(i)*x(i,j))<=1020);

@for(r:

@sum(c:

x)<=d3);

@for(c(j):

@sum(r(i)|i#ge#5:

d1(i)*x(i,j))<=302.7);

@for(link:

@gin(x));

end

在lingo中怎么输入数组

 

lingo用的是集没有数组的概念

首先需要在sets段定义集

sets:

setname/1..4/:

x;

endsets

然后在data段写数据

data:

x=1234;

enddata

LINGO中/M#EQ#N是什么意思

表示逻辑关系的#eq#若两个运算数相等,则为true;否则为flase

同类的还有gtgeltlene这些gt就是greaterthan大于ge是greaterthanorequalto表示大于等于类推ltle是小于和小于等于ne是notequalto不等于

常用在集合里面用来筛选集合中元素的指标

比如在循环里@for(s1(i)|i#gt#1:

....)表示对集s1中指标大于1的进行循环

在集定义里面比如下面的表示一个由students和students得到的派生集里面第一个集中sex满足等于1第二个满足sex等于2的元素的派生

linkmf(students,students)|sex(&1)#eq#1#and#sex(&2)#eq#0:

friend;

Globaloptimalsolutionfound.

Objectivevalue:

3.050000

Extendedsolversteps:

0

Totalsolveriterations:

37

 

VariableValueReducedCost

U

(1)3.0000000.000000

U

(2)0.0000000.000000

U(3)1.0000000.000000

U(4)2.0000000.000000

D(1,1)0.0000000.000000

D(1,2)0.42000000.000000

D(1,3)0.91000000.000000

D(1,4)1.2900000.000000

D(2,1)0.42000000.000000

D(2,2)0.0000000.000000

D(2,3)0.57000000.000000

D(2,4)1.1600000.000000

D(3,1)0.91000000.000000

D(3,2)0.57000000.000000

D(3,3)0.0000000.000000

D(3,4)0.77000000.000000

D(4,1)1.2900000.000000

D(4,2)1.1600000.000000

D(4,3)0.77000000.000000

D(4,4)0.0000000.000000

X(1,1)0.0000000.000000

X(1,2)1.0000000.4200000

X(1,3)0.0000000.9100000

X(1,4)0.0000001.290000

X(2,1)0.0000000.4200000

X(2,2)0.0000000.000000

X(2,3)1.0000000.5700000

X(2,4)0.0000001.160000

X(3,1)0.0000000.9100000

X(3,2)0.0000000.5700000

X(3,3)0.0000000.000000

X(3,4)1.0000000.7700000

X(4,1)1.0000001.290000

X(4,2)0.0000001.160000

X(4,3)0.0000000.7700000

X(4,4)0.0000000.000000

RowSlackorSurplusDualPrice

13.050000-1.000000

20.0000000.000000

30.0000000.000000

40.0000000.000000

50.0000000.000000

60.0000000.000000

70.0000000.000000

80.0000000.000000

90.0000000.000000

106.0000000.000000

110.0000000.000000

125.0000000.000000

135.0000000.000000

142.0000000.000000

150.0000000.000000

160.0000000.000000

171.0000000.000000

182.0000000.000000

LINGO1.1出错时错误代码含义

 

LINGO出错时错误代码含义:

    在LINGO程序求解时,系统首先会对程序进行编译.系统在编译或执行其他命令

时,会因程序中的错误或运行错误,弹出一个出错报告窗口,显示其错误代码,并简要指

出错误的原因.这些错误报告信息能够提示用户发现程序中的错误,以便能尽快修改.下

面我们给出出错信息的一个简要说明,仅供参考.

LINGO错误编号及原因对照表

错误代码    含义    

0    LINGO模型生成器的内存已经用尽(可用“LINGO|Options"命令对GeneralSolver

选项卡中的“GeneratorMemoryLimit"选项进行内存大小的修改)    

1    模型中的行数太多(对于有实际意义的模型,这个错误很少出现)    

2    模型中的字符数太多(对于有实际意义的模型,这个错误很少出现)    

3    模型中某行的字符数太多(每行不应该超过200个字符,否则应换行)    

4    指定的行号超出了模型中实际具有的最大行号(这个错误通常在LOOK命令中指定

了非法的行号时出现)    

5    当前内存中没有模型    

6    脚本文件中TAKE命令的嵌套重数太多(LINGO中限定TAKE命令最多嵌套10次)    

7    无法打开指定的文件(通常是指定的文件名拼写错误)    

8    脚本文件中的错误太多,因此直接返回到命令模式(不再继续处理这个脚本文件)    

9    (该错误编号目前没有使用)    

10    (该错误编号目前没有使用)    

11    模型中的语句出现了语法错误(不符合LINGO语法)    

12    模型中的括号不匹配    

13    在电子表格文件中找不到指定的单元范围名称    

14    运算所需的,临时堆栈空间不够(这通常意味着模型中的表达式太长了)    

15    找不到关系运算符(通常是丢了“<”,“=”或“>”)    

16    输入输出时不同对象的大小不一样(使用集合循环方式输入输出时,集合大小应

相同)    

17    集合元素的索引的内存堆栈空间不够    

18    集合的内存堆栈空间不够    

19    索引函数@INDEX使用不当    

20    集合名使用不当    

21    属性名使用不当      

22    不等式或等式关系太多(例如,约束2

23    参数个数不符    

24    集合名不合法    

25    函数@WKX()的参数非法(注:

在LING09.0中已经没有函数@WKX())    

26    集合的索引变量的个数不符    

27    在电子表格文件中指定的单元范围不连续    

28    行名不合法    

29    数据段或初始段的数据个数不符    

30    链接到Excel时出现错误    

31    使用@TEXT函数时参数不合法    

32    使用了空的集合成员名    

33    使用@OLET函数时参数不合法    

34    用电子表格文件中指定的多个单元范围生成派生集合时,单元范围的大小应该一

致    

35    输出时用到了不可识别的变量名    

36    基本集合的元素名不合法    

37    集合名已经被使用过    

38    ODBC服务返回了错误信息    

39    派生集合的分量元素(下标)不再原来的父集合中    

40    派生集合的索引元素的个数不符    

41    定义派生集合时所使用的基本集合的个数太多(一般不会出现这个错误)    

42    集合过滤条件的表达式中出现了取值不固定的变量    

43    集合过滤条件的表达式运算出错    

44    过滤条件的表达式没有结束(即没有“:

”标志)    

45    @ODBC函数的参数列表错误    

46    文件名不合法    

47    打开的文件太多    

48    不能打开文件    

49    读文件时发生错误    

50    @FOR函数使用不合法    

51    编译时LINGO模型生成器的内存不足    

52    @IN函数使用不当    

53    在电子表格文件中找不到指定的单元范围名称(似乎与出错代码“13”含义类似)    

54    读取电子表格文件时出现错误    

55    @TEXT函数不能打开文件    

56    @TEXT函数读文件时发生错误    

57    @TEXT函数读文件时出现了非法输入数据    

58    @TEXT函数读文件时出现发现输入数据比实际所需要的少    

59    @TEXT函数读文件时出现发现输入数据比实际所需要的多    

60    用@TEXT函数输入数据时,没有指定文件名    

61    行命令拼写错误    

62    LINGO生成模型时工作内存不足    

63    模型的定义不正确    

64    @FOR函数嵌套太多    

65    @WARN函数使用不当    

66    警告:

固定变量取值不唯一(例如:

任意正数都是约束@SIGN(X)=l的解)    

67    模型中非零系数过多导致内存耗尽    

68    对字符串进行非法的算术运算    

69    约束中的运算符非法    

70    属性的下标越界    

71    变量定界函数(@GIN,@BIN,@FREE,@BND)使用错误    

72    不能从固定约束(只含有固定变量的约束)中求出固定变量的值(相当于方程无解

,或者LINGO的算法解不出来,如迭代求解算法不收敛)    

73    在LINGO生成模型(对模型进行结构分析)时,用户中断了模型生成过程    

74    变量越界,超出了1032    

75    对变量的定界相互冲突(例如:

一个模型中同时指定@BND(-6,X,6)和@BND(-5,X

,5)是允许的,但同时指定@BND(-6,X,6)和@BND(7,X,9)则是冲突的.)    

76    LINGO生成模型时出现错误,不能将模型转交给优化求解程序    

77    无定义的算术运算(例如除数为0)    

78    (该错误编号目前没有使用)      

79    (该错误编号目前没有使用)    

80    生成LINGO模型时系统内存已经用尽    

81    找不到可行解    

82    最优值无界    

83    (该错误编号目前没有使用)    

84    模型中非零系数过多    

85    表达式过于复杂导致堆栈溢出    

86    算术运算错误(如1/0或@LOG(-1)等)    

87    @IN函数使用不当(似乎与错误代码“52”相同)    

88    当前内存中没有存放任何解    

89    LINGO运行时出现了意想不到的错误(请与LINGO公司联系解决问题)    

90    在LINGO生成模型时,用户中断了模型生成过程    

91    当在数据段有“变量=?

”语句时,LINGO运行中将要求用户输人这个变量的值,

如果这个值输入错误,将显示这个错误代码    

92    警告:

当前解可能不是可行的/最优的    

93    命令行中的转换修饰词错误    

94    (该错误编号目前没有使用)    

95    模型求解完成前,用户中断了求解过程    

96    (该错误编号目前没有使用)    

97    用TAKE命令输入模型时,出现了不可识别的语法    

98    用TAKE命令输入模型时,出现了语法错误    

99    语法错误,缺少变量    

100    语法错误,缺少常量    

101    (该错误编号目前没有使用)    

102    指定的输出变量名不存在    

103    (该错误编号目前没有使用)    

104    模型还没有被求解,或者模型是空的    

105    (该错误编号目前没有使用)    

106    行宽的最小最大值分别为68和200    

107    函数@POINTER指定的索引值无效    

108    模型的规模超出了当前LINGO版本的限制    

109    达到了迭代上限,所以LINGO停止继续求解模型(迭代上限可以通过

“LING0|0ptions”命令对GeneralSolver选项卡中的“Iteration”选项进行修改)    

110    HIDE(隐藏)命令指定的密码超出了8个字符的限制    

111    模型是隐藏的,所以当前命令不能使用    

112    恢复隐藏模型时输入的密码错误    

113    因为一行内容太长,导致LOOK或SAVE命令失败    

114    HIDE(隐藏)命令指定的两次密码不一致,命令失败    

115    参数列表过长    

116    文件名(包括路径名)太长    

117    无效的命令    

118    命令不明确(例如,可能输入的是命令的缩写名,而这一缩写可有多个命令与之

对应)    

119    命令脚本文件中的错误太多,LINGO放弃对它继续处翠    

120    LINGO无法将配置文件(LINGO.CNF)写入启动目录或工作目录(可能是权限问题)    

121    整数规划没有敏感性分析    

122    敏感性分析选项没有激活,敏感性分析不能进行(可通过“LINGO|Options”命令

对GeneralSolver选项卡中的“DualComputation”选项进行修改)    

123    调试(Debug)命令只对线性模型、且模型不可行或无界时才能使用    

124    对一个空集合的属性进行初始化    

125    集合中没有元素    

126    使用ODBC连接输出时,发现制定的输出变量名不存在    

127    使用ODBC连接输出时,同时输出的变量的维数必须相同    

128    使用SET命令时指定的参数索弓I无效    

129    使用SET命令时指定的参数的取值无效    

130    使用SET命令时指定的参数名无效    

131    FREEZE命令无法保存配置文件LINGO.CNF(可能是权限问题)    

132    LINGO读配置文件(LINGO.CNF)时发生错误    

133    LINGO无法通过OLE连接电子表格文件(如:

当其他人正在编辑这个文件时)    

134    输出时出现错误,不能完成所有输出操作    

135    求解时间超出了限制(可通过“LING0|0ptions”命令对GeneralSolver选项卡中

的“Time”选项进行修改)    

136    使用@TEXT函数输出时出现错误操作    

137    (该错误编号目前没有使用)    

138    DIVERT(输出重新定向)命令的嵌套次数太多(最多不能超过10次嵌套)    

139    DIVERT(输出重新定向)命令不能打开指定文件    

140    只求原始最优解时无法给出敏感性分析信息(可通过“LING0|0ptions”命令对

GeneralSolver选项卡中的“DualComputation”选项进行修改)    

141    对某行约束的敏感性分析无法进行,因为这一行已经是固定约束(即该约束中所

有变量都已经在直接求解程序进行预处理时被固定下来了)    

142    出现了意想不到的错误(请与LINDO公司联系解决这个问题)    

143    使用接口函数输出时,同时输出的对象的维数必须相同    

144    @POINTER函数的参数列表无效    

145    @POINTER函数出错:

2-输出变量无效;3-内存耗尽;4-只求原始最优解时无法给

出敏感性分析信息;5-对固定行无法给出敏感性分析信息;6-意想不到的错误.    

146    基本集合的元素名与模型中的变量名重名(当前版本的LINGO中这本来是允许的,

但如果通过“LING0|0ptions”命令在“GeneralSolver”选项卡选择“Checkfor

duplicatesnamesindataandmodel”,则会检查重名,这主要是为了与以前的LINGO

版本兼容)    

147    @WARN函数中的条件表达式中只能包含固定变量    

148    @OLE函数在当前操作系统下不能使用(只在Windows操作系统下可以使用)    

149    (该错误编号目前没有使用)    

150    @ODBC函数在当前操作系统下不能使用(只在Windows操作系统下可以使用)    

151    

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1