Originally posted by: NellyMonserrat
Hi everybody!!!
Could someone please help me how to solve the next problem? I need to declare a quadratic constrain (constraint 7 in file 'pricing.pdf'), I found the example 'named ejemplo.py' ( I attached the file) and I try to make my constraint like that example.
I declared the variables and the constraint in this way:
*************
...
for j in xrange(1, Centros+1):
Dj.append([])
listaux.append([])
for k in xrange(1, Clientes+1):
Pr.variables.add(obj = [1], lb = [0], ub =[1], names= ["Y_"+str(j)+"_"+str(k)])
Dj[-1].append(-Bp * Retailers[k-1].demanda * CDs[j-1].ctot[k-1] )
listaux[-1].append(-Retailers[k-1].varianza)
for j in xrange(1,Centros+1):
listaux3 = []
for k in xrange(1,Clientes):
listaux3.append("Y_"+str(j)+"_"+str(k))
for i in xrange(1,Plantas+1):
#V_i_j
nombre = "V_"+str(i)+"_"+str(j)
Pr.variables.add(obj = [0], lb = [0], ub =[w0], names= [nombre])
for k in xrange(1,Clientes):
listaux2.append(listaux[j-1][k-1]* Plants[i-1].l[j-1])
quad = cplex.SparseTriple([nombre],[nombre],val=[1.0])
qlin = cplex.SparsePair([listaux3],[listaux2])
Pr.quadratic_constraints.add(lin_expr = qlin,quad_expr = quad,sense = ["L"],rhs=[0])
****
But I get this error, and I don't understand the problem
Pr.quadratic_constraints.add(lin_expr = qlin,quad_expr = quad,sense = ["L"],rhs=[0])
File "/usr/local/lib/python2.7/dist-packages/cplex/_internal/_subinterfaces.py", line 2400, in add
map(self._cplex.variables._conv, ind1), map(self._cplex.variables._conv, ind2), qval, name, self._env.parameters.read.apiencoding.get())
File "/usr/local/lib/python2.7/dist-packages/cplex/_internal/_procedural.py", line 1124, in addqconstr
LAU.int_list_to_array(linind), LAU.double_list_to_array(linval),
File "/usr/local/lib/python2.7/dist-packages/cplex/_internal/_list_array_utils.py", line 24, in int_list_to_array
output[i] = input[i]
File "/usr/local/lib/python2.7/dist-packages/cplex/_internal/_pycplex.py", line 1604, in __setitem__
def __setitem__(self, *args): return _pycplex_platform.intArray___setitem__(self, *args)
TypeError: in method 'intArray___setitem__', argument 3 of type 'int'
****
Thanks in advantage!!!
#CPLEXOptimizers#DecisionOptimization