数学建模社区-数学中国

标题: 关于lingo的目标函数的表示方法! [打印本页]

作者: 数学不烦    时间: 2013-7-31 01:42
标题: 关于lingo的目标函数的表示方法!
大家好,请教一个问题:
sets:
events/1..8/:x;
endsets
对于目标函数:  min=x8 - x1;怎样表示?  求和就用到@sum函数   但现在只是一个减式罢了,怎样解决呢?  
如果出现其他古怪的  目标函数呢?  怎样办?   有没有通用的方法呢?

作者: madio    时间: 2013-7-31 09:03
两个直接减就用你的这种方式就可以了
作者: 数学不烦    时间: 2013-7-31 09:46
madio 发表于 2013-7-31 09:03
两个直接减就用你的这种方式就可以了

不行啊,这位兄台,在lindo里面就可以,但在上面例子中,x8-x1在求解的过程中被程序认为是两个新变量的!
我给代码你看看
作者: 数学不烦    时间: 2013-7-31 09:46
本帖最后由 数学不烦 于 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

[obj] min = !events(i):x(8)-x(1);
@for(operate(i,j):s(i,j)=x(j)-x(i)-num(i,j));

end


主要看[obj] 目标函数就可以了   怎样实现  x(8)-x(1)呢?
作者: madio    时间: 2013-7-31 09:51
写错了,就是min = x(8)-x(1);
要加上括号的,因为x是一个数组




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5