Travail d étude et de recherche Utilisation de l intelligence artificielle pour l aide à la décision Année universitaire 2004/2005 version 1.0 Enseignants responsables : Philippe Dépincé, Fouad Bennis, Sébastien Rabeau Sébastien Tesquet, Delphine Janodet, Etienne Charpentier et Antoine Perroud Responsabilités : Sébastien Tesquet : analyse du code existant, optimisation du code existant, analyse des algorithmes génétiques des nouvelles fonctionnalités, implémentation des algorithmes génétiques Delphine Janodet : analyse de l interface graphique, optimisation de l interface graphique, documentation (centralise les documentations fournies par chaque développeurs), implémentation d une partie des nouvelles fonctionnalités Etienne Charpentier : analyse du code existant, optimisation du code existant, analyse des méthodes d aide à la décision qui seront fournies, patrons d implémentations des fonctions d aide à la décision Antoine Perroud : analyse de l interface graphique, optimisation de l interface graphique, création de l interface graphique pour les nouvelles fonctionnalités, implémentation d une partie des nouvelles fonctionnalités
Outils d aide à la décision TABLE DES MATIÈRES Table des matières 1 Introduction 3 1.1 Objectifs............................... 3 1.2 Fournitures............................. 3 1.3 Définitions.............................. 4 2 Organisation du projet 5 2.1 Processus.............................. 5 2.2 Organisation structurelle...................... 5 2.3 Limites et interfaces......................... 5 3 Gestion 6 3.1 Objectifs et priorités........................ 6 3.2 Hypothèses, dépendances, contraintes............... 6 3.3 Gestion du risque.......................... 7 3.4 Moyens de contrôle......................... 7 4 Technique 7 4.1 Méthodes et outils employés.................... 7 4.2 Documentation........................... 7 5 Calendrier 7 6 Fonctions du produit 8 7 Contraintes non fonctionnelles 9 2
Outils d aide à la décision 1 INTRODUCTION 1 Introduction 1.1 Objectifs Dans le cadre d une thèse de doctorat effectuée actuellement au sein de l équipe Méthodes de Conception en Mécanique (MCM) de l Institut de Recherche en Communications et Cybernétique de Nantes (IRCCyN UMR CNRS 6597), les bases d un outil logiciel ont été développées par des non-spécialistes de l informatique. Il s agit d un programme d aide à la décision qui a pour rôle d assister chercheurs et industriels, dans le processus de conception de systèmes où l on doit prendre en compte un très grand nombre de variables, fonctions, critères, contraintes... Et ceci dans l optique d une optimisation de ce processus, et d une aide à la sélection des résultats obtenus par la suite. L objectif de nos travaux consiste dans un premier temps à : se familliariser avec les études de problèmes multiobjectifs : méthodes d optimisation et algorithmes génétiques, méthodes d aide à la décision basées sur des concepts d intelligence artificielle ; analyser et décomposer en profondeur le programme existant écrit en Pascal, pour ensuite le remanier afin de le rendre modulaire, sans altérer son contenu. Ensuite, après amélioration de l existant, on devra : implémenter de nouveaux algorithmes génétiques et de nouvelles méthodes d aide à la décision qui seront fournies, et développer parallèlement les fonctionnalités graphiques qui permettront de les faire fonctionner ; produire la documentation du programme et élaborer un manuel pour faciliter son usage auprès des concepteurs. Au final, nous devons donc disposer d un programme implémentant correctement les algorithmes d optimisation de problèmes de conception et d aide à la décision avec son manuel d utilisation, et doté d une interface graphique complète et adaptée pour une utilisation conjointe de concepteurs de systèmes complexes, issus de plusieurs domaines, et qui souhaitent intégrer de multiples objectifs aux problèmes de conception. 1.2 Fournitures Nous devrons fournir à la fin un logiciel optimisé par rapport à l existant. Il faudra y joindre une documentation : sur le fonctionnement du logiciel ; du code source de l application ; sur l intégration de modules (entre autres de nouvelles fonctions). 3
Outils d aide à la décision 1 INTRODUCTION 1.3 Définitions Valeur : si deux conceptions sont identiques, il faut choisir la moins chère. Le concepteur doit bien prendre en compte tous les paramètres afin de privilégier les plus importants. On parle alors d optimisation multiobjective. Variables de conception : variables indépendantes : représentent toutes les quantités que le concepteur peut modifier (géométrie, volume, surface, matériau,...). Elles sont aussi appelées variables de conception ou paramètres de conception ; variables dépendantes : elles sont ce que le concepteur ne peut modifier mais doit prendre en compte (dissipation de l énergie, le coût, la gestion d erreur,...) ; variables d état sont un type intermédiaire de variables, c est à dire qu on ne peut les quantifier et qu elles n entrent pas en compte dans la valeur du produit (la pression dans un vérin hydraulique). Les variables opératoires peuvent être modifiées par l utilisateur une fois que le produit est conçu (modification de la charge, températures extrêmes,...). Fonction objectif : Une fonction objectif applique l algorithme de résolution d un problème mathématique sur une variable de conception (ou un ensemble de variables). Ce sont ces fonctions que l on va chercher à optimiser. Fonction contrainte : Les fonctions contraintes dépendent des variables de conception. Au cours du processus de conception (et d optimisation), les contraintes doivent être systématiquement respectées pour assurer la cohérence et la fonctionnalité du produit. Ce respect ce traduit par le maintien d une fonction contrainte dans un intervalle borné ou semi-borné. Fonction de couplage : Une fonction de couplage est une fonction d état d un sous système dont la connaissance est nécessaire au calcul des fonctions d état d un ou d autres sous systèmes. Optimisation multiobjectif : On parle d optimisation multiobjective lorsque le processus d optimisation cherche à maximiser (ou minimiser) plusieurs fonctions simultanément. Le problème est que ces fonctions sont souvent antagonistes (lorsqu on optimise l une, l autre est dégradée) Méthodes multidisciplinaires : Lorsqu on orientera les méthodes d optimisation pour que les différentes disciplines (ou métiers) intervenant dans la conception d un produit soient traitées de manière parallèle, on parlera d optimisation orientée multidisciplinaire. 4
Outils d aide à la décision 2 ORGANISATION DU PROJET Conception collaborative : C est une méthode de travail adaptée lorsque plusieurs équipes de travail interviennent lors du processus de conception et sur différents sites. La communication lors du processus d optimisation étant trés limitée, les méthodes d optimisation destinées à la conception collaborative doivent prendre en compte ces contraintes fortes. 2 Organisation du projet 2.1 Processus 2 semaines : compréhension et réorganisation du logiciel existant, en réalisant des optimisations simples. 1 semaine et demi : optimisation de l interface graphique et du code existant 1 semaine et demi : implémentation de nouvelles fonctionnalités 1 semaine : tests et corrections de bugs éventuels, préparation de la soutenance finale 2.2 Organisation structurelle Sébastien Tesquet : analyse du code existant, optimisation du code existant, analyse des algorithmes génétiques des nouvelles fonctionnalités, implémentation des algorithmes génétiques Delphine Janodet : analyse de l interface graphique, optimisation de l interface graphique, documentation (centralise les documentations fournies par chaque développeurs), implémentation d une partie des nouvelles fonctionnalités Etienne Charpentier : analyse du code existant, optimisation du code existant, analyse des méthodes d aide à la décision qui seront fournies, patrons d implémentations des fonctions d aide à la décision Antoine Perroud : analyse de l interface graphique, optimisation de l interface graphique, création de l interface graphique pour les nouvelles fonctionnalités, implémentation d une partie des nouvelles fonctionnalités 2.3 Limites et interfaces Une interface graphique existe déjà dans la version de base du programme. Elle propose quelques affichages de graphiques et des moyens de paramétrer les calculs. 5
Outils d aide à la décision 3 GESTION Nous allons la compléter (certains boutons ne marchent pas, d autres ne sont pas explicites ou nécessaires) et la rendre plus conviviale dans le sens optimisation du terme. Il aurait été aussi utile de réaliser une importation de données pour effectuer des calculs avec les fonctions implémentées, ainsi que l exportation des résultats vers d autres applications de traitements de données. Une orientation vers le calcul distribué fait partie des ajouts de fonctionnalités envisageables. 3 Gestion 3.1 Objectifs et priorités Dans un premier temps, nous allons devoir rendre le programme fourni modulaire. Il va ensuite falloir fournir un travail de documentation afin de commenter le code existant pour le rendre lisible. Nous devrons aussi améliorer l interface graphique pour la rendre plus intuitive au sens optimisation du terme, à savoir, par exemple proposer une solution particulière (sous forme de point) au lieu d afficher un graphique. Nous allons, enfin, ajouter des méthodes d optimisation et des méthodes d aide à la décision. 3.2 Hypothèses, dépendances, contraintes Dépendances : Un composant, TQSpiderGraph, est utilisé par le logiciel existant. Ce composant sert à tracer des graphiques en formes d étoile ou de radar. Il est donc utile pour représenter l ensemble des solutions en montrant les différentes générations de la population. Contraintes : le code existant n a pas été écrit par des informaticiens, il est structuré de façon monolithique. L organisation et la division de ce code, important pour réaliser un logiciel modulaire, peuvent s avérer laborieuses ; le code se trouve pas ou très peu commenté, de plus les parties commentées sont rédigées en français, anglais ou portugais ; il faut arriver à rendre le logiciel le plus modulaire possible (simplifier l ajout de fonctions, etc...), mais aussi avoir une interface graphique adaptée aux besoins (optimisation, représentation de l évolution, différentes solutions, etc...). 6
Outils d aide à la décision 5 CALENDRIER 3.3 Gestion du risque L analyse du code existant est délicate dans la mesure où nous allons le réorganiser dans le but de le rendre plus modulaire. Il se pourrait que cela nous conduise à déteriorer la justesse des résultats fournis par le programme. Pour satisfaire la justesse des résultats, nous devrons réaliser, après de grosses modifications (division du code, organisation en modules, optimisation, etc.), des phases de test mettant en évidence l intégrité des résultats. 3.4 Moyens de contrôle Le programme donné fonctionne déjà. Des méthodes d optimisations nous seront fournies sur papier et nous devrons les implémenter et les ajouter au programme. La vérification des résultats se base sur l analyse et la comparaison de ces derniers aux solutions théoriques connues. De ce fait, cette vérification ne pourra se faire que sur certains problèmes témoins. 4 Technique 4.1 Méthodes et outils employés Le programme utilise un algorithme génétique multiobjectif (M.O.G.A.) basé sur la recherche de la frontière de Pareto (voir article La Plagne, S. RABEAU). Par la suite, le programme utilise des fonctions d aide à la décision afin de choisir les solutions. 4.2 Documentation Aucune documentation n existe pour le moment. Il nous revient de commenter le programme existant, si possible en utilisant une documentation mise en page générée automatiquement à partir des commentaires du code source. Nous allons, de plus, fournir un manuel d utilisation expliquant le fonctionnement du programme. 5 Calendrier Fevrier 19 : début de l analyse des documents 7
Outils d aide à la décision 6 FONCTIONS DU PRODUIT Mars 3 : première réunion avec l encadrant 10, 12 et 13 : réunion avec l encadrant, analyse des documents fournis et début de rédaction du cahier des charges 17, 19 et 20 : réunion avec l encadrant, rédaction du cahier des charges 31 : réunion avec l encadrant, fin de rédaction du cahier des charges Avril 2 et 3 : réunion avec l encadrant, préparation de la soutenance 4 au 7 : préparation de la soutenance 8 : soutenance à 11h30 Mai 2 au 5 : réorganisation et compréhension du logiciel existant, en réalisant des optimisations simples 16 au 25 : optimisation de l interface graphique et du code existant 26 au 29 : déplacement à Nantes, présentation du travail aux encadrants Juin 30 mai au 2 juin : implémentation de nouvelles fonctionnalités 3 au 16 : tests et correction de bugs éventuels, préparation de la soutenance finale 6 Fonctions du produit Le produit est un outil d optimisation multiobjective orienté vers une utilisation multidisciplinaire (conception collaborative). Il reçoit, en entrée, un problème de conception défini par des fonctions objectif, des fonctions contrainte et un espace de conception. Il propose, en sortie, des solutions optimales du problème multiobjectif qui sont entièrement caractérisées par les valeurs de leurs variables de conception. L interface nous propose dans un premier temps de choisir la méthode d optimisation. Il est possible de changer de méthode en la choisissant parmi une liste de méthodes située dans la partie gauche de l interface principale. La partie droite affiche l évolution au cours de l optimisation d un indice de convergence. Les résultats sont sauvegardés dans un fichier texte. Différentes vues sont disponibles pour analyser le problème : un outil permettant d afficher la frontière de Pareto projetée dans un plan (fi, fj). Chaque point de la frontière est une solution optimale ; un outil permettant d afficher les valeurs des fonctions et variables du problème sous forme d histogramme. Il sert principalement au débuggage des méthodes implémentées ; 8
Outils d aide à la décision 7 CONTRAINTES NON FONCTIONNELLES un outil permettant d afficher le problème sous la forme d un radar (polygone). Chacune de ces vue est modifiable. L interface nous permet de choisir la génération de l algorithme génétique à afficher, le nombre de fonctions objectif et affiche une variable donnée pour une génération donnée. 7 Contraintes non fonctionnelles Le programme nous a été fourni sous forme de projet Delphi fonctionnant uniquement avec la version 7 de ce logiciel, ce dernier étant compatible seulement avec Windows. 9