LINGO学习心得[1]
朱旭生LINGO学习心得
LINGO的主要特点:一是数学化的语言,用的是数学模型比较直观;二是数据段与程序语句段分开,甚至可以利用不在lingo文件中的外界数据文件来给变量赋值.
1.可以利用EXCEL与LINGO之间直接传递数据;从EXCEL到LINGO的语句为 “变量=@OLE(?EXCEL文件的详细名称(包括路径)?)”;
从LINGO到EXCEL的语句为
“@OLE(?EXCEL文件的详细名称(包括路径)?)=变量”.
放在LINGO数据区
注意:这里的电子表格EXCEL的数据段应该取名,方法是用鼠标左键锁定数据区后从菜单“插入”中选“名称”,再选“定义”,在弹出的表格中输入该数据段的名称(英文,本来在excel中是可以定义中文名称的,但是作为lingo变量则不能)。输出的EXCEL表格也是如此定义数据区。
输出的表格可以与输入的表格不在同一个文件里,在lingo程序运行前定义出输出区域的名称。
注意在用cut,paste功能时很容易多出一些标点符号,使得语句不符合语法规则!
2。在解大型问题时,可能会出现计算时LINGO内存不够,这时应该修改LINGO选择项“Option”中的相关选项。
3。象本例中,我们对EXCEL的表格中的数据进行处理(关于11或10补)时,也可以利用LINGO来完成。
4。条件语句:@IF( logical_condition, true_result, false_result),如下面程序:
MIN = COST;
COST = XCOST + YCOST;
XCOST = @IF( X #GT# 0, 100, 0) + 2 * X;
YCOST = @IF( Y #GT# 0, 60, 0) + 3 * Y;
X + Y >= 30;
其中生产产品X的成本为分段函数:x=0时,成本为0;x>0时,成本为 100+2x,即生产准备费为100.
5.变量取名规则:以英文字母打头,后面可以跟英文字母,数字0-9,以及下划线_.变量中的字母大小写不区别,如:XAB与Xab,xab等价.
6. SETS段: 定义一个同样属性的集合,如同学们,老师们,宿舍群等等,他们在建模过程中往往表示为同学1,同学2,??,同学n,以下方式等价:
同学们/同学1,同学2,同学3,同学4,同学5,同学6,同学7,同学8,同学9,同学10/:分数; 同学们/同学1..同学10/:分数;
同学们/1..10/:分数;
注:最后一种表示方式必须是从数字1开始标,但是中间那个可以是/同学3..同学10/