Optimization 在lpsolve中声明二进制变量的正确方法是什么?

Optimization 在lpsolve中声明二进制变量的正确方法是什么?,optimization,lpsolve,Optimization,Lpsolve,在运行ilp时遇到问题。求助于下面的小代码进行测试。它们都不起作用 min: x1 + 10 x2 + 100 x3 + 1000 x4; x1 + x2 + x3 + x4 + x5 >= 3; /* Variable bounds */ //bin x1 x2 x3 x4 x5; // parse error //bin : x1 x2 x3 x4 x5; // parse error //bin x1,x2,x3,x4,x5 // parse error //int x1,x2

在运行ilp时遇到问题。求助于下面的小代码进行测试。它们都不起作用

min: x1 + 10 x2 + 100 x3 + 1000 x4;
x1 + x2 + x3 + x4 + x5 >= 3;
/* Variable bounds */
//bin x1 x2 x3 x4 x5; // parse error
//bin : x1 x2 x3 x4 x5; // parse error
//bin x1,x2,x3,x4,x5    // parse error
//int x1,x2,x3,x4,x5;  // runs but not as binary var!!
//bin: x1,x2,x3,x4,x5; // parse error
//bin x1,x2,x3,x4,x5; // parse error
/*bin
x1,x2,x3,x4,x5; parse error
*/
/*
binary
x1, x2, x3, x4, x5   // parse error
*/
/*
binary
x1, x2, x3, x4, x5; // parse error
*/

这在lpsolve IDE 5.5中失败。

找到了我自己的解决方案,但我突然想到,我可能不是唯一遇到此问题的人,因此我将自己回答

我已经“重新安装”了LPIDE。原来使用的是一个旧的(2005年)lpsolve55.dll。显然,从那时起,bin vars的处理方式发生了变化。新dll的日期为2016年,bin VAR以以下形式接受:

bin x99_7;
bin  c0,c1,c2,c3,c4,c5,c6,c7;

对于那些可能遇到同样问题的人。IDE依赖于lpsolve55.dll。我发现我上次安装时使用的是'2005'的dll。过时了。2016年的更新版本有效。它使用以下格式声明bin变量:bin c0、c1、c2、c3、c4、c5、c6、c7;