永发信息网

LINGO 与0-1规划

答案:2  悬赏:60  手机版
解决时间 2021-02-07 09:05
  • 提问者网友:温柔港
  • 2021-02-06 13:46
model:
Min=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19+x20+x21+x22+x23+x24+x25+x26+x27+x28+x29+x30+x31+x32+x33+x34+x35+x36+x37+x38+x39+x40+x41+x42+x43+x44+x45+x46+x47+x48+x49+x50;

48*x1+48*x2+48*x3+48*x4+48*x5+48*x6+48*x7+48*x8+48*x9+48*x10+48*x11+48*x12+48*x13+48*x14+48*x15+48*x16+48*x17+48*x18+49*x19+50*x20+50*x21+55*x22+55*x23+60*x24+60*x25+63*x26+65*x27+65*x28+65*x29+65*x30+71*x31+72*x32+72*x33+72*x34+72*x35+72*x36+78*x37+78*x38+80*x39+93*x40+93*x41+97*x42+97*x43+99*x44+99*x45+100*x46+104*x47+104*x48+107*x49+216*x50>=3021;
@bin(x1);@bin(x2);@bin(x3);@bin(x4);@bin(x5);@bin(x6);@bin(x7);@bin(x8);@bin(x9);@bin(x10);
@bin(x11);@bin(x12);@bin(x13);@bin(x14);@bin(x15);@bin(x16);@bin(x17);@bin(x18);@bin(x19);@bin(x20);
@bin(x21);@bin(x22);@bin(x23);@bin(x24);@bin(x25);@bin(x26);@bin(x27);@bin(x28);@bin(x29);@bin(x30);
@bin(x31);@bin(x32);@bin(x33);@bin(x34);@bin(x35);@bin(x36);@bin(x37);@bin(x38);@bin(x39);@bin(x40);
@bin(x41);@bin(x42);@bin(x43);@bin(x44);@bin(x45);@bin(x46);@bin(x47);@bin(x48);@bin(x49);@bin(x50);
end
错误代码是1017
请帮忙看看
很急

Min
x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19+x20+x21+x22+x23+x24+x25+x26+x27+x28+x29+x30+x31+x32+x33+x34+x35+x36+x37+x38+x39+x40+x41+x42+x43+x44+x45+x46+x47+x48+x49+x50
Subject to
48x1+48x2+48x3+48x4+48x5+48x6+48x7+48x8+48x9+48x10+48x11+48x12+48x13+48x14+48x15+48x16+48x17+48x18+49x19+50x20+50x21+55x22+55x23+60x24+60x25+63x26+65x27+65x28+65x29+65x30+71x31+72x32+72x33+72x34+72x35+72x36+78x37+78x38+80x39+93x40+93x41+97x42+97x43+99x44+99x45+100x46+104x47+104x48+107x49+216x50>=3021
end
int 50
我把 LINDO中的程序改写成上述的可以吗?
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-06 15:13
没有问题 估计是你的版本不行 自己找破解版安装
全部回答
  • 1楼网友:迟山
  • 2021-02-06 16:07

可用0-1整数规划,由于80个数据太多,我只举个10个数据的例子,求b,c两个数:

令xa(i)=1表示a中第i个数是b的因子,同理,用xb(i)=1表示a中第i个数是c的因子;

程序如下:

  model:    sets:     da/1..10/:a,xa,xb;    endsets    data:     a=1 5 7 8 9 10 13 18 85 93;     b=6;     c=178;    enddata    b=@sum(da(i):xa(i)*a(i));    c=@sum(da(i):xb(i)*a(i));    @for(da(i):@bin(xa(i)););    @for(da(i):@bin(xb(i));); end

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