Manuel du propriétaire | PALISADE EVOLVER 5.5 Manuel utilisateur
Ajouter à Mes manuels227 Des pages
▼
Scroll to page 2
of
227
Guide d’utilisation Evolver Solveur par algorithmes génétiques pour Microsoft Excel Version 5.5 janvier, 2010 Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 États-Unis +1-607-277-8000 +1-607-277-8001 (fax) http://www.palisade.com (site Web) sales@palisade.com (courriel) Avis de copyright Copyright © 2010, Palisade Corporation. Marques déposées Microsoft, Excel et Windows sont des marques déposées de Microsoft Corporation. IBM est une marque déposée d’International Business Machines, Inc. Palisade, Evolver, TopRank, BestFit et RISKview sont des marques déposées de Palisade Corporation. RISK est une marque commerciale de Parker Brothers, une division de Tonka Corporation, exploitée sous licence. Table des matières Chapitre 1 : Introduction 1 Introduction .........................................................................................3 Installation ...........................................................................................7 Chapitre 2 : Principes 11 Qu’est-ce qu’Evolver ?.....................................................................13 Chapitre 3 : Evolver : Pas à pas 21 Introduction .......................................................................................23 Visite guidée......................................................................................25 Chapitre 4 : Applications types 43 Introduction .......................................................................................45 Sélection publicitaire........................................................................47 Ordre alphabétique...........................................................................49 Affectation de tâches .......................................................................53 Boulangerie .......................................................................................55 Allocation budgétaire .......................................................................57 Équilibre chimique............................................................................59 Planificateur de classes ...................................................................61 Segmenteur de code ........................................................................65 Dakota : Itinéraires sous contraintes .............................................69 Ordonnancement multigamme........................................................73 Emplacement de pylônes radio.......................................................75 Équilibrage de portefeuilles.............................................................77 Composition de portefeuille ............................................................81 Table des matières i Émetteurs radio ................................................................................ 83 Achat ................................................................................................. 85 Problème du voyageur de commerce ............................................ 87 Navigateur spatial ............................................................................ 89 Opérateur en bourse ........................................................................ 91 Transformateur................................................................................. 93 Transports......................................................................................... 95 Chapitre 5 : Guide de référence Evolver 97 Commande Définition du modèle ................................................... 99 Commande Paramètres d'optimisation ....................................... 123 Commande Démarrer l'optimisation ............................................ 129 Commandes Utilitaires .................................................................. 131 Suivi Evolver................................................................................... 135 Chapitre 6 : Optimisation 147 Méthodes d’optimisation ................................................................. 149 Solveur Excel.................................................................................. 155 Types de problèmes....................................................................... 159 Chapitre 7 : Algorithmes génétiques 165 Introduction .................................................................................... 167 Histoire ............................................................................................ 167 Exemple biologique ....................................................................... 171 Exemple numérique ....................................................................... 173 Chapitre 8 : Et aussi… 177 Ajout de contraintes....................................................................... 179 Accélération du processus ........................................................... 189 Mode d’exécution de l’optimisation Evolver ............................... 191 ii Annexe A : Automatisation d’Evolver 195 Annexe B : Dépannage / Questions-Réponses 197 Dépannage / Questions-Réponses ...............................................197 Table des matières Annexe C : Ressources complémentaires 201 Glossaire 207 Indice 217 iii iv Chapitre 1 : Introduction Introduction .........................................................................................3 Avant de commencer ...............................................................................3 Éléments du progiciel..............................................................................3 À propos de cette version........................................................................3 Votre contexte d’exploitation.................................................................4 Si vous avez besoin d’aide......................................................................4 Avant d’appeler...........................................................................4 Contacter Palisade ......................................................................5 Versions étudiants......................................................................6 Configuration requise .............................................................................6 Installation ...........................................................................................7 Généralités ................................................................................................7 Désinstallation d’Evolver..........................................................7 DecisionTools Suite.................................................................................8 Configuration des icônes ou raccourcis d'Evolver .............................8 Messages d’avertissement de sécurité des macros au démarrage ...9 Renseignements complémentaires .......................................................9 Fichier Lisezmoi d'Evolver......................................................10 Didacticiel d’Evolver................................................................10 Apprendre Evolver.................................................................................10 Chapitre 1 : Introduction 1 2 Introduction Evolver représente l’optimiseur par algorithmes génétiques commercial le plus rapide et le plus poussé jamais encore proposé sur le marché. À travers les puissantes techniques d’optimisation par algorithmes génétiques, Evolver identifie les solutions optimales aux problèmes impossibles à résoudre pour les optimiseurs linéaires et non linéaires. Evolver est disponible en deux versions – Professional et Industrial - suivant la capacité d’optimisation recherchée. Ce Guide de l’utilisateur Evolver présente une introduction au programme et aux principes qui le sous-tendent. Vous y trouverez aussi plusieurs exemples d’application de la technologie des algorithmes génétiques unique d’Evolver. Ce manuel peut aussi servir de guide de référence complet et pleinement indexé, avec description et illustration de chaque fonctionnalité d’Evolver. Avant de commencer Avant d’installer et de démarrer Evolver, vérifiez que votre progiciel contient bien tous les éléments nécessaires et que votre ordinateur satisfait aux exigences de configuration minimales requises. Éléments du progiciel Evolver peut être acheté en autonome ou dans le cadre des versions DecisionTools Suite Professional et Industrial. Le CD-ROM Evolver contient le complément Excel Evolver, plusieurs exemples d’application d’Evolver et un système d’aide Evolver en ligne indexé. Les versions DecisionTools Suite Professional et Industrial contiennent, en plus des éléments ci-dessus, une série d’autres applications. À propos de cette version Cette version d’Evolver peut être installée en tant que programme 32 bits pour Microsoft Excel 2000 ou version ultérieure. Chapitre 1 : Introduction 3 Votre contexte d’exploitation Les descriptions contenues dans ce guide présupposent une connaissance générale du système d’exploitation Windows et du tableur Excel, notamment : ♦ familiarité avec l’ordinateur et la souris ♦ compréhension des termes icônes, cliquer, double-clic, menu, fenêtre, commande, objet, etc. ♦ notions élémentaires de structure de répertoires et désignation des fichiers Si vous avez besoin d’aide Un service d’assistance technique est proposé gratuitement à tous les utilisateurs enregistrés d’Evolver dotés d’un plan de maintenance à jour, ou sur forfait à l’incident. Pour assurer que vous êtes bien un utilisateur enregistré d’Evolver, enregistrez-vous en ligne sur http://www.palisade.com/support/register.asp. Si vous nous contactez par téléphone, soyez prêt à nous communiquer le numéro de série de vos outils et gardez votre guide d’utilisation à portée de main. Nous pourrons vous être d’une meilleure assistance si vous vous trouvez face à votre ordinateur, prêt à exécuter les commandes du programme. Avant d’appeler 4 Avant d’appeler le service d’assistance technique, passez en revue la liste de contrôle suivante : • Avez-vous consulté l’aide en ligne ? • Avez-vous consulté ce manuel et passé en revue le didacticiel multimédia en ligne ? • Avez-vous consulté le fichier LISEZMOI.WRI ? Il contient des informations sur Evolver non disponibles lors de l’impression du manuel. • Pouvez-vous reproduire le problème de manière cohérente ? Pouvez-vous reproduire le problème sur un autre ordinateur ou avec un autre modèle ? • Avez-vous consulté notre site Web, à l’adresse http://www.palisade.com ? Vous y trouverez notre dernier fichier FAQ (base de données consultable de questions et réponses techniques) et les correctifs Evolver dans la section de support technique. Il est utile de consulter régulièrement notre site pour obtenir les dernières informations publiées sur Evolver et sur les autres logiciels Palisade. Introduction Contacter Palisade Vos questions, commentaires ou suggestions relatifs à Evolver sont les bienvenus ! Vous pouvez prendre contact avec notre personnel d’assistance technique par l’une des méthodes suivantes : • Courriel : support@palisade.com • Téléphone : +1-607-277-8000, du lundi au vendredi, de 9 à 17 heures, heure de l’Est des États-Unis. Suivez les instructions données pour joindre l’Assistance technique (Technical Support). • Fax : +1-607-277-8001 • Adresse postale : Technical Support Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 USA Palisade Europe : • Courriel : support@palisade-europe.com • Téléphone : +44 1895 425050 (Royaume-Uni) • Fax : +44 1895 425051 (Royaume-Uni) • Adresse postale : Palisade Europe 31 The Green West Drayton Middlesex UB7 7PN Royaume-Uni Palisade Asie-Pacifique : • Courriel : support@palisade.com.au • Téléphone : +61 2 9929 9799 (Australie) • Fax : +61 2 9954 3882 (Australie) • Adresse postale : Palisade Asia-Pacific Pty Limited Suite 101, Level 1 8 Cliff Street Milsons Point NSW 2061 Australie Chapitre 1 : Introduction 5 Quelle que soit la méthode choisie, veillez à indiquer le nom de votre produit, sa version et son numéro de série. La version exacte de votre produit est indiquée sous la commande Aide, À propos de… du menu Evolver proposé dans Excel. Versions étudiants L’assistance téléphonique n’est pas disponible pour la version étudiants d’Evolver. Si vous avez besoin d’aide, procédez de l’une des manières suivantes : ♦ Consultez votre professeur ou assistant. ♦ Consultez le fichier FAQ sur http://www.palisade.com. ♦ Adressez-vous au service d’assistance technique par courriel ou par fax. Configuration requise Evolver – Configuration requise 6 • PC Pentium ou mieux avec disque dur. • Microsoft Windows 2000 SP4 ou mieux. • Microsoft Excel, version 2000 ou ultérieure. Introduction Installation Evolver, complément de Microsoft Excel, enrichit la fonctionnalité du tableur moyennant l’ajout de commandes à ses barres de menus. Généralités Le programme d’installation copie les fichiers système Evolver dans un répertoire spécifié du disque dur. Sous Windows 2000 ou version ultérieure : 1) Insérez le CD-ROM Evolver ou de la version DecisionTools Suite Professional ou Industrial dans le lecteur CD-ROM. 2) Cliquez sur le bouton Démarrer, puis sur Paramètres et enfin sur Panneau de configuration. 3) Cliquez deux fois sur l’icône Ajout/Suppression de programmes. 4) Cliquez sur le bouton Installer de l’onglet Installation/désinstallation. 5) Suivez les instructions d’installation affichées à l’écran. En cas de problème, vérifiez que vous disposez d’un espace suffisant sur le disque prévu pour l’installation. Après avoir libéré l’espace disque requis, essayez de réexécuter l’installation. Désinstallation d’Evolver Pour désinstaller Evolver (ou DecisionTools Suite), utilisez l’utilitaire Ajout/Suppression de programmes du Panneau de configuration et sélectionnez l’entrée correspondant à Evolver ou DecisionTools Suite. Chapitre 1 : Introduction 7 DecisionTools Suite Evolver est compatible avec les outils d’analyse du risque et de décision DecisionTools Suite, de Palisade Corporation. L’installation par défaut d’Evolver place le programme dans un sous-répertoire du répertoire principal « Program Files\Palisade », de la même manière qu’Excel s’installe généralement dans un sous-répertoire du répertoire « Microsoft Office ». Ce sous-répertoire de Program Files\Palisade devient le répertoire Evolver (appelé, par défaut, Evolver5). Ce répertoire contient le fichier programme d'Evolver (EVOLVER.XLA), plus les modèles types et autres fichiers nécessaires à l’exécution d’Evolver. Un autre sousrépertoire de Program Files\Palisade, intitulé SYSTEM, reçoit les fichiers nécessaires à tous les programmes de la série DecisionTools Suite, y compris les fichiers d’aide et bibliothèques communs. Configuration des icônes ou raccourcis d'Evolver Sous Windows, l’installation crée automatiquement une commande Evolver dans le menu Programmes de la barre des tâches. Si toutefois vous rencontrez des problèmes en cours d’installation ou que vous désirez exécuter cette opération ultérieurement, procédez comme suit : 1) Cliquez sur le bouton Démarrer et pointez sur Paramètres. 2) Cliquez sur Barre des tâches, puis sur l’onglet Programmes du menu Démarrer. 3) Cliquez sur Ajouter, puis sur Parcourir. 4) Repérez le fichier EVOLVER.EXE et cliquez deux fois dessus. 5) Cliquez une fois sur Suivant, puis deux fois sur le menu de votre choix. 6) Tapez le nom « Evolver » et cliquez sur Terminer. 8 Installation Messages d’avertissement de sécurité des macros au démarrage Microsoft Office propose plusieurs paramètres de sécurité pour éviter l’exécution de macros indésirables ou hostiles dans vos applications Office. Sauf sous le paramètre de sécurité le plus faible, un message d’avertissement s’affiche à chaque tentative de chargement d’un fichier assorti de macros. Pour éviter l’affichage de ce message à chaque exécution d’un compagnon Palisade, Palisade signe numériquement ses fichiers. Après avoir spécifié Palisade Corporation en tant que source fiable, vous pouvez dès lors ouvrir les compagnons Palisade sans message d’avertissement. Pour ce faire : • Chapitre 1 : Introduction Séléctionnez l’option Approuver tous les documents de cet éditeur lorsqu’une boîte de dialogue Options de sécurité (telle que celle illustrée ci-dessous) s’ouvre au démarrage d’Evolver. 9 Renseignements complémentaires Les ressources suivantes peuvent contenir une information complémentaire relative à Evolver : Fichier Lisezmoi d'Evolver Ce fichier contient une présentation rapide d’Evolver, ainsi que, éventuellement, l’information de dernière minute publiée sur la dernière version du logiciel. Pour y accéder, choisissez Démarrer/ Programmes/ Palisade DecisionTools/ Lisezmoi et cliquez sur Evolver – Lisezmoi. Il est utile de lire ce fichier avant l’emploi d’Evolver. Didacticiel d’Evolver Le didacticiel en ligne d’Evolver apporte aux utilisateurs débutants une présentation rapide du logiciel et des algorithmes génétiques. La présentation se limite à quelques minutes seulement. Voir la rubrique Apprendre Evolver ci-dessous pour tous détails concernant l’accès au didacticiel. Apprendre Evolver Pour vous familiariser rapidement avec Evolver, suivez le didacticiel en ligne, où des experts du logiciel vous guident à travers différents modèles types en format cinéma. Ce didacticiel est une présentation multimédia des principales fonctionnalités d’Evolver. Pour y accéder, choisissez la commande Didacticiel du menu Aide d’Evolver. 10 Installation Chapitre 2 : Principes Qu’est-ce qu’Evolver ?.....................................................................13 Principes fonctionnels d’Evolver ........................................................14 Algorithmes génétiques ..........................................................14 Qu’est-ce que l’optimisation ? .............................................................15 Pourquoi bâtir des modèles Excel ? ....................................................16 Pourquoi Evolver ?.................................................................................16 Plus question de « deviner »...................................................17 Plus précis et plus utile ...........................................................17 Plus souple.................................................................................17 Plus puissant .............................................................................18 Plus convivial ............................................................................18 Rentable .....................................................................................19 Chapitre 2 : Principes 11 12 Qu’est-ce qu’Evolver ? Le progiciel Evolver apporte à l’utilisateur une méthode simple de recherche de solutions optimales à pratiquement tous les types de problèmes. En un mot, Evolver trouve les meilleures entrées pour la production d’une sortie désirée. Servez-vous-en pour rechercher la combinaison, l’ordre ou le groupement de variables qui produisent les meilleurs bénéfices, le moindre risque ou la plus grande quantité de produits au moyen de la plus faible quantité de matériaux. Evolver sert souvent de complément au tableur Microsoft Excel : la configuration du problème s’effectue dans Excel, et sa résolution à l’aide d’Evolver. MODÈLE DÉCRIRE LA RECHERCHE SOLUTION Commencez par modéliser le problème dans Excel, avant de le décrire à Evolver. Excel apporte toutes les formules, fonctions, graphiques et capacités de macro dont la plupart des utilisateurs ont besoin pour créer des modèles réalistes de leurs problèmes. Evolver apporte l’interface de description de l’incertitude du modèle et de la cible recherchée, ainsi que les moteurs qui permettent de l’atteindre. Ensemble, ils découvrent les solutions optimales à pratiquement tous les problèmes modélisables. Chapitre 2 : Principes 13 Principes fonctionnels d’Evolver Evolver recourt à un ensemble exclusif d’algorithmes génétiques pour rechercher les solutions optimales à un problème. Il fait aussi appel aux distributions de probabilité et à la simulation pour gérer l’incertitude présente dans le modèle. Algorithmes génétiques Evolver fait appel aux algorithmes génétiques pour rechercher la meilleure solution à un modèle Les algorithmes génétiques imitent les principes darwiniens de sélection naturelle en créant un environnement dans lequel des centaines de solutions possibles à un problème rivalisent les unes avec les autres, avec survie de « la plus apte ». Comme dans l’évolution biologique, chaque solution transmet ses bons « gènes » à ses solutions « descendantes », de sorte que la population de solutions tout entière continue à évoluer vers de meilleures solutions. Vous l’avez compris, la terminologie des algorithmes génétiques est souvent similaire à celle du domaine dont elle est inspirée. Les fonctions de « croisement » aident à concentrer la recherche de solutions ; les taux de « mutation » contribuent à la diversification du « capital génétique » ; et l’évaluation porte sur l’ensemble de la « population » de solutions ou « organismes ». Pour plus de détails sur le fonctionnement des algorithmes génétiques d’Evolver, voir le Chapitre 7 – Algorithmes génétiques. 14 Qu’est-ce qu’Evolver ? Qu’est-ce que l’optimisation ? L’optimisation est le processus qui consiste à rechercher la meilleure solution à un problème présentant de nombreuses solutions possibles. La plupart des problèmes impliquent de nombreuses variables interdépendantes basées sur des formules et des contraintes données. Supposons par exemple une entreprise comptant trois usines, fabriquant chacune différentes quantités de différents produits. Étant donné le coût de production de chaque produit par chaque usine, les coûts de livraison de chaque usine à chaque débouché des produits et les limites de chaque usine, quelle est la formule optimale qui permettrait de répondre adéquatement à la demande des magasins de détail locaux tout en minimisant les coûts de transport ? Il s’agit là du type de question auquel les outils d’optimisation sont censés répondre. L’optimisation consiste souvent à rechercher la combinaison la plus rentable compte tenu de ressources données. Dans l’exemple ci-dessus, chaque solution proposée consisterait en une liste complète indiquant quels produits fabriqués par quelle usine sont expédiés dans quel camion vers quel magasin. D’autres problèmes d’optimisation pourraient chercher, par exemple, comment réaliser le plus grand bénéfice, le moindre coût, le plus grand nombre de vies sauvées, le moins de bruit dans un circuit, le chemin le plus court entre différentes villes, ou la combinaison la plus rentable d’achats de médias publicitaires. Un sous-ensemble important de problèmes d’optimisation concerne la planification d’horaires ou de programmes, le but étant de maximiser l’efficacité d’un poste de travail ou de minimiser les conflits de rencontre de groupes. Pour plus de détails sur l’optimisation, voir le Chapitre 6 – Optimisation. Chapitre 2 : Principes 15 Pourquoi bâtir des modèles Excel ? Si l’on veut accroître l’efficacité d’un système, il faut d’abord en comprendre le comportement. Là se trouve l’utilité de la construction d’un modèle fonctionnel du système. Les modèles sont les abstractions nécessaires à l’étude de systèmes complexes. Pour que les résultats restent applicables au « monde réel », le modèle doit cependant éviter de simplifier à l’excès les rapports de cause à effet entre ses variables. De meilleurs logiciels et des ordinateurs de plus en plus puissants permettent aux économistes de bâtir des modèles plus réalistes de la conjoncture ; aux scientifiques, d’améliorer leurs prédictions de réactions chimiques et aux gestionnaires, d’accroître la sensibilité de leurs modèles d’entreprise. Ces dernières années, le matériel informatique et les programmes logiciels tels que Microsoft Excel ont progressé à une telle allure qu’il suffit pour ainsi dire aujourd’hui de disposer d’un ordinateur personnel pour créer des modèles réalistes de systèmes complexes. Les fonctions intégrées d’Excel, ses capacités de macros et son interface rationnelle et intuitive permettent même aux débutants de modéliser et d’analyser des problèmes de haut niveau. Pour plus de détails sur l’élaboration d’un modèle, voir le Chapitre 9 – Et aussi… Pourquoi Evolver ? La technologie unique d’Evolver met les avantages de l’optimisation à la portée de tout utilisateur de PC et d’Excel pour Windows. Avant Evolver, trois choix s’offraient à toute personne désireuse d’accroître l’efficacité d’un processus ou d’identifier les solutions optimales à un problème : deviner, faire appel à un solveur logiciel de faible envergure ou engager les services d’experts de l’optimisation pour la conception et l’élaboration d’un logiciel personnalisé. Grâce à Evolver, la situation a aujourd’hui bien changé. Pour ne citer que quelques-uns de ses principaux avantages : 16 Qu’est-ce qu’Evolver ? Plus question de « deviner » En présence de nombreuses variables interactives, il peut être tentant, pour trouver la meilleure combinaison, le meilleur ordre ou le groupement optimal de ces variables, de procéder par « supposition éclairée ». Un nombre surprenant de personnes croient que toute forme de modélisation et d’analyse au-delà de la supposition exige une programmation compliquée ou le recours à de complexes statistiques ou algorithmes mathématiques. Une bonne solution optimisée peut pourtant épargner des millions d’euros, des milliers de litres de combustible rare, des mois de travail inutile, etc. Maintenant que de puissants ordinateurs et logiciels de bureau tels qu’Excel et Evolver sont à la portée de tous, la simple supposition, ou la perte de temps précieux à essayer différents scénarios, ne se justifient plus. Plus précis et plus utile Evolver permet le recours à toutes les formules et même aux macros d'Excel pour l’élaboration de modèles plus réalistes, quel que soit le système représenté. Avec Evolver, le « compromis » n’est pas nécessaire, car l’algorithme choisi peut gérer les complexités du monde réel. Les « mini-solveurs » conventionnels (outils statistiques et de programmation linéaire) obligent l’utilisateur à supposer l’interaction entre les variables d’un problème, imposant dès lors la création de modèles par trop simplistes et peu réalistes. Une fois le système suffisamment simplifié pour permettre l’usage de ces solveurs, la solution résultante est souvent plus abstraite que pratique. Les problèmes présentant de nombreuses variables, fonctions non linéaires, tables de recherche, déclarations conditionnelles, interrogations de base de données ou éléments stochastiques (aléatoires) sont exclus de ces méthodes, quel que soit le degré de simplification du modèle. Plus souple Beaucoup d’algorithmes conviennent à la résolution de simples problèmes linéaires et non linéaires, qu’ils procèdent par escalade, mini-solveur ou autres approches mathématiques. Même proposés sous forme de compagnons ou compléments de tableur, ces outils d’optimisation universels ne gèrent que l’optimisation numérique. Pour les problèmes plus vastes ou plus complexes, il est parfois possible de formuler des algorithmes personnalisés, au prix de longues opérations de recherche et développement toutefois. Dans cette éventualité même, le programme résultant doit être modifié à chaque changement de modèle ! Chapitre 2 : Principes 17 Evolver gère en revanche les problèmes numériques et est le seul programme commercial au monde apte à résoudre la plupart des problèmes combinatoires. Ces problèmes sont ceux où les variables doivent être réorganisées (par permutation) ou combinées les unes avec les autres. Par exemple, choisir l’ordre des joueurs à la batte, pour une équipe de baseball, est un problème de nature combinatoire. Les problèmes de planification complexes aussi. Le seul et même Evolver peut résoudre tous ces types de problèmes et bien d’autres encore qu’aucun autre programme ne peut aborder. La technologie unique des algorithmes génétiques proposée par Evolver permet d’optimiser pratiquement tous les types de modèles, aussi volumineux et complexes soient‐ils. Plus puissant Evolver trouve de meilleures solutions. La plupart des logiciels dérivent mathématiquement et systématiquement leurs solutions optimales. Trop souvent, ces méthodes se limitent à la considération d’une solution existante et à la recherche de la meilleure réponse la plus proche. Or, cette solution « locale » peut être loin d’être la solution optimale. Evolver échantillonne intelligemment toutes les possibilités envisageables et produit dès lors une solution « globale » bien meilleure. Plus convivial Malgré ses avantages de puissance et de souplesse manifestes, Evolver reste convivial et simple d’emploi, car il n’est pas nécessaire de comprendre les techniques complexes des algorithmes génétiques sur lesquelles il repose. Evolver ne s’inquiète pas des menus détails du problème : il lui faut simplement un modèle de tableur apte à évaluer la qualité des différents scénarios. Il suffit de sélectionner les cellules qui contiennent les variables et d’indiquer à Evolver l’objectif recherché. Evolver masque intelligemment la difficulté de la technologie, présentant comme automatique l’analyse hypothétique du problème. 18 Qu’est-ce qu’Evolver ? Beaucoup de programmes commerciaux ont été développés pour la programmation mathématique et l’élaboration de modèles, mais les tableurs sont de loin les plus appréciés et se vendent, littéralement, comme des petits pains. Leur format intuitif en lignes et colonnes les rend plus faciles à configurer et à gérer que les autres progiciels spécialisés. Ils offrent également une meilleure compatibilité avec d’autres programmes, tels que traitements de texte et bases de données, et proposent plus de formules intégrées, options de formatage, capacités graphiques et de macros que les systèmes autonomes. Compagnon et complément de Microsoft Excel, Evolver donne accès à toute la gamme de fonctions et outils de développement d’Excel, pour une modélisation plus simple et plus réaliste. Rentable Quantité d’entreprises ont engagé les services d’experts-conseils chargés du développement de systèmes d’optimisation personnalisés. S’ils répondent généralement adéquatement aux besoins définis, ces systèmes exigent souvent, outre un investissement monétaire considérable, de nombreux mois de développement et mise en œuvre. Ils sont souvent difficiles à apprendre et requièrent de vastes budgets de formation et une maintenance constante. Le moindre changement peut exiger la définition d'un tout nouvel algorithme. Pour un investissement largement inférieur, Evolver apporte l'avantage des algorithmes génétiques les plus puissants aujourd’hui disponibles et assure la production de solutions rapides et précises à un large éventail de problèmes. Son interface intuitive et familière élimine pratiquement tous coûts de formation et de maintenance. Rien ne vous empêche même d'ajouter la puissance d'optimisation d'Evolver à vos propres programmes personnalisés. En l’espace de quelques jours à peine, vous pouvez, à l’aide de Visual Basic, développer votre propre système de planification, distribution, fabrication ou gestion financière. Voir le Kit du développeur Evolver pour plus de détails sur l’élaboration d’une application Evolver. Chapitre 2 : Principes 19 20 Chapitre 3 : Evolver : Pas à pas Introduction .......................................................................................23 Visite guidée......................................................................................25 Démarrer Evolver ...................................................................................25 La barre d’outils Evolver .........................................................25 Ouverture d’un modèle type ..................................................25 La boîte de dialogue Evolver – Modèle..............................................26 Sélectionner la cellule cible .................................................................27 Ajouter les plages de cellules ajustables ...........................................27 Méthode de résolution.............................................................30 Contraintes ..............................................................................................31 Ajout de contrainte...................................................................32 Simple plage de valeurs ou Formule ....................................32 Autres options Evolver..........................................................................35 Conditions d'arrêt.....................................................................35 Options d’affichage..................................................................36 Exécuter l’optimisation .........................................................................37 Suivi Evolver .............................................................................38 Arrêt de l’optimisation ............................................................39 Rapport de synthèse.................................................................40 Placement des résultats dans le modèle ...............................41 Chapitre 3 : Evolver : Pas à pas 21 22 Introduction Ce chapitre suit, pas à pas, une optimisation complète sous Evolver. Si Evolver n’est pas installé sur votre disque dur, reportez-vous à la section du Chapitre 1 : Introduction consacrée à l’installation et installez Evolver avant d’entreprendre ce didacticiel. Nous commencerons par ouvrir un modèle de calcul prédéfini, pour définir le problème à Evolver à l’aide de distributions de probabilités et des boîtes de dialogue Evolver. Nous suivrons ensuite la progression d’Evolver dans sa recherche de solutions et nous explorerons quelques-unes des nombreuses options de Suivi Evolver. Pour plus de détails sur une rubrique abordée ici, voir l’index en fin de manuel ou le Chapitre 5 : Guide de référence Evolver. REMARQUE : Les écrans illustrés ci-dessous sont extraits d’Excel 2007. Les fenêtres d’autres versions d’Excel seront peut-être légèrement différentes. Le processus de résolution commence par l’élaboration d’un modèle qui représente précisément le problème. Ce modèle doit pouvoir évaluer un ensemble donné de valeurs en entrée (les cellules ajustables) et produire une cote numérique indicatrice de la qualité de la solution produite sous ces valeurs (évaluation ou fonction de « pertinence »). Tandis qu’Evolver recherche les solutions possibles, la fonction de pertinence lui renvoie une indication de la qualité ou non de chaque supposition, permettant ainsi à Evolver d’améliorer en permanence ses suppositions. Lors de la création du modèle d’un problème, la fonction de pertinence revêt une extrême importance en ce qu’Evolver n’a de cesse de maximiser (ou minimiser) la cellule concernée. Chapitre 3 : Evolver : Pas à pas 23 24 Visite guidée Démarrer Evolver La barre d’outils Evolver Ouverture d’un modèle type Pour lancer Evolver : 1) cliquez sur l’icône Evolver sur le bureau Windows ou 2) choisissez Palisade DecisionTools puis Evolver 5.0 dans la liste des programmes listés sous le menu Démarrer de Windows. Ces deux méthodes démarrent chacune Microsoft Excel et Evolver. Lorsqu’Evolver est chargé, un nouveau ruban ou une nouvelle barre d’outils s’affiche dans Excel. Cette barre contient les boutons de commande d’Evolver, pour la spécification des paramètres et le démarrage, la pause et l’arrêt des optimisations. Pour passer en revue les fonctionnalités d’Evolver, nous allons examiner un modèle type installé lors de l’installation du programme : 1) Sous la commande Exemples du menu d’Aide, ouvrez la feuille de calcul Boulangerie – Didacticiel.XLS. Chapitre 3 : Evolver : Pas à pas 25 Cet exemple présente un simple problème de maximisation du profit pour une boulangerie. La boulangerie produit 6 types de pain. Vous êtes responsable de la boulangerie et du suivi des revenus, coûts et profits de la production. Vous devez déterminer le nombre de caisses de chaque type de pain apte à maximiser le bénéfice total tout en respectant les directives de limite de production. Vos directives sont les suivantes : vous devez 1) respecter le quota de pain hypocalorique, 2) maintenir un rapport acceptable entre pain riche en fibres et pain hypocalorique, 3) maintenir un rapport acceptable entre le pain 5 céréales et le pain hypocalorique et 4) respecter les heures-personnes de production fixées. La boîte de dialogue Evolver – Modèle Pour configurer les options Evolver de notre feuille de calcul : 1) Cliquez sur l’icône Définition du modèle de la barre d’outils Evolver (à l’extrême gauche). La boîte de dialogue Evolver – Modèle illustrée ci-dessous s’ouvre : Cette boîte est conçue pour permettre à l’utilisateur de décrire le problème de manière simple et directe. Nous cherchons, dans notre exemple, à déterminer le nombre de caisses de chaque type de pain à produire pour maximiser le bénéfice total global. 26 Visite guidée Sélectionner la cellule cible Le « bénéfice total », dans notre exemple, représente la « cellule cible ». Cette cellule est celle dont la valeur doit être minimisée ou maximisée, ou dont la valeur doit se rapprocher autant que possible d’une valeur prédéfinie. Pour spécifier la cellule cible : 1) Pour « But d’optimisation », choisissez l’option « Maximum ». 2) Entrez la cellule cible, $I$11, dans le champ « Cellule ». Les références de cellule peuvent être entrées dans les champs des boîtes de dialogue Evolver de deux manières : 1) Cliquez dans le champ et tapez-y directement la référence de la cellule, ou 2) curseur dans le champ sélectionné, cliquez sur l’icône d’entrée de référence pour sélectionner la ou les cellules voulues directement dans la feuille de calcul à l’aide de la souris. Ajouter les plages de cellules ajustables L’étape suivante consiste à spécifier l’emplacement des cellules qui contiennent les valeurs qu’Evolver peut faire varier, ou « ajuster », dans sa recherche de solutions. Ces variables s’ajoutent et se modifient, un bloc à la fois, dans le volet Plages de cellules ajustables de la boîte de dialogue Modèle. Le nombre de cellules admis dépend de la version Evolver utilisée. 1) Cliquez sur le bouton « Ajouter » dans le volet « Plages de cellules ajustables ». 2) Sélectionnez $C$4:$G$4 comme cellules Excel à ajouter comme plage de cellules ajustables. Chapitre 3 : Evolver : Pas à pas 27 Plage Min-Max de cellules ajustables Il convient, dans la plupart des cas, de restreindre les valeurs possibles d’une plage de cellules ajustables à une plage minimummaximum spécifique. Il s’agit là, en jargon Evolver, d’une contrainte de « plage ». Cette plage se définit rapidement lors de la sélection de l’ensemble de cellule à ajuster. Dans l’exemple qui nous occupe, la valeur minimum possible de caisses produits par type de pain dans cette plage est 0 et la valeur maximum, 100 000. Pour définir cette contrainte de plage : 1) Entrez 0 dans la cellule Minimum et 100 000 dans la cellule Maximum. 2) Pour la cellule Valeurs, sélectionnez Entiers dans la liste déroulante. 28 Visite guidée Entrez maintenant une deuxième plage de cellules à ajuster : 1) Cliquez sur Ajouter. 2) Sélectionnez la cellule B4. 3) Entrez 20 000 comme Minimum et 100 000 comme Maximum. On spécifie ainsi la dernière cellule ajustable, B4, représentant le niveau de production de pain hypocalorique. Si le problème comportait d’autres variables encore, on continuerait à ajouter des cellules ajustables. Evolver admet un nombre illimité de groupes de cellules ajustables. Il suffit, pour chacun, de cliquer sur le bouton « Ajouter ». Si vous décidez plus tard de vérifier les cellules ajustables ou d’en changer les paramètres, il suffit de modifier la plage min-max dans ce tableau. Le bouton « Supprimer » permet aussi de supprimer un ensemble de cellules sélectionné. Chapitre 3 : Evolver : Pas à pas 29 Méthode de résolution La méthode de résolution à utiliser peut être spécifiée lors de la définition des cellules ajustables. Différentes méthodes de résolution gèrent différents types de cellules ajustables. Les méthodes se définissent pour un Groupe de cellules ajustables et se modifient en cliquant sur le bouton « Groupe » pour afficher la boîte de dialogue Paramètres du groupe de cellules ajustables. La méthode par défaut « recette » convient généralement. Cette méthode permet le changement de valeur de chaque cellule indépendamment des autres. Cette méthode est sélectionnée par défaut. Il est donc inutile de la changer ici. Les méthodes de résolution « recette » et « ordre » sont les plus courantes et peuvent être utilisées ensemble pour la résolution de problèmes combinatoires compliqués. Plus spécifiquement la méthode « recette » traite chaque variable comme s’il s’agissait d’un ingrédient d’une recette, essayant de trouver la « meilleure combinaison » en changeant indépendamment la valeur de chaque variable. En revanche, la méthode « ordre » permute les valeurs des variables, réorganisant les valeurs originales à la recherche du « meilleur ordre ». Pour ce modèle, nous allons conserver la méthode de résolution Recette et ♦ 30 entrer simplement « Caisses produites » dans le champ Description. Visite guidée Contraintes Evolver admet les contraintes, qui définissent les conditions à remplir pour qu’une solution soit valable. Dans notre exemple, trois autres contraintes doivent être satisfaites pour assurer la validité d’un ensemble possible de niveaux de production par type de pain. Ces contraintes sont complémentaires à celles de plage définies plus haut pour les cellules ajustables. Elles se définissent comme suit : 1) Maintien d’un rapport acceptable entre les types de pain riche en fibres et hypocalorique (caisses fibres produites >= 1,5 * caisses hypocaloriques produites). 2) Maintien d’un rapport acceptable entre les types de pain 5 céréales et hypocalorique (caisses 5 céréales produites >= 1,5 * caisses hypocaloriques produites). 3) Respect des limites d’heures-personnes de production (total d’heures-personnes < 50 000). À chaque génération de solution possible au problème, Evolver vérifie le respect des contraintes définies. Les contraintes s’affichent au bas du volet Contraintes de la boîte de dialogue Evolver – Modèle. Evolver admet deux types de contraintes : ♦ Ferme. Les contraintes fermes sont les conditions qui doivent être satisfaites pour qu’une solution soit valable. Par exemple, une contrainte d’itération ferme pourrait être exprimée sous la forme C10<=A4, et si une solution générait une valeur C10 supérieure à celle de la cellule A4, la solution serait rejetée. ♦ Souple. Les contraintes souples sont les conditions que l’on veut respecter autant que possible, mais pour lesquelles on est prêt à accepter le compromis en vue d’une importante amélioration de pertinence ou de résultat de cellule cible. Par exemple, une contrainte souple pourrait être exprimée sous la forme C10<100. Dans ce cas, C10 pourrait dépasser la valeur 100, mais la valeur calculée de la cellule cible serait alors diminuée conformément à la fonction de pénalité définie. Chapitre 3 : Evolver : Pas à pas 31 Ajout de contrainte Pour ajouter une contrainte : 1) Cliquez sur le bouton Ajouter du volet Contraintes, dans la boîte de dialogue Evolver principale. La boîte de dialogue Paramètres de contrainte s’ouvre, pour la définition des contraintes du modèle. Simple plage de valeurs ou Formule Les contraintes peuvent être définies selon deux formats : Simple ou Formule. Le format Simple plage de valeurs permet la définition des contraintes selon de simples relations <, <=, >, >= ou =. Par exemple : 0<Valeur de A1<10, où A1 s’entre dans la case Plage, 0 dans la case Min et 10 dans la case Max. Les opérateurs désirés se sélectionnent dans les listes déroulantes. Sous une contrainte de format « Simple », on peut entrer une valeur Min, une valeur Max, ou les deux. Le format Formule permet en revanche l’entrée, pour la contrainte, d’une formule Excel correcte, telle que A19<(1,2*E7)+E8. Pour chaque solution possible, Evolver vérifie si la formule entrée est VRAIE ou FAUSSE, afin de déterminer le respect ou non de la contrainte. Pour utiliser une formule booléenne de cellule de feuille de travail comme contrainte, il suffit de faire référence à cette cellule dans le champ Formule de la boîte de dialogue Paramètres de contrainte. 32 Visite guidée Nous allons, pour notre modèle de boulangerie, spécifier trois nouvelles contraintes fermes. Il s’agit de contraintes fermes car les conditions définies doivent être satisfaites pour qu’Evolver accepte une solution possible. Commencez par configurer une contrainte ferme de style Simple : 1) Entrez « Total d’heures de travail acceptable » comme description. 2) Dans la case Plage sous contrainte, entrez I8. 3) Sélectionnez l’opérateur <= à droite de Plage sous contrainte. 4) Entrez 50 000 dans la case Maximum. 5) Supprimez la valeur par défaut 0 de la case Minimum. 6) À gauche de Plage sous contrainte, supprimez l’opérateur en sélectionnant l’option blanche dans la liste déroulante. 7) Cliquez sur OK pour valider cette contrainte. Chapitre 3 : Evolver : Pas à pas 33 Sélectionnez maintenant le format Formule de contrainte ferme : 1) Cliquez sur Ajouter pour rouvrir la boîte de dialogue Paramètres de contrainte. 2) Entrez « Rapport acceptable fibres/hypocalorique » comme description. 3) Sélectionnez le style Formule. 4) Dans la zone Formule de contrainte, entrez C4>= 1,5*B4. 5) Cliquez sur OK. 6) Cliquez sur Ajouter pour rouvrir la boîte de dialogue Paramètres de contrainte. 7) Entrez « Rapport acceptable 5 grains/hypocalorique » comme description. 8) Sélectionnez le style Formule. 9) Dans la zone Formule de contrainte, entrez D4>= 1,5*B4. 10) Cliquez sur OK. La boîte de dialogue résultante doit se présenter comme suit : 34 Visite guidée Autres options Evolver Les options telles qu’Actualiser l’affichage, Racine de nombres aléatoires et Arrêt d’optimisation permettent de gérer le fonctionnement d’Evolver en cours d’optimisation. Précisons donc quelques conditions d’arrêt et paramètres d’actualisation de l’affichage. Conditions d'arrêt Evolver s’exécute aussi longtemps que vous le désirez. Les conditions d’arrêt gèrent l’arrêt automatique d’Evolver lorsque a) un certain nombre de scénarios ou d’ « essais » a été examiné, b) un certain temps s’est écoulé, c) les n derniers scénarios n’ont produit aucune amélioration ou d) la formule Excel entrée est VRAIE. Pour afficher et modifier les conditions d’arrêt : 1) Cliquez sur l’icône Paramètres d’optimisation de la barre d’outils Evolver. 2) Cliquez sur l’onglet Temps d’exécution. Dans la boîte de dialogue Paramètres d’optimisation, vous pouvez sélectionner une combinaison quelconque de conditions d’arrêt. Vous pouvez aussi choisir de n’en sélectionner aucune. Si vous sélectionnez plusieurs conditions d’arrêt, Evolver s’arrête lorsque l’une d’entre elles est remplie. Si vous ne sélectionnez aucune condition d’arrêt, Evolver s’exécute indéfiniment, jusqu’à ce que vous l’arrêtiez manuellement en cliquant sur le bouton Arrêter de la barre d’outils. Chapitre 3 : Evolver : Pas à pas 35 Essais Minutes Cette option définit le nombre d’« essais » à exécuter. À chaque essai, Evolver évalue un ensemble complet de variables ou une solution possible au problème. Evolver s’arrête au terme de la durée de temps spécifiée. Cette valeur peut être une fraction (4,25). ♦ Options d’affichage 36 Progrès Cette condition d’arrêt est la plus appréciée car elle suit l’amélioration du processus et permet à Evolver de continuer jusqu’à ce que le degré d’amélioration se réduise. Par exemple, Evolver pourrait s’arrêter au bout de 100 essais si aucune nouvelle amélioration n’est apparue par rapport au dernier scénario optimal. Formule vraie Evolver s’arrête si la formule Excel entrée s’avère VRAIE dans un recalcul du modèle. N'activez aucune condition d’arrêt pour laisser Evolver s’exécuter librement. En cours d’exécution d’Evolver, les options de l’onglet Affichage déterminent ce que vous voyez à l’écran. Visite guidée Les options d’actualisation suivantes sont proposées sous le titre Pendant l’optimisation : A chaque essai A chaque meilleur essai Jamais Cette option actualise l’affichage après chaque calcul et vous permet de voir Evolver ajuster les variables et calculer la sortie. Nous la recommandons pendant la période d’apprentissage d’Evolver, ainsi qu’à chaque utilisation d’Evolver sur un nouveau modèle, pour vous permettre d’en vérifier le calcul correct. Cette option actualise l’écran chaque fois qu’Evolver produit une nouvelle meilleure réponse, pour vous permettre de toujours voir la solution optimale courante pendant l’optimisation. Cette option n’actualise jamais l’écran en cours d’optimisation. Elle accélère le processus mais n'offre guère d’information sur les résultats calculés pendant l’exécution. ♦ Sélectionnez l’option « À chaque essai ». Exécuter l’optimisation Il ne reste plus qu’à optimiser notre modèle de maximisation du bénéfice total conformément aux contraintes de production : 1) Cliquez sur OK pour fermer la boîte de dialogue Paramètres d’optimisation. 2) Cliquez sur l’icône Démarrer l’optimisation. Tandis qu’Evolver se lance dans la résolution du problème, les meilleures valeurs actuelles des cellules variables – Caisses produites – s’affichent sur la feuille de calcul. La meilleure valeur de Bénéfice total s'affiche dans la cellule en surbrillance. Chapitre 3 : Evolver : Pas à pas 37 La fenêtre de progression suit l’exécution et affiche : 1) la meilleure solution trouvée jusque là, 2) la valeur originale de la cellule cible en début d’optimisation par Evolver, 3) le nombre d’essais du modèle exécutés et le nombre de ceux acceptés comme valables (où toutes les contraintes ont été satisfaites) et 4) le temps d’optimisation écoulé. À tout moment pendant l’exécution, l’icône Afficher les options d’actualisation Excel permet de visualiser chaque essai en direct à l’écran. Suivi Evolver Evolver peut aussi afficher un journal courant des essais réalisés pour chaque solution itérative. Ce journal s’affiche dans la fenêtre Suivi Evolver en cours d’exécution. Le système Suivi Evolver vous permet d’explorer et de modifier de nombreux aspects de votre problème en cours d’exécution. Pour afficher le journal courant des essais effectués : 1) Cliquez sur l’icône Suivi (loupe) dans la fenêtre de progression. 2) Cliquez sur l’onglet Journal. Ce rapport présente les résultats de la simulation exécutée pour chaque solution itérative. La colonne Résultat indique, par essai, la valeur de la cellule cible à maximiser ou minimiser – en l’occurrence, Bénéfice total dans $I$11. Les colonnes C4 et G4 identifient les valeurs utilisées pour les cellules ajustables. 38 Visite guidée Arrêt de l’optimisation Au bout de cinq minutes, Evolver arrête l’optimisation. Vous pouvez aussi arrêter l’optimisation en 1) cliquant sur l’icône Arrêter dans la fenêtre Suivi Evolver ou dans celle de progression. À l’arrêt du processus, Evolver affiche l’onglet Options d’arrêt. Les choix suivants y sont proposés : Ces mêmes options s’affichent automatiquement lorsqu’une condition d’arrêt quelconque de la boîte de dialogue Paramètres d’optimisation est remplie. Chapitre 3 : Evolver : Pas à pas 39 Rapport de synthèse Evolver peut créer un rapport de synthèse d’optimisation faisant état des date et heure de l’exécution, des paramètres d’optimisation utilisés, de la valeur calculée pour la cellule cible et de la valeur de chaque cellule ajustable. Ce rapport est utile à la comparaison des résultats d’optimisations successives. 40 Visite guidée Placement des résultats dans le modèle Pour placer la nouvelle combinaison optimisée de niveaux de production de la boulangerie pour chacun des six types de pain dans la feuille de calcul : 1) Cliquez sur le bouton « Arrêter ». 2) Sélectionnez l’option « Actualiser les valeurs de cellules ajustables affichées dans le classeur aux valeurs » « Meilleures ». La feuille de calcul Boulangerie-Didacticiel.xls réapparaît, garnie de toutes les nouvelles valeurs variables à l’origine de la meilleure solution. REMARQUE IMPORTANTE : Bien que notre exemple ait produit une solution présentant un bénéfice total de 3 940 486, votre résultat pourra être supérieur ou inférieur à cette valeur. Ces différences s’expliquent par l’importante distinction qui sépare Evolver de tous les autres algorithmes de résolution de problèmes : c’est la nature aléatoire du moteur d’algorithmes génétiques d’Evolver qui lui permet de résoudre une plus grande variété de problèmes et d’y trouver de meilleures solutions. Chapitre 3 : Evolver : Pas à pas 41 Lorsque vous enregistrez une feuille après l’exécution d’Evolver (et même si vous en « rétablissez » les valeurs originales après cette exécution), tous les paramètres Evolver configurés dans les boîtes de dialogue du programme s’enregistrent avec cette feuille. À l’ouverture suivante de la feuille, tous les paramètres les plus récents d’Evolver se chargent ainsi automatiquement. Tous les autres exemples de feuilles de calcul sont déjà dotés des paramètres Evolver et sont prêts à être optimisés. REMARQUE : Si vous désirez consulter le modèle Boulangerie déjà assorti de tous ses paramètres d’optimisation, ouvrez le fichier d’exemple Boulangerie.XLS. 42 Visite guidée Chapitre 4 : Applications types Introduction ...................................................................................... 45 Sélection publicitaire ....................................................................... 47 Ordre alphabétique .......................................................................... 49 Affectation de tâches ....................................................................... 53 Boulangerie....................................................................................... 55 Allocation budgétaire....................................................................... 57 Équilibre chimique ........................................................................... 59 Planificateur de classes .................................................................. 61 Segmenteur de code ........................................................................ 65 Dakota : Itinéraires sous contraintes ............................................. 69 Ordonnancement multigamme ....................................................... 73 Emplacement de pylônes radio ...................................................... 75 Équilibrage de portefeuilles ............................................................ 77 Composition de portefeuille............................................................ 81 Émetteurs radio ................................................................................ 83 Achat ................................................................................................. 85 Problème du voyageur de commerce ............................................ 87 Navigateur spatial ............................................................................ 89 Opérateur en bourse ........................................................................ 91 Transformateur................................................................................. 93 Transports......................................................................................... 95 Chapitre 4 : Applications types 43 44 Introduction Dans ce chapitre, vous trouverez différentes applications d’Evolver. Ces exemples ne couvrent pas nécessairement toutes les fonctionnalités qui vous intéressent. Leur but serait plutôt de servir de modèles et d’éveiller de nouvelles idées. Tous les exemples présentés illustrent la manière dont Evolver recherche ses solutions sur la base des relations existantes dans la feuille de calcul. Veillez par conséquent à ce que vos modèles représentent précisément le problème à résoudre. Tous les exemples de feuille de calcul Excel présentés ici se trouvent dans le répertoire EVOLVE32, sous-répertoire « EXEMPLES ». Tous suivent les conventions de couleur suivantes : ♦ cellules surlignées en bleu . . . . . cellules ajustables qu’Evolver fera varier. ♦ cellule surlignée en rouge . . . . . cellule cible. Tous les paramètres Evolver voulus sont présélectionnés dans chaque exemple : cellule cible, cellules ajustables, méthodes de résolution et contraintes. Ne manquez pas d’examiner ces paramètres dans leur boîte de dialogue avant de lancer l’optimisation. En examinant les formules et en essayant différents paramètres, vous comprendrez et maîtriserez mieux le fonctionnement d’Evolver. Les modèles proposés vous permettent aussi de remplacer les données d’échantillon par vos propres données « utilisateur ». Si vous décidez de modifier ou d’adapter ces feuilles d’exemple, enregistrez-les sous un autre nom pour conserver les versions originales pour référence. Chapitre 4 : Applications types 45 46 Sélection publicitaire Une agence de publicité doit déterminer l’allocation la plus rentable de son budget pour maximiser la couverture de son audience cible. Elle ne doit pas dépasser le budget et le montant alloué à la télévision doit être supérieur à celui affecté à la radio. Fichier de l’exemple : Sélection publicitaire.xls But : Répartir les achats de publicité, dans le cadre du budget imparti, parmi différents médias à tarifs distincts. Maximiser l'audience atteinte. Méthode de résolution : budget Problèmes similaires : Problèmes de nature budgétaire avec autres contraintes. Chapitre 4 : Applications types 47 Modèle La première chose à faire consiste à choisir une méthode de résolution qui indique à Evolver comment traiter les variables. Voir le Chapitre 5 : Guide de référence pour une description complète des différentes méthodes de résolution. Nous avons ici essentiellement un problème de type budget, avec la contrainte supplémentaire que les dépenses TV doivent être supérieures aux dépenses radio. Résolution 48 Les variables à ajuster occupent les cellules C5:C9. Evolver va les faire varier selon la méthode « budget », permettant à chacune de rester une valeur indépendante. L’audience totale est calculée par la fonction SOMME dans la cellule G13, que nous désignons comme cellule à maximiser. Les contraintes fermes spécifient que les dépenses TV doivent être supérieures à celles affectées à la publicité à la radio. Sélection publicitaire Ordre alphabétique Cet exemple présente une liste de sept noms à organiser en ordre alphabétique. Il s’agit ici d’un exemple simple, mais Evolver pourrait tout aussi bien traiter des tris complexes avec données interdépendantes ou pondérations différentes en fonction d’autres informations du modèle. Fichier de l’exemple : Ordre alphabétique.xls But : Mettre la liste de noms en ordre alphabétique. Méthode de résolution : ordre Problèmes similaires : Tout problème de tri au-delà des capacités d’Excel. Chapitre 4 : Applications types 49 Modèle Le fichier « Ordre alphabétique.xls » présente une modèle très simple appelé à illustrer les capacités de tri d'Evolver. La colonne B contient les prénoms de sept personnes et la colonne A, le numéro d'identification « ID » correspondant de chaque personne. La colonne D utilise la fonction Excel RECHERCHEV pour convertir le nombre choisi dans la colonne C en son nom correspondant. Les cellules E4:E9 appliquent une simple fonction de pénalisation qui affecte la valeur 1 chaque fois qu’un nom antérieur est classé après un nom ultérieur de la liste. La somme de toutes les erreurs figure dans la cellule E11, désignée comme cellule cible. Résolution Dans ce modèle, les variables à ajuster occupent les cellules de la colonne C (C3:C9). On demande à Evolver de jongler avec les valeurs des cellules C3:C9 selon la méthode de résolution « ordre ». Sous cette méthode, Evolver réorganise l’ordre des valeurs sélectionnées, par permutations différentes des variables plutôt qu'essai de nouvelles valeurs. On configure l’opération pour qu’Evolver recherche la valeur la plus proche de 0 comme erreur totale dans la cellule E11. Dans la cellule cible, cette valeur signifie en effet que tous les noms sont classés dans l’ordre correct. 50 Ordre alphabétique En ne sélectionnant aucun critère d’arrêt dans la boîte de dialogue d’Options Evolver, on indique à Evolver de poursuivre l'opération indéfiniment, jusqu'à arrêt manuel d’un clic sur le bouton d’arrêt de la barre d’outils. Dans ce modèle, nous avons cependant sélectionné l'option de valeur la plus proche. Evolver s'arrêtera donc automatiquement s’il trouve une solution répondant au critère de « valeur la plus proche » de 0. Nous avons choisi une population réduite car, bien qu’il n’existe aucune règle définitive quant au choix d’une population optimale, on peut généralement sélectionner une population de moindre envergure pour les problèmes qui présentent un nombre total réduit de solutions possibles. L'opération se concentre ainsi plus rapidement sur la production des solutions les plus performantes. Dans ce problème, il n’existe que 5040 ordres possibles pour les 7 noms. Chapitre 4 : Applications types 51 52 Affectation de tâches Cet exemple modélise un problème courant d’allocation de ressources. Dans ce problème, un manager dispose de 16 ouvriers pour accomplir 16 tâches. L’aptitude de chaque ouvrier à accomplir chaque tâche a été évaluée sur une échelle de 1 à 10 (1 = ne peut pas accomplir la tâche ; 10 = excellente aptitude à accomplir la tâche). La difficulté consiste ici à affecter chaque ouvrier à une tâche de façon à maximiser la productivité globale du groupe. Fichier de l’exemple : Affectation de tâches.xls But : Affecter 16 ouvriers à 16 tâches de manière à maximiser la rentabilité totale. Méthode de résolution : ordre Problèmes similaires : Problèmes d’affectation, planification de réunions aux heures qui conviendraient le mieux à la plupart des employés, identification des meilleures machines pour la réalisation d'une série de travaux. Chapitre 4 : Applications types 53 Le modèle présente une grille de 16 cellules sur 16 occupant la plage B4:Q19. L’aptitude de chaque ouvrier à accomplir chaque tâche y est cotée sur une échelle de 1 à 10. La colonne de « tâche choisie » (S), à droite de la grille, affecte arbitrairement chaque ouvrier à une tâche. La colonne suivante (U) vérifie la tâche affectée et entre la cote de l’ouvrier à cette tâche. Enfin, la cote totale de la solution intégrale (cellule U21) représente la somme de toutes les cotes individuelles. Modèle Une seule personne ne peut être affectée à chaque tâche : aucun nombre ne peut donc être redoublé, et chaque nombre doit être utilisé une fois. La cote de chaque ouvrier à la tâche affectée s’inscrit dans la colonne U selon la fonction INDEX(). Les cotes de la colonne U se totalisent dans la cellule U21 pour déterminer la cote totale de l'ensemble d'affectation considéré. Résolution Evolver est appelé à jongler avec les variables de « tâche choisie » contenues dans la colonne S (S4:S19), selon la méthode « ordre ». Cette méthode réorganise l’ordre des valeurs existantes de ces cellules. Il importe donc de vérifier que chaque valeur ne soit représentée qu’une fois avant de lancer l’optimisation. Evolver doit rechercher la valeur maximum possible de la cellule U21, désignée comme cellule cible, car plus cette valeur est élevée, plus l'affection générale est bonne. 54 Affectation de tâches Boulangerie Cet exemple illustre un problème courant de décision de production, où la recherche de la quantité adéquate de chaque produit à produire devient particulièrement difficile, même en présence de quelques articles seulement. Un boulanger doit déterminer le nombre de caisses de pains de différents types à produire pour maximiser le bénéfice total de sa boulangerie. Il importe aussi de respecter les limites applicables, telles que le nombre total d’heures-employés et les rapports de production. (Remarque : Ce modèle est décrit en détail au Chapitre 3 : Evolver Pas à pas.) Fichier de l’exemple : Boulangerie.xls But : Identifier la quantité optimale de chaque type de pain à produire pour respecter tous les quotas et maximiser les bénéfices. Méthode de résolution : recette Problèmes similaires : Composition de portefeuilles, planification de production. Chapitre 4 : Applications types 55 Modèle Ce problème liste la quantité de chaque pain à produire sur la première ligne du tableau (ligne 4). Lorsque ces variables de quantité (B4:G4) sont ajustées, le modèle calcule les heures et les coûts représentés, ainsi que le bénéfice qui résulterait de la production de ces quantités. Le bénéfice (cellules B11:G11) est totalisé dans la cellule I11, désigné comme cellule cible à maximiser. Le modèle est aussi soumis à trois contraintes fermes : la première au format de simple plage de valeurs, et les deux autres au format de formules Excel. Résolution 56 Evolver doit rechercher les valeurs des cellules B4:G4 (quantités à produire) aptes à maximiser la valeur de la cellule I11 (bénéfice total). Chaque valeur identifiée peut être indépendante des autres. On utilise donc la méthode de résolution « recette ». Les contraintes applicables aux cellules C4, D4 et I8 doivent aussi être respectées. Boulangerie Allocation budgétaire Supposons qu’un haut cadre désire identifier le mode le plus efficace de distribution de fonds entre les différents services de son entreprise pour maximiser le bénéfice. Le modèle ci-dessous représente l’entreprise et son bénéfice projeté pour l’année prochaine. Le modèle estime ce bénéfice en examinant le budget annuel et en supposant, par exemple, la manière dont la publicité affecte les ventes. Il s’agit ici d’un modèle simple, mais qui illustre la configuration d’un modèle et le recours à Evolver pour y identifier la sortie optimale. Fichier de l’exemple : Allocation budgétaire.xls But : Affecter le budget annuel entre cinq services pour maximiser le bénéfice de l’an prochain. Méthode de résolution : budget Problèmes similaires : Affecter des ressources précaires (telles que maind’œuvre, argent, carburant, temps) à des postes susceptibles de les utiliser de différentes manières plus ou moins efficientes. Chapitre 4 : Applications types 57 Modèle Le fichier « Allocation budgétaire.xls » modélise les effets du budget d’une entreprise sur ses ventes et bénéfices à venir. Les cellules C4:C8 (les variables) représentent les montants à allouer à chacun des cinq services. La cellule C10 représente le total de ces valeurs, soit le budget annuel total de l’entreprise. Ce budget est défini par l’entreprise et est inchangeable. Les cellules F6:F10 calculent une estimation de la demande du produit de l’entreprise pour l’année prochaine, en fonction des budgets publicitaires et de marketing. Le montant de ventes réelles représente le minimum de la demande calculée et de l’offre. L’offre dépend des fonds alloués aux services de production et d’exploitation. Résolution On maximise le bénéfice dans la cellule I16 en choisissant la méthode de résolution « budget » pour ajuster les valeurs des cellules C4 :C8. En fixant les plages indépendantes de chacune des cellules ajustables du budget de chaque service, on évite qu’Evolver n’essaie de valeurs négatives ou de chiffres qui ne produiraient pas de solutions budgétaires pertinentes (toute publicité sans production, par exemple). La méthode de résolution « budget » opère de la même manière que « recette » en ce qu’elle recherche la bonne « combinaison » des variables choisies. La différence est que sous la méthode « budget », on ajoute la contrainte que le total de toutes les variables doit rester égal avant et après l’optimisation. 58 Allocation budgétaire Équilibre chimique Tout processus modélisable destiné à produire un résultat conforme à certaines conditions initiales peut être optimisé par Evolver. Cet exemple illustre la manière dont Evolver peut identifier les niveaux de différents produits chimiques (produits et réactifs) pour minimiser l’énergie libre après une réaction équilibrée. Dans les processus chimiques compliqués, les ingrédients (réactifs) et les produits se reforment continuellement les uns les autres jusqu’à ce que la concentration des composés deviennent constante, quand « l'équilibre » est atteint. À tout moment après l’accès à cet équilibre, un pourcentage constant des substances chimiques d'équilibre pourraient être des réactifs (5 %, par exemple) et un pourcentage constant serait représenté par des produits (95 %). Fichier de l’exemple : Equilibre chimique.xls But : Calculer l’énergie libre du milieu de réaction et identifier les niveaux chimiques, compte tenu des contraintes souples définies (certains niveaux chimiques sont proportionnels à d’autres). Méthode de résolution : recette Problèmes similaires : Déterminer les conditions de l’équilibre de marché le plus stable. Chapitre 4 : Applications types 59 Modèle Les variables de ce problème, dans les cellules B4:B13, sont les niveaux chimiques à mélanger. La cellule B15 calcule le montant total, qui doit être maintenu dans une plage donnée, compte tenu des pénalités définies. Les contraintes définies dans F20:F22 sont souples : Evolver ne doit pas accepter que les solutions conformes, mais il calculera les pénalités applicables si certaines proportions ne sont pas respectées. Ces contraintes souples reposent sur les fonctions de pénalité intégrées directement dans le modèle de la feuille de calcul. Les pénalités s’ajoutent à la cellule d’énergie libre totale F17, de sorte que pour minimiser la cible, Evolver recherchera les solutions non grevées de pénalités. Résolution 60 On choisit la méthode de résolution recette pour les cellules B4:B13. On minimise la cellule F17. Équilibre chimique Planificateur de classes Une université doit affecter 25 classes différentes à 6 blocs temps prédéfinis. La durée de chaque classe est d’exactement un bloc temps. Cela permettrait ordinairement d’aborder le problème par la méthode de résolution « groupement ». La programmation des classes exige cependant la satisfaction de plusieurs contraintes. Par exemple, les cours de biologie et chimie ne doivent pas être programmés en même temps, pour que les étudiants de médicine puissent les suivre la même année. Pour satisfaire à ces contraintes, on choisira donc la méthode de résolution « programmation ». Cette méthode est comparable à celle de « groupement », si ce n’est que certaines tâches doivent (ou ne doivent pas) se produire avant (ou après ou pendant) d’autres. Fichier de l’exemple : Planificateur de classes.xls But : Affecter 25 classes à 6 périodes de temps de manière à minimiser le nombre d’étudiants qui devront être exclus de certaines classes. Satisfaire aux contraintes d’agencement des classes dans le temps. Méthode de résolution : programme Problèmes similaires : Tout problème de programmation où toutes les tâches sont de même longueur et peuvent être affectées à un bloc temps discret quelconque. Tout problème de groupement soumis à des contraintes quant aux groupes auxquels certains éléments peuvent être affectés. Chapitre 4 : Applications types 61 Modèle Le fichier « Planificateur de classes.xls » contient un modèle de problème de programmation type soumis à de nombreuses contraintes. Les cellules C5:C29 affectent les 25 classes aux 6 blocs temps. On ne dispose que de cinq salles de classe. L’affectation de plus de cinq classes par bloc temps impliquerait l’impossibilité de réunion d’au moins une classe. Les cellules K17:M25 définissent les contraintes. À gauche de ces contraintes figurent leurs descriptions littérales. Vous pouvez utiliser, au choix, le code numérique ou la description littérale de la contrainte. La liste des codes de contrainte des problèmes de programmation figure en détails dans la section du Chapitre 5 : Guide de référence consacrée aux « Méthodes de résolution ». Chaque programme possible est évalué en calculant a) le nombre de classes exclues et b) le nombre d’étudiants exclus pour cause de classe saturée. Cette dernière contrainte évite la programmation simultanée de toutes les classes nombreuses. Si une ou deux classes nombreuses seulement se réunissent sur un bloc temps donné, les salles de classe plus vastes peuvent leur être réservées. 62 Planificateur de classes Les cellules I8:N8 font appel à la fonction Excel BDNB pour compter le nombre de classes affectées à chaque bloc temps. Juste au-dessous les cellules I9:N9 calculent ensuite le nombre de classes non affectées à une salle de classe pour le bloc temps correspondant. Toutes les classes sans salle sont totalisées dans la cellule K10. Si le nombre de sièges requis pour une classe donnée dépasse le nombre de sièges disponibles, les cellules I12:N12 calculent l’excès et le nombre total d’étudiants sans siège est calculé dans la cellule K13. Dans la cellule F6, ce nombre total d’étudiants sans siège est ajouté à la taille de classe moyenne et multiplié par le nombre de classes sans salle. Une cellule combine ainsi toutes les pénalités, de sorte qu’un nombre inférieur, dans cette cellule, indique toujours un meilleur programme. Résolution On minimise la valeur des pénalités dans F6 par variation des cellules C5:C29. On choisit la méthode de résolution « programme ». Lorsque cette méthode est sélectionnée, ses options s’affichent dans le volet « options » inférieur de la boîte de dialogue. On fixe le nombre de blocs temps à 6 et les cellules sous contrainte à K17:M25. Chapitre 4 : Applications types 63 64 Segmenteur de code Un programmeur Windows désire diviser un programme en plusieurs segments de code, pour que Windows opère plus efficacement en ne gardant en mémoire que les segments de code utilisés. Cet exemple illustre la collecte d’éléments similaires dans des groupes. L’interaction est efficace entre les éléments d’un même groupe, mais elle est difficile entre ceux de groupes différents. En présence d'obstacles naturels à l’interaction directe de chaque élément avec tous les autres (si tous les utilisateurs d’ordinateurs voulaient être connectés directement à une imprimante, par exemple), il est nécessaire de répartir les éléments en différents groupes. Un groupement efficace peut produire un effet considérable sur la productivité globale du système. Fichier de l’exemple : Segmenteur de code.xls But : Grouper les sous-programmes en huit segments de code différents pour que le programme s’exécute aussi rapidement que possible. Méthode de résolution : groupement Problèmes similaires : Collecte de postes de travail en groupes de réseau local, ou de circuits en zone de micropuce, pour minimiser le coût de la communication entre les groupes. Chapitre 4 : Applications types 65 Modèle Les programmeurs Windows divisent souvent leurs programmes de cette matière pour en accroître l’efficacité. Lorsqu’un sous-programme d’un segment différent doit s’exécuter, Windows rejette le segment d’appel et lit celui appelé sur le disque. Si un programme de 2Mo est divisé en 80 segments de 20 Ko chacun, le programme peut s’exécuter avec 20 Ko de mémoire disponible seulement. Pour que la performance soit acceptable, toutefois, les segments doivent être soigneusement organisés. L’appel d’une fonction dans un autre segment demande plus de temps que si l’appel se fait dans le même segment. Le problème de segmentation de code consiste à minimiser le nombre d’appels intersegmentaux. Pour éviter d’optimiser certaines parties d’une application au détriment de l’application dans son ensemble, nous allons utiliser Evolver pour exécuter une optimisation globale. Le fichier d’exemple « Segmenteur de code.xls » suppose qu’une application a été compilée avec une certaine segmentation. L’application a été exécutée de façon ordinaire, avec suivi par un sous-programme de traçage de performance du nombre d’appels survenus entre les fonctions. Les résultats représentent donc la nature des appels sous usage type de l’application. La vitesse de l’application sous différentes stratégies de segmentation peut ainsi être prédite. La feuille de calcul utilise la fonction personnalisée « SegCost ». SegCost calcule le temps qu’il faudrait à l’utilisateur pour exécuter le programme de la même manière que lors de l’acquisition de statistiques d’usage type. La fonction procède par calcul du nombre d'appels inter- et intrasegmentaux, et par multiplication de chacun par le coût de chaque type d'appel. On suppose ici qu’un appel intersegmental (ou appel proche) exige sept cycles d’horloge et un appel intrasegmental (ou appel lointain), 34 cycles, comme dans le cas d'un processeur 386. 66 Segmenteur de code La fonction SegCost est programmée sous forme de macro Excel VBA, comme illustré ici : Function segCost(segs, calls, inP, outP) As Double Dim inCost#, outCost#, total#, temp#, tempPtr# Dim i%, j%, wide%, funcNumber%, ThisSeg%, OtherSeg% Dim NumCalls%, NumInCall%, NumOutCall%, SegOrder$, CallOrder$ SegOrder = Application.Names("segs").RefersTo CallOrder = Application.Names("calls").RefersTo NumInCall = 0 NumOutCall = 0 inCost = Range("k2") outCost = Range("k3") total = 0 wide = Range(CallOrder).Columns.Count For i = 1 To Range(SegOrder).Rows.Count ThisSeg = Range(SegOrder).Rows(i) For j = 1 To wide temp = Range(CallOrder).Rows(i).Columns(j) If temp <> 0 Then funcNumber = Int(temp) OtherSeg = Range(SegOrder).Rows(funcNumber + 1) NumCalls = 10000 * (temp - funcNumber) If ThisSeg = OtherSeg Then temp = NumCalls * inCost NumInCall = NumInCall + 1 Else temp = NumCalls * outCost NumOutCall = NumOutCall + 1 End If total = total + temp End If Next Next segCost = total End Function L’application de notre exemple comporte 80 fonctions. Le nombre d’appels de chaque fonction par chaque autre se stocke dans la plage des « appels » (C5:I104). On pourrait créer une matrice de 80 sur 80 pour représenter les motifs d’appels, mais cette approche n sur n deviendrait inutilisable au-delà d’environ 250 fonctions car Excel est limité à 256 colonnes (sans compter que l’approche exigerait une quantité exponentielle de mémoire). Chapitre 4 : Applications types 67 On utilise donc plutôt une notation condensée pour représenter les motifs d’appel. On suppose d’abord qu’aucune fonction n’appelle plus qu’un certain nombre d’autres fonctions. Dans cet exemple, on fixe à sept la limite supérieure, raison pour laquelle la plage des appels compte sept colonnes, mais cette limite est arbitraire. On suppose aussi qu’aucune fonction n’est appelée par aucune autre plus de 9999 fois. Considérons donc la fonction 1, à partir de la cellule C5. La fonction 1 appelle 4 fonctions : les fonctions 3, 9, 11 et 41. Les cellules C5:I5, première ligne de la plage d’appels, contiennent un nombre réel pour chaque fonction appelée (3,0023, par exemple). La partie entière (3) représente la fonction appelée et la fraction multipliée par 10 000 (0,0023 x 10 000 = 23) représente le nombre de fois que la fonction 1 a appelé la fonction 3 sous usage type de l’application. Ainsi, 9,1117 veut dire que la fonction a appelé la fonction n° 9 1 117 fois, et ainsi de suite. Ce format concis épargne la mémoire et tire le meilleur parti possible du nombre limité de colonnes disponibles dans Excel. La plage A5:A104 (plage des « segments ») contient le numéro du segment auquel chaque fonction est affectée. La cellule K4 fait appel à la fonction « SegCost » pour calculer la performance globale de la stratégie de segmentation courante. Résolution 68 On minimise la valeur de la cellule K4 en ajustant les cellules A5:A104. On utilise la méthode « groupement ». Sous la méthode de résolution « groupement », Evolver dispose les variables en x groupes, où x représente le nombre de valeurs différentes dans les cellules ajustables au début d’une optimisation. Segmenteur de code Dakota : Itinéraires sous contraintes Une agence immobilière doit faire expertiser chacun de ses biens dans le Dakota du Nord. L’opération doit se dérouler dans un certain ordre, pour que certains biens soient visités avant d’autres. Similaire au problème classique du voyageur de commerce, le but est d'identifier l’itinéraire le plus court à travers un ensemble de villes, en assurant le passage par chaque ville. Cet exemple est cependant soumis à la contrainte supplémentaire que certaines villes doivent en précéder d’autres sur l’itinéraire (la ville n° 2 doit par exemple figurer après la ville n° 4 dans l’itinéraire). Plutôt que la méthode de résolution « ordre », on utilisera donc celle intitulée « projet ». Cette méthode organise un ensemble de tâches dans lequel certaines doivent en précéder d’autres. La méthode « projet » permettrait notamment, en combinaison avec les fonctions personnalisées appropriées, d'identifier le meilleur minutage d’un projet (en fonction d'une combinaison de critères tels que durée de réalisation, utilisation de ressources, etc.) Fichier de l’exemple : Dakota.xls But : Planifier un itinéraire couvrant 41 villes du Dakota du Nord, de manière à assurer la plus faible distance entre toutes les villes et en respectant un ordre donné entre certaines villes. Méthode de résolution : projet Problèmes similaires : Re-planifier un projet pour équilibrer l’utilisation de ressources. Planifier l’ordonnancement des tâches d’un atelier pour réduire la durée totale d’un projet tout en assurant la réalisation de certaines tâches avant d’autres. Chapitre 4 : Applications types 69 Modèle Les cellules F3:F43 contiennent l’ordre de passage dans chaque ville. La cellule H10 calcule la distance totale de l’itinéraire, en fonction de l’ordre et des coordonnées x,y des villes (dans C3:D43). La cellule H10 fait appel à la fonction personnalisée « BigRouteLength » pour accélérer le calcul de la distance totale. Les cellules J3:L43 définissent les précédences. Il s’agit d’un tableau de cellules décrivant l’ordre de précédence des tâches (quelles villes doivent précéder quelles autres sur l’itinéraire). Huit villes (1,2,3,4,5,7, 11 et 13) doivent être visitées après d’autres particulières. 70 Dakota : Itinéraires sous contraintes Résolution On minimise la distance dans H10 en faisant varier les cellules F3:F43. On choisit la méthode de résolution « projet » et on définit l’ordre de précédence dans J3:L43. Les « tâches précédentes » se définissent dans la boîte de dialogue Paramètres du groupe de cellules ajustables comme illustré ci-dessous. Chapitre 4 : Applications types 71 72 Ordonnancement multigamme Un atelier de travail des métaux doit trouver le meilleur moyen de planifier un ensemble de projets à répartir par étapes réalisables sur différentes machines. Chaque projet compte cinq tâches, dont la réalisation doit s’effectuer dans un certain ordre. Chaque tâche doit être accomplie sur une machine particulière et requiert une durée d’exécution spécifique. Il y a cinq projets et cinq machines. Le bouton Programme, en haut de la feuille de calcul, retrace le graphique à barres pour indiquer le moment d’exécution prévu de chaque tâche. Fichier de l’exemple : Ordonnancement multigamme.xls But : Affecter les éléments d’un projet (tâches) à des machines de manière à minimiser la durée totale de tous les projets. Méthode de résolution : ordre Problèmes similaires : Problèmes de planification ou gestion de projet Chapitre 4 : Applications types 73 Modèle La cellule D5 calcule le temps écoulé entre le début de la première tâche planifiée et la fin de la dernière tâche planifiée. Ce temps total est l’élément à minimiser. Les cellules G11:G35 contiennent les variables (les tâches) à organiser de différentes manières pour déterminer l’ordre optimal. Les équations calculent le moment auquel chaque tâche peut être exécutée sur la machine nécessaire à sa réalisation. Résolution On sélectionne l’ensemble de cellules ajustables G11:G35 et on choisit la méthode de résolution ordre. On minimise la cellule D5. 74 Ordonnancement multigamme Emplacement de pylônes radio Un réseau radio veut ériger trois pylônes dans une région comptant 12 communautés importantes. Chaque communauté présente une population de taille différente et chaque pylône, une portée différente. Le but est de placer les pylônes de manière à couvrir un maximum d’auditeurs possibles dans le rayon de diffusion des pylônes. y x 1 1 Un exemple plus complexe de ce type de problème serait celui de l’emplacement de plusieurs usines appelées à se trouver a) à proximité de leurs fournisseurs comme de leurs clients, b) dans un vaste espace peu onéreux et c) à proximité d’une vaste main-d’œuvre technique qualifiée. D’autres facteurs d’influence, tels que les programmes d’incitation fiscale, pourraient également entrer en ligne de compte. Evolver peut aider à trouver les meilleurs emplacements dans un espace à coordonnées x,y ou même x,y,z. Fichier de l’exemple : Emplacement de pylônes radio.xls But : Trouver les meilleures coordonnées x,y pour l’emplacement de trois pylônes radio, de manière à couvrir la plus grande population d’écoute potentielle. Méthode de résolution : recette Problèmes similaires : Recherche de sites d’entreposage qui minimisent les transports entre entrepôts et magasins. Implantation de casernes de pompiers de manière à couvrir optimalement les populations avec un nombre de casernes limités, compte tenu de facteurs tels que la densité de logement. Chapitre 4 : Applications types 75 Modèle Le fichier « Emplacement de pylônes radio.xls » modélise un espace bidimensionnel où la disposition de trois pylônes radio détermine le nombre d'auditeurs potentiels atteints. Les cellules C6:D8 contiennent les coordonnées x,y des trois pylônes. L’illustration du modèle se compose de deux éléments : une image bitmap des densités de population (en vert) collée depuis le programme Windows Paintbrush, et un diagramme de dispersion Excel recalculé automatiquement en fonction de l’emplacement des pylônes. Dix communautés sont représentées ponctuellement. Le modèle Excel calcule la distance entre les communautés et les pylônes dans les cellules K4:M15, de manière à déterminer si chaque communauté est couverte (oui) ou non. La population totale de toutes les communautés couvertes (la valeur à maximiser) se calcule dans la cellule O17. Résolution On maximise la population atteinte dans la cellule O17 par ajustement des cellules d’emplacement des pylônes C6:D8. On choisit la méthode de résolution « recette » et on fixe les plages des variables de 0 à 50 (limites de la zone d’emplacement). Sous cette méthode, Evolver ajuste les variables choisies comme bon lui semble. Comme dans le cas d’une recette de cuisine, l'approche essaie de trouver le bon mélange d'« ingrédients » (les coordonnées x,y) pour produire la solution optimale. 76 Emplacement de pylônes radio Équilibrage de portefeuilles Un courtier a une liste de 80 titres, représentant chacun une valeur monétaire différente. Il désire grouper ces titres en cinq ensembles (portefeuilles) dont les valeurs totales sont aussi proches que possible. Il s’agit ici d’un exemple relevant d’une classe générale de problèmes dits d’emballage optimal. Le chargement des cales d’un cargo de manière à répartir uniformément le poids en est un autre exemple. S’il y a des millions de petits éléments à « emballer » dans quelques groupes seulement (des grains de blé dans les cales d’un navire, par exemple), une distribution plus ou moins égale peut être estimée sans grande différence de poids. En revanche, plusieurs douzaines de paquets de poids et/ou tailles différents peuvent être disposés de différentes manières, et un emballage efficace peut améliorer l’équilibre qu’on atteindrait manuellement. Fichier de l’exemple : Equilibrage de portefeuilles.xls But : Répartir une liste de titres en cinq portefeuilles différents dont les valeurs totales sont aussi proches que possible les unes des autres. Méthode de résolution : groupement Problèmes similaires : Formation d’équipes dotées de talents collectifs plus ou moins équivalents. Chargement de conteneurs dans les cales d’un bateau pour répartir uniformément la charge. Chapitre 4 : Applications types 77 Modèle Le fichier « Equilibrage de portefeuilles.xls » modélise une tâche de groupement typique. La colonne A contient les numéros d’identification des titres spécifiques et la colonne B, la valeur de chacun. La colonne C affecte chaque titre à l’un des cinq portefeuilles. Lors de la configuration d’un type de problème à groupement ou emballage optimal sous la méthode de résolution groupement, on veillera, avant de lancer Evolver, à ce que chaque groupe (1-5) soit représenté au moins une fois dans le scénario. Les cellules F6:F10 calculent la valeur totale de chacun des cinq portefeuilles. Ce calcul s’effectue sous critères de base de données hors écran (dans la colonne I) et à l’aide des formules « BDSOMME() » dans les cellules F6:F10. Ainsi, par exemple, la cellule F6 calcule la BDSOMME de toutes les valeurs de la colonne B affectées au groupe 5 (dans la colonne C). 78 Équilibrage de portefeuilles La cellule F12 calcule l’écart type des valeurs de portefeuille totales au moyen de la fonction « ECARTYPE() ». On obtient ainsi une mesure de la proximité des valeurs de portefeuille les unes par rapport aux autres. Le graphique représente la valeur totale de chaque portefeuille, avec une ligne de référence marquant la valeur cible s’ils étaient tous égaux. Résolution On minimise la valeur de la cellule F12 en ajustant les cellules C5:C104. On choisit la méthode « groupement » et on s’assure que les valeurs 1, 2, 3, 4 et 5 figurent chacune au moins une fois dans la colonne C. Sous la méthode de résolution « groupement », Evolver dispose les variables en x groupes, où x représente le nombre de valeurs différentes dans les cellules ajustables au début d’une optimisation. Chapitre 4 : Applications types 79 80 Composition de portefeuille Un jeune couple détient des valeurs dans plusieurs types d’investissement différents, présentant chacun leur propre rapport, croissance potentielle et risque. En combinant plusieurs formules de multiplication de différentes pondérations, ils ont personnalisé une « cote » leur indiquant la mesure dans laquelle une combinaison particulière d'investissements répond à leurs besoins. Fichier de l’exemple : Composition de portefeuille.xls But : Trouver la combinaison optimale d’investissements pour maximiser le bénéfice, compte tenu du rapport risque/besoin de rendement actuel. Méthode de résolution : budget Chapitre 4 : Applications types 81 Modèle Cet exemple présente un modèle d’investissement classique cherchant à équilibrer le risque de perte par rapport au rendement. Chaque type d’investissement listé dans la colonne A reçoit une certaine pondération dans la colonne C. Le modèle multiplie les pourcentages de rendement par la pondération de chaque investissement dans le portefeuille pour révéler le rapport total dans la cellule C18. On calcule aussi le risque total dans la cellule C19, dont la valeur ne doit pas être supérieure à celle de risque acceptable indiquée dans la cellule C20. Résolution La « cote » totale, dans la cellule 22, reflète le rapport total moins la pénalité du risque éventuel au-delà du pourcentage acceptable. Cette cote doit être maximisée. 82 Composition de portefeuille Émetteurs radio Un réseau radio achète trois pylônes radio désaffectés dans une région comptant neuf communautés importantes. Le réseau désire acheter de nouveaux émetteurs et les installer aux pylônes pour les remettre en service. Comme le budget est limité, le but est de dépenser le moins possible pour l’achat d’émetteurs capables, malgré tout, de couvrir les neuf communautés avoisinantes. On présume un modèle de prix linéaire, où le coût d'un émetteur est directement lié à sa puissance. On recherche donc la puissance la plus faible possible. On pourrait tout aussi bien créer un tableau de recherche des types et prix des émetteurs. Fichier de l’exemple : Emetteurs radio.xls But : Trouver pour chaque pylône l’émetteur le plus faible (le moins cher) possible et couvrir les neuf communautés visées. Méthode de résolution : recette Problèmes similaires : Problèmes de couverture d’ensemble, où plusieurs éléments doivent être décrits par un petit nombre d'ensembles bien définis. Chapitre 4 : Applications types 83 Modèle Cet exemple est fort similaire à celui d'emplacement de pylônes radio (Emplacement de pylônes radio.xls), à la différence que les emplacements sont dans ce cas-ci hors service, et que les variables à ajuster sont les plages de puissance des pylônes, dans les cellules E5:E7. On additionne le coût des émetteurs des trois pylônes dans la cellule E12, qui représente la cellule cible à minimiser. Les cellules K4:M12 calculent la distance entre les pylônes et chaque communauté, et la colonne N renvoie VRAI quand une communauté est suffisamment proche d’un émetteur pour être couverte. Toutes ces contraintes sont vérifiées sous une seule contrainte ferme intitulée Toutes zones couvertes ?. Cette contrainte fait appel à la formule ET($N$4:$N$12), qui ne renvoie VRAI que si toutes les valeurs de la colonne N sont vraies. Résolution 84 On minimise la puissance requise dans la cellule E12 en ajustant les rayons des pylônes dans les cellules E5:E7. On choisit la méthode de résolution « recette » et on définit les plages des variables de 0 à 100. La seule contrainte ferme, définie au format de formule Excel, est décrite plus haut. Émetteurs radio Achat Quand il existe de nombreuses manières d'acheter un produit, les remises sur quantité rendent difficile la détermination de l’approche la plus rentable. Ce modèle présente un simple tarif, indiquant les prix d’un solvant particulier avec remises sur quantité. Vous devez acheter au moins 155 litres du solvant, vendu en fûts de petite, moyenne, grande et extra-grande capacité. Vous désirez acheter la quantité adéquate de chaque type de fût pour minimiser votre coût. Fichier de l’exemple : Achat.xls But : Dépenser le moins possible à l’achat de 155 litres de solvant. Méthode de résolution : recette Problèmes similaires : Situation opposée : Créer un tarif qui récompense le plus uniformément et le plus équitablement les commandes de grandes quantités. Chapitre 4 : Applications types 85 Modèle Le solvant est proposé en fûts de 3, 6, 10 et 14 litres. Le tarif de chaque format est présenté dans les cellules D6:H9. Les cellules H13:H16 contiennent les quantités à acheter dans chaque format. La colonne K calcule le coût de chaque achat et la cellule K18 représente le coût total. Ce modèle permet de changer la quantité requise (cellule I19) de 155 à une valeur au choix. La cellule I18 contient le nombre total de litres achetés ; elle doit donc représenter au moins le nombre requis tel qu’établi à la cellule I19 (155). La seule contrainte ferme est que la quantité achetée soit au moins égale à celle requise. Il nous faut 155 litres. On pourrait donc juger utile de commander 11 fûts extra-larges (154 litres) plus un petit fût (3 litres), soit un total de 157 litres. Au tarif indiqué, cela reviendrait à un coût total de €1 200. L’optimisation révèle cependant une formule plus rentable encore. Résolution 86 On minimise le coût dans la cellule K18 en ajustant les quantités à acheter dans les cellules H13:H16. On choisit la méthode de résolution recette pour ajuster les valeurs, et on limite les plages de ces variables entre 1 et 20. Comme il n’est pas possible d’acheter un fût partiel, on spécifie l’option de valeurs « entières » dans la boîte de dialogue Cellules ajustables. Comme on ne peut pas acheter moins de 155 litres, on définit aussi une contrainte ferme indiquant que I18>155. Achat Problème du voyageur de commerce Un voyageur de commerce doit se rendre une fois dans chaque ville de son territoire. Quel est l’itinéraire le plus court qui lui permettra de couvrir chaque ville ? Il s’agit ici d’un problème d’optimisation classique particulièrement difficile à résoudre selon les techniques traditionnelles quand le nombre de villes est grand (>50). La recherche du meilleur ordre d’exécution des tâches dans une usine présenterait un problème similaire. Ainsi, il pourrait être beaucoup plus simple d’appliquer la peinture noire après la blanche plutôt que l’inverse. Sous Evolver, ces types de problème se résolvent le mieux à l’aide de la méthode ordre. Fichier de l’exemple : Problème du voyageur de commerce.xls But : Rechercher l’itinéraire le plus court entre n villes en passant une fois par chacune. Méthode de résolution : ordre Problèmes similaires : Planifier le perçage le plus rapide possible d’une carte de circuit imprimé. Chapitre 4 : Applications types 87 Modèle Le fichier « Problème du voyageur de commerce.xls » calcule l’itinéraire d'un voyage vers différentes villes en recherchant les distances sur un tableau. La colonne A contient les numéros d’identification des villes. La colonne B contient les noms correspondant à ces numéros (par fonction de recherche). L’ordre dans lequel les villes (et leurs numéros) figurent de haut en bas représente l’ordre dans lequel elles sont visitées. Par exemple, si on entre « 9 » dans la cellule A3, Ottawa est la première ville visitée. « 6 » (Halifax) dans la cellule A4 désignerait Halifax comme deuxième ville. Les distances entre les villes sont représentées dans le tableau à partir de C25. Les distances indiquées dans le tableau sont symétriques (la distance de A à B est identique à celle de B à A). Les modèles plus réalistes peuvent cependant inclure des distances non symétriques pour représenter la difficulté accrue du voyage dans l’une ou l’autre des directions (à cause des péages, moyens de transport disponibles, direction des vents, relief, etc.) Une fonction doit maintenant être utilisée pour calculer la longueur du trajet entre ces villes. La longueur de route totale se stocke dans la cellule G2, qui représente la cellule à optimiser. On utilise ici la fonction « RouteLength ». Il s’agit d’une fonction VBA personnalisée dans Problème du voyageur de commerce.xls. Résolution On minimise la valeur de la cellule G2 en ajustant les cellules A3:A22. On choisit la méthode « ordre » et on assure que les valeurs 1 à 20 figurent dans les cellules ajustables (A3:A22) avant de démarrer l’optimisation. Sous la méthode de résolution « ordre », Evolver réorganise les variables choisies, en essayant différentes permutations des variables existantes. 88 Problème du voyageur de commerce Navigateur spatial Membre de l’équipage de lancement de la navette spatiale « Evolver III », vous devez calculer la force et la direction de chaque poussée de fusée pour atteindre votre destination en consommant le moins de carburant possible. Les meilleures solutions exploiteront probablement l’effet de « fouet » gravitationnel des « soleils » proches pour économiser le carburant. Fichier de l’exemple : Navigateur spatial.xls But : Amener un vaisseau spatial à sa destination en consommant le moins de carburant possible. Profiter de la gravité d’étoiles avoisinantes. Méthode de résolution : recette Problèmes similaires : Problèmes de contrôle de procédé Chapitre 4 : Applications types 89 Modèle Les cellules Q5:R15 contiennent les valeurs de souffle et de direction de chacune de 10 étapes. La cellule Q16, que nous voulons minimiser, représente simplement la somme de tout le carburant consommé sur les 10 étapes (Q4:Q13). Le modèle est soumis aux contraintes fermes suivantes : a) la position finale du vaisseau doit se trouver dans une marge de 10 unités horizontales de sa destination et b) elle doit se trouver dans une marge de 10 unités verticales. Résolution 90 On minimise la cellule Q16. On crée un groupe de cellules ajustables et on choisit la méthode de résolution recette applicable aux cellules Q5:R13. Les cellules de souffle (Q5:Q13) doivent être comprises entre 0 et 300 et celles de direction (R5:R13) entre -3 et 3 puisque les radians servent à représenter la direction des souffles. Un radian représente environ 57 degrés. Navigateur spatial Opérateur en bourse Vous opérez sur le marché S&P 500 et vous avez déterminé que l’analyse technique produit de meilleures prédictions que l’analyse fondamentale traditionnelle, et que vous gagnerez du temps une fois votre système élaboré. Il semble qu’il existe un nombre infini de règles d’opération, mais quelques-unes seulement vous auraient assuré un beau profit si vous les aviez suivies. Une recherche par ordinateur intelligente pourrait vous aider à déterminer les règles qui vous auraient permis de réaliser le plus gros gain sur une certaine période historique. Fichier de l’exemple : Opérateur en bourse.xls But : Rechercher l’ensemble de trois règles qui auraient produit le meilleur rendement sur une certaine période de temps. Méthode de résolution : recette Problèmes similaires : Trouver les moyennes mobiles optimales qui auraient produit le meilleur résultat ; tous problèmes de recherche de critères ou de règles. Chapitre 4 : Applications types 91 Modèle Ce modèle utilise plusieurs groupes de cellules ajustables pour résoudre le problème global. Trois règles sont évaluées pour chaque jour de bourse. Si les conditions des trois règles sont vraies, l’ordinateur achète ; sinon, il vend. (Un système plus réaliste ne se limiterait pas simplement à acheter ou vendre, mais parfois aussi à garder ce qu’il a.) Chaque règle est décrite par un ensemble de quatre nombres dans les cellules C5:E8. Cette plage indique : 1) la source de données à laquelle la règle se réfère ; 2) si la valeur des données doit être supérieure ou inférieure à une valeur limite ; 3) la valeur limite qui détermine si la règle est vraie et 4) une valeur modificatrice qui détermine si la valeur en soi doit être examinée ou si la valeur de la veille ou le changement depuis la veille doit l'être. Les valeurs limites varient entre 0 et 1. Elles représentent le pourcentage de la plage de la source de données. Par exemple, si le volume varie entre 5 000 et 10 000, une valeur limite de 0,0 correspondrait à un volume de 5 000, 1,0 à un volume de 10 000 et 0,5 à un volume de 7 500. Ce système permet la référence des règles à n'importe quelle source de données, indépendamment des valeurs prises. Résolution 92 On crée les groupes de cellules ajustables et on choisit la méthode de résolution « recette ». Chaque ligne de C5:E5, C6:E6, C7:E7 et C8:E8 doit être créée séparément, de manière à ce que chaque groupe puisse être associé à ses propres options, telles que valeurs entières et plages. Les paramètres de chaque ensemble de variables sont listés dans F5:F8. On maximise la cellule E10, qui fait appel à une macro pour simuler l’opération sous ces règles. Le profit total réalisé après la simulation de chaque jour dans la base de données historique est renvoyé dans la cellule E10. Opérateur en bourse Transformateur Le transformateur à 2 enroulements doit avoir une puissance nominale de 1080 VA avec pertes pleine charge inférieures à 28 watts et dissipation de chaleur de surface maximum de 0,16 watts/cm². Les coûts doivent être minimisés tout en respectant les critères de performance. Fichier de l’exemple : Transformateur.xls But : Minimiser le coût initial et le coût de fonctionnement d’un transformateur. Méthode de résolution : recette Problèmes similaires : Conception de circuit, conception de pont. Chapitre 4 : Applications types 93 Modèle Les contraintes de valeur nominale, perte de charge et dissipation thermique sont définies comme contraintes souples. On crée une contrainte souple en pénalisant les solutions non conformes aux critères définis. Contrairement aux contraintes fermes qui doivent obligatoirement être satisfaites, Evolver peut, sous contrainte souple, essayer certaines solutions non conformes. Comme ces solutions sont cependant pénalisées par une fonction du modèle qui contrôle les infractions, elles produisent de faibles résultats dans la cellule cible. Ces solutions finissent donc par être rejetées de la population évolutive de solutions possibles. Un modèle sous contrainte souple fonctionne parfois mieux que sous contrainte ferme, si l’approche permet de soulager les contraintes d’un problème. Il permet aussi à Evolver d’accepter une très bonne solution même si elle n’est pas tout à fait conforme aux contraintes, ce qui vaut parfois mieux qu'une solution moins bonne même si conforme à toutes les contraintes. Résolution 94 On calcule le coût des matériaux (coût initial) et les coûts de fonctionnement (coût de l’électricité * électricité gaspillée) dans les cellules F11 et F12. On combine ces valeurs aux fonctions de pénalité définies dans F18:F20 pour produire le coût final sous contraintes dans la cellule F22. On minimise cette cellule cible selon la méthode de résolution « recette ». Transformateur Transports Est-il possible d’assurer économiquement le transport d’objets à travers les États-Unis ? Ce problème standard est une version élaborée d’un exemple plus ancien de Microsoft Solver. On cherche à minimiser les coûts de transport de produits depuis les usines de production vers les entrepôts à proximité des centres de demande urbaine, le tout sans dépasser l’offre de chaque usine et en répondant à la demande de chaque centre urbain. Pour rendre le problème plus réaliste, les coûts de transport, non plus linéaires, dépendent ici du nombre de camions nécessaires. Un camion peut transporter jusqu’à 6 objets ; le transport de 14 objets requiert donc 3 camions (transportant 6 + 6 + 2 objets). Fichier de l’exemple : Transports.xls But : Transporter des objets depuis trois usines vers cinq entrepôts aussi économiquement que possible. Méthode de résolution : recette Problèmes similaires : Conception de réseaux de communications. Chapitre 4 : Applications types 95 Modèle Les cellules C5:E7 contiennent le nombre d’objets transportés depuis chaque usine vers chaque entrepôt. C13:E13 calculent le nombre de camions nécessaires au transport de ces objets. Le modèle est soumis aux contraintes fermes suivantes : 1) le total expédié depuis chaque usine doit être inférieur ou égal à l’offre disponible à l’usine et 2) le total expédié depuis toutes les usines vers chaque entrepôt doit être supérieur ou égal à la quantité demandée par l'entrepôt. On assure ainsi que chaque entrepôt reçoive ce dont il a besoin, sans surcharger aucune usine. Résolution On applique la méthode de résolution « recette » sur les cellules C5:E7, avec valeurs entières comprises entre 0 et 500. Un ensemble de contraintes fermes est entré pour chaque usine, spécifiant que les expéditions d’usine <= offre d’usine. Un deuxième ensemble de contraintes fermes est défini pour chaque entrepôt, spécifiant que les expéditions totales vers l’entrepôt >= demande de l’entrepôt. On minimise les coûts de transport dans la cellule B22. 96 Transports Chapitre 5 : Guide de référence Evolver Commande Définition du modèle ...................................................99 Plages de cellules ajustables ..................................................................101 Groupes de cellules ajustables ..........................................................104 Méthode de résolution « recette »........................................106 Méthode de résolution « ordre » ..........................................106 Méthode de résolution « groupement »..............................107 Méthode de résolution budget.............................................108 Méthode de résolution « projet ».........................................109 Méthode de résolution « programme »...............................110 Taux de croisement et de mutation .....................................112 Nombre de blocs temps et cellules sous contrainte .........114 Tâches précédentes.................................................................114 Opérateurs................................................................................115 Contraintes ............................................................................................118 Ajouter – Ajout de contraintes .............................................118 Format de contrainte Simple ou Formule ..........................119 Contraintes souples................................................................120 Commande Paramètres d'optimisation ........................................123 Commande Paramètres d’optimisation – Onglet Général............123 Commande Paramètres d’optimisation – Onglet Temps d’exécution ............................................................................................124 Optimisation............................................................................125 Commande Paramètres d’optimisation – Onglet Affichage ........127 Commande Paramètres d’optimisation – Onglet Macros .............128 Commande Démarrer l'optimisation.............................................129 Commandes Utilitaires...................................................................131 Commande Paramètres d’application................................................131 Commande Solveur de contraintes...................................................132 Chapitre 5 : Guide de référence Evolver 97 Suivi Evolver................................................................................... 135 Suivi Evolver – Onglet Progression ................................................. 136 Suivi Evolver – Onglet Synthèse...................................................... 138 Suivi Evolver – Onglet Journal ......................................................... 139 Suivi Evolver – Onglet Population .................................................. 140 Suivi Evolver – Onglet Diversité...................................................... 141 Suivi Evolver – Onglet Options d’arrêt........................................... 142 98 Commande Définition du modèle Définit le but, les cellules ajustables et les contraintes d’un modèle. La commande Définition du modèle d’Evolver (ou l’icône Modèle de la barre d’outils d’Evolver) ouvre la boîte de dialogue Modèle . Boîte de dialogue Evolver – Modèle. La boîte de dialogue Evolver – Modèle sert à spécifier ou décrire un problème d’optimisation à Evolver. Vide à chaque ouverture de nouveau classeur Excel, cette boîte de dialogue enregistre cependant son information avec chaque classeur. À la réouverture de la feuille de calcul, elle se remplit donc de la même manière. Chaque composant de cette boîte de dialogue est décrit dans cette section. Chapitre 5 : Guide de référence Evolver 99 Options de la boîte de dialogue Modèle : • But d’optimisation.. L’option But d’optimisation détermine le type de réponse qu’Evolver doit rechercher. Minimum configure la recherche de valeurs variables qui produisent la plus petite valeur possible pour la cellule cible (jusqu’à –1e300). Maximum configure la recherche de valeurs variables qui produisent la plus grande valeur possible pour la cellule cible (jusqu’à +1e300). Valeur cible configure la recherche de valeurs variables qui produisent pour la cellule cible une valeur aussi proche que possible de la valeur spécifiée. Evolver s’arrête automatiquement lorsqu’il trouve une solution qui produit le résultat désiré. Par exemple, si vous configurez la recherche du résultat le plus proche de 14, Evolver trouvera peut-être des scénarios produisant une valeur de 13,7 ou 14,5. Remarquez que 13,7 est plus proche de 14 que 14,5. Peu importe que la valeur soit supérieure ou inférieure à celle que vous spécifiez : Evolver considère strictement la proximité de la valeur. • Cellule. La cellule ou cellule cible contient la sortie du modèle. Une valeur sera générée pour cette cellule cible à chaque « solution itérative » produite par Evolver (c.-à-d. chaque combinaison de valeurs possibles des cellules ajustables). La cellule cible doit contenir une formule qui dépend (directement ou à travers une série de calculs) des cellules ajustables. Cette formule peut faire appel aux formules Excel standard telles que SOMME() ou aux macro-fonctions VBA définies par l’utilisateur. Ces dernières permettent l’évaluation par Evolver de modèles extrêmement complexes. Pendant la recherche, Evolver se réfère à la valeur de la cellule cible comme cote ou « fonction de pertinence » pour évaluer la qualité de chaque scénario possible et déterminer les valeurs variables dont il convient de poursuivre le croisement et celles destinées à « mourir ». Dans l’évolution biologique, la mort est la « fonction de pertinence » qui détermine les gènes appelés à survivre et prospérer dans la population. Lors de l’élaboration d’un modèle, la cellule cible doit refléter la pertinence ou la « qualité » d’un scénario donné, de sorte qu’Evolver puisse mesurer précisément le progrès de ses calculs. 100 Commande Définition du modèle Plages de cellules ajustables Le tableau des Plages de cellules ajustables affiche chaque plage contenant les cellules ou valeurs qu’Evolver peut ajuster, ainsi que la description entrée pour ces cellules. Chaque ensemble de cellules ajustables figure sur une ligne horizontale. Une ou plusieurs plages de cellules ajustables peuvent être incluses dans un Groupe de cellules ajustables. Toutes les plages de cellules d’un groupe ont en commun leur méthode de résolution, leur taux de croisement, leur taux de mutation et leurs opérateurs. Comme les cellules ajustables contiennent les variables du problème, il faut définir au moins un groupe de cellules ajustables pour utiliser Evolver. Un groupe de cellules ajustables suffit à décrire la plupart des problèmes. Ceux plus complexes peuvent cependant requérir différents blocs de variables à résoudre simultanément sous plusieurs méthodes de résolution. Cette architecture permet l’élaboration et la description de problèmes complexes sous la forme de groupes divers de cellules ajustables. Les options suivantes sont proposées pour la définition des plages de cellules ajustables : • Ajouter. Pour ajouter de nouvelles cellules ajustables, cliquez sur le bouton « Ajouter » en regard de la zone de liste de cellules ajustables. Sélectionnez la cellule ou la plage de cellules à ajouter. Une nouvelle ligne s’affiche dans le tableau des Plages de cellules ajustables. Ce tableau admet l’entrée de valeurs Minimum et Maximum pour les cellules de la plage, de même que du type de valeurs à tester – entières sur toute la plage, ou quelconques. Chapitre 5 : Guide de référence Evolver 101 • Minimum et Maximum. Après la spécification de l’emplacement des cellules ajustables, les entrées Minimum et Maximum définissent la plage de valeurs acceptables pour chaque cellule. Par défaut, chaque cellule ajustable reçoit une valeur de nombre réel (virgule flottante double précision) entre l’infini négatif (infini-) et l’infini positif (infini+). Les paramètres de plage sont des contraintes strictement appliquées. Evolver n’admet aucune variable de valeur extérieure aux plages définies. La définition de plages spécifiques de variables est recommandée, dans la mesure du possible, pour améliorer les performances d’Evolver : par exemple, quand vous savez que le nombre ne peut pas être négatif ou qu’Evolver ne doit essayer que les valeurs comprises entre 50 et 70 pour une variable donnée. • Plage. La référence de la ou des cellules à ajuster s’inscrit dans le champ Plage. Cette référence se saisit par sélection de la région concernée de la feuille de calcul à l’aide de la souris, par l’entrée d’un nom de plage ou par la saisie d’une référence Excel valable telle que Feuille1!A1:B8. Le champ Plage est disponible pour toutes les méthodes de résolution. Pour les méthodes recette et budget, toutefois, les options Minimum, Maximum et Valeurs peuvent être ajoutées pour permettre l’entrée d’une plage pour les cellules ajustables. REMARQUE : Affecter des plages étroites aux variables limite l’étendue de la recherche et accélère la convergence d’Evolver vers une solution. Attention cependant à ne pas limiter excessivement les plages de variables : Evolver risquerait de ne pas trouver de solutions optimales. 102 Commande Définition du modèle • Valeurs. L’entrée Valeurs permet de préciser qu’Evolver doit traiter toutes les variables de la plage spécifiée en tant que valeurs entières (par exemple, 22), plutôt que de nombres réels (22,395). Cette option n’est disponible que pour les méthodes de résolution « recette » et « budget ». Par défaut, les variables sont traitées en tant que nombres réels. Veillez à activer le paramètre Entiers pour les modèles dont les variables recherchent des éléments de table (RECHERCHEH(), RECHERCHEV(), INDEX(), DECALER(), etc.) Remarquez que le paramètre Entiers affecte toutes les variables de la plage sélectionnée. Pour traiter certaines variables comme nombres réels et d’autres comme valeurs entières, on créera deux groupes de cellules ajustables plutôt qu’un et on choisira Entiers pour un bloc et Quelconques pour l’autre : on « ajoute » un groupe recette de cellules ajustables et on garde le paramètre de valeurs « Quelconques ». On « ajoute » ensuite une deuxième plage de cellules, en sélectionnant cette fois le paramètre de valeurs « Entiers » pour les cellules ajustables concernées. Chapitre 5 : Guide de référence Evolver 103 Groupes de cellules ajustables Chaque groupe de cellules ajustables peut contenir plusieurs plages de cellules. On peut ainsi créer une « hiérarchie » de groupes de plages de cellules apparentées les unes aux autres. Au sein de chaque groupe, chaque plage de cellules peut avoir sa propre contrainte de plage Min-Max. Toutes les plages de cellules d’un groupe de cellules ajustables ont en commun leur méthode de résolution, leur taux de croisement, leur taux de mutation et leurs opérateurs, spécifiés dans la boîte de dialogue Paramètres du groupe de cellules ajustables. Pour accéder à cette boîte de dialogue, cliquez sur le bouton Groupe, en regard du tableau Plages de cellules ajustables. Vous pouvez ainsi créer un nouveau Groupe et y ajouter des plages de cellules ajustables ou modifier les paramètres d’un groupe existant. 104 Commande Définition du modèle L’onglet Général de la boîte de dialogue Paramètres du groupe de cellules ajustables propose les options suivantes : • Description. Décrit le groupe des plages de cellules ajustables dans les boîtes de dialogue et les rapports. • Méthode de résolution. Détermine la méthode de résolution à utiliser pour chaque plage de cellules ajustables comprise dans le groupe. Lors de la sélection d’une plage de cellules à ajuster, on précise aussi la « méthode de résolution » à appliquer lors de l’ajustage de ces cellules par Evolver. Chaque méthode de résolution représente essentiellement un algorithme génétique différent, doté de ses propres routines de sélection optimisée, croisement et mutation. Chaque méthode de résolution jongle avec les valeurs des variables de manières différentes. La méthode de résolution « recette », par exemple, traite chaque variable sélectionnée comme un ingrédient d’une recette : la valeur de chaque variable peut changer indépendamment de celle des autres. En revanche, la méthode « ordre » permute les valeurs des cellules ajustables, par réorganisation des valeurs originales. Evolver propose six méthodes de résolution. Trois d’entre elles (recette, ordre et groupement) reposent sur des algorithmes totalement différents. Les trois autres sont les descendantes des trois premières, auxquelles elles ajoutent des contraintes. Chapitre 5 : Guide de référence Evolver 105 La fonction de chaque méthode de résolution est décrite dans les paragraphes qui suivent. Pour mieux comprendre l’emploi de chaque méthode, ne manquez pas d’explorer les fichiers d’exemple joints au logiciel (voir le Chapitre 4 : Applications types). Méthode de résolution « recette » La méthode de résolution « recette » est la plus simple et la plus courante. Choisissez-la quand les variables à ajuster peuvent varier indépendamment les unes des autres. Pensez à chaque variable comme s’il s’agissait de la quantité d’un ingrédient dans un gâteau : en choisissant la méthode de résolution « recette », on dit à Evolver de générer pour ces variables des valeurs devant mener au meilleur mélange possible. La seule contrainte imposée sous la méthode recette est celle de la plage (valeur supérieure et valeur inférieure) dans laquelle les valeurs doivent être comprises. Cette plage se définit dans les champs Min et Max de la boîte de dialogue Cellules ajustables (1 à 100, par exemple). On y indique aussi si Evolver doit essayer des nombres entiers (1, 2, 7) ou réels (1,4230024 ; 63,72442). Les exemples ci-dessous illustrent un ensemble de valeurs de variables telles qu’elles pourraient figurer dans une feuille de calcul avant l’invocation d’Evolver, puis selon deux nouveaux scénarios résultant de la méthode de résolution recette. Méthode de résolution « ordre » 106 Ensemble initial de valeurs de variables Ensemble de valeurs de recette possibles Autre ensemble de valeurs de recette possibles 23,472 15,344 37,452 145 101 190 9 32,44 7,073 65,664 14,021 93,572 La méthode de résolution « ordre » est la seconde méthode la plus utilisée, après « recette ». Elle repose sur la permutation d’une liste d’éléments, dans un effort de recherche du meilleur ordre d’un ensemble de valeurs données. Contrairement aux méthodes de résolution « recette » et « budget », sous lesquelles Evolver doit générer des valeurs pour les variables choisies, cette méthode utilise les valeurs existantes du modèle. Commande Définition du modèle La méthode peut être choisie pour déterminer l’ordre dans lequel différentes tâches doivent être accomplies. Par exemple, pour déterminer l’ordre dans lequel il convient d’accomplir les tâches 1,2,3,4 et 5, la méthode « ordre » mélange ces valeurs, produisant par exemple le scénario 3,5,2,4,1. Comme Evolver se limite à essayer les valeurs variables de la feuille de calcul initiale, il n’est pas nécessaire de définir de plage Min – Max pour les cellules ajustables sous la méthode « ordre ». Les exemples ci-dessous illustrent un ensemble de valeurs de variables telles qu’elles pourraient figurer dans une feuille de calcul avant l’invocation d’Evolver, puis selon deux nouveaux scénarios résultant de la méthode de résolution ordre. Méthode de résolution « groupement » Ensemble initial de valeurs de variables Ensemble de valeurs d’ordre possibles Autre ensemble de valeurs d’ordre possibles 23,472 145 65,664 145 23,472 9 9 65,664 145 65,664 9 23,472 La méthode de résolution « groupement » est utile quand le problème implique plusieurs variables à regrouper en ensembles. Le nombre de groupements créés par Evolver correspond à celui de valeurs uniques présentes dans les cellules ajustables en début d’optimisation. Lors de l’élaboration d’un modèle, on veillera donc à ce que chaque groupe soit représenté au moins une fois. Supposons, par exemple, une plage de 50 cellules contenant seulement les valeurs 2, 3,5 et 17. Si on sélectionne ces 50 cellules et qu’on ajuste les valeurs selon la méthode de résolution « groupement », Evolver affecte chacune des 50 cellules à l’un de trois groupes : 2, 3,5 et 17. Tous les groupes sont représentés par au moins une des cellules ajustables, comme si on jetait chacune des 50 variables dans des casiers, en veillant à ce qu’il y ait au moins une variable dans chaque casier. On pourrait aussi, par exemple, affecter les valeurs 1, 0 et –1 à un système d’opérations boursières, pour indiquer l’achat, la vente et le maintien. Comme dans la méthode « ordre », Evolver organise les valeurs existantes. Il n’y a donc pas de plage min-max ni d’option de nombres entiers ou réels à définir. REMARQUE : Si vous choisissez la méthode « groupement », ne laissez aucune cellule blanche, à moins que vous ne désiriez que la valeur 0,0 soit considérée comme l’un des groupes. Chapitre 5 : Guide de référence Evolver 107 Remarquez que la méthode « recette » sous option de valeurs « entières » activée et plage de 1 à 3 (ou autre nombre applicable) se rapprocherait de la méthode « groupement ». La différence tient à la manière dont les méthodes « recette » et « groupement » exécutent leur recherche. Les routines de sélection, mutation et croisement sont différentes : le groupement considère davantage les valeurs de toutes les variables, car il peut permuter les ensembles de variables entre les différents groupes. Les exemples ci-dessous illustrent un ensemble de valeurs de variables telles qu’elles pourraient figurer dans une feuille de calcul avant l’invocation d’Evolver, puis selon deux nouveaux scénarios résultant de la méthode de résolution groupement. Méthode de résolution budget Ensemble initial de valeurs de variables Ensemble de valeurs de groupement possibles Autre ensemble de valeurs de groupement possibles 6 6 8 7 6 7 8 8 6 8 7 7 Un « budget » est comparable à une « recette » si ce n’est que toutes les valeurs des variables doivent représenter un certain total. Ce nombre représente le total des valeurs des variables au moment du démarrage d’une optimisation. Par exemple, pour trouver le meilleur moyen de répartir un budget annuel entre plusieurs services, la méthode de résolution « budget » prend le total des valeurs actuelles des services et utilise cette somme comme budget total à distribuer de manière optimale. Les exemples ci-dessous illustrent deux nouveaux scénarios résultant de la méthode de résolution budget. Ensemble initial de valeurs de budget Ensemble de valeurs de budget possibles Autre ensemble de valeurs de budget possibles 200 93,1 223,5 3,5 30 0 10 100 -67 10 0,4 67 Différentes valeurs sont essayées, mais leur somme demeure 223,5. 108 Commande Définition du modèle Méthode de résolution « projet » La méthode de résolution « projet » est similaire à la méthode « ordre », si ce n’est que certains éléments (tâches) doivent en précéder d’autres. Elle est utile à la gestion de projet, pour réorganiser l’ordre d’exécution des tâches, tout en respectant toujours la préséance des contraintes. Un problème modélisé sous la méthode de résolution Projet est beaucoup plus facile à gérer et à comprendre si les cellules ajustables contenant l’ordre des tâches sont présentées en une seule colonne, plutôt que sur une ligne. La méthode de résolution attend en effet une organisation verticale des cellules de tâches précédentes ; il est du reste plus facile d’examiner la feuille de calcul sous présentation verticale des cellules ajustables. Après avoir spécifié l’emplacement des cellules ajustables, on précise celui des cellules de tâches précédentes dans le volet Tâches précédentes de la boîte de dialogue. Il s’agit ici d’un tableau de cellules décrivant l’ordre de précédence des tâches. La méthode de résolution se réfère à ce tableau pour réorganiser les variables d’un scénario jusqu’à ce que les contraintes de précédence soient satisfaites. Il doit y avoir une ligne dans la plage de tâches précédentes pour chaque tâche comprise dans les cellules ajustables. À partir de la première colonne de la plage des tâches précédentes, le numéro d’identification de chaque tâche dont la tâche de la ligne considérée dépend doit être indiqué dans des colonnes différentes. Exemple de configuration de l’ordre de précédence pour la méthode de résolution Projet. La plage des tâches précédentes doit être spécifiée sur n lignes sur m colonnes, où n représente le nombre de tâches comprises dans le projet (cellules ajustables) et m le plus grand nombre de tâches précédentes possible pour une tâche. Chapitre 5 : Guide de référence Evolver 109 Les exemples ci-dessous illustrent un ensemble de valeurs de variables telles qu’elles pourraient figurer dans une feuille de calcul avant l’invocation d’Evolver, puis selon deux nouveaux scénarios résultant de la méthode de résolution projet, compte tenu de la contrainte que 2 doit toujours suivre 1 et 4 doit toujours suivre 2. Méthode de résolution « programme » Ensemble initial de valeurs de variables Ensemble de valeurs de projet possibles Autre ensemble de valeurs de projet possibles 1 1 1 2 3 2 3 2 4 4 4 3 Un programme est similaire à un groupement : il s’agit d’une affectation de tâches dans le temps. Chaque tâche est censée être de même durée, à l’image des classes d’un établissement scolaire. Contrairement au groupement, toutefois, la boîte de dialogue Paramètres du groupe de cellules ajustables de la méthode de résolution « programme » permet de spécifier directement le nombre de blocs temps (ou groupes) à utiliser. Lorsque cette méthode est sélectionnée, ses options s’affichent dans le volet inférieur de la boîte de dialogue. Dans le volet Paramètres d’optimisation, remarquez qu’une plage de cellules de contrainte peut être définie pour cette méthode. La longueur de cette plage est illimitée, mais sa largeur doit être d’exactement trois colonnes. Huit types de contraintes sont reconnus : 1) (avec) Les tâches de la 1re et de la 3e colonnes doivent avoir lieu dans le même bloc temps. 2) (pas avec) Les tâches de la 1re et de la 3e colonnes ne doivent pas avoir lieu dans même bloc temps. 3) (avant) La tâche de la 1re colonne doit avoir lieu avant celle de la 3e colonne. 110 Commande Définition du modèle 4) (à) La tâche de la 1re colonne doit figurer dans le bloc temps de la 3e colonne. 5) (pas après) La tâche de la 1re colonne doit avoir lieu en même temps que celle de la 3e colonne ou avant. 6) (pas avant) La tâche de la 1re colonne doit avoir lieu en même temps que celle de la 3e colonne ou après. 7) (pas à) La tâche de la 1re colonne ne doit pas figurer dans le bloc temps de la 3e colonne. 8) (après) La tâche de la 1re colonne doit avoir lieu après celle de la 3e colonne. Une contrainte peut être désignée par son code numérique (1 à 8) ou par sa description textuelle (après, pas à, etc.) (Remarque : Toutes les versions traduites d’Evolver reconnaissent la description de contrainte entrée en anglais (after, not at, etc.) aussi bien que dans la langue traduite.) Toutes les contraintes définies dans le problème doivent être satisfaites. Pour définir les contraintes, recherchez un espace vide sur la feuille de calcul et créez-y un tableau dont les colonnes de gauche et de droite représentent les tâches, et celle du milieu indique le type de contrainte. Un chiffre de 1 à 8 représente le type de contrainte correspondant décrit ci-dessus. Les cellules de la plage de contrainte doivent contenir les données de contrainte applicables avant le lancement de l’optimisation. Cette tâche Contrainte Cette tâche 5 4 2 12 2 8 2 3 1 7 1 5 6 2 4 9 3 1 Chapitre 5 : Guide de référence Evolver 111 Les exemples ci-dessous illustrent un ensemble de valeurs de variables telles qu’elles pourraient figurer dans une feuille de calcul avant l’invocation d’Evolver, puis selon deux nouveaux scénarios résultant de la méthode de résolution programme. Ensemble initial de valeurs de variables Ensemble de valeurs de programme possibles Autre ensemble de valeurs de programme possibles 1 1 1 2 1 3 3 3 1 1 1 2 2 2 2 3 3 2 REMARQUE : La méthode de résolution « programme » utilise toujours des nombres entiers, à partir de 1 (1, 2, 3, etc.), indépendamment des valeurs originales des cellules ajustables. Taux de croisement et de mutation L’une des plus grandes difficultés de la recherche de solutions optimales, quand le problème semble présenter des possibilités infinies, consiste à déterminer le point de concentration. Autrement dit, combien de temps de calcul faut-il consacrer à la recherche dans de nouvelles zones de « l’espace de résolution » et combien au raffinement des solutions, dans la population testée, qui se sont déjà révélées plutôt bonnes ? Une bonne partie du succès de l’algorithme génétique a été attribuée à sa capacité de préserver cet équilibre inhérent. La structure de l’AG permet aux bonnes solutions de « se reproduire », tout en gardant toutefois des organismes « moins aptes » pour entretenir la diversité dans l’espoir que, peut-être, un « gène » latent se révèle important dans la solution finale. Le croisement et la mutation sont deux paramètres qui affectent l’envergure de la recherche. Evolver permet à l’utilisateur de les changer avant, mais aussi pendant le processus évolutif. Ainsi, un utilisateur informé peut aider l’AG en décidant de l’endroit où il doit concentrer son énergie. Il est inutile, dans la plupart des cas, d’ajuster les paramètres de croisement et de mutation par défaut (0,5 et 0,1, respectivement). Au cas où vous désireriez affiner l’algorithme de résolution d’un problème, comparer ou, simplement, faire 112 Commande Définition du modèle d’expérience de différents réglages, les paragraphes qui suivent présentent une brève introduction à ces deux paramètres. • Croisement. Le taux de croisement peut être réglé entre 0,01 et 1,0. Il reflète la probabilité que de futurs scénarios ou « organismes » contiennent un mélange d’information de la génération précédente d’organismes parents. Les utilisateurs expérimentés peuvent changer ce taux pour raffiner la performance d’Evolver face à un problème complexe. Ainsi, un taux de 0,5 veut dire qu’un organisme descendant tirera environ 50 % de ses valeurs variables d’un parent et les valeurs restantes de l’autre parent. Un taux de 0,9 veut dire qu’environ 90 % des valeurs de l’organisme descendant viendront du premier parent et les 10 % restants de l’autre parent. Au taux de croisement 1, aucun croisement n’intervient et seuls des clones des parents sont évalués. Evolver utilise par défaut un taux de croisement de 0,5. Il est possible de changer le taux de croisement après le lancement d’une optimisation, à travers l’utilitaire Suivi Evolver (voir plus loin dans ce chapitre). • Taux de mutation. Le taux de mutation peut être réglé entre 0,0 et 1,0. Il reflète la probabilité que les scénarios futurs contiennent des valeurs aléatoires. Un taux de mutation supérieur veut simplement dire qu’un plus grand nombre de mutations ou valeurs de « gène » aléatoires sera introduit dans la population. Comme la mutation intervient après le croisement, un taux de mutation réglé sur 1 (100 % de valeurs aléatoires) empêche effectivement le croisement de produire le moindre effet et Evolver ne produira dans ce cas que des scénarios totalement aléatoires. Si toutes les données de la solution optimale se trouvaient quelque part dans la population, l’opérateur de croisement seul suffirait à composer, en fin de compte, la solution. La mutation s’est révélée une force puissante dans le monde biologique, pour beaucoup des raisons qui la rendent utiles aussi dans un algorithme génétique : il est essentiel d’entretenir la diversité d’une population d’organismes individuels et d’éviter ainsi qu’elle ne devienne trop rigide et inapte à s’adapter à un environnement dynamique. Comme dans un algorithme génétique, les mutations génétiques, chez les animaux, sont souvent la cause ultime du développement de nouvelles fonctions critiques. Chapitre 5 : Guide de référence Evolver 113 Il est inutile, dans la plupart des cas, d’ajuster le paramètre de mutation par défaut. Les utilisateurs expérimentés peuvent cependant l’ajuster pour raffiner la performance d’Evolver face à un problème complexe : lorsque, par exemple, l’utilisateur désire renforcer les mutations si la population est plutôt homogène et qu’aucune nouvelle solution n’a été produite depuis quelques centaines d’essais. La variation de ce paramètre s’effectue généralement entre 0,06 et 0,2. Il est possible de changer dynamiquement le taux de mutation après le lancement d’une optimisation, à travers l’utilitaire Suivi Evolver (voir plus loin dans ce chapitre). L’option Auto, dans la liste déroulante du champ Taux de mutation, active l’ajustement automatique du taux. Cette option permet à Evolver d’accroître automatiquement le taux de mutation lorsqu’un organisme « vieillit » significativement (c.-à-d. qu’il ne change pas sur un nombre considérable d’essais). Pour de nombreux modèles, surtout lorsque le taux de mutation optimal est inconnu, l’option Auto produit plus rapidement de meilleurs résultats. Nombre de blocs temps et cellules sous contrainte Tâches précédentes 114 Pour plus de détails concernant ces options, voir la méthode de résolution Programme dans la section de ce chapitre consacrée aux Méthodes de résolution. Pour plus de détails concernant ces options, voir la méthode de résolution Projet dans la section de ce chapitre consacrée aux Méthodes de résolution. Commande Définition du modèle Opérateurs Pour la méthode de résolution Recette, Evolver inclut des opérateurs génétiques sélectionnables. L’onglet Opérateurs de la boîte de dialogue Paramètres du groupe de cellules ajustables permet de sélectionner l’opérateur génétique (tel que croisement heuristique ou mutation limitrophe) à utiliser lors de la génération des valeurs possibles d’un ensemble de cellules ajustables. Evolver peut même tester automatiquement tous les opérateurs disponibles et identifier le plus performant pour le problème considéré. Les algorithmes génétiques emploient les opérateurs génétiques pour créer de nouveaux membres dans la population de membres actuels. Deux des types d’opérateurs génétiques utilisés par Evolver sont la mutation et le croisement. L’opérateur de mutation détermine si des changements aléatoires vont se produire au niveau des « gènes » (les variables) et comment. L’opérateur de croisement détermine comment les paires de membres d’une population échangent leurs gènes pour produire une « descendance » susceptible de présenter une meilleure solution que l’un ou l’autre des « parents ». Evolver gère les opérateurs génétiques spécialisés suivants : ♦ Croisement arithmétique – Crée un nouveau descendant par combinaison arithmétique des deux parents (par opposition à l’échange de gènes). ♦ Croisement heuristique – Utilise les valeurs produites par les parents pour déterminer le mode de production du descendant. Chapitre 5 : Guide de référence Evolver 115 Mène la recherche dans la direction la plus prometteuse et raffine au niveau local. ♦ Mutation de Cauchy – Conçu pour produire, la plupart du temps, de faibles variations de variables mais capable aussi de produire, occasionnellement, de fortes variations. ♦ Mutation limitrophe – Conçu pour optimiser rapidement les variables qui affectent le résultat de manière monotone et qui peuvent être portées aux extrêmes de leur plage sans violer les contraintes. ♦ Mutation non uniforme – Produit des mutations de plus en plus faibles à mesure que le nombre d’essais calculés augmente. Evolver peut ainsi « raffiner » ses réponses. ♦ Linéaire – Conçu pour résoudre les problèmes pour lesquels la solution optimale se trouve à la limite de l’espace de recherche défini par les contraintes. Cette paire d’opérateurs de mutation et de croisement convient particulièrement bien à la résolution des problèmes d’optimisation linéaire. ♦ Recherche locale – Conçu pour mener la recherche, dans l’espace de résolution, dans le voisinage d’une solution antérieure, avec expansion dans les directions qui produisent une amélioration et contraction dans celles qui produisent un moins bon résultat. Suivant le type de problème d’optimisation considéré, différentes combinaisons d’opérateurs de mutation et de croisement peuvent produire de meilleurs résultats que d’autres. Pour la méthode de résolution Recette, un nombre quelconque d’opérateurs peut être sélectionné sous l’onglet Opérateurs de la boîte de dialogue Paramètres du groupe de cellules ajustables. En présence de sélections multiples, Evolver teste les combinaisons valables des opérateurs sélectionnés pour identifier les plus performants pour le modèle. Après une exécution, la feuille de synthèse d’optimisation classe chaque opérateur sélectionné en fonction de sa performance durant l’exécution. Pour les exécutions ultérieures du même modèle, la sélection des quelques opérateurs les plus performants peut favoriser un processus d’optimisation plus rapide et plus performant. 116 Commande Définition du modèle REMARQUE : Lors de la création de groupes multiples de cellules ajustables, vérifiez qu’aucune cellule de la feuille de calcul ne figure dans plusieurs groupes différents. Chaque groupe de cellules ajustables doit contenir des cellules ajustables uniques car les valeurs du premier groupe seraient sinon omises et remplacées par celles du second groupe. S’il vous paraît qu’un problème doit être représenté par plus d’une méthode de résolution, considérez la répartition des variables en au moins deux groupes. Chapitre 5 : Guide de référence Evolver 117 Contraintes Evolver admet les contraintes, qui définissent les conditions à remplir pour qu’une solution soit valable. Les contraintes définies figurent dans le tableau Contraintes de la boîte de dialogue de Définition du modèle. Ajouter – Ajout de contraintes 118 Cliquez sur le bouton Ajouter, en regard du tableau Contraintes, pour afficher la boîte de dialogue Paramètres de contrainte et y définir les contraintes voulues. La description, le type, la définition et le moment d’évaluation de la contrainte désirée se définissent dans cette boîte de dialogue. Commande Définition du modèle Type de contrainte Format de contrainte Simple ou Formule Evolver admet deux types de contraintes : • Ferme ‐ Les contraintes fermes sont les conditions qui doivent être satisfaites pour qu’une solution soit valable (par exemple, une contrainte ferme pourrait être exprimée sous la forme C10<=A4, et si une solution générait une valeur C10 supérieure à celle de la cellule A4, la solution serait rejetée). • Souple‐ Les contraintes souples sont les conditions que l’on veut respecter autant que possible, mais pour lesquelles on est prêt à accepter le compromis en vue d’une importante amélioration de pertinence ou de résultat de cellule cible. (Par exemple, une contrainte souple pourrait être exprimée sous la forme C10<100 : C10 pourrait dépasser la valeur 100, mais la valeur calculée de la cellule cible serait alors diminuée conformément à la fonction de pénalité définie.) Les formules peuvent être définies selon deux formats : Simple ou Formule. Le type d’information admis pour une contrainte dépend du format sélectionné. • Simple – Le format Simple permet la définition des contraintes selon de simples relations <, <=, >, >= ou =, où une cellule est comparée à la valeur numérique entrée. Par exemple : 0<Valeur de A1<10 où A1 s’entre dans la case Plage de cellules, 0 dans la case Min et 10 dans la case Max. Les opérateurs désirés se sélectionnent dans les listes déroulantes. Sous une contrainte de format « Simple », on peut entrer une valeur Min, une valeur Max, ou les deux. Les valeurs Min et Max entrées doivent être numériques. • Formule – Le format Formule permet l’entrée, pour la contrainte, d’une formule Excel valable, telle que A19<(1,2*E7)+E8. Evolver vérifie si la formule entrée est VRAIE ou FAUSSE, afin de déterminer le respect ou non de la contrainte. Chapitre 5 : Guide de référence Evolver 119 Contraintes souples Les contraintes souples sont les conditions que l’on veut respecter autant que possible, mais pour lesquelles on est prêt à accepter le compromis en vue d’une importante amélioration de pertinence ou de résultat de cellule cible. Lorsqu’une contrainte souple n’est pas satisfaite, il en résulte un changement de résultat pour la cellule cible, plus éloigné de sa valeur optimale. L’importance du changement imputable à une contrainte souple non satisfaite se calcule d’après une fonction de pénalité définie au moment de la configuration de la contrainte souple. Concernant les fonctions de pénalité : • Définition d’une fonction de pénalité. Evolver propose une fonction de pénalité par défaut, affichée dès les premières étapes de définition d’une contrainte souple. Une formule Excel valable quelconque peut cependant être utilisée pour calculer l’importance de la pénalité à appliquer lorsque la contrainte souple n’est pas satisfaite. Une fonction de pénalité ainsi entrée doit inclure le mot-clé écart, pour représenter le dépassement absolu de la limite de la contrainte. Au terme de chaque simulation de solution itérative, Evolver vérifie si la contrainte souple a été respectée. Si non, la valeur de l’écart est introduite dans la formule de pénalité pour calcul de la pénalité à appliquer à la statistique de la cellule cible. La pénalité s’ajoute à la statistique calculée pour la cellule cible ou s’en soustrait, de manière à la rendre « moins optimale ». Ainsi, si Maximum est sélectionné dans le champ But d’optimisation de la boîte de dialogue Modèle d’Evolver, la pénalité est déduite de la statistique calculée pour la cellule cible. 120 Commande Définition du modèle • Visualisation des effets d’une fonction de pénalité entrée. Evolver s’accompagne d’une feuille de calcul Excel intitulée Penalité.xls, utile à l’évaluation des effets de différentes fonctions de pénalité sur les contraintes souples et les résultats de cellule cible. Cette feuille de calcul permet la sélection, dans un modèle, d’une contrainte souple dont on désire analyser les effets. On peut ensuite changer la fonction de pénalité pour voir comment elle mappera une valeur spécifique pour une contrainte souple non satisfaite dans une valeur cible particulière pénalisée. Par exemple, si la contrainte souple est A10<100, on pourrait consulter Penalité.xls pour voir ce que serait la valeur cible si une valeur de 105 était calculée pour la cellule A10. • Visualisation des pénalités appliquées. Lorsqu’une pénalité est appliquée à la cellule cible sous l’effet d’une contrainte souple non satisfaite, Suivi Evolver permet de visualiser l’importance de cette pénalité. Les valeurs des pénalités figurent aussi dans le Journal d’optimisation créé, facultativement, après l’optimisation. REMARQUE : Si vous placez une solution dans votre feuille de calcul sous les options Actualiser les valeurs de cellules ajustables de la boîte de dialogue Arrêt, le résultat calculé pour la cellule cible affiché dans le tableur n’inclut pas les pénalités appliquées pour cause de contraintes souples non respectées. Consultez la feuille Journal d’optimisation pour obtenir le résultat pénalisé et l’importance de la pénalité imposée sous l’effet de chaque contrainte souple non satisfaite. Chapitre 5 : Guide de référence Evolver 121 • 122 Contraintes souples dans les formules de calcul. Les fonctions de pénalité peuvent être appliquées directement dans les formules de la feuille de calcul. Les contraintes souples appliquées directement dans la feuille de calcul ne doivent pas être définies dans la boîte de dialogue principale d’Evolver. Pour plus de détails sur l’application directe des fonctions de pénalité dans la feuille de calcul, voir le Chapitre 9 : Et aussi…, sous le titre Contraintes souples. Commande Définition du modèle Commande Paramètres d'optimisation Commande Paramètres d’optimisation – Onglet Général Définit les paramètres généraux d’une optimisation. L’onglet Général de la boîte de dialogue Paramètres d’optimisation affiche les paramètres de population, d’actualisation de l’affichage et de racine de nombres aléatoires. Les options Paramètres d’optimisation suivantes sont proposées : • Population. Ce paramètre indique à Evolver le nombre d’organismes (ou ensembles complets de variables) devant être stockés en mémoire à tout moment. La question de la population optimale à utiliser pour différents problèmes continue à faire l’objet de nombreux débats et d’une intense recherche, mais nous recommandons généralement 30 à 100 organismes, suivant l’envergure du problème (population proportionnelle au problème). L’opinion générale est qu’une population plus vaste demande plus de temps pour produire une solution mais est plus susceptible de trouver une réponse globale car elle dispose d’un capital génétique plus diversifié. • Racine de nombres aléatoires. Cette option permet de régler la valeur de départ du générateur de nombres aléatoires d’Evolver. Lorsqu’une même valeur de départ est utilisée, l’optimisation génère des réponses identiques pour un même modèle pour autant qu’il ne soit pas modifié. La racine doit être un nombre entier compris entre 1 et 2147483647. Chapitre 5 : Guide de référence Evolver 123 Commande Paramètres d’optimisation – Onglet Temps d’exécution Définit les paramètres de temps d’exécution d’une optimisation. Cet onglet de la boîte de dialogue Paramètres d’optimisation affiche les paramètres de temps d’exécution de l’optimisation Evolver. Les conditions paramétrées ici spécifient la manière et le moment d’arrêt d’une optimisation Evolver. Une fois l’optimisation démarrée, Evolver s’exécute en continu, à la recherche de meilleures solutions, de simulation en simulation, jusqu’à ce que les critères d’arrêt soient satisfaits. Un nombre quelconque de ces conditions peut être activé – ou même aucune si l’on veut qu’Evolver poursuive indéfiniment la recherche (ou jusqu’au moment où l’utilisateur l’arrête manuellement). Lorsque plusieurs conditions sont activées, Evolver arrête l’optimisation dès que l’une d’entre elles est remplie. Indépendamment de ces sélections, il est possible d’arrêter Evolver manuellement, à tout moment, en cliquant sur le bouton d’arrêt de la fenêtre de progression ou de Suivi Evolver. 124 Commande Paramètres d'optimisation Optimisation Les options Temps d’exécution suivantes sont proposées : • Essais – Sous cette option, Evolver s’arrête après génération du nombre d’essais indiqué. Le paramètre Essais est particulièrement utile à la comparaison d’efficacité d’Evolver lors de l’essai de différentes méthodes de modélisation. La manière dont on modélise un problème, ou le choix d’une méthode de résolution différente, peut accroître l’efficacité d’Evolver. L’exécution d’un nombre donné de simulations indique l’efficacité de convergence d’Evolver sur une solution, indépendamment des différences de nombre de variables choisies, de la vitesse de traitement de l’ordinateur ou des délais de régénération de l’écran. La feuille de synthèse d’optimisation Evolver est également utile à la comparaison des résultats d’une simulation à l’autre. Pour plus de détails sur les feuilles de synthèse d’optimisation, voir la section Suivi Evolver – Options d’arrêt, plus loin dans ce chapitre. • Durée – Sous cette option, Evolver arrête de simuler ses scénarios après écoulement du nombre indiqué d’heures, minutes ou secondes. Un nombre réel positif quelconque peut être entré pour ce paramètre (600, 5,2, etc.) • Progression – Sous cette option, Evolver arrête la simulation de scénarios lorsque l’amélioration de la cellule cible est inférieure à la valeur indiquée (critère de changement). Le nombre (entier) de simulations à considérer peut être indiqué. Un pourcentage (1 %, par exemple) peut être défini comme valeur de changement maximum. Supposons par exemple que l’on essaie de maximiser la moyenne de la cellule cible et que, après 500 simulations, la meilleure réponse trouvée jusque là est 354,8. Si l’option Progression est la seule condition d’arrêt sélectionnée, Evolver s’interrompra à la 600e simulation et ne continuera que s’il trouve une réponse égale à au moins 345,9 dans les 100 dernières simulations. Autrement dit, si les réponses d’Evolver ne se sont pas améliorées d’au moins 0,1 au cours des 100 dernières simulations, la recherche s’arrête. Pour les problèmes plus complexes, il peut être utile de porter le nombre de simulations à 500 avant de déterminer si l’amélioration est suffisante pour justifier la poursuite de l’optimisation. Chapitre 5 : Guide de référence Evolver 125 Cette option représente la condition d’arrêt la plus courante, car elle apporte à l’utilisateur un moyen efficace d’arrêter l’optimisation après le ralentissement du taux d’amélioration, quand Evolver ne semble plus trouver de meilleures solutions. Sur les graphiques des meilleurs résultats de l’onglet Progression de Suivi Evolver, les graphiques atteignent un plateau ou leurs courbes s’aplanissent pendant un moment avant que cette condition ne soit remplie et qu’Evolver s’arrête. La progression représente ainsi un mode automatique d’arrêt lorsque les niveaux d’amélioration se nivellent. • La formule est vraie. Cette condition arrête l’optimisation lorsque la formule Excel entrée (ou référencée) s’avère (VRAIE). • Arrêt sur erreur. Cette condition arrête l’optimisation lorsqu’une valeur erronée est calculée pour la cellule cible. REMARQUE : La sélection de conditions d’arrêt n’est pas obligatoire. En leur absence, Evolver s’exécute indéfiniment, jusqu’à arrêt manuel commandé depuis la fenêtre Suivi Evolver. 126 Commande Paramètres d'optimisation Commande Paramètres d’optimisation – Onglet Affichage Définit les paramètres d’affichage d’une optimisation. Cet onglet de la boîte de dialogue Paramètres d’optimisation définit les paramètres de l’affichage en cours d’optimisation. Les options suivantes sont proposées : • Réduire Excel au démarrage. Sous cette option, Excel se réduit au démarrage d’une optimisation. • Afficher les recalculs Excel. Sous cette option, Excel s’actualise à chaque meilleur essai ou à la fin de chaque essai. • Tenir un journal des essais. Sous cette option, Evolver tient un journal courant de chaque nouvelle simulation exécutée. Ce journal peut être consulté dans la fenêtre de Suivi Evolver. Chapitre 5 : Guide de référence Evolver 127 Commande Paramètres d’optimisation – Onglet Macros Définit les macros à exécuter en cours d’optimisation. Des macros VBA peuvent être exécutées à différent moments d’une optimisation ainsi que pendant la simulation de chaque solution itérative. Il est ainsi possible de développer des calculs personnalisés à invoquer en cours d’optimisation. Les macros peuvent être exécutées aux moments suivants de l’optimisation : • En début d’optimisation – La macro s’exécute après invocation de l’icône Exécuter, avant la génération de la première solution itérative. • Avant le recalcul de chaque essai – La macro s’exécute avant le recalcul de chaque essai exécuté. • Après le recalcul de chaque essai – La macro s’exécute après le recalcul de chaque essai exécuté. • Après le stockage de la sortie – La macro s’exécute après chaque essai exécuté et après le stockage de la valeur de la cellule cible. • En fin d’optimisation – La macro s’exécute en fin d’optimisation. Cette fonction permet d’exécuter des calculs tributaires d’une macro au cours d’une optimisation. Les calculs de « bouclage » itératif et calculs nécessitant de nouvelles données provenant de sources externes en sont deux exemples. Nom de la macro définit la macro à exécuter. 128 Commande Paramètres d'optimisation Commande Démarrer l'optimisation Démarre une optimisation. La commande ou l’icône Démarrer l’optimisation lance l’exécution d’une optimisation du modèle et du classeur actifs. Dès le démarrage, Evolver affiche cette fenêtre de progression : Cette fenêtre affiche l’information suivante : • Essai : nombre total d’essais effectués ; x valables indique le nombre de ces essais pour lesquels toutes les contraintes ont été satisfaites. • Temps d’exécution : temps écoulé de l’exécution. • Valeur originale : valeur originale de la cellule cible. • Meilleure valeur : meilleure valeur actuelle de la cellule cible à minimiser ou maximiser. Chapitre 5 : Guide de référence Evolver 129 La barre d’outils Evolver de la fenêtre de progression propose les options suivantes : 130 • Afficher les options d’actualisation Excel. L’affichage Excel peut être actualisé à chaque essai, à chaque meilleur essai ou jamais. Remarquez que dans certaines situations, l’écran s’actualise indépendamment de ces paramètres : en cas de pause de l’optimisation, par exemple. • Afficher Suivi Evolver. Affiche la pleine fenêtre de Suivi Evolver. • Exécuter. Cette icône lance la recherche Evolver d’une solution basée sur la description actuelle contenue dans la boîte de dialogue Modèle Evolver. Après pause, l’icône Exécuter permet de relancer la recherche de meilleures solutions. • Pause. Pour suspendre ou « figer » momentanément le processus Evolver, cliquez sur l’icône Pause. La pause permet d’ouvrir et d’explorer les données de Suivi Evolver, de changer les paramètres, d’examiner la population au complet, d’afficher un rapport d’état ou de copier un graphique. • Arrêt. Arrête l’optimisation. Commande Démarrer l'optimisation Commandes Utilitaires Commande Paramètres d’application Affiche la boîte de dialogue Paramètres d’application, où se définissent les paramètres par défaut. De nombreux paramètres Evolver peuvent être configurés par défaut et appliqués à chaque exécution du programme. Notamment : les paramètres d’arrêt par défaut, les taux de croisement et de mutation par défaut, etc. Chapitre 5 : Guide de référence Evolver 131 Commande Solveur de contraintes Exécute le Solveur de contraintes Le Solveur de contraintes améliore la capacité de traitement des contraintes de modèle d’Evolver. Lorsqu’Evolver exécute une optimisation, les valeurs de cellules ajustables de départ sont censées satisfaire à toutes les contraintes fermes – ce qui veut dire que la solution originale est censée être valable. Si tel n’est pas le cas, l’algorithme peut exécuter un très grand nombre de simulations avant de trouver une première solution valable. Cependant, si un modèle contient plusieurs contraintes, les valeurs de cellules ajustables qui seront conformes à toutes ne sont pas nécessairement évidentes. Si un modèle Evolver contient plusieurs contraintes fermes et que les optimisations échouent (aucune solution valable), vous en êtes avisé et le Solveur de contraintes peut être exécuté. Le Solveur de contraintes exécute l’optimisation en mode spécial, dans le but d'identifier une solution conforme à toutes les contraintes fermes. L’utilisateur peut suivre la progression de l’opération comme s’il s’agissait d’une optimisation ordinaire. La fenêtre de progression affiche le nombre de contraintes satisfaites dans la solution originale et dans la meilleure. 132 Commandes Utilitaires Un bouton de la fenêtre donne accès au Suivi Evolver. En mode Solveur de contraintes, les détails de progression de l’optimisation peuvent être consultés comme en mode d’optimisation ordinaire, sous les onglets Progression, Synthèse, Journal, Population et Diversité. En mode Solveur de contraintes, l’écran de suivi propose un autre onglet encore, intitulé Solveur de contraintes. Cet onglet affiche l’état de chaque contrainte ferme (Satisfaite ou Non satisfaite) pour les solutions Meilleure, Originale et Dernière. L’optimisation du Solveur de contraintes s’arrête automatiquement lorsqu’une solution conforme à toutes les contraintes fermes est identifiée. Elle peut aussi être interrompue d’un clic sur le bouton d’arrêt de la fenêtre de progression ou de Suivi Evolver. En fin d’exécution du Solveur de contraintes, vous pouvez choisir, sous l’onglet Options d’arrêt du Suivi Evolver, la meilleure solution, la solution originale ou la dernière solution, comme pour les optimisations réalisées en mode ordinaire. Remarquez qu’il n’est pas nécessaire de configurer le Solveur de contraintes avant l’exécution : les paramètres spécifiés dans le modèle sont utilisés, à la seule différence que l’objectif d’optimisation est de trouver une solution conforme à toutes les contraintes fermes. Chapitre 5 : Guide de référence Evolver 133 134 Commandes Utilitaires Suivi Evolver L’icône loupe, sur la barre d’outils de la fenêtre de progression d’Evolver, affiche l’utilitaire Suivi Evolver. Suivi Evolver régit et rapporte toute l’activité d’Evolver. Il permet le changement des paramètres et l’analyse de progression de l’optimisation. On peut aussi y suivre l’information en temps réel du problème et la progression d’Evolver sur la barre d’état, au bas de la fenêtre. Chapitre 5 : Guide de référence Evolver 135 Suivi Evolver – Onglet Progression Affiche les graphiques de progression de la valeur de la cellule cible Cet onglet de Suivi Evolver représente graphiquement l’évolution des résultats obtenus, par simulation, pour la cellule cible sélectionnée. Ces graphiques de progression indiquent le nombre de simulations sur l’axe X et la valeur de la cellule cible sur l’axe Y. Pour en changer l’échelle, cliquez sur les limites des axes et ramenez-les à la nouvelle valeur d’échelle désirée. Un clic droit sur le graphique de progression ouvre la boîte de dialogue Options graphiques, pour une personnalisation accrue des graphiques. 136 Suivi Evolver Options graphiques La boîte de dialogue Options graphiques affiche les paramètres de titres, légendes, échelle et polices du graphique affiché. Chapitre 5 : Guide de référence Evolver 137 Suivi Evolver – Onglet Synthèse Affiche les détails des valeurs des cellules ajustables. Cet onglet de Suivi Evolver affiche un tableau récapitulatif des valeurs des cellules ajustables testées pendant l’optimisation, ainsi que les outils de réglage des taux de croisement et de mutation de chaque groupe de cellules ajustables du modèle. Sous le titre Paramètres de groupe de cellules ajustables, on peut changer les taux de croisement et de mutation de l’algorithme génétique en cours de résolution du problème. Les changements apportés ici l’emportent sur les valeurs initiales de ces paramètres et deviennent immédiatement applicables. Ils affectent la population (le groupe de cellules ajustables) sélectionnée dans le champ Groupe affiché. Le taux de croisement par défaut de 0,5 est presque toujours recommandé. Pour la mutation, beaucoup de modèles admettent jusqu’à 0,4, si l’on veut trouver la meilleure solution et qu’on est prêt à consacrer plus de temps à la recherche. Une valeur de mutation de 1 (maximum) donne lieu à une recherche totalement aléatoire. Evolver effectue en effet la mutation après le croisement. En d’autres termes, après que les deux parents sélectionnés ont été croisés pour créer une solution descendante, 100 % des « gènes » de cette solution passent par mutation à des valeurs aléatoires, annulant effectivement le rôle du croisement (voir « taux de croisement, fonction » et « taux de mutation, fonction » dans l’index pour plus de détails). 138 Suivi Evolver Suivi Evolver – Onglet Journal Affiche un journal de chaque exécution de simulation pendant l’optimisation. Cet onglet de Suivi Evolver affiche un tableau récapitulatif de chaque simulation exécutée pendant l’optimisation. Ce journal inclut les résultats relatifs à la cellule cible, à chaque cellule ajustable et aux contraintes définies. Il n’est disponible que si l’option Tenir un journal de tous les essais est sélectionnée sous l’onglet Affichage de la boîte de dialogue Paramètres d’optimisation. Les options « Afficher » régissent l’affichage du journal de tous les essais ou de ceux pour lesquels il y a eu progression seulement (amélioration du résultat d’optimisation). Données consignées : 1) Temps écoulé : point de départ de la simulation. 2) Essai : nombre d’essais exécutés. 3) Résultat : valeur de la statistique de la cellule cible à maximiser ou minimiser, pénalités de contraintes souples comprises. 4) Moyenne sortie, Ec. Type sortie, Min sortie et Max sortie : statistiques de la distribution de probabilités de la cellule cible calculée. 5) Colonnes d’entrée : valeurs utilisées pour les cellules ajustables. 6) Colonnes de contrainte : indiquent si les contraintes ont été satisfaites. Chapitre 5 : Guide de référence Evolver 139 Suivi Evolver – Onglet Population Liste toutes les variables de chaque organisme (chaque solution possible) de la population actuelle. Ce tableau présente une grille listant toutes les variables de chaque organisme (chaque solution possible) de la population actuelle. Ces organismes (« Org n ») sont classés dans l’ordre allant du pire au meilleur. Comme ce tableau liste tous les organismes de la population, le paramètre « Population » de la boîte de dialogue Paramètres d’Evolver en détermine le nombre (50 par défaut). De plus, la première colonne du tableau affiche la valeur résultante de la cellule cible pour chaque organisme. 140 Suivi Evolver Suivi Evolver – Onglet Diversité Affiche un tracé couleurs de toutes les variables de la population actuelle. Le tracé de l’onglet Diversité attribue des couleurs aux valeurs des cellules ajustables en fonction de la variation de la valeur d’une cellule donnée à travers la population d’organismes (solutions) stockés en mémoire en un point donné. (En termes d’optimisation génétique, il s’agit ici d’une indication de la diversité du capital génétique.) Chaque barre verticale du tracé correspond à une cellule ajustable. Les lignes horizontales de chaque barre représentent les valeurs de la cellule concernée dans différents organismes (solutions). Les couleurs de ces lignes sont attribuées par division de la plage entre la valeur minimum et maximum d’une cellule ajustable donnée en 16 intervalles de longueur égale représentés, chacun, par une couleur différente. Ainsi le fait que la barre verticale représentant la deuxième cellule ajustable ne comporte qu’une seule couleur veut dire que la cellule a la même valeur dans chaque solution en mémoire. Chapitre 5 : Guide de référence Evolver 141 Suivi Evolver – Onglet Options d’arrêt Affiche les options d’arrêt de l’optimisation. Un clic sur le bouton Arrêter fait apparaître l’onglet Options d’arrêt de Suivi Evolver. Ces options régissent l’actualisation de la feuille de calcul en fonction des meilleures valeurs calculées pour les cellules ajustables, le rétablissement des valeurs originales et la production d’un rapport de synthèse d’optimisation. OK détruit la population de solution d’Evolver et place les valeurs sélectionnées dans le tableur. Pour enregistrer l’information relative à la session Evolver (valeurs de population, durée et nombre d’essais exécutés), on veillera à sélectionner la création d’un rapport de synthèse d’optimisation. 142 Suivi Evolver Cette boîte de dialogue s’ouvre aussi lorsqu’une condition d’arrêt spécifiée par l’utilisateur est remplie (fin d’évaluation du nombre d’essais demandés, durée d’optimisation écoulée, etc.) L’alerte d’arrêt propose trois choix pour l’actualisation des valeurs des cellules ajustables dans le tableur : Meilleures, Originales et Dernières. • Meilleures. Cette option accepte les résultats d’Evolver et met fin à la recherche de meilleures solutions. Les valeurs du meilleur scénario identifié par la recherche d’Evolver s’inscrivent dans les cellules ajustables du tableur. • Originales. Cette option rétablit les valeurs originales des cellules ajustables, avant l’exécution d’Evolver, et met fin à la recherche de meilleures solutions. • Dernières. Sous cette option, Evolver place les dernières valeurs calculées de l’optimisation dans la feuille de calcul. Cette option est particulièrement utile au débogage des modèles. Les options Rapports à générer peuvent produire des feuilles de synthèse d’optimisation utiles au rapport des résultats d’une exécution et à la comparaison des résultats d’une exécution à l’autre. Les options de rapport suivantes sont proposées : Chapitre 5 : Guide de référence Evolver 143 • Synthèse d'optimisation. Ce rapport de synthèse d’optimisation fait état des date et heure de l’exécution, des paramètres d’optimisation utilisés, de la valeur calculée pour la cellule cible et de la valeur de chaque cellule ajustable. Ce rapport est utile à la comparaison des résultats d’optimisations successives. 144 Suivi Evolver • Journal de tous les essais Ce rapport consigne les résultats de tous les essais effectués. • Journal de progression. Ce rapport consigne les résultats de tous les essais ayant amélioré le résultat de la cellule cible. Chapitre 5 : Guide de référence Evolver 145 146 Chapitre 6 : Optimisation Méthodes d’optimisation .................................................................149 Algorithmes par escalade....................................................................151 Solveur Excel ..................................................................................155 Evolver vs Solveur ...............................................................................156 Quand utiliser Evolver ........................................................................157 Types de problèmes .......................................................................159 Problèmes linéaires ................................................................159 Problèmes non linéaires .......................................................159 Problèmes à base de tables ...................................................162 Problèmes combinatoires......................................................162 Chapitre 6 : Optimisation 147 148 Méthodes d’optimisation Comme nous l’avons vu dans les quelques exemples présentés dans les didacticiels, certains problèmes d’optimisation sont beaucoup plus difficiles à résoudre que d’autres. Pour les problèmes complexes, tels que la recherche de l’itinéraire le plus court entre 1000 villes, il n’est pas réaliste d’examiner chaque solution possible. L’approche exigerait en effet plusieurs années de calculs sur les ordinateurs les plus performants. Pour résoudre ce type de problème, il faut effectuer la recherche dans un sous-ensemble de solutions possibles. L’examen de ces solutions peut indiquer la manière d’en trouver de meilleures, par le biais d’un algorithme. Un algorithme représente, tout simplement, une description, pas à pas, de l’approche d’un problème. Tous les programmes informatiques, par exemple, reposent sur la combinaison de nombreux algorithmes. Commençons donc par explorer la manière dont la plupart des algorithmes de résolution représentent un problème. Les problèmes se répartissent pour la plupart en trois composants fondamentaux : des entrées, une fonction et une sortie résultante. Composants du problème Dans Evolver/Excel Recherche de étant donné pour obtenir le meilleur Entrées Fonction Sortie Variables Modèle But Supposons que notre problème d’optimisation implique deux variables, X et Y. En équation, ces deux variables produisent le résultat =Z. Notre problème consiste à identifier la valeur de X et de Y qui produit la plus grande valeur Z. Z est, en quelque sorte, la « cote » qui indique la qualité d’une association particulière de X et Y. Dans cet exemple Chapitre 6 : Optimisation Recherche de étant donné pour obtenir le meilleur X et Y Équation Z 149 Un tracé de chaque ensemble de X, Y et des Z résultants produirait un graphique de surface tridimensionnel tel que celui illustré ci-dessous. « Paysage » de scénarios ou solutions possibles. Chaque intersection d’une valeur X et d’une valeur Y produit une hauteur Z. Les sommets et les vallées de ce « paysage » représentent de bonnes et de mauvaises solutions, respectivement. La recherche du maximum ou du plus haut point de cette fonction à travers l’examen de chaque solution prendrait beaucoup trop de temps, même sur un ordinateur puissant doté du plus rapide des logiciels* . N’oublions pas que nous ne donnons à Excel que la fonction en soi, pas un graphique de la fonction, et que nous pourrions tout aussi bien nous trouver face à un problème à 200 dimensions plutôt qu’à celui-ci, à deux dimensions. Il nous faut donc une méthode qui nous permette d’effectuer moins de calculs et de trouver malgré tout une productivité maximale. * Dans notre diagramme, la fonction est représentée tel un paysage lisse. Dans les rares cas où les fonctions sont simples et lisses (différenciables), il est possible de recourir au calcul pour trouver les minima et les maxima. Les problèmes réalistes ne se décrivent cependant pas, pour la plupart, par des fonctions lisses. 150 Méthodes d’optimisation Algorithmes par escalade Considérons donc un simple algorithme, dit « d’escalade ». Cet algorithme procède comme suit : 1) On part d’un point aléatoire du paysage (supposition aléatoire). 2) 3) On progresse d’une faible distance dans une direction arbitraire. Si on aboutit à un nouveau point plus élevé, on y reste et on répète la deuxième étape. Si le nouveau point est moins élevé, on revient au point d’origine et on recommence. L’escalade n’essaie qu’une solution, ou un scénario, à la fois. Nous allons utiliser un point noir (•) pour représenter une solution possible (un ensemble des valeurs X, Y et Z). En plaçant ce point au point de départ aléatoire, on espère que la méthode par escalade l’amènera au plus haut point du graphique. Le diagramme ci-dessus illustre bien que la direction désirée est vers la droite. Nous ne le savons cependant que parce que nous avons déjà vu l’ensemble du paysage. Tandis que l’algorithme s’exécute, il perçoit le paysage avoisinant, mais pas sa totalité : il voit l’arbre, mais pas la forêt. Chapitre 6 : Optimisation 151 Dans la plupart des problèmes réels, le paysage n’est pas aussi lisse et il faudrait des années pour procéder au calcul complet. On ne calcule donc que le scénario actuel et ceux de son environnement immédiat. Imaginez que notre point noir est un homme aux yeux bandés planté au beau milieu d’un paysage vallonné. Selon l’algorithme de l’escalade, cet homme dirigerait le pied dans chaque direction mais ne le poserait que s’il sentait une élévation du terrain. Il progresserait ainsi vers le haut et finirait par arriver au sommet de la colline, où le sol, dans chaque direction, serait maintenant plus bas. L’approche paraît simple, mais le problème est grave si l’homme part d’un autre endroit … et escalade la mauvaise colline (voir le diagramme cidessous) ! Même si la fonction est lisse, l’escalade peut échouer si l’on part d’un endroit moins idéal (image de droite). L’escalade n’identifie que le sommet le plus proche, ou le maximum local. Ainsi, si le problème considéré présente un paysage de solutions extrêmement accidenté, comme la plupart des modèles réalistes, il n’est guère probable que l’escalade trouve le sommet le plus élevé, ou même l’un des plus élevés seulement. L’escalade présente un autre problème : comment trouve-t-on effectivement le terrain voisin de l’emplacement où l’on se trouve ? Si le paysage est décrit par une fonction lisse, la différenciation (une technique de calcul) peut permettre d’identifier la direction de la côte la plus raide. Si le paysage est discontinu ou non différenciable (comme il l’est plus généralement dans la réalité), il faut calculer la « pertinence » des scénarios avoisinants. 152 Méthodes d’optimisation Supposons par exemple qu’une banque engage un agent de sécurité de 9 à 17 heures pour garder la banque, mais qu’elle doive lui accorder deux (2) pauses d’une demi-heure. Le problème consiste à identifier les heures de pause optimales, compte tenu des règles générales de rapports de performance/fatigue et les différents niveaux d’activité de clientèle pendant la journée. On peut commencer par essayer différentes combinaisons de pauses et par les évaluer. Si le programme actuel prévoit les pauses à 11 et à 15 heures, on pourrait calculer la productivité des scénarios avoisinants suivants : Direction Solution actuelle Scénario Ouest Scénario Est Scénario Nord Scénario Sud Pause 1 (x) 11 heures 10 h 45 11 h 15 11 heures 11 heures Pause 2 (y) 15 heures 15 heures 15 heures 15 h 15 14 h 45 –Cote" (z) = 46,5 = 44,67 = 40,08 = 49,227 = 43,97 Si le nombre de cellules ajustables (pauses) était de trois au lieu de deux, on aurait à considérer huit directions différentes. En fait, pour 50 variables seulement (hypothèse parfaitement réaliste pour un problème d’envergure moyenne), on devrait calculer la productivité de 250, soit plus de mille billions de scénarios, pour un simple agent de sécurité ! Certaines modifications peuvent être apportées à la méthode de l’escalade pour améliorer sa capacité de produire des maxima globaux (les collines les plus hautes de l’ensemble du paysage). L’escalade convient le mieux à la résolution de problèmes unimodaux (à un seul sommet), d’où le recours à cette technique par certains programmes d’analyse. Son utilité est cependant très limitée face aux problèmes complexes et/ou volumineux. Chapitre 6 : Optimisation 153 154 Méthodes d’optimisation Solveur Excel Excel s’accompagne d’un utilitaire d’optimisation appelé Solveur. Son rôle est similaire à celui d’Evolver : trouver les solutions optimales. Solveur peut résoudre deux types de problèmes : linéaires et simples non linéaires. La résolution des problèmes linéaires s’effectue selon une routine de programmation linéaire. Cette technique mathématique classique, parfois appelée méthode « Simplexe », trouve toujours la réponse parfaite aux petits problèmes purement linéaires. Comme la plupart des autres mini‐solveurs, le solveur Microsoft résout également les problèmes non linéaires, selon une routine d’escalade (dite « GRG2 »). Une routine d’escalade part des valeurs de variable courantes et les ajuste lentement jusqu’à ce que la sortie du modèle ne s’améliore plus. Ainsi, les problèmes qui présentent plus d’une solution possible peuvent être impossibles à résoudre adéquatement, car Solveur aboutit à une solution locale, sans pouvoir accéder à la solution globale (voir la figure ci‐dessous). Solution locale perçue Solution globale réelle Paysage de solutions possibles Solveur exige en outre que la fonction représentée par le modèle soit continue. Autrement dit, la sortie doit évoluer de manière lisse sous l’effet de l’ajustement des entrées. Si le modèle utilise des tables de recherche, acquiert des données bruyantes en temps réel d’un autre programme, contient des éléments aléatoires ou implique des règles de type « si, alors », il sera irrégulier et discontinu et Solveur ne pourra pas le résoudre. Solveur impose par ailleurs une limite au nombre de variables et à celui de contraintes du problème (200), au-delà duquel une technique plus puissante doit être utilisée. Chapitre 6 : Optimisation 155 Evolver vs Solveur Le Solveur Excel et Evolver ont chacun leurs qualités et leurs faiblesses. De manière générale, Solveur est plus rapide pour la résolution de petits problèmes simples, tandis qu’Evolver offre le seul moyen de résoudre de nombreux autres types de problèmes. Evolver trouve généralement aussi de meilleures réponses aux problèmes plus vastes et plus complexes, tels qu’ils se présentent souvent dans la réalité. Evolver peut résoudre beaucoup plus de types de problèmes que Solveur. Evolver peut optimiser pratiquement toutes les situations numériques modélisables dans Excel. Plus spécifiquement, Evolver trouve les solutions optimales aux problèmes numériques linéaires, non linéaires, à base de tables ou stochastiques (aléatoires). Il résout les problèmes présentant une combinaison quelconque de ces qualités. Evolver peut aussi générer des permutations de valeurs existantes, réordonner les valeurs ou les groupes de manières différentes pour identifier la solution optimale. En fait, pour tout modèle de tableur à variables pouvant être ajustées pour influencer la sortie du modèle, Evolver peut automatiser la recherche par le calcul intelligent de milliers de scénarios et retenue des meilleurs. L’algorithme génétique d’Evolver est mieux adapté que Solveur aux interruptions : vous pouvez l’interrompre à tout moment et voir la meilleure solution qu’Evolver a identifiée jusque là. Vous pouvez alors apporter les changements nécessaires au problème en soi, avant de relancer le processus. Par exemple, pour un problème d’ordonnancement multigamme, il peut être utile d’identifier les meilleures tâches à affecter aux machines. Lorsqu’une machine est disponible, on peut interrompre l’algorithme génétique pour identifier la tâche optimale à lui affecter. La tâche peut ensuite être omise du problème et l’optimisation peut reprendre avec les tâches restantes. L’algorithme génétique qui donne à Evolver cette capacité de traitement de problèmes aussi variés est aussi généralement plus lent que Solveur ou que d’autres méthodes mathématiques ou statistiques conventionnelles. Il existe, pour certaines catégories de problèmes, des sous-programmes d’optimisation bien connus et bien réglés. Les méthodes personnalisées résolvent ces problèmes plus rapidement que la méthode universelle d’Evolver. 156 Solveur Excel Quand utiliser Evolver De manière générale, il convient d’utiliser Evolver dans les cas suivants : 1) quand les algorithmes traditionnels ne produisent pas de bonnes solutions globales ; 2) quand le problème est trop vaste et/ou contient plus de variables que ne peut en gérer votre algorithme classique ; 3) quand le problème est trop complexe pour être résolu par une autre méthode ; 4) quand le modèle implique des nombres aléatoires, des tables de recherche, des instructions si-alors ou d’autres fonctions discontinues qui excluent les solveurs classiques ; 5) quand vous n’avez pas la moindre idée de ce que pourrait être la solution et que vous ne pouvez même pas imaginer donc le point de départ de la recherche d’un solveur traditionnel ; 6) quand vous désirez pouvoir « assouplir » certaines contraintes « fermes » du problème (X doit être égal à Y) et les rendre ainsi plus exactes (X devrait être égal à Y, sous peine de perdre des Z), rendant possible l’exploration d’une plage plus large de solutions potentiellement meilleures, même si elles font défaut à quelques contraintes ; 7) quand il est préférable d’obtenir rapidement une bonne solution à un problème plutôt que d’avoir à attendre la meilleure solution absolue ; 8) quand il vous faut plusieurs solutions possibles proches de la meilleure ; 9) quand vous désirez intégrer un simple et robuste algorithme de recherche dans une application personnalisée (voir le Kit du développeur Evolver pour plus de détails). REMARQUE : Si les délais d’exécution le permettent, Evolver peut toujours servir à titre complémentaire à d’autres méthodes, pour vérifier leur précision. Si le processus est plus long que celui d’autres méthodes, la meilleure solution qu’Evolver trouvera peut-être en vaut très probablement l’investissement. Chapitre 6 : Optimisation 157 Evolver ne s’inquiète pas des menus détails du problème. Peu lui importe donc que l’utilisateur soit versé ou non dans les techniques de programmation linéaire, la théorie de l’optimisation, les mathématiques ou les statistiques. Il suffit, pour utiliser Evolver, de définir les variables (les cellules qui contiennent les valeurs ajustables), le but (la cellule qui contient la sortie) et de décrire les valeurs qu’Evolver peut utiliser pendant la recherche de solutions optimales. 158 Solveur Excel Types de problèmes Plusieurs types de problèmes se prêtent généralement à l’optimisation. Si vous comprenez ces types de problèmes, vous serez mieux équipé pour appliquer Evolver à vos propres modèles. Problèmes linéaires Dans les problèmes linéaires, toutes les sorties sont de simples fonctions linéaires des entrées, comme dans y=mx+b. Quand les problèmes font appel à de simples opérations arithmétiques telles que l’addition, la soustraction et les fonctions Excel telles que TENDANCE() et PREVISION(), les relations entre les variables sont purement linéaires. Depuis l’avènement de l’ordinateur et l’invention de la méthode Simplexe par George Dantzig, les problèmes linéaires sont assez faciles à résoudre. Un utilitaire de programmation linéaire convient le mieux à la résolution rapide et précise d’un simple problème linéaire. L’utilitaire Solveur d’Excel devient un outil de programmation linéaire lorsque la case « Modèle supposé linéaire » est cochée*. Solveur utilise dans ce cas une routine de programmation linéaire pour trouver rapidement la solution idéale. Si un problème peut être exprimé en termes purement linéaires, la programmation linéaire est le choix de prédilection. Dans la réalité, la plupart des problèmes ne sont malheureusement pas linéaires. Problèmes non linéaires Si le coût de production et de livraison de 5 000 objets était de €5 000, cela voudrait-il dire que la production et la livraison d’un objet coûteraient €1 ? Probablement pas. La chaîne de production de l’usine consomme toujours de l’énergie, le travail de bureau est identique, les matières premières doivent toujours être achetées en vrac, les camions consomment la même quantité de carburant pour la livraison et les chauffeurs doivent toujours être payés pour leur journée quelle que soit l’importance du chargement. Dans la réalité, la plupart des problèmes n’impliquent pas de variables à simples relations linéaires. Ils impliquent des opérations de multiplication, division, des exposants et des fonctions Excel intégrées telles que RACINE() et CROISSANCE(). Quand les variables ont un rapport disproportionné les unes par rapport aux autres, le problème devient non linéaire. * Pour plus de détails sur l’utilitaire Solveur de Microsoft, voir le Guide de l’utilisateur Excel. Chapitre 6 : Optimisation 159 La gestion d’un processus de fabrication dans une usine de produits chimiques présente un parfait exemple de problème non linéaire. Supposons que nous voulions mélanger certains réactifs en vue de l’obtention, comme résultat, d’un produit chimique. La vitesse de la réaction peut varier de manière non linéaire suivant la quantité de réactifs disponible. À un moment donné, le catalyseur est saturé et l’excès de réactif devient encombrant. Le diagramme ci-dessous illustre cette relation : vitesse de réaction / niveau de réactif Si l’on cherche simplement à identifier le niveau minimum de réactif qui produira la plus grande vitesse de réaction, il suffit de partir d’un point quelconque du graphique et de suivre la courbe jusqu’au sommet, selon la méthode de l’escalade. L’escalade produit toujours la meilleure réponse quand (a) la fonction explorée est lisse et que (b) la valeur de départ est sur un versant du plus haut sommet. Si l’une de ces conditions n’est pas satisfaite, on risque d’aboutir à une solution locale plutôt que globale. 160 Types de problèmes Pour les problèmes qui ne sont vraiment pas linéaires, comme on le voit souvent en pratique, beaucoup de solutions sont possibles sur un paysage particulièrement compliqué. Si le problème présente de nombreuses variables et/ou que les formules impliquées sont extrêmement bruyantes ou vallonnées, l’escalade ne trouvera probablement pas la meilleure réponse, même après des centaines d’essais au départ de points différents. Une solution sous-optimale et extrêmement locale sera plus vraisemblablement produite (voir la figure ci-dessous). L’escalade trouve le maximum local mais pas global. Données bruyantes : l’escalade n’est pas efficace, même après plusieurs essais. Contrairement à cette méthode, Evolver applique plutôt une technique de recherche stochastique dirigée, dite d’« algorithme génétique ». Il évolue ainsi dans tout l’espace de solution d’un problème, examinant de nombreuses combinaisons de valeurs en entrée sans se perdre dans les valeurs optimales locales. Mieux encore, Evolver favorise la « communication » entre les scénarios intéressants, afin d’obtenir une information précieuse sur le paysage de solution globale. Il utilise ensuite cette information pour mieux estimer les scénarios susceptibles de réussite. Pour les problèmes complexes ou définitivement non linéaires, il vaut mieux, et il faut même souvent, recourir à Evolver. Evolver génère de nombreux scénarios possibles, puis raffine la recherche en fonction de l’information reçue. Chapitre 6 : Optimisation 161 Problèmes à base de tables Beaucoup de problèmes exigent le recours à des tables de recherche et bases de données. Ainsi, pour déterminer les quantités de différents matériaux à acquérir, il peut être nécessaire de rechercher le prix facturé pour différentes quantités. Les tables et les bases de données rendent les problèmes « discontinus » (non lisses). La recherche en devient difficile pour les routines d’escalade telles que Solveur. Indifférent à la continuité des fonctions qu’il évalue, Evolver peut trouver de bonnes solutions aux problèmes qui font appel aux tables, même nombreuses, vastes et interconnectées. Si un problème exige la recherche de valeurs dans une base de données ou une table de données Excel et que l’index de l’élément de table est une variable ou une fonction de variable, il convient d’utiliser Evolver. Si l’élément de table est simple et constant (le même enregistrement est extrait de la table indépendamment des valeurs des variables en entrée), il s’agit en fait simplement d’une constante et Solveur permet probablement de résoudre efficacement le problème. Problèmes combinatoires 162 Il existe une vaste catégorie de problèmes extrêmement différents des problèmes numériques examinés jusqu’ici. Les problèmes dont les sorties impliquent le changement d’ordre des variables en entrée existantes ou le groupement de sous-ensembles d’entrées sont qualifiés de problèmes combinatoires. Ces problèmes sont généralement très difficiles à résoudre, car ils exigent souvent un temps exponentiel. Autrement dit, la durée nécessaire à la résolution d’un problème à 4 variables pourrait être 4 x 3 x 2 x 1, et le redoublement du nombre de variables (8) ferait passer la durée de résolution à 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1, soit un facteur de 1 680. Le nombre de variables est double, mais celui des solutions possibles à vérifier augmente de 1 680 fois. Par exemple, le choix de l’ordre de jeu d’une équipe de base-ball est un problème combinatoire. Si l’on a 9 joueurs, on peut choisir l’un des 9 comme premier à la batte. Il faut ensuite choisir l’un des 8 joueurs restants en deuxième position, puis l’un des 7 joueurs restants en troisième position, etc. Il y a donc 9x8x7x6x5x4x3x2x1 possibilités d’organisation des 9 joueurs, soit environ 362 880 ordres différents. Si l’on double le nombre de joueurs, on se trouve face ・ 18 choix factoriels, soit 6 402 373 705 000 000 d’ordres possibles ! Types de problèmes L’algorithme générique d’Evolver analyse intelligemment les permutations possibles. Il s’agit d’une méthode beaucoup plus pratique que la recherche de toutes les possibilités. L’approche est aussi beaucoup plus efficace que l’examen de permutations purement aléatoires : les sous-ordres des bons scénarios peuvent être conservés et utilisés pour produire de meilleurs scénarios encore. Chapitre 6 : Optimisation 163 164 Types de problèmes Chapitre 7 : Algorithmes génétiques Introduction .....................................................................................167 Histoire.............................................................................................167 Exemple biologique........................................................................171 Exemple numérique........................................................................173 Chapitre 7 : Algorithmes génétiques 165 166 Introduction Evolver recourt aux algorithmes génétiques pour rechercher les réponses optimales aux modèles de simulation. Ce chapitre présente une introduction aux algorithmes génétiques pour aider à comprendre leur usage dans l’optimisation de modèles de simulation. Histoire Les premiers algorithmes génétiques ont été développés par John Holland, à l’University of Michigan, au début des années 1970 Holland était intrigué par la facilité avec laquelle les systèmes biologiques pouvaient exécuter des tâches qui échappaient même aux superordinateurs les plus puissants. Les animaux peuvent, sans erreur, reconnaître des objets, comprendre et traduire des sons et, généralement, naviguer à travers un environnement dynamique de manière presque instantanée. Depuis des dizaines d’années, les scientifiques promettent de reproduire ces capacités au niveau de la machine. On commence cependant à reconnaître combien la tâche est difficile. La plupart des scientifiques conviennent que tout système biologique complexe présentant ces qualités est le produit d’une évolution. Théorie de l’évolution D’après ce qu’en dit la théorie, l’évolution a produit des systèmes dotés d’étonnantes capacités par le biais de blocs de construction relativement simples autorépliqués selon quelques règles élémentaires : 1) L’évolution a lieu au niveau du chromosome. L’organisme n’évolue pas. Il ne sert que de véhicule au transport et au transfert des gènes. Ce sont les chromosomes qui changent dynamiquement à chaque réorganisation des gènes. 2) La nature tend a reproduire davantage les chromosomes qui produisent un organisme plus « apte ». Si un organisme survit suffisamment longtemps et qu’il est sain, ses gènes sont plus susceptibles d’être transmis à une nouvelle génération d’organismes, par la reproduction. Ce principe est souvent désigné sous l’expression de « survie du plus apte ». N’oublions pas que « le plus apte » est une expression relative : un organisme ne doit être pertinent que par rapport aux autres de la population courante pour « réussir ». Chapitre 7 : Algorithmes génétiques 167 3) La diversité doit être maintenue dans la population. Des mutations apparemment aléatoires se produisent fréquemment dans la nature pour assurer la variation des organismes. Ces mutations génétiques donnent souvent lieu à un trait utile, et parfois même essentiel à la survie de l’espèce. Dotée d’un plus large spectre de combinaisons possibles, une population est aussi moins vulnérable à une faiblesse commune qui risquerait de la détruire (virus, etc.) ou aux problèmes d’endogamie. Lorsqu’on décompose l’évolution en ses blocs élémentaires, il est plus facile d’appliquer ces techniques au monde de l’informatique et de progresser véritablement vers des machines plus fluides au comportement plus naturel. Holland s’est ainsi mis à appliquer ces propriétés de l’évolution à de simples chaînes de valeurs numériques représentant les chromosomes. Commençant par encoder son problème en chaînes binaires (lignes de chiffres « 1 » et « 0 ») chromosomiques, il a ensuite demandé à l’ordinateur de générer un grand nombre de ces chaînes de « bits » pour en former une vaste population. Une fonction de pertinence lui a permis d’évaluer et de classer chaque chaîne de bits. Celles jugées les plus « aptes » ont échangé leurs données avec d’autres à travers une routine de « croisement » pour créer des chaînes de bits « descendantes ». Holland a même soumis ses chromosomes numériques à un opérateur de « mutation » chargé d’injecter un certain caractère aléatoire dans les chromosomes « descendants » résultants, afin de conserver la diversité de la population. Cette fonction de pertinence a remplacé le rôle de la mort dans le monde biologique, en déterminant les chaînes suffisamment fortes pour continuer à se reproduire et celles à éliminer de la mémoire. « Gène » 168 « Chromosome » descendant Histoire Le programme a gardé un nombre donné de ces « chromosomes » en mémoire, et cette « population » complète de chaînes a continué à évoluer jusqu’à maximisation de la fonction de pertinence. Le résultat a ensuite été décodé et réexprimé dans ses valeurs originales pour révéler la solution. John Holland demeure un pionnier actif dans son domaine. Des centaines de scientifiques et autres experts l’ont rejoint et consacrent la plus grande partie de leur temps à ce remplacement prometteur des techniques linéaires, mathématiques et statistiques conventionnelles. L’algorithme génétique original de John Holland était plutôt simple, mais remarquablement solide et apte à trouver les solutions optimales à une grande variété de problèmes. Bien des programmes personnalisés résolvent aujourd’hui des problèmes réels particulièrement complexes et imposants à l’aide de versions légèrement modifiées seulement de ce premier algorithme génétique. Adaptations modernes des algorithmes génétiques L’intérêt a grandi dans les milieux académiques et, tandis que la puissance informatique commençait à s’introduire dans les ordinateurs de bureau grand public, les normes telles que Microsoft Windows et Excel n’ont pas tardé à faciliter la conception et la maintenance de modèles complexes. L’usage de nombres réels plutôt que de représentations de chaînes binaires a éliminé la tâche difficile de l’encodage et du décodage des chromosomes. Le succès de l’algorithme génétique est aujourd’hui exponentiel, séminaires, guides, articles de magazine et conseils d’experts à l’appui. L’International Conference of Genetic Algorithms se concentre d’ores et déjà sur les applications pratiques, signe de maturité qui échappe aux autres technologies de l’« intelligence artificielle ». Les plus grandes entreprises recourent régulièrement aux algorithmes génétiques pour résoudre leurs problèmes, des sociétés de courtage aux centrales électriques, en passant par les compagnies de téléphone, les chaînes de restauration, les constructeurs automobiles et les réseaux de télévision. Il y a en fait de fortes chances que vous ayez vous-même déjà utilisé, indirectement, un algorithme génétique. Chapitre 7 : Algorithmes génétiques 169 170 Histoire Exemple biologique Considérons un simple exemple d’évolution (à faible échelle) dans le monde biologique. Par « évolution », on entend ici tout changement de la distribution ou fréquence de gènes dans une population. Bien sûr, l’aspect intéressant de l’évolution est qu’elle tend à donner lieu à des populations en adaptation permanente à leur environnement. Supposons donc que nous examinions une population de souris. Ces souris présentent deux tailles, petite et grande, et deux couleurs, gris clair et gris foncé. Notre population se compose des huit souris suivantes : Un jour, des chats arrivent dans les environs et se mettent à manger les souris. Il se révèle que les chats ont plus de difficulté à trouver les souris plus petites et plus foncées. Ainsi, différentes souris ont différentes chances d’éviter les chats pendant une période suffisamment longue pour pouvoir se reproduire. La nature de la génération suivante de souris en est affectée. Si l’on suppose que les vieilles souris meurent peu après s’être reproduites, la nouvelle génération peut se présenter comme suit : Remarquez que les grandes souris, celles de couleur claire et, tout particulièrement, les grandes souris gris clair ont du mal à survivre suffisamment longtemps pour se reproduire. La tendance se poursuit à la génération suivante. Chapitre 7 : Algorithmes génétiques 171 La population se compose désormais principalement de petites souris de couleur plus foncée, plus aptes à survivre dans cet environnement que les autres types. De même, tandis que les chats deviennent affamés par manque de souris, peut-être ceux qui préfèrent l’herbe seront-ils mieux adaptés et transmettront-ils leur gène herbivore à une nouvelle génération de chats. Tel est le principe fondamental de la « survie du plus apte ». Plus précisément, on pourrait parler de « survie jusqu’à la reproduction ». En termes d’évolution, être le célibataire en meilleure santé d’une population est sans intérêt, puisqu’il faut qu’un être se reproduise pour que ses gènes influencent les générations futures. 172 Exemple biologique Exemple numérique Imaginons un problème à deux variables, X et Y, produisant un résultat, Z. Le calcul et le tracé du résultat Z pour chaque valeur X et Y possible produirait un « paysage », comme nous l’avons déjà décrit au chapitre 6 : Optimisation. Si nous cherchons à identifier le « Z » maximum, les sommets de la fonction représentent de « bonnes » solutions et les creux, de « mauvaises » solutions. Lors de l’utilisation d’un algorithme génétique visant à maximiser la fonction, on commence par créer aléatoirement plusieurs solutions ou scénarios possibles (les points noirs), plutôt que de ne choisir qu’un point de départ. On calcule ensuite la sortie de la fonction pour chaque scénario et on marque chaque scénario d’un point noir. On classe ensuite tous les scénarios en fonction de leur hauteur, du meilleur au pire. On garde les scénarios de la moitié supérieure et on élimine les autres. On commence par créer une « population » complète des solutions possibles. Certaines seront meilleures (plus hautes) que d’autres. Chapitre 7 : Algorithmes génétiques On classe ensuite tous les points obtenus et on ne garde que les solutions qui présentent de meilleurs résultats. 173 Chacun des trois scénarios restants se redouble, pour ramener le nombre total à six. La partie intéressante de l’opération se produit ici : Chacun des six scénarios se compose de deux valeurs ajustables (tracées sous forme de coordonnées X et Y). Les scénarios s’associent aléatoirement en paires. Chaque scénario échange maintenant la première de ses deux valeurs ajustables avec la valeur correspondante de son partenaire. Par exemple : Scénario 1 Scénario 2 Avant Après 3,4, 5,0 2,6, 5,0 2,6, 3,2 3,4, 3,2 Cette opération porte le nom de croisement. Après accouplement aléatoire et croisement de nos six scénarios, on peut obtenir un nouvel ensemble de scénarios tel que celui-ci : Dans l’exemple ci-dessus, on suppose que les trois scénarios originaux – a, b et c – se sont associés avec les doubles A, B et C pour former les paires aB, bC et cA. Ces paires ont ensuite échangé la valeur de leur première cellule ajustable – ce qui revient, dans notre diagramme, à échanger les coordonnées x et y entre les paires de points. La population de scénarios a ainsi vécu une génération, avec son cycle de « mort » et de « naissance ». 174 Exemple numérique Remarquez que certains des nouveaux scénarios produisent une sortie inférieure (hauteur moindre) à celle de la génération d’origine. Signe de progrès, un scénario a cependant progressé sur la colline la plus élevée. Si nous laissons la population évoluer pendant une génération encore, on obtiendra peut-être un paysage semblable à celui-ci : Il est clair que la performance moyenne de la population de scénarios s’est améliorée par rapport à la dernière génération. Dans cet exemple, il ne reste plus guère de place à l’amélioration. La raison en est qu’il n’y a que deux gènes par organisme, six organismes seulement et aucune possibilité de création de nouveaux gènes. En d’autres termes, le capital génétique est limité. Le capital génétique représente la somme de tous les gènes de tous les organismes de la population. Les algorithmes génétiques peuvent être rendus beaucoup plus puissants par réplication accrue de la force inhérente de l’évolution dans le monde biologique : en accroissant le nombre de gènes par organisme, en accroissant le nombre d’organismes d’une population et en admettant des mutations aléatoires occasionnelles. On peut de plus choisir les scénarios appelés à survivre et à se reproduire de manière plus proche de la réalité naturelle : avec un élément aléatoire favorisant légèrement les meilleures performances, plutôt que de ne retenir que les meilleures performances à la reproduction (même le plus grand et le plus fort des lions peut être frappé par la foudre !) Toutes ces techniques stimulent le raffinement génétique et contribuent au maintien de la diversité du capital génétique, en préservant toutes sortes de gènes au cas où ils s’avéreraient utiles dans d’autres combinaisons. Evolver applique automatiquement toutes ces techniques. Chapitre 7 : Algorithmes génétiques 175 176 Exemple numérique Chapitre 8 : Et aussi… Ajout de contraintes .......................................................................179 Contraintes plages................................................................................180 Contraintes fermes – personnalisées ................................................181 Contraintes souples .............................................................................182 Fonctions de pénalité .............................................................182 Entrée d’une fonction de pénalité .......................................183 Visualisation des effets d’une fonction de pénalité entrée ...................................................184 Visualisation des pénalités appliquées..............................184 Entrée de contraintes souples dans la feuille de calcul .......................................................................185 Autres exemples de fonctions de pénalité .........................185 Utilisation des fonctions de pénalité ..................................186 Problèmes à buts multiples................................................................187 Accélération du processus............................................................189 Mode d’exécution de l’optimisation Evolver................................191 Sélection ...................................................................................191 Croisement...............................................................................192 Mutation...................................................................................193 Remplacement.........................................................................193 Contraintes...............................................................................193 Chapitre 8 : Et aussi… 177 178 Ajout de contraintes Les problèmes réalistes présentent souvent des contraintes à respecter dans la recherche de solutions optimales. Ainsi, dans l’exemple du didacticiel relatif à la recherche de conception du transformateur le moins onéreux, l’une des contraintes est que le transformateur doit rester froid et ne doit pas émettre plus de 0,16 watts/cm². Un scénario qui satisfait à toutes les contraintes d’un modèle est qualifié de solution viable ou « valable ». Il est parfois difficile de trouver de solutions viables pour un modèle, et encore plus de solution optimale viable : dans les cas, notamment, où le problème est particulièrement complexe et où il n’existe que quelques solutions viables, ou dans ceux où le problème est spécifié à outrance (trop de contraintes, ou contraintes en conflit les unes avec les autres) et où il n’existe donc aucune solution viable. Il existe trois grands types de contraintes : les contraintes plages, ou plages min‐max imposées aux cellules ajustables, les contraintes fermes, dont le respect est obligatoire, et les contraintes souples que l’on désire respecter autant que possible mais pour lesquelles on est prêt à accepter le compromis en vue d’une importante amélioration de pertinence. Chapitre 8 : Et aussi… 179 Contraintes plages Les contraintes fermes les plus simples sont celles imposées aux variables elles-mêmes. En fixant une certaine plage pour chaque variable, on limite le nombre global de solutions possibles, au bénéfice d’une recherche plus efficace. Les valeurs Min et Max se définissent dans le volet Plages de cellules ajustables de la fenêtre Modèle. Elles indiquent à Evolver la plage de valeurs acceptables pour chaque variable. Evolver n’essaie que les valeurs comprises entre 0 et 5 000 pour les cellules spécifiées. Un second type de contrainte ferme imposée aux variables est intégré dans chacune des méthodes de résolution d’Evolver (recette, ordre, groupement, etc.) Par exemple, si l’on ajuste les variables selon la méthode de résolution budget, Evolver est soumis à la contrainte ferme de n’essayer que les ensembles de valeurs dont le total représente une même somme. À l’image du paramètre de plage, cette contrainte ferme réduit le nombre de scénarios possibles à soumettre à la recherche. L’option entières de la boîte de dialogue Modèle représente aussi une contrainte ferme, en ce qu’elle limite les essais d’Evolver aux seules valeurs entières (1, 2, 3, etc.), à l’exclusion des nombres réels (1,34, 2,034, etc.) lors de l’ajustement des valeurs de variable. 180 Ajout de contraintes Contraintes fermes – personnalisées Les contraintes extérieures aux contraintes de variables Evolver se définissent dans la boîte de dialogue Paramètres de contrainte. REMARQUE : Comme l’évolution dans la nature, la puissance de résolution d’un algorithme génétique tient principalement à sa capacité d’exploration libre de nombreuses combinaisons de solutions vraisemblables, avec prédilection naturelle à l’égard des meilleures. Interdire à Evolver ne fût-ce que de regarder les solutions non conformes à nos exigences, c’est handicaper, potentiellement, le processus d’optimisation de l’algorithme génétique. Il est toujours plus simple pour Evolver de trouver des solutions conformes aux contraintes fermes si le scénario initial de la feuille de calcul satisfait lui-même à ces contraintes. Evolver dispose ainsi d’un point de départ dans l’espace des solutions valables. En l’absence de scénario conforme aux contraintes, Evolver devra être exécuté au départ d’un scénario initial quelconque et il fera de son mieux pour identifier ceux qui satisfont aux contraintes. Chapitre 8 : Et aussi… 181 Contraintes souples Forcer un programme à ne rechercher que les solutions conformes à toutes les contraintes peut aboutir à l’absence de solutions viables. Il est souvent plus utile de disposer d’une solution approximativement viable, ou les contraintes ne sont pas nécessairement toutes satisfaites à la perfection. Plutôt que d’imposer des « contraintes fermes » dont le respect doit être assuré, la configuration de « contraintes souples » définit les contraintes quʹEvolver s’efforcera de satisfaire. Les contraintes souples sont plus réalistes et elles permettent à Evolver d’essayer beaucoup plus d’options. Dans le cas d’un problème soumis à de nombreuses contraintes (où il n’existe pas beaucoup de solutions possibles qui satisferaient à toutes les exigences), l’algorithme génétique d’Evolver est beaucoup plus susceptible de trouver la meilleure solution possible s’il lui est possible d’évaluer les solutions presque conformes aux contraintes. Quand les contraintes concernent des buts conceptuels, tels que « produire deux fois plus de fourchettes que de couteaux », il est rarement important d’y satisfaire en toute précision : surtout si l’obtention d’un programme de production parfaitement équilibré imposerait un processus d’optimisation exigeant toute une journée ! En l’occurrence, une bonne solution au problème, presque conforme à la contrainte (40 % de fourchettes, 23 % de couteaux et 37 % de cuillers, par exemple), serait plus acceptable que le gaspillage de toute une journée pour arriver, peut‐être, à la conclusion qu’il n’y a pas de solution parce qu’il est impossible de satisfaire à toutes les contraintes. Fonctions de pénalité 182 Les fonctions de pénalité facilitent la mise en œuvre de contraintes souples dans Excel. Plutôt que d’interdire strictement à Evolver la considération de certaines valeurs dans la recherche de solutions, on permet l’exploration de ces valeurs « incorrectes » mais on pénalise en conséquence les solutions qu’elles produisent. Par exemple, un problème peut impliquer la recherche du moyen de distribution de biens le plus efficace, compte tenu du fait qu’on ne dispose que de trois camions. Un modèle plus précis inclurait une fonction de pénalité qui reconnaîtrait un plus grand nombre de camions mais qui augmenterait substantiellement le coût du résultat. Les fonctions de pénalité se définissent dans la boîte de dialogue Paramètres de contrainte, ou directement dans le modèle moyennant l’ajout de formules qui les représentent. Ajout de contraintes Entrée d’une fonction de pénalité Evolver propose une fonction de pénalité par défaut, affichée dès les premières étapes de définition d’une contrainte souple. Une formule Excel valable quelconque peut cependant être utilisée pour calculer l’importance de la pénalité à appliquer lorsque la contrainte souple n’est pas satisfaite. Une fonction de pénalité ainsi entrée doit inclure le mot-clé écart, pour représenter le dépassement absolu de la limite de la contrainte. Au terme d’une simulation de solution itérative, Evolver vérifie si la contrainte souple a été respectée. Si non, la valeur de l’écart est introduite dans la formule de pénalité pour calculer la pénalité à appliquer à la statistique de simulation de la cellule cible minimisée ou maximisée. La pénalité s’ajoute à la statistique calculée pour la cellule cible ou s’en soustrait, de manière à la rendre moins « optimale ». Ainsi, si Maximum est sélectionné dans le champ But d’optimisation de la boîte de dialogue Modèle d’Evolver, la pénalité est déduite de la statistique calculée pour la cellule cible. Chapitre 8 : Et aussi… 183 Visualisation des effets d’une fonction de pénalité entrée Evolver s’accompagne d’une feuille de calcul Excel intitulée Penalité.xls, utile à l’évaluation des effets de différentes fonctions de pénalité sur les contraintes souples et les résultats de cellule cible. Cette feuille de calcul permet la sélection, dans un modèle, d’une contrainte souple dont on désire analyser les effets. On peut ensuite changer la fonction de pénalité pour voir comment elle mappera une valeur spécifique pour la contrainte souple non satisfaite dans une statistique pénalisée particulière de la cellule cible. Par exemple, si la contrainte souple est A10<100, on pourrait consulter Penalité.xls pour voir ce que serait la valeur cible si une valeur de 105 était calculée pour la cellule A10. Visualisation des pénalités appliquées 184 Lorsqu’une pénalité est appliquée à la cellule cible sous l’effet d’une contrainte souple non satisfaite, Suivi Evolver permet de visualiser l’importance de cette pénalité. Les valeurs des pénalités figurent aussi dans le Journal d’optimisation créé, facultativement, après l’optimisation. Ajout de contraintes Entrée de contraintes souples dans la feuille de calcul Les fonctions de pénalité peuvent aussi être introduites directement dans la feuille de calcul. Une fonction de pénalité booléenne affecte une pénalité définie à tout scénario non conforme à la contrainte spécifiée. Par exemple, si la valeur de la cellule B1 (offre) doit être au moins égale à celle de la cellule A1 (demande), on pourrait définir cette fonction de pénalité dans une autre cellule : =SI(A1>B1; ‐1000; 0). Si le résultat de cette cellule était ajouté à la statistique de la cellule cible, chaque fois qu’Evolver produirait une solution non conforme à la contrainte (offre non conforme à la demande), la statistique de la cellule cible maximisée serait réduite d’une valeur de 1 000 par rapport au résultat réel. Toute solution contraire à la contrainte produirait une valeur inférieure pour la statistique de la cellule cible, au point qu’Evolver finirait par éliminer naturellement ces organismes. Un autre type de fonction, à échelle de pénalité, pénalise plus exactement la solution en fonction de son degré de non conformité par rapport à la contrainte. Cette fonction convient généralement mieux à la réalité des choses, car une solution où l’offre ne répond pas tout à fait à la demande vaudrait mieux qu’une solution où elle y serait vraiment très inférieure. Une simple fonction d’échelle de pénalité calcule la différence absolue entre la valeur cible de la contrainte et sa valeur réelle. Par exemple, dans ce même exemple où A1 (la demande) ne doit pas dépasser B1 (l’offre), on pourrait appliquer la fonction de pénalité suivante : =SI(A1>B1, (A1-B1)^2, 0). Ce type de fonction de pénalité mesure la proximité de satisfaction d’une contrainte et exagère la différence en l’élevant au carré. La pénalité varie ainsi en fonction de la gravité de la violation de la contrainte. Autres exemples de fonctions de pénalité Chapitre 8 : Et aussi… Supposons par exemple un modèle de production où l’une des contraintes est que la quantité de bois utilisée doit être égale à celle de plastique. Cette contrainte est satisfaite lorsque « QtéBois » = « QtéPlastique ». Pour rechercher les solutions qui incluent une même quantité des deux matériaux, on crée une fonction de pénalité défavorable aux solutions éloignées du but. La formule « =ABS(QtéBois‐QtéPlastique) » calcule la différence absolue (non négative) entre la quantité de bois et celle de plastique utilisée. La fonction ABS() produit la même valeur de pénalité si QtéBois est supérieure de 20 unités à QtéPlastique ou que QtéPlastique est inférieure de 20 unités à QtéBois. Lors de l’optimisation du modèle, le but est de minimiser la moyenne des résultats de simulation pour cette différence absolue. 185 Supposons que nous imposions plutôt, comme contrainte, que la quantité de bois doit être deux fois supérieure à celle de plastique. La fonction de pénalité deviendrait alors : =ABS(QtéBois-QtéPlastique*2) Une autre contrainte possible serait que la quantité de bois doive être au moins deux fois supérieure à celle de plastique. Là où l’exemple précédent produisait une pénalité s’il y avait trop de bois, celui-ci ne s’intéresse qu’à la quantité minimale de bois : si QtéBois est 10 fois supérieure à QtéPlastique, aucune pénalité ne doit être appliquée. La fonction de pénalité applicable s’exprimerait ainsi : =SI(QtéBois<QtéPlastique*2; ABS(QtéPlastique*2QtéBois);0) Si QtéBois est au moins deux fois supérieure à QtéPlastique, la fonction de pénalité renvoie 0. Sinon, elle indique de combien la valeur QtéBois est inférieure à deux fois QtéPlastique. Utilisation des fonctions de pénalité Une fois définies, les fonctions de pénalité appelées à décrire les contraintes souples du modèle peuvent être combinées à la formule de cellule cible ordinaire pour obtenir une formule de cellule cible sous contrainte. Dans l’exemple illustré ci-dessous, si la cellule C8 calcule le coût total d’un projet et les cellules E3:E6 contiennent cinq fonctions de pénalité, on peut introduire dans la cellule C10 une formule telle que =SOMME(C8; E3:E6). On crée une cellule qui ajoute les contraintes au total et on minimise la moyenne des résultats de la simulation pour cette cellule. 186 Ajout de contraintes On ajoute ainsi les pénalités de la colonne E au coût de C8 pour obtenir une fonction de coût sous contrainte ou pénalité dans C10. Remarquez que s’il s’agissait d’un problème de maximisation, on soustrairait, plutôt que d’additionner, les pénalités de la cellule cible originale. Lors de l’utilisation d’Evolver, on sélectionne simplement cette cellule sous contrainte, C10, comme cellule cible dont la statistique de simulation doit être optimisée. Quand Evolver essaie d’optimiser une statistique sous contrainte pour la cellule cible, les fonctions de pénalité tendent à forcer la recherche vers les scénarios conformes aux contraintes. Evolver finit ainsi par produire des solutions qui apportent de bonnes solutions au problème et qui satisfont ou presque à toutes les contraintes (valeurs de pénalité proches de 0). Problèmes à buts multiples Le champ de cellule cible d’Evolver n’admet qu’une cellule. Il n’en est pas moins possible de résoudre le problème pour plusieurs en créant une formule qui combine deux buts en un. Considérons, par exemple, un expert en polymère à la recherche d’une matière à la fois souple et robuste. Son modèle calcule la résistance, la souplesse et le poids qui résulteraient d’une formule donnée de combinaisons chimiques. Les quantités de chaque ingrédient sont les variables ajustables du problème. Comme on cherche à maximiser la robustesse de la matière (cellule S3) mais aussi sa souplesse (cellule F3), on peut définir dans une nouvelle cellule la formule =(S3+F3). Cette cellule devient la nouvelle cellule cible. Plus sa valeur est élevée, plus la solution globale est bonne. Si la souplesse est plus importante que la robustesse, la formule de la cellule cible pourrait devenir =(S3+(F3*2)). De cette façon, les scénarios qui accroissent la souplesse d’une certaine valeur seront mieux vus (meilleure « cote » de pertinence) que ceux qui augmentent la robustesse de la même valeur. Pour maximiser la robustesse d’une matière (cellule S5) tout en minimisant son poids (cellule W5), on créerait une nouvelle cellule dotée de la formule suivante : =(S5^2)-(W5^2). Cette formule produirait une valeur supérieure pour les structures à la fois robustes et légères, moindre pour les structures faibles et lourdes et également moyenne pour les scénarios de structures faibles mais légères ou robustes mais lourdes. Cette nouvelle cellule servirait de cible, avec maximisation de la moyenne pour satisfaire les deux objectifs. Chapitre 8 : Et aussi… 187 188 Ajout de contraintes Accélération du processus L’utilisation d’Evolver pour la résolution d’un problème fait appel, à la fois, à la bibliothèque Evolver de routines compilées pour gérer le processus et à la fonction d’évaluation de feuille de calcul d’Excel pour examiner les différents scénarios. Une grande partie du temps consacré à l’opération tient en fait au recalcul de la feuille par Excel. Différentes approches permettent d’accélérer le processus d’optimisation Evolver et celui du recalcul d’Excel. Chapitre 8 : Et aussi… ♦ La vitesse d’Evolver est directement liée à celle du processeur de l’ordinateur. Ainsi, un Pentium/2 GHz est environ deux fois plus rapide qu’un Pentium/1 GHz. Autrement dit, Evolver peut évaluer deux fois plus d’essais pendant une même période de temps. ♦ Dès le moment où Evolver a plus ou moins convergé sur une solution et que la meilleure solution n’est plus améliorée depuis un certain temps (1 000 derniers essais, par exemple), l’accroissement du taux de mutation peut permettre à Evolver d’élargir sa recherche plutôt que de continuer à raffiner ses solutions dans la population actuelle à l’aide, principalement, du croisement. L’utilitaire Suivi Evolver permet d’accroître ce taux de mutation, à travers la commande Paramètres de population. ♦ Les plages de cellules ajustables plus étroites réduisent la zone de recherche d’Evolver et peuvent par conséquent accélérer le processus. On veillera cependant à prévoir suffisamment d’espace pour assurer l’exploration de toutes les solutions réalistes. 189 190 Accélération du processus Mode d’exécution de l’optimisation Evolver Cette section décrit plus spécifiquement la manière dont les algorithmes d’optimisation d’Evolver s’exécutent. REMARQUE : Il n’est pas nécessaire de maîtriser cette information pour utiliser Evolver. La technologie des algorithmes génétiques d’Evolver (méthodes de résolution recette et ordre, etc.) repose pour la plupart sur les travaux académiques réalisés ces 10 dernières années dans le domaine des algorithmes génétiques. La plupart des méthodes de résolution descendantes incluses dans Evolver et les fonctionnalités de groupes multiples de cellules ajustables, de recul, de stratégie et de probabilité sont toutefois uniques à Evolver. Evolver repose sur une approche de régime permanent. Cela veut dire qu’un seul organisme est remplacé à la fois, plutôt que toute une « génération ». Cette technique s’est avérée équivalente ou même supérieure à la méthode de remplacement générationnel. Pour déterminer le nombre équivalent de « générations » exécutées par Evolver, il suffit de diviser le nombre d’essais individuels explorés par la taille de la population. Sélection Lorsqu’un nouvel organisme doit être créé, deux parents sont choisis dans la population actuelle. Les organismes dont les cotes de pertinence sont plus élevées ont plus de chances d’être choisies comme parents. Dans Evolver, le choix des parents s’effectue selon un mécanisme de rang. Contrairement à certains systèmes d’algorithmes génétiques, où la probabilité qu’un parent soit sélectionné à la reproduction est directement proportionnelle à sa pertinence, l’approche par rang présente une courbe de probabilité de sélection plus lisse. On évite ainsi que les bons organismes ne dominent complètement l’évolution dès le début du processus. Chapitre 8 : Et aussi… 191 Croisement Comme chaque méthode de résolution ajuste les variables de différentes manières, Evolver applique une routine de croisement différente optimisée selon le type de problème considéré. La méthode recette fondamentale exécute le croisement selon une routine de croisement uniforme : plutôt que de couper la liste de variables en un scénario donné à un certain point et de traiter chacun des deux blocs ainsi formés (croisement à « un point » ou « double point »), deux groupes sont formés par sélection aléatoire d’éléments . Les croisements conventionnels à x points risquent d’influencer la recherche en raison de la position étrangère des variables, alors que la méthode de croisement uniforme préserve vraisemblablement mieux le schéma et peut produire n’importe quel schéma au départ des deux parents. population originale croisement ponctuel unique – En cas de croisement, un point est sélectionné aléatoirement et l’organisme se coupe en deux. croisement uniforme – Un % donné de l’organisme est sélectionné aléatoirement. La méthode de résolution ordre effectue le croisement selon un algorithme similaire à l’opérateur décrit dans le guide Handbook of Genetic Algorithms de L. Davisfn : elle sélectionne aléatoirement les éléments d’un parent, trouve leur place dans l’autre parent et copie les éléments restants dans le second parent, dans le même ordre que celui dans lequel ils figuraient dans le premier. On préserve ainsi une partie des sous-ordres des parents originaux tout en en créant quelques nouveaux. 192 Mode d’exécution de l’optimisation Evolver Mutation À l’image du croisement, les méthodes de mutation sont adaptées à chacune des méthodes de résolution. La méthode recette fondamentale exécute la mutation par considération individuelle de chaque variable. Un nombre aléatoire compris entre 0 et 1 est généré pour chacune des variables de l’organisme et, si une variable reçoit un nombre inférieur ou égal au taux de mutation (0,06, par exemple), elle est mutée. Un algorithme exclusif détermine automatiquement l’importance et la nature de la mutation. La mutation d’une variable implique son remplacement par une valeur aléatoire (comprise dans la plage min-max applicable). Pour préserver toutes les valeurs originales, la méthode de résolution ordre effectue la mutation par permutation des positions de certaines variables dans l’organisme. Le nombre de permutations augmente ou diminue proportionnellement à l’accroissement ou à la réduction du taux de mutation (de 0 à 1). Remplacement Comme Evolver applique une méthode de remplacement par rang plutôt que de remplacement générationnel, les organismes les moins performants sont toujours remplacés par le nouvel organisme créé par sélection, croisement et mutation, indépendamment de sa « cote » de pertinence. Contraintes Les contraintes fermes sont exécutées selon la technologie de « recul » exclusive de Palisade. Si un nouveau descendant est contraire à certaines contraintes imposées de l’extérieur, Evolver revient à l’un des parents et change l’enfant jusqu’à ce qu’il soit conforme à l’espace de solution admis. croisement recul organismes valables (solutions) organisme « descendant » non valable Chapitre 8 : Et aussi… 193 194 Mode d’exécution de l’optimisation Evolver Annexe A : Automatisation d’Evolver Evolver est assorti d’un langage macro intégral qui permet l’élaboration d’applications personnalisées tirant parti de ses capacités. Les fonctions personnalisées d’Evolver sont exploitables en VBA pour la configuration et l’exécution d’optimisations et l’affichage de leurs résultats. Pour plus de détails sur cette interface de programmation, voir le document d’aide Kit du développeur Evolver, accessible depuis le menu d’aide d’Evolver. Annexe A : Automatisation d’Evolver 195 196 Annexe B : Dépannage / Questions-Réponses Dépannage / Questions-Réponses Vous trouverez dans cette section la réponse aux questions souvent posées au sujet d’Evolver. Après l’avoir consultée, si vous n’y trouvez pas la question, le problème ou la suggestion appropriée, prenez contact avec le service d’assistance Palisade à l’un des numéros indiqués au premier chapitre de ce manuel. Q : Pourquoi m’est-il difficile d’obtenir une réponse valable d’Evolver ? R : Vérifiez que votre boîte de dialogue Evolver est bien configurée. La plupart des problèmes rencontrés tiennent à la définition des variables. Chaque groupe de cellules ajustables doit être exclusif : aucune cellule ou plage de cellules ne peut être traitée sous plus d’une méthode de résolution. Q : Evolver peut-il gérer des concepts ou des catégories plutôt que de simples valeurs numériques ? R : Evolver gère, indirectement, toutes les formes de données : les nombres n’en sont que les symboles. Employez une table de recherche dans Excel pour traduire vos entiers en chaînes de texte et vice-versa. Evolver (comme tous les autres programmes informatiques) ne traite, en soi, que des valeurs numériques, mais votre interface peut utiliser ces valeurs pour représenter et afficher n’importe quelles chaînes. Annexe B : Dépannage / Questions-Réponses 197 Q : Alors que je configure mes boîtes de dialogue de la même manière et que je laisse Evolver tourner pendant la même durée, j’obtiens parfois des solutions différentes. Pourquoi ? R : Comme dans la sélection naturelle du monde biologique, l’algorithme génétique d’Evolver ne suit pas toujours la même voie lors de la recherche de solutions (à moins que vous n’utilisiez une racine de nombres aléatoires fixe). Ironiquement, c’est cette « imprévisibilité » qui permet à Evolver de résoudre plus de types de problèmes et, souvent, de produire de meilleures solutions que les techniques conventionnelles. Le moteur d’algorithmes génétiques d’Evolver ne se limite pas à exécuter une série de commandes préprogrammées, ou à insérer des valeurs dans une formule mathématique. Il essaie efficacement de nombreux scénarios hypothétiques aléatoires simultanés, pour raffiner ensuite la recherche au moyen de nombreux opérateurs de « survie du plus apte » également porteur d’éléments aléatoires. Q : Pourquoi la meilleure solution trouvée ne change-t-elle pas ? R : Vous avez peut-être spécifié une mauvaise cellule cible dans la boîte de dialogue Modèle d’Evolver. Evolver considère cette cellule vierge et la valeur ne change pas, faute de formule. Pour remédier à ce problème, ouvrez la boîte de dialogue Modèle d’Evolver et sélectionnez une cellule cible appropriée, qui reflète adéquatement la qualité ou non de chaque solution possible. Une cellule cible appropriée contient une formule qui dépend (directement ou indirectement) des variables qu’Evolver ajuste (les cellules ajustables). Q : Certaines cellules de mon modèle de feuille de calcul contiennent les symboles « #### ». R : Si la cellule est trop petite pour afficher son contenu intégral, elle affiche plusieurs signes ####. Augmentez la taille de la cellule. 198 Dépannage / Questions-Réponses Q : Evolver fonctionne bien mais n’existe-t-il pas de moyen simple d’obtenir de meilleurs résultats ? R : Pouvez-vous assouplir les contraintes de votre problème, y compris les plages de variables ? Remplacez certaines de vos contraintes fermes par des contraintes souples, avec fonctions de pénalité (voir Ajout de contraintes au Chapitre 8 : Et aussi…) Trop de restrictions à la liberté d’Evolver peuvent l’empêcher d’explorer certains espaces de possibilités susceptibles de produire de meilleurs résultats. N’oubliez pas que plus Evolver explore de possibilités, plus il aura de chances de trouver la solution optimale. Pour d’autres idées sur la manière d’affiner Evolver, voir le Chapitre 8 : Et aussi... Plus Evolver peut examiner de scénarios, plus il est apte à produire de bons résultats. Pour accélérer le traitement, désactivez l’option d’actualisation de l’affichage « à chaque recalcul ». Annexe B : Dépannage / Questions-Réponses 199 Annexe B : Dépannage / Questions-Réponses 200 Annexe C : Ressources complémentaires Ressources complémentaires La liste présentée ci-dessous propose une sélection de documentation relative aux algorithmes génétiques et à la vie artificielle [en anglais]. L’astérisque (*) identifie les ouvrages préférés de Palisade. Livres • Bolles, R.C., & Beecher, M.D. (Eds.). (1988). Evolution and Learning. Lawrence Erlbaum. • Beer, R.D. (1990). Intelligence as Adaptive Behavior: An Experiment in Computational Neuroethology. Academic Press. • Davis, Lawrence (1987). Genetic Algorithms and Simulated Annealing. Palo Alto, CA: Morgan Kaufman. * Davis, Lawrence (1991). Handbook of Genetic Algorithms. New York: Van Nostrand Reinhold. • Darwin, Charles (1985). On The Origin of Species. London: Penguin Classics. (Publication originale en 1859) * Dawkins, Richard. (1976). The Selfish Gene. Oxford University Press. • Eldredge, N. (1989). Macroevolutionary Dynamics: Species, Niches, and Adaptive Peaks. McGraw-Hill. • Fogel, L., Owens, J., and Walsh, J. (1966). Artificial Intelligence through Simulated Evolution. New York: John Wiley and Sons. • Goldberg, David (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Reading, MA: Addison-Wesley Publishing. • Holland, J.H. (1975). Adaptation in Natural and Artificial Systems. Ann Arbor, MI: University of Michigan Press. • Koza, John (1992). Genetic Programming. Cambridge, MA: MIT Press. * Langton, C.L. (1989). Artificial Life. MIT Press. [ALife I] • Levy, Steven (1992). Artificial Life. New York: Pantheon. Annexe C : Ressources complémentaires 201 • Meyer, J.-A., & S.W. Wilson (Eds.). (1991). Proceedings of the First International Conference on Simulation of Adaptive Behavior: From Animals to Animats. MIT Press/Bradford Books. * Proceedings of the Sixth International Conference (ICGA) on Genetic Algorithms (1995). San Mateo, CA: Morgan Kaufman Publishing. (Also available; the first five ICGA proceedings). • Proceedings of the Workshop on Artificial Life (1990). Christopher G. Langton, Senior Editor. Reading, MA: Addison-Wesley Publishing. • Rawlins, Gregory (1991). Foundations of Genetic Algorithms. San Mateo, CA: Morgan Kaufman Publishing. • Richards, R.J. (1987). Darwin and the Emergence of Evolutionary Theories of Mind and Behavior. U. Chicago Press. • Williams, G.C. (1966). Adaptation and Natural Selection. Princeton U. Press. Articles * Antonoff, Michael (October, 1991). Software by Natural Selection. Popular Science, p. 70-74. • Arifovic, Jasmina (January, 1994). Genetic Algorithm Learning and the Cobweb Model. Dans Journal of Economic Dynamics & Control v18 p.3 * Begley, S (May 8, 1995). “Software au Naturel” Dans Newsweek p. 70 • Celko, Joe (April, 1993). Genetic Algorithms and Database Indexing. Dans Dr. Dobb’s Journal p.30 • Ditlea, Steve (November, 1994). Imitation of Life. Dans Upside Magazine p.48 • Gordon, Michael (June, 1991). User-based Document Clustering by Redescribing Subject Descriptions with a Genetic Algorithm. Dans Journal of the American Society for Information Science v42 p.311 • Hedberg, Sara (September, 1994). Emerging Genetic Algorithms. Dans AI Expert, p. 25-29. • Hinton, G.E., & Nowlan, S.J. (1987). How Learning Can Guide Evolution. Dans Complex Systems 1: p.495-502. * Kennedy, Scott (June, 1995). Genetic Algorithms: Digital Darwinism. Dans Hitchhicker’s Guide to Artificial Intelligence Miller Freeman Publishers • Kennedy, Scott (December, 1993). Five Ways to a Better GA. Dans AI Expert, p. 35-38 • Lane, A (June, 1995). The GA Edge in Analyzing Data. Dans AI Expert p.11 • Lee, Y.C. (Ed.). (1988). Evolution, learning, and cognition. Dans World Scientific. 202 Ressources complémentaires • Levitin, G and Rubinovitz, J (August, 1993). Genetic Algorithm for Linear and Cyclic Assignment Problem. Dans Computers & Operations Research v20 p.575 • Marler, P., & H.S. Terrace. (Eds.). (1984). The Biology of Learning. SpringerVerlag. • Mendelsohn, L. (December, 1994) Evolver Review dans Technical Analysis of Stocks and Commodities. p.33 • Maynard Smith, J. (1987). When Learning Guides Evolution. Dans Nature 329: p.761-762. • Murray, Dan (June, 1994). Tuning Neural Networks with Genetic Algorithms. Dans AI Expert p.27 • Wayner, Peter (January, 1991). Genetic Algorithms: Programming Takes a Valuable Tip from Nature. Dans Byte Magazine v16 p.361 Magazines et bulletins d’information • Advanced Technology for Developers (monthly newsletter). Jane Klimasauskas, Ed., High-Tech Communications, 103 Buckskin Court, Sewickley, PA 15143 (412) 741-7699 • AI Expert (monthly magazine). Larry O’Brien, Ed., 600 Harrison St., San Francisco, CA 94107 (415) 905-2234. *Bien que AI Expert ne soit plus publié depuis le printemps 1995, ses anciens numéros contiennent de nombreux articles intéressants. Miller-Freeman, San Francisco. • Applied Intelligent Systems (bimonthly newsletter). New Science Associates, Inc. 167 Old Post Rd., Southport, CT 06490 (203) 259-1661 • Intelligence (monthly newsletter). Edward Rosenfeld, Ed., PO Box 20008, New York, NY 10025-1510 (212) 222-1123 • PC AI Magazine (monthly magazine). Joseph Schmuller, Ed., 3310 West Bell Rd., Suite 119, Phoenix, AZ 85023 (602) 971-1869 • Release 1.0 (monthly newsletter). Esther Dyson, Ed., 375 Park Avenue, New York, NY 10152 (212) 758-3434 • Sixth Generation Systems (monthly newsletter). Derek Stubbs, Ed., PO Box 155, Vicksburg, MI, 49097 (616) 649-3592 Annexe C : Ressources complémentaires 203 Introduction à la simulation Si vous découvrez la simulation ou que vous souhaitez approfondir vos connaissances, les ouvrages et articles suivants peuvent se révéler utiles : * Baird, Bruce F. Managerial Decisions Under Uncertainty: John Wiley & Sons, Inc. 1989. * Clemen, Robert T. Making Hard Decisions: Duxbury Press, 1990. • Hertz, D.B. "Risk Analysis in Capital Investment": HBR Classic, Harvard Business Review, September/October 1979, pp. 169-182. • Hertz, D.B. and Thomas, H. Risk Analysis and Its Applications: John Wiley et Sons, New York, NY, 1983. • Megill, R.E. (Editor). Evaluating and Managing Risk: PennWell Books, Tulsa, OK, 1984. • Megill, R.E. An Introduction to Risk Analysis, 2nd Ed.: PennWell Books, Tulsa, OK, 1985. • Morgan, M. Granger and Henrion, Max, with a chapter by Mitchell Small, Uncertainty: Cambridge University Press, 1990. • Newendorp, P.D. Decision Analysis for Petroleum Exploration: Petroleum Publishing Company, Tulsa, Okla., 1975. • Raiffa, H. Decision Analysis: Addison-Wesley, Reading, Mass., 1968. 204 Ressources complémentaires Références techniques à la simulation et aux techniques Monte Carlo Si vous souhaitez approfondir vos connaissances en matière de simulation, techniques d’échantillonnage et théorie statistique, les ouvrages suivants peuvent se révéler utiles : • Iman, R. L., Conover, W.J. "A Distribution-Free Approach To Inducing Rank Correlation Among Input Variables": Commun. Statist.-Simula. Computa.(1982) 11(3), 311-334 * Law, A.M. et Kelton, W.D. Simulation Modeling and Analysis: McGrawHill, New York, NY, 1991,1982. Rubinstein, R.Y. Simulation and the Monte Carlo Method: John Wiley et Sons, New York, NY, 1981. Références techniques aux techniques d’échantillonnage Hypercube latin Si vous souhaitez obtenir des informations sur la technique relativement nouvelle de l’échantillonnage Hypercube latin, les sources suivantes peuvent se révéler utiles : • Iman, R.L., Davenport, J.M., and Zeigler, D.K. "Latin Hypercube Sampling (A Program Users Guide)": Technical Report SAND79-1473, Sandia Laboratories, Albuquerque (1980). • Iman, R.L. and Conover, W.J. "Risk Methodology for Geologic Displosal of Radioactive Waste: A Distribution – Free Approach to Inducing Correlations Among Input Variables for Simulation Studies »: Technical Report NUREG CR 0390, Sandia Laboratories, Albuquerque (1980). • McKay, M.D, Conover, W.J., and Beckman, R.J. "A Comparison of Three Methods for Selecting Values of Input Variables in the Analysis of Output from a Computer Code": Technometrics (1979) 211, 239-245. • Startzman, R. A. and Wattenbarger, R.A. "An Improved Computation Procedure for Risk Analysis Problems With Unusual Probability Functions": SPE Hydrocarbon Economics and Evaluation Symposium Proceedings, Dallas (1985). Annexe C : Ressources complémentaires 205 Exemples et études de cas faisant appel à la simulation Si vous souhaitez examiner des études de cas démontrant l’utilisation de la simulation dans le cadre de situations réelles, consultez les ouvrages suivants : Hertz, D.B. et Thomas, H. Practical Risk Analysis – An Approach Through Case Histories: John Wiley et Sons, New York, NY, 1984. * Murtha, James A. Decisions Involving Uncertainty, An @RISK Tutorial for the Petroleum Industry: James A. Murtha, Houston, Texas, 1993 • Newendorp, P.D. Decision Analysis for Petroleum Exploration: Petroleum Publishing Company, Tulsa, Okla., 1975. • Pouliquen, L.Y. Risk Analysis in Project Appraisal: World Bank Staff Occasional Papers Number Eleven. John Hopkins Press, Baltimore, MD, 1970. * Trippi, Robert R. and Truban, Efraim, Neural Networks: In Finance et Investing: Probus Publishing Co., 1993 206 Ressources complémentaires Glossaire Pour tous autres détails concernant un terme particulier, voir l’index Evolver au chapitre suivant. Algorithme Méthode mathématique de résolution pas à pas d’un certain type de problème. Tous les programmes informatiques reposent sur la combinaison de nombreux algorithmes. Algorithme génétique Procédure d’amélioration des résultats d’une opération par essai répété de plusieurs solutions possibles et reproduction et mélange des éléments des meilleures solutions. Le processus est inspiré de celui de l’évolution biologique naturelle, avec survie et reproduction du plus apte. Il ressemble d’ailleurs très fort à ce processus. Algorithme par escalade Procédure d’optimisation partant d’un scénario donné et procédant par répétition, à petits pas, dans la direction qui l’améliore le plus. Les algorithmes par escalade sont rapides et simples, mais ils présentent deux inconvénients. Le premier est qu’il n’est pas toujours facile de trouver la direction de la meilleure amélioration. Ensuite, les algorithmes escaladent généralement la colline la plus proche, ou maximum local. La technique échoue ainsi dans la recherche du maximum global d’un problème difficile. Aplatissement Mesure de la forme d’une distribution, plate ou culminante. Plus la valeur d’aplatissement est élevée, plus la distribution est culminante. Voir Asymétrie Asymétrie Mesure de la forme d’une distribution. L’asymétrie indique le degré de dissymétrie dans une distribution. Les distributions asymétriques comportent un plus grand nombre de valeurs d’un côté de la valeur culminante ou valeur probable : une queue est beaucoup plus longue que l’autre. Une asymétrie nulle (0) indique une distribution symétrique, tandis qu’une asymétrie négative révèle une distribution désaxée vers la gauche et une asymétrie positive, une dissymétrie vers la droite. Voir Aplatissement Barre d’état Barre figurant au bas de la fenêtre Excel, indicatrice de l’activité courante d’Evolver. Glossaire 207 Boîte de dialogue Fenêtre d’un écran d’ordinateur dans laquelle l’utilisateur est invité à fournir l’information demandée. Evolver présente deux grandes boîtes de dialogue : Modèle et Cellules ajustables. Cellule La cellule est l’unité élémentaire de la feuille de calcul, dans laquelle les données sont stockées. Chaque feuille de calcul Excel peut compter jusqu’à 256 colonnes et 16 000 lignes, pour un total de plus de 4 millions de cellules. Cellule ajustable Cellule de tableur dont la valeur peut être ajustée par Evolver dans le but d’optimiser la valeur de la cellule cible. Une cellule ajustable est une valeur variable. Elle doit toujours contenir une valeur numérique simple, plutôt qu’une équation. Cellule cible Cellule de la feuille de calcul dont on veut minimiser ou maximiser la valeur. Cette cellule est identifiée dans la boîte de dialogue Modèle d’Evolver (commande Définition du modèle ou icône Modèle d’Evolver). Centile Incrément des valeurs dans un groupe de données. Les centiles divisent les données en 100 parts égales, contenant chacune un pour cent des valeurs totales. Le 60e centile, par exemple, est la valeur de l’ensemble par rapport à laquelle 60 % des valeurs sont inférieures et 40 %, supérieures. Champ Unité élémentaire destinée à l’entrée de données. Suivant son type, un champ peut recevoir du texte, des images ou des valeurs numériques. La plupart des champs des boîtes de dialogue d’Evolver invitent l’utilisateur à indiquer l’emplacement de cellules de tableur ou à préciser les options de comportement d’Evolver. Contraintes Les contraintes sont les conditions qui devraient (contraintes souples) ou doivent (contraintes fermes) être satisfaites pour qu’un scénario soit jugé valable. Contraintes fermes Contraintes obligatoires. Par exemple, les plages des variables d’un problème de type recette sont des contraintes fermes. Une variable de plage comprise entre 10 et 20 ne peut jamais représenter une valeur inférieure à 10 ou supérieure à 20. Voir aussi contraintes souples. 208 Contraintes souples Les contraintes qui ne doivent pas obligatoirement être respectées de manière rigoureuse peuvent être définies comme contraintes souples plutôt que fermes. On spécifie alors une fonction de pénalité dans Evolver ou on ajoute cette fonction à la fonction de pertinence de la cellule cible. Il vaut généralement mieux que les contraintes soient souples. La raison en est que : 1) Evolver résout généralement plus rapidement les problèmes sous contraintes souples et 2) un modèle sous contraintes souples trouve souvent une très bonne solution presque parfaitement conforme aux contraintes souples et donc plus intéressante qu’une solution moins bonne même si conforme aux contraintes fermes. Croisement Dans le contexte génétique, le croisement est un échange de matériel génétique équivalent entre chromatides homologues lors de la méiose. Dans Evolver, le terme croisement désigne l’équivalent informatique de ce concept, où l’échange entre les variables produit de nouvelles combinaisons de scénarios. Déterministe Terme indiquant l’absence d’incertitude dans une valeur ou variable donnée. Distribution continue Distribution de probabilités dans laquelle n’importe quelle valeur comprise entre le minimum et le maximum est possible (probabilité finie). Voir Distribution discrète Distribution cumulative Ensemble de points dont chacun représente une distribution de probabilités intégrale commençant à la valeur minimale et aboutissant à la valeur associée de la variable aléatoire. Voir Distribution cumulative de fréquences, Distribution de probabilités Distribution cumulative de fréquences Terme désignant les distributions cumulatives en entrée et de sortie d’Evolver. Une distribution cumulative se construit par cumul de la fréquence (ajout progressif de hauteurs de barres) sur la plage d’une distribution de fréquence. Une distribution cumulative peut être une courbe « à pente inclinée vers le haut », dans laquelle la distribution décrit la probabilité d’une valeur inférieure ou égale à une valeur variable quelconque. Elle peut aussi être « inclinée vers le bas », lorsque la distribution décrit la probabilité d’une valeur supérieure ou égale à une valeur variable quelconque. Voir Distribution cumulative Distribution de fréquence Terme correct désignant les distributions de probabilités de sortie et les histogrammes en entrée (HISTOGRM) d’Evolver. Une distribution de fréquence se construit à partir des données, moyennant l’organisation des valeurs en classes et la représentation de la Glossaire 209 fréquence de réalisation dans une classe quelconque par la hauteur de la barre. Cette fréquence correspond à la probabilité. Distribution de probabilités Distribution de probabilités ou fonction de densité de probabilité est le terme statistique correct désignant une distribution de fréquence construite à partir d’un ensemble de valeurs infiniment grand, où la taille des classes est infinitésimale. Voir Distribution de fréquence Distribution discrète Distribution de probabilités dans laquelle seul est possible un nombre fini de valeurs discrètes compris entre le minimum et le maximum. Voir Distribution continue Écart type Mesure de la dispersion des valeurs d’une distribution, égale à la racine carrée de la variance. Voir Variance Échantillon aléatoire Valeur choisie dans une distribution de probabilités décrivant une variable aléatoire. Cet échantillon est prélevé au hasard selon un « algorithme » d’échantillonnage. La distribution de fréquence construite à partir d’un grand nombre d’échantillons aléatoires prélevés par un tel algorithme se rapproche étroitement de la distribution de probabilités pour laquelle l’algorithme a été conçu. Essais Processus par lequel Evolver génère une valeur pour chaque variable du problème, puis recalcule le scénario en vue de son évaluation. Fonction de pénalité Équation de feuille de calcul qu’Evolver peut utiliser pour pénaliser les scénarios non conformes à certains critères. Les fonctions de pénalité servent à minimiser les effets secondaires des scénarios ou à atteindre de multiples objectifs. Contrairement à une contrainte ferme, une fonction de pénalité admet l’exploration de solutions non conformes : elle « pénalise » simplement ces solutions pour que l’évolution de la population s’en écarte. Les pénalités booléennes sont de type « oui » ou « non » : elles imposent la même pénalité à toutes les solutions non conformes. Les échelles de pénalité sont plus souples, en ce que leur action est proportionnelle à l’importance de la violation. Fonction de pertinence Formule de calcul de la qualité ou non d’une solution proposée à un problème donné. L’expression désigne souvent le champ de l’algorithme génétique par analogie à la sélection biologique. La conception exacte d’une fonction de pertinence est essentielle à l’utilisation d’un algorithme génétique pour la résolution d’un problème. Un résultat de simulation de cette fonction de pertinence devient le but ou la valeur cible à optimiser. 210 Fonctions Dans Excel, une fonction est une formule prédéfinie qui prend une valeur, effectue une opération et renvoie une valeur. Excel propose des centaines de formules intégrées (« SOMME », par exemple), pour une économie de temps et d’espace. Par exemple, plutôt que de taper A1+ A2+ A3+ A4+ A5+ A6, on tapera SOMME(A1:A6) et on obtiendra, rapidement, le même résultat. Génération Dans le domaine des algorithmes génétiques, chaque population totalement nouvelle de solutions « descendantes » est une nouvelle « génération ». Certaines routines d’algorithme génétique accouplent tous les membres d’une population en même temps, pour créer une toute nouvelle « génération » d’organismes descendants venant remplacer la population précédente. Evolver évalue et remplace plutôt un organisme à la fois (par rang). Le terme « génération » n’est donc pas utilisé dans sa documentation. L’approche d’Evolver, dite de régime permanent, est tout aussi efficace que le remplacement générationnel. Génotype En biologie, constitution génétique d’un individu. Le terme fait généralement référence à la somme totale des gènes de l’individu. Dans l’étude des AG, le génotype sert à décrire le « chromosome » artificiel évalué comme solution possible au problème. Groupe de cellules ajustables Chaque ensemble de variables, assorti de la manière dont il doit être traité, constitue un groupe de cellules ajustables. Evolver liste tous les groupes de cellules ajustables dans le volet réservé aux variables de la boîte de dialogue Modèle. Cette architecture permet l’élaboration et la description de problèmes complexes sous la forme de groupes divers de cellules ajustables. Hypercube latin Technique d’échantillonnage stratifié relativement neuve utilisée dans la modélisation par simulation. Contrairement aux techniques de type Monte Carlo, les techniques d’échantillonnage stratifié tendent à forcer la convergence d’une distribution échantillonnée en moins d’échantillons. Voir Monte Carlo Itération Désigne un recalcul du modèle de l’utilisateur durant une simulation. Une simulation comprend de nombreux recalculs ou itérations. À chaque itération, toutes les variables incertaines sont échantillonnées une fois selon leur distribution de probabilités, et le modèle est recalculé sur la base des valeurs échantillonnées. Aussi connu sous le terme d’essai de simulation Maximum global Plus grande valeur possible d’une fonction donnée. Les fonctions ou les modèles complexes peuvent avoir de nombreux maxima locaux mais un seul maximum global. Glossaire 211 Maximum local Plus grande valeur possible d’une fonction donnée dans une plage donnée de valeurs. Un maximum local existe à un ensemble de valeurs de variables d’une fonction si une légère variation de la valeur d’une variable ou de toutes produit un moindre résultat de la fonction. (Comparer avec maximum global). Méthode de résolution Evolver propose six méthodes de résolution, reposant chacune sur un algorithme adapté au type de problème considéré. Pour chaque ensemble de variables sélectionnées dans un problème, l’utilisateur doit choisir la méthode de résolution à utiliser. Les six méthodes proposées sont les suivantes : groupement, ordre, recette, budget, projet et programme. Mini-solveur jargon Programme logiciel peu élaboré de recherche des entrées qui produisent une sortie désirée par une combinaison de techniques de programmation linéaire ou d’algorithmes élémentaires d’escalade. Les mini-solveurs procèdent souvent « au pifomètre », puis raffinent leur réponse pour arriver à une solution « locale » plutôt que « globale ». Modèle Aux fins de ce manuel, un modèle est une représentation numérique, dans Excel, d’une situation réelle. Moments élevés Les moments élevés sont des statistiques de distribution de probabilités. Le terme désigne généralement l’asymétrie et l’aplatissement, soit le troisième et le quatrième moment, respectivement. Les premier et deuxième moments sont, respectivement, la moyenne et l’écart type. Voir Asymétrie, Aplatissement, Moyenne, Écart type Monte Carlo Désigne la méthode traditionnelle d’échantillonnage de variables aléatoires dans la modélisation par simulation. Les échantillons sont sélectionnés au hasard sur la plage de la distribution, nécessitant dès lors de nombreux échantillons pour la convergence des distributions hautement asymétriques ou à queue étalée. Voir Hypercube latin Moyenne La moyenne d’un ensemble de valeurs est la somme de toutes les valeurs de l’ensemble, divisée par le nombre total des valeurs qu’il contient. Synonyme : valeur probable Mutation Dans le monde biologique, la mutation génétique est la source de variation nécessaire à une sélection naturelle efficace. De même, un algorithme génétique recourt aux techniques de mutation pour maintenir la diversité d’une population de scénarios possibles. 212 Optimisation Processus de recherche de valeurs de variables en vue de la maximisation (valeur la plus grande possible) ou de la minimisation (valeur la plus petite possible) de la sortie. L’optimisation par résolution d’équation est simple pour les fonctions à variation lisse et variables peu nombreuses. Elle est cependant extrêmement difficile dans le cas de nombreux problèmes réels. Ces problèmes complexes exigent généralement un mécanisme de recherche. Evolver utilise un mécanisme de recherche par optimisation basé sur un algorithme génétique. Organisme Bloc de mémoire d’une population qui stocke un ensemble de valeurs de variables (scénario). Phénotypes En biologie, trait observable d’un individu, issu de l’interaction des gènes et de l’interaction entre les gènes et le milieu. Dans l’étude des AG, le phénotype sert à décrire les variables ou « gènes » individuels dont se compose une solution complète ou un « chromosome ». (voir Génotype) Plages Dans Evolver : L’utilisateur définit la plage, soit la valeur la plus et la moins élevée qu’Evolver peut essayer lors de l’ajustement d’une certaine variable. Bien qu’une plage ne soit pas nécessaire à la résolution d’un problème, sa définition limite les possibilités et concentre donc la recherche effectuée par Evolver. Dans Excel : Bloc de cellules contiguës d’une feuille de calcul, défini par la cellule supérieure gauche et la cellule inférieure droite (A5:C9 décrit par exemple une plage de 15 cellules). Population Ensemble complet de scénarios qu’Evolver garde en mémoire pour la génération de nouveaux scénarios. Evolver conserve une population de solutions possibles pour chaque groupe de cellules ajustables d’un système. Probabilité Grandeur par laquelle on mesure la vraisemblance de réalisation d’une valeur ou d’un événement. Elle peut être mesurée à partir de données de simulation, sous forme de fréquence, par le calcul du nombre de réalisations de la valeur ou de l’événement divisé par le nombre total de réalisations. Ce calcul renvoie une valeur comprise entre 0 et 1 qui, multipliée par 100, est alors convertie en pourcentage. Voir Distribution de fréquence, Distribution de probabilités Glossaire 213 Racine / Générateur de nombres aléatoires Algorithme régissant le choix des nombres aléatoires, généralement compris entre 0 et 1. Ces nombres aléatoires correspondent aux échantillons prélevés dans une distribution uniforme à valeur minimum de 0 et maximum de 1. Ils constituent la base d’autres routines les convertissant en échantillons prélevés des types de distribution spécifiques. Voir Échantillon aléatoire, Racine Scénario Ensemble de valeurs des variables d’un modèle de feuille de calcul. Chaque scénario représente le plus souvent une solution possible. Simulation Technique selon laquelle un modèle, tel qu’une feuille de calcul Excel, est calculé à de nombreuses reprises sur la base de différentes valeurs en entrée, dans le but d’obtenir une représentation complète de tous les scénarios susceptibles de se produire dans une situation incertaine. Solution Un système contient de nombreuses variables en entrée qui produisent une sortie. Dans Evolver, une « solution »représente plus souvent l’une des combinaisons possibles de variables plutôt que la meilleure combinaison. Stochastique Synonyme de risqué, incertain. Voir Risque, Déterministe Survie du plus apte Concept selon lequel les organismes mieux adaptés à leur milieu sont plus susceptibles de vivre suffisamment longtemps pour se reproduire et répandre leurs gènes dans la génération suivante d’une population. Valeur probable La valeur ou le mode probable représente la valeur le plus fréquemment rencontrée dans un ensemble de valeurs. Dans un histogramme et une distribution de résultats, il s’agit de la valeur centrale de la classe ou barre indiquant la probabilité la plus élevée. Variable dépendante Variable tributaire, dans une certaine mesure, des valeurs d’autres variables du modèle considéré. La valeur d’une variable dépendante incertaine peut être calculée dans une équation en tant que fonction d’autres variables incertaines du modèle. Elle peut aussi être tirée d’une distribution en fonction du nombre aléatoire corrélé à un nombre aléatoire utilisé pour prélever un échantillon de variable indépendante. Voir Variable indépendante 214 Variable indépendante Glossaire Variable non tributaire des valeurs d’aucune autre variable du modèle considéré. La valeur d’une variable indépendante incertaine est déterminée par le prélèvement d’un échantillon dans la distribution de probabilités appropriée. L’échantillon est prélevé indépendamment de tout autre échantillon aléatoire prélevé pour les autres variables du modèle. Voir Variable dépendante 215 216 Indice A Ajout de contraintes algorithme, définition algorithmes génétiques exemple biologique pourquoi ? Apprendre Evolver 118 149 172 16 10 B barre d’état bases de données boîte de dialogue Modèle Boîte de dialogue Modèle But d’optimisation 135, 207 162 99 26 27, 100 C capital génétique cellule cible cellules ajustables Centile Commande Paramètres d’application Commande Solveur de contraintes conditions d’arrêt Conditions d’arrêt introduction contraintes mode d’exécution contraintes fermes contraintes souples croisement mode d’exécution Indice 175 27, 100, 208 27, 101 208 131 132 125 35 179 193 31, 119 31, 119, 120, 182 192 217 D Désinstallation d’Evolver didacticiel 7 10 E Entières escalade description exemple utilisation Solveur Evolver Didacticiel Evolver qu’est-ce que…? Evolver pourquoi ? Evolver vs Solveur Microsoft Evolver quand ? Evolver capacités exemple boulangerie exemple d’achat exemple d’affectation de tâches exemple d’allocation budgétaire exemple d’emplacement de pylônes radio exemple d’équilibrage de portefeuilles exemple d’équilibre chimique exemple d’itinéraire exemple d’ordonnancement multigamme exemple de composition de portefeuille exemple de l’opérateur en bourse exemple de mise en ordre alphabétique exemple de planificateur de classes exemple de segmenteur de code exemple de sélection publicitaire exemple de transports exemple du navigateur spatial exemple du transformateur exemple du voyageur de commerce exemple émetteurs radio 218 103 151 159 160 155 10 13 16 156 157 149 55 85 53 57 75 77 59 69 73 81 91 49 61 65 47 95 89 93 87 83 F fenêtre Progression Fichier Lisezmoi fonctions de pénalité description exemples utilisation function de pertinence 129 10 182 185 186 23, 100 G générations pourquoi pas graphiques 191 38, 136 M méthode de remplacement méthode de résolution budget description exemple méthode de résolution groupement description exemple méthode de résolution ordre description exemple méthode de résolution programme description exemple méthode de résolution projet description exemple méthode de résolution recette description exemple Méthode Simplexe méthodes de résolution budget exemple en tant que contraintes groupement exemple ordre exemple programme Indice 193 108 47, 57, 81, 83 107 65, 77 106 53, 73, 87 110 61 109 69 106 49, 55, 59, 75, 85, 89, 91, 93, 95 159 108 47, 57, 81, 83 180 107 65, 77 106 53, 73, 87 110 219 exemple projet exemple recette exemple minutes modèles continus 61 109 69 106 49, 55, 59, 75, 85, 89, 91, 93, 95 125 155 O opérateur génétique Opérateurs optimisation définition exemple méthodes options Temps d’exécution 115 115 15 153 149 125 P Palisade Corporation paysage de solutions problèmes à base de tables combinatoires linéaires non linéaires problèmes à base de tables problèmes à buts multiples problèmes combinatoires problèmes linéaires problèmes non linéaires Progression graphique image 5 150 162 162 159 159 162 187 149 159 159 36 R recul redessin d‘écran image routine de sélection routines GRG 220 193 36 191 155 S solution globale vs solution locale solution locale vs solution globale Solveur vs Evolver spécifications techniques Suivi Suivi Evolver 155 155 156 191 38, 135 38, 135 T taux de croisement fonction taux de mutation fonction mode d’exécution 138, 174 113 138 113 193 V Valeurs vitesse, amélioration Indice 103 189 221