数学建模社区-数学中国

标题: Lingo中如何赋值? [打印本页]

作者: bill8341    时间: 2016-2-29 16:58
标题: Lingo中如何赋值?
T(i,j,k)是0-1变量,每行每列都只有一个1
我想将W(i,j) = T(i,j,k) =1的那个k
请问该如何处理?谢谢大家了

作者: liwenhui    时间: 2016-3-1 09:10
没看懂你的问题点,解释一下“我想将W(i,j) = T(i,j,k) =1的那个k”什么意思?

作者: bill8341    时间: 2016-3-1 10:39
是这样的,比如T(2,3,...)=0 0 1 0 0;
则W(2,3)= 3
看我说清楚了没,谢谢大侠了

作者: liwenhui    时间: 2016-3-2 09:36


我仍然没有完全明白你的意思,揣测你可能是想得到某个元素在集合的位置参数。如果是这样,你可以考虑使用@index( )函数来实现。



作者: bill8341    时间: 2016-3-3 15:02
本帖最后由 bill8341 于 2016-3-3 15:04 编辑

这样,我写成matlab的程序如下
for i = 1 : m
    for j = 1 : n
        for k = 1 : p
            if  T(i,j,k) == 1
                W(i,j) = k;
                break;
            end
        end
    end
end
谢谢了


作者: wujianjack2    时间: 2016-3-3 15:53
  写成约束,如@FOR(TENSOR(I, J, K): W(I, J) = K * T(I, J, K); @BIN(T(I, J, K)) ); 另外对T(I, J, K)有相应的约束。

作者: bill8341    时间: 2016-3-3 17:06
wujianjack2 发表于 2016-3-3 15:53
写成约束,如@FOR(TENSOR(I, J, K): W(I, J) = K * T(I, J, K); @BIN(T(I, J, K)) ); 另外对T(I, J, K)有 ...

是的,非常感谢!





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