Conseils et dépannage du solveur



Limitations des problèmes non linéaires

Les problèmes non linéaires sont beaucoup plus difficiles à résoudre que les problèmes linéaires, et il y a moins de garantie que le solveur (quelle que soit la méthode employée) fournisse un résultat correct. La méthode utilisée est celle du GRG chaque fois que la case Modèle supposé linéaire n'est pas cochée dans le menu option. (Sinon, c'est la mèthode du Simplex qui est utilisée.)

Attention au fait que lorsque la case Modèle supposé linéaire n'est pas cochée, le solveur utilise par défaut la mèthode GRG, même si le modèle était en fait linéaire. Le GRG arrive en général à résoudre les problèmes linéaires, mais plus lentement et de façon moins fiable que le Simplex, surtout si le problème est mal dimensionné.

Un conseil que l'on peut généralement donner est de lancer la résolution plusieurs fois avec des valeurs initiales différentes pour les variables de décision. La méthode suit en effet un chemin (défini par la courbure et la pente de la fonction à optimiser) à partir du point initial vers le sommet ou la vallée la plus proche du point de départ. A cause de la présence éventuelle de points "col" ou de points "selle", vous augmentez vos chances de trouver un optimum global en choisissant plusieurs jeux de valeurs initiales.

Problèmes avec des fonctions discontinues

Une fonction non continue ne répond pas aux conditions requises par le solveur linéaire, ou même par le solveur non linéaire. Un solveur non linéaire repose sur les dérivées partielles pour atteindre la solution optimale, et comme il ne lui est pas possible de calculer la dérivée d'une fonction discontinue, il est impossible de garantir que la solution trouvée soit vraiment optimale. En pratique, le solveur GRG d'Excel pourra parfois se débrouiller avec des fonctions discontinues, mais de façon générale, le solveur ne peut pas manipuler des modèles dans lesquels la fonction à optimiser ou certaines contraintes sont discontinues.

Si vous essayez de résoudre un problème comprenant des fonctions discontinues en ayant coché la case Modèle supposé linéaire, il est possible, quoiqu'improbable que le test de linéarité ne détecte pas la discontinuité et essaye quand même de résoudre le problème. (Cela signifie surement que votre fonction était linéaire à l'échelle du problème, mais il n'y a aucune garantie que la solution obtenue soit effectivement optimale.)

Vous pouvez utiliser des fonctions discontinues comme IF et INDEX lors de calculs indépendants des variables de décisions et qui sont donc des constantes du problème. Mais toute fonction discontinue posera vraisemblablement des problèmes au solveur. Certains utilisateurs oublient que des fonctions comme ABS et ROUND ne sont pas dérivables en certains points.

Problème de dimensionnement

Un problème est mal dimensionné quand les valeurs typiques des variables à optimiser et celles des contraintes sont très différentes. Un exemple classique est fourni par les modèles financiers dans lesquels les variables sont en millions de dollars, et certains taux en pourcent. Les modèles mal dimensionnés posent souvent des difficultés aux algorithmes, à la fois pour les modèles linéaires et non linéaires, et souvent davantage avec l'algorithme GRG.

Le solveur devra effectuer de nombreuses opérations à partir de valeurs des variables et les contraintes devront être multipliées et soustraites entre elles. De part la précision finie des calculs en machine, lorsque ces calculs se font avec des valeurs de dimension très différentes, les erreurs d'arrondis finissent par avoir raison du solveur, et la fiabilité des résulats obtenus devient très faible.

Quand la case Echelle automatique est cochée dans le menu Option du solveur, le solveur va essayer de ramener les variables à optimiser et les contraintes à des échelles comparables afin de limiter les effets du mauvais dimensionnement. Dans le solveur d'Excel, cette option est toujours active lors de la résolution de problèmes non linéaires avec l'algorithme GRG.

Parce que le solveur d'Excel ne ré-échelonne pas automatiquement les variables et les contraintes, un modèle linéaire mais mal dimensionné pourra introduire suffisamment d'erreurs d'arrondis pour rendre le modèle insoluble, provoquant le message d'erreur "Les conditions pour un modèle linéaire ne sont pas satisfaites". La solution est alors de ré-échelonner le problème de façon à réduire la différence de valeur entre les variables et les contraintes, ou entre les valeurs à de la fonction à optimiser et les variables. Pour obtenir une première approximation, vous pouvez aussi relâcher la valeur de la précision, comme indiqué dans Précision et tolérance.

La commande "solveur"

La commande Solveur ne fait pas parti du menu Outils :

Dans le menu Outils , choisissez la commande Macro complémentaire et cochez ensuite la case Solveur.

Puis cliquez alors sur OK.


La case Solveur ne fait pas parti du menu Macro complémentaire:

Cliquez sur Parcourir et allez dans le répertoire /Macrolib puis /Solveur.
Ouvrez le fichier Solver.xla.


Le sous-répertoire Solveur ne fait pas parti du répertoire Macrolib :


Les messages de fin d'exécution du solveur