Les variables associées à un problème LP prob
LA PÂTE se trouve dans prob._variables
, qui est une liste, on pourrait penser que vous pouvez supprimer une var
variable en utilisant
prob._variables.remove(var)
Cependant, cela supprime simplement la première variable dans prob._variables, car pour une raison quelconque, Python ne fait pas de distinction entre les variables de problème au niveau de ==
. Par là, je veux dire que si var1
et var2
sont deux variables associées à prob
,
if var1 == var2:
print('Equal')
retourne toujours « l'égalité ». (N'essayez pas var1 == var2
, cela sera interprété comme une équation) . Cela signifie que si vous essayez de trouver l'index de var
utilisant
prob._variables.index(var)
la sortie sera toujours 0.
Quelqu'un qui comprend Python mieux que je ne vais devoir expliquer ce happpening, mais voici un travail autour :
for i, v in enumerate(prob._variables):
if v is var:
del prob._variables[i]
Cela ne supprimera pas la variable de toute contrainte impliquant, et il semble que va résoudre le lA PÂTE problème LP comme si la variable était toujours là. Donc, je pense que tout cela est de changer l'attribut prob._variables
. Je ne pense pas que cela soit utile dans votre situation (ce que je ne comprends pas vraiment), mais c'est nécessaire si vous voulez supprimer une variable, puis introduire une nouvelle variable avec le même nom que l'ancienne.
Je n'ai rien vu dans les documents, mais je ne suis pas un expert. Dans quel contexte avez-vous besoin de cette fonctionnalité? S'il n'y a pas de contraintes l'utilisant; eh ben ça n'a pas d'importance (garde-les juste). S'il y en a, il pourrait être plus facile de supprimer les contraintes. – sascha
Le problème est qu'il existe une contrainte contenant toutes les variables qui ne sont pas vraiment utiles. c'est une contrainte de somme. J'espérais les avoir créés pour les supprimer juste avant cette contrainte très importante. – drizo
Cette contrainte ne change donc pas la faisabilité/l'objectif? Gardez-le. Le solveur ne s'en souciera pas autant. Et pourquoi vous ne pouvez pas déduire cela * pas utile * avant d'ajouter ces vars ou cette contrainte? – sascha