La contrainte de nombres entiers ne semblent pas avoir été prise en compte (Solveur)

La contrainte de nombres entiers ne semblent pas avoir été prise en compte (Solveur)

Si vous utilisez le Solveur et que vous insérez une contrainte de nombres entiers, il arrive parfois qu’elle ne soit pas prise en compte. Généralement, cela arrive dans 2 scénarios.

Option 1 - Vérifiez les paramètres

L’explication la plus probable est que le Solveur ignore la contrainte de nombres entiers. Pour vérifier cela, ouvrez le Solveur, puis cliquer sur Options > Vérifiez que la case Ignorer la contrainte de nombres entiers est décochée. Comme sa description l’indique, si cette case est cochée, le Solveur ignorera la contrainte de nombres entiers.

Solveur - Nombres entiers.png

Option 2 - Vérifiez les messages d’erreurs

Si l’option 1 ne fonctionne pas, il est probable que le problème vienne de votre modélisation. Dans ce cas, il y a de fortes chances qu’après avoir cliqué sur le bouton résoudre, le Solveur vous affiche un message du type « Le Solveur a rencontré une valeur d’erreur dans la cellule objectif ou dans une contrainte. ». Vérifiez tous vos calculs et toutes vos contraintes, et assurez-vous qu’aucune de vos contraintes ne mène à des résultats contradictoires. Exemple : Si vous avez une contrainte qui impose x ≥ 5 et une autre imposant x ≤ 4, il n’existe aucune valeur de x qui permettra de satisfaire les deux contraintes en même temps.

Assurez-vous aussi de n’avoir aucun calcul menant à une erreur dans Excel. Par exemple, si vous avez une contrainte du type 1/x ≥ 2 et que votre variable x prend la valeur 0, votre cellule Excel affichera un message de type #N/A. Dans ce cas, vous pouvez essayer une des deux options suivantes

  • Ajoutez une contrainte du type x ≥ 1 pour éviter que le Solveur ne tombe sur une valeur causant un message d’erreur.

  • Si le Solveur ne réussi toujours pas, essayez de reformuler votre contrainte. Par exemple, 1/x ≥ 2 est équivalent à x ≤ 1/2. Avec cette nouvelle contrainte, aucune valeur de x ne devrait poser de problème.