我的代码如下
import numpy as np
import cvxpy as cp
n = int(input())
adjacent = np.array([list(map(float, input().split(','))) for _ in range(n)])
number = np.array([list(map(float, input().split(',')))])
neighborhoods = cp.Variable((n, 1), 'neighborhoods', integer=True)
adjacent_neighborhoods = cp.Variable((1, n), 'adjacent_neighborhoods', integer=True)
proxy_points = cp.multiply(cp.multiply(adjacent, neighborhoods), adjacent_neighborhoods)
objective = cp.Maximize(cp.sum(cp.multiply(number, proxy_points)) + cp.sum(cp.multiply(number.T, proxy_points)))
constraints = [
0 <= neighborhoods,
neighborhoods <= 1,
0 <= adjacent_neighborhoods,
adjacent_neighborhoods <= 1,
cp.sum(neighborhoods) == 2,
cp.sum(adjacent_neighborhoods) >= 1,
cp.sum(adjacent_neighborhoods) <= 2,
cp.sum(proxy_points) == 2
]
problem = cp.Problem(objective, constraints)
problem.solve(solver='ECOS')
print(int(round(objective.value)))
我的报错日志如下
"D:\develop\Python\Python 3.13.2\python.exe" D:\develop\Python\PythonProject\PythonLearning.py
7
0,1,1,0,0,0,0
0,0,1,1,1,0,0
0,0,0,1,0,0,0
0,0,0,0,1,1,1
0,0,0,0,0,1,0
0,0,0,0,0,0,1
0,0,0,0,0,0,0
34, 29, 42, 21, 56, 18, 71
Traceback (most recent call last):
File "D:\develop\Python\PythonProject\PythonLearning.py", line 24, in <module>
problem.solve(solver='ECOS')
~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "D:\develop\Python\Python 3.13.2\Lib\site-packages\cvxpy\problems\problem.py", line 600, in solve
return solve_func(self, *args, **kwargs)
File "D:\develop\Python\Python 3.13.2\Lib\site-packages\cvxpy\problems\problem.py", line 1170, in _solve
data, solving_chain, inverse_data = self.get_problem_data(
~~~~~~~~~~~~~~~~~~~~~^
solver, gp, enforce_dpp, ignore_dpp, verbose, canon_backend, kwargs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "D:\develop\Python\Python 3.13.2\Lib\site-packages\cvxpy\problems\problem.py", line 743, in get_problem_data
solving_chain = self._construct_chain(
solver=solver, gp=gp,
...<2 lines>...
canon_backend=canon_backend,
solver_opts=solver_opts)
File "D:\develop\Python\Python 3.13.2\Lib\site-packages\cvxpy\problems\problem.py", line 992, in _construct_chain
candidate_solvers = self._find_candidate_solvers(solver=solver, gp=gp)
File "D:\develop\Python\Python 3.13.2\Lib\site-packages\cvxpy\problems\problem.py", line 908, in _find_candidate_solvers
raise error.SolverError(
...<3 lines>...
candidates['conic_solvers']))
cvxpy.error.SolverError: Problem is mixed-integer, but candidate QP/Conic solvers ([]) are not MIP-capable.
进程已结束,退出代码为 1
请你指出我的代码中的问题所在。