High quality manuscripts are welcome to download
用LINGO求解整数规划
用LINGO求解整数规划
在LINGO中,输入总是以model:开始,以end结束;中间的语句之间必须以“;”分开;
LINGO不区分字母的大小写;
目标函数用MAX=…;或MIN=…;给出(注意有等号“=”)。
在LINDO中所有的函数均以“@”符号开始,如约束中***@gin(x1)表示x1为整数,用***@bin(x1)表示x1为0-1整数。
在现在的LINDO中,默认设置假定所有变量非负。
函数中变量的界定:
***@GIN(X):限制X为整数
***@BIN(X):限定变量X为0 或 1。
***@FREE(X):取消对x的符号限制(即可取任意实数包括负数)
***@BND(L,X,U):限制 L<= X <= U
LINGO提供了大量的标准数学函数:
***@abs(x) 返回x的绝对值
***@sin(x) 返回x的正弦值,x采用弧度制
***@cos(x) 返回x的余弦值
***@tan(x) 返回x的正切值
***@exp(x) 返回常数e的x次方
***@log(x) 返回x的自然对数
***@lgm(x) 返回x的gamma函数的自然对数
***@sign(x) 如果x<0返回-1;否则,返回1
***@smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值
***@smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值
例1:整数规划模型在LINGO中可以如下输入:
model:
Max=5*x1+8*x2; !*号不能省略
x1+x2<=6; !约束条件和目标函数可以写在model:与end之间的任何位置
5*x1<=45-9*x2;
***@gin(x1);***@gin(x2); !和LINDO不同,不能写在end之后
end
运行后同样得到最优解为x1=0,x2=5,最优值为40。
例2:在线性规划中的应用
max Z =5X1+3X2+6X3,
.
X1 +2 X2 + X3 ≤18
2 X1 + X2 +3 X3 =16
X1 + X2 + X3 =10
X1 ,X2 ≥0 , X3 为自由变量
应用LINGO 来求解该模型,只需要在 lingo窗口中输入以下信息即可:
max=5*x1+3*x2+6*x3;
x1+2*x2+x3<=18;
2*x1+x2+3*x3=16;
x1+x2+x3=10;
***@free(x3);
然后按运行按钮,得到模型最优解,具体如下:
Objective value:
Variable Value Reduced Cost
x1
x2
x3 -4 .000000
由此可知,当 x1 =14 , x2 =0 , x3 =-4 时,模型得到最优值,且最优值为 46。
说明:在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 ***@free来把系统默认的非负变量定义自由变量,如实例一中的 x3。
例3、用LINGO
用LINGO求解整数规划 来自淘豆网m.daumloan.com转载请标明出处.