请帮我查一下以下代码的错误。我已经看到有一个类似问题的线程,但不幸的是,那里提供的解决方案并没有解决我的问题。
代码:
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
消息:'优化失败。无法找到可行的起点 点“。
nit:5
状态:2
成功:错误
x:nan
答案 0 :(得分:1)
您的解决方案空间为空,不存在可行点。例如,检查第二个相等约束:
[-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是真实的,解空间也是空的。我的猜测是,强烈限制解空间的等式约束是矛盾的。根据您要模拟的内容,您必须查看整个程序,以确定问题所在。