J'ai un problème impliquant des variables continues et binaires. Une fois que j'ai fini de créer la fonction objectif, j'ajoute des contraintes qui empêchent CPLEX de trouver une solution. S'il vous plaît laissez-moi savoir ce que je fais mal.CPLEX refuse de trouver la solution étant donné la contrainte d'égalité
IloNumExpr cbin1 = cplex.prod(EB_s[a-1],binHandelSprzedaj[a-1]);
cplex.addEq(EB[a],cbin1);
"binHandelSprzedaj" est un tableau de variables binaires. "EB_s" et "EB" sont des tableaux de variables flottantes cplex continues.
Le code fonctionne si au lieu de "cbin1" je mets "EB_s [a-1]" ou "binHandelSprzedaj [a-1]". Je suppose que c'est parce que je me retrouve avec une contrainte quadratique. Cependant, un des exemples fournis par CPLEX "QCPex1" présente une solution avec des contraintes quadratiques "moins égales" et le code ressemble beaucoup à ce que j'ai écrit. Je ne comprends pas pourquoi mes codes ne fonctionnent pas. Est-ce parce que la contrainte est quadratique ou parce que c'est un mélange de variables binaires et continues ou que c'est un type de contrainte "égal".
Message d'erreur reçu: CPLEX Erreur 5002: Q objectif n'est pas semi-définie
positif Je suis un grand Noob à l'optimisation. Comment est-ce que je traite ce problème? Je préférerais que CPLEX fasse autant de maths que possible pour moi (peut-être une commande magique que vous pouvez suggérer).
La contrainte dans sa forme finale est plus compliquée, donc la relaxation de variable simple (comme présenté ici http://orinanobworld.blogspot.com/2010/10/binary-variables-and-quadratic-terms.html) ne fonctionnera pas. Contraindre dans le problème entièrement défini ressemblerait à quelque chose comme ceci:
a = b + c + d + f * binaire - (1-binaire) * g
où - g sont des variables continues.
Toute aide sera grandement appréciée.
Merci, jusqu'à maintenant fonctionne :) – t4u