Centre d'aide XLOPTIM®


Pour toute question relative à l'utilisation du logiciel XLOPTIM®, vous pouvez contacter le support client à l'adresse support@xloptim.com

1. A propos de la Recherche Opérationnelle

Nous vous invitons à prendre connaissance de notre introduction à la Recherche Opérationnelle, disponible sur ce site, afin de découvrir la discipline et prendre connaissance des termes techniques qui seront utilisés dans cette aide en ligne.

2. L'esprit de XLOPTIM®

XLOPTIM® est un logiciel dont l'interface s'appuie entièrement sur Microsoft Excel®, tant pour la récupération des données que pour la restitution des résultats. Les calculs sont en revanche totalement indépendants de Microsoft Excel et ont été développés en partenariat avec la société LocalSolver®.

Afin de vous garantir une qualité irréprochable des résultats proposés, le logiciel XLOPTIM® a fait l'objet de tests intensifs, et a été validé par des spécialistes des méthodes utilisées.

Dans un souci d'amélioration permanente des logiciels qu'elle propose, la société Addinsoft est à l'écoute des remarques et suggestions que vous voudriez lui transmettre. Pour contacter Addinsoft, vous pouvez écrire à support@xloptim.com.

3. Sélection de données

Un mode de sélection unique est à votre disposition:

  • Sélection par plage : vous sélectionnez avec la souris l'ensemble des cellules de la feuille Excel correspondant aux variables, aux contraintes ou à la fonction objectif, après avoir cliqué dans la zone correspondante de la boîte de dialogue. Remarques :

  • Les sélections multiples ne sont pas possibles.

  • Vous ne pouvez pas utiliser des variables dans plusieurs fichiers Excel. En revanche, vous pouvez utiliser des données dans plusieurs feuilles Excel.

  • Les fonctions Excel ne sont pas toutes utilisables avec des variables, seules celles indiquées ci-dessous le sont pour le moment. D'autres seront ajoutées dans les prochaines versions d'XLOPTIM® :

    • SOMME
    • SOMMEPROD
    • MIN
    • MAX
    • TRANSPOSE
    • PRODUITMAT
    • MOD
    • PUISSANCE
    • PI
    • RACINE
    • LOG
    • ABS
    • PLAFOND
    • SIN
    • COS
    • EXP
    • TAN
    • PLANCHER
    • OU
    • XOR
    • ET
    • NON

Messages

