I would like to solve a mix-integer nonlinear programming problem in phyton. I use the codes you see in below. I'm taking this error:
Error: Model has non-convex objective: x_1_2 * distanceofclusters_1_2 + ...
How can I fix this? My model is using quadratic programming as I see. If the problem is caused by this, how can I changed my optimization model's method?
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)