2
我有一个线性规划问题。所有的变量都是二进制的,我想获得所有可能的解决方案。我知道我可以设置参数num.bin.solns来提供多种解决方案。但是有没有简单的方法来寻求所有可能的解决方案?R lpsolve二进制查找所有可能的解决方案
例如在下面的情况下,我知道答案的最大数量是6.但如果我不知道最大可能的解决方案,那么我怎样才能设置num.bin.solns参数,使它将返回所有可能的解决方案?
library("lpSolve")
A=matrix (c(1,1,1,1), nrow=1, byrow=TRUE)
b=(2)
signs='=='
c_=rep(0,4)
res = lpSolve::lp('max', c_, A, signs, b, all.bin = TRUE, num.bin.solns=6)
感谢,让我试试吧。 QQ:任何想法什么mylp $解决方案有超过我们预期的1个元素?即如果我们把num.bin.solns = 1000,那么解向量的长度是4001 ...它应该是4000 ...第4001个元素表示什么? – user2543622 2015-02-25 01:00:55
好问题。我试图寻找它,但不知道-1从哪里来。文档没有帮助我。因此,你看我做头()来切断它。 – 2015-02-25 01:06:27
我试过你的答案,这很有道理。唯一的问题是,如果问题很严重,那么它会减慢处理速度,有时会返回错误。而不是指定num.bin.solns = 1000,有没有办法说,返回所有可能的解决方案? – user2543622 2015-02-25 01:15:37