XLOPTIM® vous propose un système innovant et performant pour la gestion des messages d'information et des messages d'erreur. La boîte ci-dessous présente un exemple de message qui se produit dans le cas où un champ de sélection de données est vide (en l'occurrence les variables dépendantes), alors qu'une sélection est attendue.

msg.png

La zone en rouge (ou en bleu en fonction du contexte) vous indique quel champ de la boîte de dialogue est concerné.

Le message est en principe explicite et devrait vous aider à résoudre le problème rapidement. Si ce n'était toutefois pas le cas, en cliquant sur l'hyperlien https://www.xloptim.com vous pouvez vous connecter sur le site de XLOPTIM® et accéder au tutoriel le plus pertinent. Vous pouvez aussi transmettre le message à Addinsoft, soit en cliquant sur l'adresse [support@xloptim.com] qui apparaît parfois sous l'hyperlien, soit en copiant le message en faisant « Alt – Shift – Impr Ecran » puis en collant le message dans un email (en cliquant Ctrl C par exemple).

4. Saisir son modèle XLOPTIM®

Poser son problème

Etape #1 : Analyser la situation en trouvant les dimensions du problème : à savoir les indices temporels, de ressources, de localisation.

Étape #2 : Identifier les données du problème, c'est à dire l'ensemble des informations qui ne pourront pas changer au cours de l'optimisation et qui sont en paramètres du problème.

Étape #3 : Identifier et définir les variables de décision du problème.

Étape #4 : Poser les contraintes du problème.

Étape #5 : Écrire l'objectif du problème, c'est-à-dire, ce que l'on cherche à maximiser (ou à minimiser) dans le problème.

Fonction objectif

Pour chercher à optimiser sa fonction objectif, l'utilisateur devra au préalable entrer une formule dans une case. Dans la majorité des cas, les variables sont liées à la fonction objectif du problème. Cet objectif peut par exemple représenter un chiffre d'affaires à maximiser ou des sommes de coûts à minimiser.

Obj.png

Dans le cas où aucune variable n'est liée à la formule, le solveur s'occupera tout simplement de résoudre le système d'équations des contraintes. L'objectif deviendra alors de trouver une solution réalisable. Dans ce cas, l'utilisateur devra entrer une valeur numérique constante dans une cellule (par exemple "0") et choisir cette cellule dans la sélection.

Ajout de variables

Choisir les variables

L'utilisation du solveur nécessitera forcément des questions auxquelles la résolution va implicitement répondre. A savoir la valeur des variables. Une variable de décision représente une valeur du problème que l'on va pouvoir faire varier pour faire évoluer la valeur de la fonction objectif.

Les variables qui interviennent dans les problèmes peuvent être de différents types.

Pour donner un exemple dans un problème de sac à dos où l'on décide ou non de choisir un objet parmi d'autres, le type des variables pourra être modélisé par des variables binaires. Dans le cas d'un problème de production par lot où les quantités produites sont inconnues en avance, on utilise des variables entières.

Pour pouvoir faciliter la modélisation d'un problème, nous avons mis à disposition une interface innovante avec la possibilité d'attribuer à chaque groupe de variables une couleur afin de pouvoir mieux visualiser celles-ci dans la feuille.

XLOPTIM® est limité à 1000 variables de décision.

Boîtes de dialogue

Concernant l'ajout de variables, nous avons mis à disposition deux boîtes de dialogue dont une qui concerne l'ajout, la suppression ainsi que la modification de variables.

variables.png

La seconde concerne plus particulièrement les paramètres des variables.

variables-spe.png

Cette boîte de dialogue est composée de plusieurs cases correspondant aux différents paramètres utiles à l'ajout ou à la modification d'un groupe de variables, disponible tant pour la gestion des calculs que pour l'affichage des résultats.

Vous trouverez ci-dessous le descriptif des différents éléments de la boîte de dialogue :

  • Nom : Libellé attribué au groupe de variables sélectionnées ;

  • Cellule : Permet de sélectionner les variables sur la feuille Excel ;

  • Type : Les variables pourront être booléennes, entières ou réelles. Dans ce cas, le type devra être sélectionné parmi cette liste ;

  • Borne inf : Vous devez préciser la borne inférieure des variables en allant chercher directement la cellule contenant la borne inférieure ou en saisissant directement sa valeur ;

  • Borne sup : Vous devez préciser la borne supérieure des variables en allant chercher directement la cellule contenant la borne supérieure ou en saisissant directement sa valeur ;

  • Couleurs : Pour attribuer une couleur à une plage de variables, il suffit de cliquer sur le bouton, une boîte de dialogue apparaît alors avec une palette de couleurs. On peut ensuite choisir la couleur et les cellules de la feuille Excel concernée seront automatiquement mis à jour.

Ajout de contraintes

Choisir les contraintes

Chaque contrainte ajoutée rend le problème plus complexe, tout en réduisant l'espace de recherche des solutions. Deux méthodes d'ajout de contraintes sont possibles.

Boîtes de dialogue

Pour l'ajout de contraintes, deux boîtes de dialogue sont à votre disposition. La première permet l'ajout, la suppression ainsi que la modification de contraintes :

contraintes.png

La seconde concerne plus particulièrement les paramètres des contraintes.

contraintes-spe.png

  • Partie gauche : correspond aux attributs de la contrainte concernant les variables de décision principales ou redondantes, en référence directe ou via une cellule contenant une formule. Vous devrez obligatoirement sélectionner une ou plusieurs cellules contenant la partie gauche d'une ou plusieurs contraintes.

  • Opérateurs : le type de contrainte (égalité = ou inégalité <=, <, > ou >=)

  • Partie droite : vous pouvez entrer une valeur numérique ou sélectionner une ou plusieurs cellules contenant la partie droite d'une ou plusieurs contraintes.

Exemples

Contraintes disjonctifs

Soit X1 et X3 deux variables booléennes qui ne peuvent être utilisées ensemble. Dans le problème de Sac à dos, cela pourrait être similaire au fait que 2 objets ne peuvent être mis dans le même sac. Dans ce cas, plusieurs options de modélisation s'offrent à vous.

  • Contrainte linéaire classique :

$$x1+x3\leqslant1$$

Dans ce cas, vous devez au préalable entrer dans une case de la feuille de calcul la somme des deux variables et ajouter la contrainte par rapport à la constante 1.

  • Contrainte non linéaire :

$$XOR(x1=1;x3=1)=1$$

Dans ce deuxième exemple, vous devez au préalable entrer cette formule dans une case de la feuille de calcul qui exprime qu'une des expressions doit être vraie.

Contraintes de capacité

Dans certains problèmes, nous pouvons rencontrer des contraintes pouvant être directement liées à une capacité en taille ou en poids limité. Dans un exemple où Pi représente le poids de chaque élément i, Xi la variable booléenne indiquant le choix ou non de l'élément i et M la capacité, les contraintes peuvent être modélisées ainsi :

  • Contrainte linéaire classique :

$$\sum_{i=1}^npixi \leqslant M$$

Pour modéliser ce type de contraintes vous devrez au préalable utiliser la fonction SOMMEPROD(P; X) avec P le vecteur de poids et X le vecteur de variables.

Contraintes d'affectation

Affecter des tâches à des machines ou à des agents nécessite d'utiliser des contraintes dites d'affectation. En effet, dans certains cas l'agent ne pourra effectuer qu'une seule tâche à la fois et la tâche ne pourra être attribuée qu'à un seul agent.

Partons du principe qu'il y a autant d'agents que de tâches. Soit n le nombre de tâches et Xij, la variable booléenne qui vaut 1 si on a attribué la tâche i à l'agent j, et 0 sinon.

  • Contraintes linéaires classiques :

$$\sum_{j=1}^nx_{ij}=1$$ $$\sum_{i=1}^nx_{ij}=1$$

  • Contraintes non linéaires :

Une autre manière de procéder serait d'entrer pour chaque vecteur colonne la formule suivante $$XOR(x_{,J})=1$$ et pour chaque ligne $$XOR(x_{,I})=1$$. Toutes ces formules devront être égales à 1.

Options

Vous pourrez ainsi changer quelques paramètres du solveur allant dans l'onglet "Options" :

  • Temps : Correspond au temps limite de résolution en secondes.

  • Itérations : Correspond à la limite du nombre d'itérations engendrées par le solveur.

Lancer son optimisation

Maintenant que vous avez saisi l'ensemble des caractéristiques de votre modèle d'optimisation, vous allez pouvoir lancer votre résolution. N'oubliez pas que le nombre de variables de décision est limité à 1000, sans aucune limite sur le nombre de contraintes.

En appuyant sur le bouton LANCER, XLOPTIM® appelle LocalSolver® en lui transmettant l'ensemble des informations relatives à votre modèle (fonction objectif, contraintes, variables de décision, paramètres).

Après avoir trouvé une solution optimale à votre problème, LocalSolver® renvoie les solutions à l'interface qui met à jour les valeurs de vos variables de décision et donc indirectement la valeur de la fonction objectif liée à ces variables.

Comment fonctionne le solveur ?

Le solveur LocalSolver® est un nouveau type de solution d'optimisation mathématique.

LocalSolver® combine de nombreuses techniques d'optimisation différentes sans avoir besoin de réglage des paramètres: recherche locale et directe, propagation et inférence de contraintes, programmation linéaire et mixte, ainsi que techniques de programmation non linéaires.

Contrairement à d'autres logiciels d'optimisation mathématique, LocalSolver® n'est pas basé sur une seule technique d'optimisation. Il hybride dynamiquement différentes techniques d'optimisation pendant la résolution, grâce à une approche de recherche unique. LocalSolver® combine des techniques de recherche locale et directe, des techniques de propagation et d'inférence de contraintes, des techniques de programmation linéaire et mixte, ainsi que des techniques de programmation non linéaire, pour résoudre au mieux votre problème.

De plus, LocalSolver® intègre des techniques de recherche heuristique uniques pour l'optimisation combinatoire et continue. De cette façon, il est capable de s'attaquer à des modèles impliquant des millions de variables, qui sont hors de portée des solveurs classiques, en particulier des solveurs de programmation linéaire mixte en nombres entiers classiques (MIP), de programmation par contraintes (CP) ou de programmation non linéaire (NLP).