J'essaie de résoudre un problème MILP avec PuLP et CBC. À l'exception du reste du problème, je suis confronté à un problème avec un ensemble de variables entières positives. J'ai une contrainte avec relaxation, ce qui signifie que certaines des variables dans les variables entières positives ne sont pas fixées à une certaine valeur en raison des contraintes. Donc, en reformulant, à partir d'un ensemble de contraintes entières positives, certaines ont des valeurs dues à une contrainte, mais quand cette même contrainte est relâchée (grand M relaxation), le reste des variables n'a pas à obtenir une certaine valeur. valeur.COIN-OR: Quelles valeurs une variable entière positive bornée prend-elle dans un processus d'optimisation résolu par CBC?
CBC doit leur donner des valeurs. La plupart d'entre eux vont à 0 mais certains d'entre eux obtiennent la valeur de la limite supérieure de la variable qui est 1440. Pourquoi est-ce? Est-ce que CBC donne ces valeurs à ces variables? Y a-t-il une règle que le sovler suit? Si vous ne comprenez pas quelque chose, faites-le moi savoir si je peux ajouter des informations ou reformuler, je suis nouveau à ce sujet. Je vous remercie.
Merci pour la réponse. Croyez-vous que la fixation de la variable à une certaine valeur (par exemple 0) est une bonne pratique? Est-ce que ça gaspille trop de puissance de calcul pour rien? Ou juste laisser le programme de sortie savoir que si la valeur est l'une des deux limites, il devrait ignorer? – dimrizo
Habituellement, toute information que vous pouvez donner au solveur au sujet de la solution (s) que vous attendez ou cherchez va aider. J'ai souvent mis des variables à une valeur connue - ceci est particulièrement utile pour déboguer le modèle avec une solution connue – TimChippingtonDerrick