私は cvxpy 0.4.9 と Python 2.7.14 を使用しておりunbounded
、以下の例から驚くべきステータスを得ています。
わずかな違い (最後の制約を削除するなど) は、infeasible
ステータスを正しく報告します。
これは、Windows 環境と Linux 環境の両方で発生します。なんで?
import cvxpy
import numpy
def main():
yld = numpy.array([[12.],[11.],[17.],[13.],[7.]])
wts = cvxpy.Variable(5)
obj = cvxpy.Maximize(yld.T * wts)
cons = []
cons.append(0.0 <= wts)
cons.append(numpy.ones(5).T * wts == 1.0)
cons.append(wts <= 2.5 * numpy.ones(5))
cons.append(wts <= 0.25)
cons.append(numpy.array([[0.],[0.],[1.],[1.],[1.]]).T * wts <= 0.0)
cons.append(numpy.array([[1.],[0.],[0.],[0.],[0.]]).T * wts <= 0.1 )
cons.append(numpy.array([[0.],[1.],[0.],[0.],[0.]]).T * wts <= 0.1 )
cons.append(numpy.array([[0.],[0.],[1.],[0.],[0.]]).T * wts <= 0.1 )
cons.append(numpy.array([[0.],[0.],[0.],[1.],[0.]]).T * wts <= 0.1 )
prob = cvxpy.Problem(obj, cons)
prob.solve()
print(prob.status)