制定线性整数规划约束

时间:2016-07-27 11:13:20

标签: python matlab mathematical-optimization linear-programming

我试图为强制解决方案的优化问题制定约束(产品的组合,由二进制数表示,表示是否被选中)以便按顺序拥有某个属性。

因此,假设选择了产品1,2和5,该解决方案由[1,1,0,0,1]表示。这些产品具有必须按顺序排列的另一个属性(位置)。用于检查的Python函数是:

var core_1 = require('@angular/core');

core_1.Component({})

(这是有效的,因为他们永远不会在同一个地方)

然而,它变得更难。最大位置是99,环绕:所以[98,99,0]也是一个有效的解决方案。

总会选择三种产品。

感谢您提供的任何帮助,我一直在努力解决这个问题。现在我列举所有可能的配置,导致100个约束(这使得事情变得缓慢)。

JR

2 个答案:

答案 0 :(得分:1)

我最终用元解决方案解决了这个问题,我的一个朋友提出了这个问题。

由于选择位置X的产品推断其他允许的选择(即X + 1和X + 2),因此优化产品组而不是单个产品是有意义的。我已经建立了它并且它的工作非常好。

感谢您的回复!

答案 1 :(得分:0)

您正在寻找的条件是

return abs( mod( max(locations) - min(locations) +50,100)-50) <=2

或以一般形式:

abs(mod( distance + range/2,range)-range/2)

这给出了圆形空间中的最小距离。它通常用于计算圆中2个给定点的角距离,其中范围为2*pi,距离为angle2-angle1