Bootstrap

运筹优化学习01:Lingo入门与错误列表分析

目录

1 Lingo编程基础

1.1基本思路

1.2 建模思路

1.3 注意事项

2 整数规划模型求解示例(不使用集合语言)

2.1 问题模型

2.2 lingo源代码:

2.3 结果展示

2.4 小结

3  一个稍大规模的问题求解

3.1 问题描述

3.3 模型分析

3.3.1 定义集合段:使用【sets:】开始,【endsets】结束

3.3.2 定义数据段:使用【data:】开始,【enddata】结束

3.3.3 目标函数的代码

3.3.4 约束条件代码实现

3.3.5 完整代码

3.3.6 结果演示

4 常见错误分析

4.1 错误代码29:数组初始化个数与指定数目不一致

4.2 错误代码12:缺少右括号报错

4.3 错误代码11:无效的输入,语法错误

5 LINGO的错误列表

6 致谢

7 更多推荐



今天老板安排了一个任务,让自己建立一个最经典的CVRP模型,然后用LINGO把建立的模型给求解出来;LINGO只是听说过,从来没有真正使用过,运筹学课程也是混着过来的,怎么办?硬着头皮上呗。

两种编程方法:使用集合语言编程和不使用集合语言编程(笨办法编程)

1 Lingo编程基础

1.1基本思路

  • 确保模型是对的,每个变量均进行了严格的定义;
  • 明确已知数据、模型的类型(线性模型、非线性模型)
  • 确定指标集(即每个变量的变化范围)
  • 确定变量依赖的指标集
  • 正确写出代码式子

1.2 建模思路

1.3 注意事项

目标函数:min或max

基本语法:

  • 普通代码行,以分号为一行代码的结束;代码注释行,以叹号开始分号结束
  • 空格和回车字符会被忽略掉
  • 变量名以字母开头,不区分大小写;
  • 没有严格大于或严格等于的约束

2 整数规划模型求解示例(不使用集合语言)

2.1 问题模型

2.2 lingo源代码:

max = 4*x1 + 3*x2;
2 * x1 + x2 <= 10;
    x1 + x2 <=  8;
	 x2 <=  7;
@gin(x1);
@gin(x2);

2.3 结果展示

得到全局最优解,目标函数值为26

解报告中显示:x1 = 2; x2 = 6

2.4 小结

  • 每行源代码都是以 【;】 结束的;
  • 可以通过空格增强代码的易读性;
  • 乘号不能省略
  • lingo不区分大小写
  • 默认变量为非负变量
  • 注释代码以【!】开头,以【;】结尾
  • @开头的表示函数,常用的几个指令如下表所示
@bin(x)要求变量为二进制变量
@free(x)表示变量为任意实数
@bnd(x,1,u)要求x取值在(1,u)
@gin(x)变量x只能是整数

要求x取值范围为[-5,5]的实数的编码方式为:

@free(x);    !规定x为任意实数
@bnd(-5,x,5);    !规定x的范围
@gin(x);    !限定为整数

3  一个稍大规模的问题求解

3.1 问题描述

3.2 模型建立

3.3 模型分析

(1)确定模型的已知变量和未知变量:模型中除了c_{ij}剩余的变量都是已知变量

(2)确定指标集:i \in \{1,2,3,4,5,6\}; j \in \{1,2\};对应的lingo代码为:

3.3.1 定义集合段:使用【sets:】开始,【endsets】结束

!使用集合表示;
sets:
S/1..6/: a, b, d;	!变量a_{i}, b_{i}, d_{i};
T/1,2/: e, x;		!变量e_{j}, x_{j};
U(S,T):	;            !双下标的集合c_{ij};
endsets

3.3.2 定义数据段:使用【data:】开始,【enddata】结束

!定义数据段;
DATA:
a = 1.25 8.75 0.5 5.75 3 7.25;
B = 1.25 0.75 4.75 5 6.5;
D = 3 5 4 7 6 11;
ENDDATA

