数学建模社区-数学中国
标题:
lingo中判断语句的问题
[打印本页]
作者:
T-Eric
时间:
2014-8-19 21:12
标题:
lingo中判断语句的问题
在Lingo中如果要执行一个判断语句,但只有判断正确返回值,没有错误返回值,该怎么办?
比如:
变量X矩阵有一个约束条件:当变量Y矩阵的某个元素等于0时,变量X矩阵中对应的元素必须为0,但在Y矩阵中元素不为0时,X矩阵中对应元素值却不由Y矩阵决定。
我暂时只知道@if函数,但这个函数必须同时有满足与不满足判断条件的返回值,而有些问题(如上问)则不一定有不满足判断条件的判断错误返回值。这该怎么办?
希望有能人帮忙点拨,十分感谢!!
作者:
madio
时间:
2014-8-20 08:48
好像不能实现,你的Y矩阵是一个中间生成的矩阵吗?一般这些要求都是可以转化为约束条件的
作者:
T-Eric
时间:
2014-8-20 14:08
madio 发表于 2014-8-20 08:48
好像不能实现,你的Y矩阵是一个中间生成的矩阵吗?一般这些要求都是可以转化为约束条件的
怎么说呢,我那个问题是这样的,这是个0-1规划问题,有两个0-1变量矩阵,我命名为X,Y。然后还有一个已知的0-1矩阵,记为D。Y与D是等阶的矩阵。现在其中有一个约束是在Y矩阵中为1的元素时取该元素的列标,如果在该列的D矩阵的某个元素为0,则X矩阵在D矩阵相应的位置的元素值为0,如果在该列的D矩阵的某个元素为1时,则对X矩阵在D矩阵相应位置的元素值是否为1或0无影响。还有几个约束是那种类似指派问题的约束。
后来我又尝试了用x与d之间的乘积的方式来约束X的值,我写的那一段代码如下:
@for(Ylink(i,j):@for(Xlink(k,l):D(k,l)=@if(Y(i,j)#eq#1,D(i,j),1)));
@for(Xlink(i,j):X(i,j)=X(i,j)*D(i,j));
但系统报错,好像说的是不能求解固定变量的值,也不清楚为什么。
这个约束条件确实有点纠结,可能有什么转化的方法,还请您帮帮忙,万分感谢!
作者:
T-Eric
时间:
2014-8-20 14:10
madio 发表于 2014-8-20 08:48
好像不能实现,你的Y矩阵是一个中间生成的矩阵吗?一般这些要求都是可以转化为约束条件的
怎么说呢,我那个问题是这样的,这是个0-1规划问题,有两个0-1变量矩阵,我命名为X,Y。然后还有一个已知的0-1矩阵,记为D。Y与D是等阶的矩阵。现在其中有一个约束
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5