cvxpy: код, который работает для решателя по умолчанию, не работает для cp.GLPK_MI - PullRequest
0 голосов
/ 20 января 2020

Следующий код работает:

import numpy as np
import cvxpy as cp
ci = np.array([10,7,6,3])
x = cp.Variable(len(ci),boolean=True)
objective = cp.Minimize(cp.sum_squares(ci@(2*x-1)))
problm = cp.Problem(objective)
_ = problm.solve()

Однако, если я передам больший массив ci, он не будет работать. По рекомендации здесь я хочу попробовать GLPK. Итак, я изменяю последнюю строку:

_ = problm.solve(solver=cp.GLPK_MI)

Это приводит к следующей ошибке:

SolverError: Either candidate conic solvers (['GLPK_MI']) do not support the cones output by the problem (SOC), or there are not enough constraints in the problem.

Способ, которым я задаю ограничения, работает для решателя по умолчанию, но не для GLMK_MI

...