3.3.3 目标函数的代码

min \sum_{j=1}^{2}\sum_{i=1}^{6}c_{ij}\sqrt { (x_j - a_j)^2 +(y_{i} - b_{i} )^2}

编码该公式的Latex代码:min \sum_{j=1}^{2}\sum_{i=1}^{6}c_{ij}\sqrt { (x_j - a_j)^2 +(y_{i} - b_{i} )^2}

编码该公式的Lingo代码:

min = @sum(T(j) : @sum(S(i) : c(i,j) * @sqrt((x(j)- a(j))^2 + (x(i) - y(i))^2) ) );
!代码注释:
j \in T
i \in S
调用函数:@sqrt求平方根,@sum求和;

3.3.4 约束条件代码实现

\sum_{j=1}^2 c_{ij} = d_i; i = 1,2,..,6

编码该公式的Latex代码:\sum_{j=1}^2 c_{ij} = d_i; i = 1,2,..,6

编码该公式的Lingo代码:

@for (S(i) : @sum(T(j) : c(i,j) = d(i));

!代码注释:
i \in S
j \in T;

\sum_{i=1}^{6} c_{ij} \leq e_{j}; j = 1,2

编码该公示的Latex代码:\sum_{i=1}^{6} c_{ij} \leq e_{j}; j = 1,2

编码该约束的Lingo代码:

@for (T(j) : \sum(S(i) : c(i,j) <= e(j) ));

3.3.5 完整代码

!使用集合表示;
sets:
S/1..6/: a, b, d;		!变量a_{i}, b_{i}, d_{i};
T/1,2/: e, x, y;		!变量e_{j}, x_{j}, y_{j};
U(S,T): c	;		!双下标的集合c_{ij};
endsets

!定义数据段;
DATA:
a = 1.25 8.75 0.5 5.75 3 7.25;
B = 1.25 0.75 4.75 5 6.5 7.75;
D = 3 5 4 7 6 11;
x = 5 2;
y = 1 7;
ENDDATA

min = @sum(T(j) : @sum(S(i) : c(i,j) * @sqrt((x(j) - a(i))^2 + (y(j) - b(i))^2)));


@for(S(i) : @sum(T(j): c(i,j)) = d(i));

@for(T(j) : @sum(S(i) : c(i,j)) <= e(j));

3.3.6 结果演示

 

  Global optimal solution found.
  Objective value:                              134.4157
  Infeasibilities:                              0.000000
  Total solver iterations:                             0


                       Variable           Value        Reduced Cost
                          A( 1)        1.250000            0.000000
                          A( 2)        8.750000            0.000000
                          A( 3)       0.5000000            0.000000
                          A( 4)        5.750000            0.000000
                          A( 5)        3.000000            0.000000
                          A( 6)        7.250000            0.000000
                          B( 1)        1.250000            0.000000
                          B( 2)       0.7500000            0.000000
                          B( 3)        4.750000            0.000000
                          B( 4)        5.000000            0.000000
                          B( 5)        6.500000            0.000000
                          B( 6)        7.750000            0.000000
                          D( 1)        3.000000            0.000000
                          D( 2)        5.000000            0.000000
                          D( 3)        4.000000            0.000000
                          D( 4)        7.000000            0.000000
                          D( 5)        6.000000            0.000000
                          D( 6)        11.00000            0.000000
                          E( 1)        15.00000            0.000000
                          E( 2)        21.00000            0.000000
                          X( 1)        5.000000            0.000000
                          X( 2)        2.000000            0.000000
                          Y( 1)        1.000000            0.000000
                          Y( 2)        7.000000            0.000000
                       C( 1, 1)        3.000000            0.000000
                       C( 1, 2)        0.000000            2.040383
                       C( 2, 1)        5.000000            0.000000
                       C( 2, 2)        0.000000            5.440861
                       C( 3, 1)        0.000000            3.153524
                       C( 3, 2)        4.000000            0.000000
                       C( 4, 1)        7.000000            0.000000
                       C( 4, 2)        0.000000           0.1802949
                       C( 5, 1)        0.000000            4.734316
                       C( 5, 2)        6.000000            0.000000
                       C( 6, 1)        0.000000            1.811824
                       C( 6, 2)        11.00000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        134.4157           -1.000000
                              2        0.000000           -3.758324
                              3        0.000000           -3.758324
                              4        0.000000           -2.704163
                              5        0.000000           -4.069705
                              6        0.000000           -1.118034
                              7        0.000000           -5.303301
                              8        0.000000            0.000000
                              9        0.000000            0.000000

4 常见错误分析

4.1 错误代码29:数组初始化个数与指定数目不一致

若提供的数据数目与集合段指定的数据长度不一致,会报如下错误:

意思是说:B变量初始化的个数少于集合段指定的数目;点击Explain按钮可以查询更详细的问题解释

You must assign a value to every element of each array in a DATA or INIT statement. LINGO keeps track of the number of values you specified and checks this against the length of each array being assigned. If the two numbers don’t agree, LINGO prints this message along with the number of values that are required.

4.2 错误代码12:缺少右括号报错

意思是:这样代码缺了一个右括号

A LINGO expression is missing at least one closing right parenthesis. LINGO will point to the end of the expression where the error occurred. Count the number of parentheses in this expression to verify if you have input the correct number, or, in Window use the Edit|Match Parenthesis command to find the unmatched parenthesis.

 

4.3 错误代码11:无效的输入,语法错误

模型的【model】关键字没有加【:】

This is the generic error issued by the LINGO compiler when it detects a syntax error. In Windows, when you close the error box, the cursor will be on the line where the error occurred. Other versions of LINGO will try print out the general area where the error has occurred, but LINGO cannot always pinpoint the exact line. Examine this area for any obvious syntax errors. If you are unable to find any obvious errors, a useful technique is to comment out small sections of the model until the error goes away. This should give you a good idea of exactly where the error is occurring.

Syntax errors may also occur if you are not invoking the correct compiler in LINGO.  Most users will choose to build models using the native LINGO syntax, however, some users may prefer building their models using LINDO syntax.  LINGO can compile models written in either native LINGO syntax or LINDO syntax.  LINGO chooses the compiler based on a model's file extension.  LINGO models must have an extension of lg4 (the default) or lng. LINDO models must have an ltx extension. The default model extension may be set by clicking on: LINGO | Options | Interface | File Format.  Each model window's title bar displays whether it is a LINGO or LINDO model.

5 LINGO的错误列表

LINGO出错时错误代码含义:
      在LINGO程序求解时,系统首先会对程序进行编译.系统在编译或执行其他命令时,会因程序中的错误或运行错误,弹出一个出错报告窗口,显示其错误代码,并简要指出错误的原因.这些错误报告信息能够提示用户发现程序中的错误,以便能尽快修改.下面我们给出出错信息的一个简要说明,仅供参考.
LINGO错误编号及原因对照表

错误代码 含义 
0LINGO模型生成器的内存已经用尽(可用“LINGO|Options"命令对General Solver选项卡中的“Generator Memory Limit"选项进行内存大小的修改) 
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<x<4是不允许出现在同一个语句中的) 
23参数个数不符 
24集合名不合法 
25函数@WKX()的参数非法(注:在LING09.0中已经没有函数@WKX()) 
26集合的索引变量的个数不符 
27在电子表格文件中指定的单元范围不连续 
28行名不合法 
29数据段或初始段的数据个数不符 
30链接到Excel时出现错误 
31使用@TEXT函数时参数不合法 
32使用了空的集合成员名 
33使用@OLET函数时参数不合法 
34用电子表格文件中指定的多个单元范围生成派生集合时,单元范围的大小应该一致 
35输出时用到了不可识别的变量名 
36基本集合的元素名不合法 
37集合名已经被使用过 
38ODBC服务返回了错误信息 
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行命令拼写错误 
62LINGO生成模型时工作内存不足 
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)则是冲突的.) 
76LINGO生成模型时出现错误,不能将模型转交给优化求解程序 
77无定义的算术运算(例如除数为0) 
78(该错误编号目前没有使用) 
79(该错误编号目前没有使用) 
80生成LINGO模型时系统内存已经用尽 
81找不到可行解 
82最优值无界 
83(该错误编号目前没有使用) 
84模型中非零系数过多 
85表达式过于复杂导致堆栈溢出 
86算术运算错误(如1/0或@LOG(-1)等) 
87@IN函数使用不当(似乎与错误代码“52”相同) 
88当前内存中没有存放任何解 
89LINGO运行时出现了意想不到的错误(请与LINGO公司联系解决问题) 
90在LINGO生成模型时,用户中断了模型生成过程 
91当在数据段有“变量=
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”命令对General Solver选项卡中的“Iteration”选项进行修改) 
110HIDE(隐藏)命令指定的密码超出了8个字符的限制 
111模型是隐藏的,所以当前命令不能使用 
112恢复隐藏模型时输入的密码错误 
113因为一行内容太长,导致LOOK或SAVE命令失败 
114HIDE(隐藏)命令指定的两次密码不一致,命令失败 
115参数列表过长 
116文件名(包括路径名)太长 
117无效的命令 
118命令不明确(例如,可能输入的是命令的缩写名,而这一缩写可有多个命令与之对应) 
119命令脚本文件中的错误太多,LINGO放弃对它继续处翠 
120LINGO无法将配置文件(LINGO.CNF)写入启动目录或工作目录(可能是权限问题) 
121整数规划没有敏感性分析 
122敏感性分析选项没有激活,敏感性分析不能进行(可通过“LINGO|Options”命令对General Solver选项卡中的“Dual Computation”选项进行修改) 
123调试(Debug)命令只对线性模型、且模型不可行或无界时才能使用 
124对一个空集合的属性进行初始化 
125集合中没有元素 
126使用ODBC连接输出时,发现制定的输出变量名不存在 
127使用ODBC连接输出时,同时输出的变量的维数必须相同 
128使用SET命令时指定的参数索弓I无效 
129使用SET命令时指定的参数的取值无效 
130使用SET命令时指定的参数名无效 
131FREEZE命令无法保存配置文件LINGO.CNF(可能是权限问题) 
132LINGO读配置文件(LINGO.CNF)时发生错误 
133LINGO无法通过OLE连接电子表格文件(如:当其他人正在编辑这个文件时) 
134输出时出现错误,不能完成所有输出操作 
135求解时间超出了限制(可通过“LING0|0ptions”命令对General Solver选项卡中的“Time”选项进行修改) 
136使用@TEXT函数输出时出现错误操作 
137(该错误编号目前没有使用) 
138DIVERT(输出重新定向)命令的嵌套次数太多(最多不能超过10次嵌套) 
139DIVERT(输出重新定向)命令不能打开指定文件 
140只求原始最优解时无法给出敏感性分析信息(可通过“LING0|0ptions”命令对General Solver选项卡中的“Dual Computation”选项进行修改) 
141对某行约束的敏感性分析无法进行,因为这一行已经是固定约束(即该约束中所有变量都已经在直接求解程序进行预处理时被固定下来了) 
142出现了意想不到的错误(请与LINDO公司联系解决这个问题) 
143使用接口函数输出时,同时输出的对象的维数必须相同 
144@POINTER函数的参数列表无效 
145@POINTER函数出错:2-输出变量无效;3-内存耗尽;4-只求原始最优解时无法给出敏感性分析信息;5-对固定行无法给出敏感性分析信息;6-意想不到的错误. 
146基本集合的元素名与模型中的变量名重名(当前版本的LINGO中这本来是允许的,但如果通过“LING0|0ptions”命令在“General Solver”选项卡选择“Check forduplicates names in data and model”,则会检查重名,这主要是为了与以前的LINGO版本兼容) 
147@WARN函数中的条件表达式中只能包含固定变量 
148@OLE函数在当前操作系统下不能使用(只在Windows操作系统下可以使用) 
149(该错误编号目前没有使用) 
150@ODBC函数在当前操作系统下不能使用(只在Windows操作系统下可以使用) 
151@POINTER函数在当前系统下不能使用(只在Windows操作系统下可以使用) 
152输入的命令在当前操作系统下不能使用 
153集合的初始化(定义元素)不能在初始段中进行,只能在集合段或数据段进行 
154集合名只能被定义一次 
155在数据段对集合进行初始化(定义元素)时,必须显示地列出所有元素,不能省略元素 
156在数据段对集合和(或)变量进行初始化时,给出的参数个数不符 
157@INDEX函数引用的集合名不存在 
158当前函数需要集合的成员名作为参数 
159派生集合中的一个成员(分量)不是对应的父集合的成员 
160数据段中的一个语句不能对两个(或更多)的集合进行初始化(定义元素) 
161(该错误编号目前没有使用) 
162电子表格文件中指定的单元范围内存在不同类型的数据(即有字符,又有数值),LINGO无法通过这些单元同时输入(或输出)不同类型的数据 
163在初始段对变量进行初始化时,给出的参数个数不符 
164模型中输入的符号名不符合LINGO的命名规则 
165当前的输出函数不能按集合进行输出 
166不同长度的输出对象无法同时输出到表格型的文件(如数据库和文本文件) 
167在通过Excel进行输入输出时,一次指定了多个单元范围 
168@DUAL,@RANGEU,@RANGED函数不能对文本数据(如集合的成员名)使用,而只能对变量和约束行使用 
169运行模型时才输入集合成员是不允许的 
170LINGO系统的密码输入错误,请重新输入 
171LINGO系统的密码输入错误,系统将以演示版方式运行 
172LINGO的内部求解程序发生了意想不到的错误(请与LINDO公司联系解决这个问题) 
173内部求解程序发生了数值计算方面的错误 
174LINGO预处理阶段(preprocessing)内存不足 
175系统的虚拟内存不足 
176LINGO后处理阶段(postprocessing)内存不足 
177为集合分配内存时出错(如内存不足等) 
178为集合分配内存时堆栈溢出 
179将MPS格式的模型文件转化成LINGO模型文件时出现错误(如变量名冲突等) 
180将MPS格式的模型文件转化成LINGO模型文件时,不能分配内存(通常是内存不足) 
181将MPS格式的模型文件转化成LINGO模型文件时,不能生成模型(通常是内存不足) 
182将MPS格式的模型文件转化成LINGO模型文件时出现错误(会给出出错的行号) 
183LINGO目前不支持MPS格式的二次规划模型文件 
184敏感性分析选项没有激活,敏感性分析不能进行(可通过“LINGO|Options”命令对General Solver选项卡中的“Dual Computation”选项进行修改) 
185没有使用内点法的权限(LINGO中的内点法是选件,需要额外购买) 
186不能用@QRAND函数对集合进行初始化(定义元素) 
187用@QRAND函数对属性进行初始化时,一次只能对一个属性进行处理 
188用@QRAND函数对属性进行初始化时,只能对稠密集合对应的属性进行处理 
189随机函数中指定的种子(SEED)无效 
190用隐式方法定义集合时,定义方式不正确 
191LINDOAPI返回了错误(请与LINDO公司联系解决这个问题) 
192LINGO不再支持@WKX函数,请改用@OLE函数 
193内存中没有当前模型的解(模型可能还没有求解,或者求解错误) 
194无法生成LINGO的内部环境变量(通常是因为内存不足) 
195写文件时出现错误(如磁盘空间不足) 
196无法为当前模型计算对偶解(这个错误非同寻常,欢迎你将这个模型提供给LINDO公司进行进一步分析) 
197调试程序目前不能处理整数规划模型 
198当前二次规划模型不是凸的,不能使用内点法,请通过“LINGO[Options,’命令取消对二次规划的判别 
199求解二次规划需要使用内点法,但您使用的LINGO版本没有这个权限(请通过“LINGO|Options”命令取消对二次规划的判别) 
200无法为当前模型计算对偶解,请通过“LINGO|Options”命令取消对对偶计算的要求 
201模型是局部不可行的 
202全局优化时,模型中非线性变量的个数超出了全局优化求解程序的上限 
203无权使用全局优化求解程序 
204无权使用多初始点求解程序 
205模型中的数据不平衡(数量级差异太大) 
206“线性化”和“全局优化”两个选项不能同时存在
207缺少左括号 
208@WRITEFOR函数只能在数据段出现
209@WRITEFOR函数中不允许出现关系运算符
210@WRITEFOR函数使用不当
211输出操作中出现了算术运算错误 
212集合的下标越界 
213当前操作参数不应该是文本,但模型中指定的是文本 
214多次对同一个变量初始化 
215@DUAL,@RANGEU,@RANGED函数不能在此使用(参阅错误代码“168”) 
216这个函数应该需要输入文本作为参数 
217这个函数应该需要输入数值作为参数 
218这个函数应该需要输入行名或变量名作为参数 
219无法找到指定的行 
220没有定义的文本操作 
221@WRITE或@WRITEFOR函数的参数溢出 
222需要指定行名或变量名 
223向Excel文件中写数据时,动态接收单元超出了限制 
224向Excel文件中写数据时,需要写的数据的个数多于指定的接收单元的个数 
225计算段(CALC)的表达式不正确 
226不存在默认的电子表格文件,请为@OLE函数指定一个电子表格文件 
227为APISET命令指定的参数索引不正确 
228通过Excel输入输出数据时,如果LINGO中的多个对象对应于Excel中的名,则列数应该一致 
229为APISET命令指定的参数类型不正确 
230为APISET命令指定的参数值不正确 
231APISET命令无法完成 
232(该错误编号目前没有使用) 
1000(错误编号为1000以上的信息,只对Windows系统有效) 
1001LINGO找不到与指定括号匹配的括号 
1002当前内存中没有模型,不能求解 
1003LINGO现在正忙,不能马上响应您的请求 
1004LINGO不能写LOG(日志)文件,也许磁盘已满 
1005LINGO不能打开指定的LOG(日志)文件 
1006不能打开文件 
1007没有足够内存完成命令 
1008不能打开新窗口(可能内存不够) 
1009没有足够内存空间生成解答报告 
1010不能打开Excel文件的链接(通常是由于系统资源不足) 
1011LINGO不能完成对图形的请求 
1012LINGO与ODBC连接时出现错误 
1013通过OBDC传递数据时不能完成初始化 
1014向Excel文件传递数据时,指定的参数不够 
1015不能保存文件 
1016Windows环境下不支持Edit命令,请使用File|Open菜单命令 
9999由于出现严重错误,优化求解程序运行失败(最可能的原因是数学函数出错,如函数@LOG(X-1)当X<=1时就会出现这类错误)                                                                                                                           

6 致谢

参考资料1:

视频教程:快速学习Lingo软件及编程方法https://www.bilibili.com/video/av36145650/

完整课程连接:https://mooc1-1.chaoxing.com/course/203774897.html(收费的)

参考资料2:Lingo错误列表汇总

https://blog.csdn.net/JX_Cesare/article/details/81670029

7 更多推荐

 

更多精彩欢迎关注个人微信帐号“学而立行”,一个无偿分享、共同进步的公众平台

;