关于lingo的目标函数的表示方法!
大家好,请教一个问题:sets:
events/1..8/:x;
endsets
对于目标函数: min=x8 - x1;怎样表示? 求和就用到@sum函数 但现在只是一个减式罢了,怎样解决呢?
如果出现其他古怪的 目标函数呢? 怎样办? 有没有通用的方法呢?
两个直接减就用你的这种方式就可以了 madio 发表于 2013-7-31 09:03 static/image/common/back.gif
两个直接减就用你的这种方式就可以了
不行啊,这位兄台,在lindo里面就可以,但在上面例子中,x8-x1在求解的过程中被程序认为是两个新变量的!
我给代码你看看 本帖最后由 数学不烦 于 2013-7-31 09:48 编辑
源代码在此:
model:
sets:
events/1..8/:x;
operate(events,events)/2,1 3,1 4,1 5,2 4,3 5,3 6,4 6,5 7,5 8,5 7,6 8,6 8,7/:s,num;
endsets
data:
num = 5 10 11 4 4 0 15 21 25 35 0 20 15;
enddata
min = !events(i):x(8)-x(1);
@for(operate(i,j):s(i,j)=x(j)-x(i)-num(i,j));
end
主要看 目标函数就可以了 怎样实现 x(8)-x(1)呢? 写错了,就是min = x(8)-x(1);
要加上括号的,因为x是一个数组
页:
[1]