请帮助我找出以下代码的错误之处。我已经看到有一个线程存在类似的问题,但是不幸的是,那里提供的解决方案无法解决我的问题。
码:
A_ub=[[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1]]
b_ub=[0, 0, 0, 0]
A_eq=[[0, -0.7092198581560284, 0.7092198581560284, 0, 0, 0, 0, 0, 0, 0, 0], [-1, -0.7092198581560284, -0.7092198581560284, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0.7092198581560284, 0, 1, 0, 1, 1, 0, 0, 0, 0], [0, 0.7092198581560284, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, -0.7092198581560284, 0, -1, -1, 0, 0, 1, 0, 0], [0, 0, 0.7092198581560284, 0, 0, 0, 0, 0, 0, 1, 0]]
b_eq=[0, 1, 0, 1, 0, 0, 0, 0]
c=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
res = linprog(c, A_ub, b_ub,A_eq, b_eq)
print res
我收到以下错误:
乐趣:2.0
消息:“优化失败。无法找到可行的起点
点。'
尼特:5
状态:2
成功:错误
x:南
最佳答案
您的解决方案空间为空,不存在可行点。例如,检查第二个相等约束:[-1, -0.7092198581560284, -0.7092198581560284, 0, 0, 0, 0, 0, 0, 0, 0]
乘以决策变量的向量应等于1。
默认情况下,决策变量假定为非负数,并且由于不存在该约束的正系数,因此很容易看到一个示例,说明该模型不可行的原因。
因此,如果所有x必须都大于或等于0,则-1 * x1 -0.7092198581560284 * x2 -0.7092198581560284 * x3 = 1没有可行的解决方案。
x的边界虽然不能解决您的问题。即使x是实数,解空间也是空的。我的猜测是,强烈限制求解空间的等式约束是矛盾的。根据您要建模的内容,您必须查看整个程序以确保问题出在哪里。