请帮助我找出以下代码的错误之处。我已经看到有一个线程存在类似的问题,但是不幸的是,那里提供的解决方案无法解决我的问题。

码:

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是实数,解空间也是空的。我的猜测是,强烈限制求解空间的等式约束是矛盾的。根据您要建模的内容,您必须查看整个程序以确保问题出在哪里。

10-02 21:58