【发布时间】:2021-12-30 10:38:42
【问题描述】:
我想解决 phyton 中的混合整数非线性规划问题。我使用您在下面看到的代码。我遇到了这个错误:
错误:模型具有非凸目标:x_1_2 * distanceofclusters_1_2 + ...
我该如何解决这个问题?如我所见,我的模型使用二次规划。如果问题是由这个引起的,我该如何改变我的优化模型的方法?
from docplex.mp.model import Model
m = Model(name='opt')
cx = m.continuous_var_list(n+1,name="cx", lb=0)
cy = m.continuous_var_list(n+1,name="cy", lb=0)
x = m.binary_var_matrix(n+1,n+1, name="x")
y = m.binary_var_matrix(n+1,a+1, name="y")
dis = m.continuous_var_matrix(n+1,a+1, name="distanceofindividual", lb=0)
dist = m.continuous_var_matrix(n+1,n+1, name="distanceofclusters", lb=0)
#m.add_constraint(sum(x[i, j] for i in C for j in C if i!=j)>=5, ctname="const1")
m.set_objective("min", sum(x[i,j]*dist[i,j] for i in C for j in C if i!=j)+sum(y[i,aa]*dis[i,aa] for i in C for aa in V))
m.add_constraints(dis[i,aa]== m.abs(px[aa]-cx[i]) + m.abs(py[aa]-cy[i]) for i in C for aa in V)
m.add_constraints(dist[i,aa]== m.abs(cx[aa]-cx[i]) + m.abs(cy[aa]-cy[i]) for i in C for aa in C)
m.add_constraints(m.sum(x[i,j] for i in C if i!=j)==1 for j in C)
【问题讨论】:
标签: python cplex nonlinear-optimization docplex