Programmation par contraintes pour les technologies logicielles

Documents pareils
Des signatures numériques pour améliorer la recherche structurelle de patrons

Cours de Master Recherche

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Un modèle réactif pour l optimisation par colonies de fourmis : application à la satisfaction de contraintes

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard

Patrons de Conception (Design Patterns)

Une application des algorithmes génétiques à l ordonnancement d atelier

Stratégie de recherche adaptative en programmation par contrainte

Architectures Ouvertes pour l Adaptation des Logiciels

Annexe 6. Notions d ordonnancement.

RLBS: Une stratégie de retour arrière adaptative basée sur l apprentissage par renforcement pour l optimisation combinatoire

Synergies entre Artisan Studio et outils PLM

Laboratoire d Automatique et Productique Université de Batna, Algérie

Intégration de l interface graphique de Ptidej dans Eclipse

CURRICULUM VITAE. Informations Personnelles

Application de K-means à la définition du nombre de VM optimal dans un cloud

Chronogrammes et contraintes. à la modélisation de systèmes dynamiques à événements

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

THÈSE. présentée à l Université d Avignon et des Pays de Vaucluse pour obtenir le diplôme de DOCTORAT

Composants génériques de calcul scientifique

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

OpenSAT : Une plate-forme SAT Open Source

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Laboratoire 4 Développement d un système intelligent

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

Curriculum Vitae 1 er février 2008

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

L apport des contraintes globales pour la modélisation et la résolution d applications industrielles

Equilibrage de charge (Load

La Recherche du Point Optimum de Fonctionnement d un Générateur Photovoltaïque en Utilisant les Réseaux NEURO-FLOUS

Expérience 3 Formats de signalisation binaire

Un propagateur basé sur les positions pour le problème d Open-Shop.

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

L apprentissage automatique

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Configuration à base de contraintes

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Media planning TV et optimisation : du statique au (très) dynamique

Formula Negator, Outil de négation de formule.

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

Extrait des Exploitations Pédagogiques

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Master Informatique Aix-Marseille Université

Architecture des ordinateurs

Elasticité logicielle pour optimiser l empreinte énergétique

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com

Ordonnancement robuste et décision dans l'incertain

Vérifier la qualité de vos applications logicielle de manière continue

AXES DE RECHERCHE - DOMAINE D'INTERET MAJEUR LOGICIELS ET SYSTEMES COMPLEXES

Resolution limit in community detection

Approche d'évaluation pour les problèmes d'ordonnancement multicritères : Méthode d'agrégation avec direction de recherche dynamique

Conception de réseaux de télécommunications : optimisation et expérimentations

Rapport d'analyse des besoins

Le Futur de la Visualisation d Information. Jean-Daniel Fekete Projet in situ INRIA Futurs

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Semestre 1. Objectifs Approfondissement de l environnement Java et de son interface de programmation d applications : réseaux, et processus.

R-ICP : une nouvelle approche d appariement 3D orientée régions pour la reconnaissance faciale

Visual Paradigm Contraintes inter-associations

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Une méthode d apprentissage pour la composition de services web

Thèmes de recherche. Projets en cours

Accélérer l agilité de votre site de e-commerce. Cas client

Évaluation d une méthode d ordonnancement multicritère utilisant AHP

Le développement d'applications informatiques

nexus Timestamp Server

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Projet ANR-11-BS BR4CP. Programme Blanc 2011

Le génie logiciel. maintenance de logiciels.

Pour accroître la productivité de vos machines outils à commande numérique. motion control INFORMATION SYSTEM

5 bonnes pratiques pour solution décisionnelle mobile

Maîtrise énergétique des centres de données

En vue de l'obtention du. Présentée et soutenue par Abir BEN HMIDA SAKLY Le 12/12/2009

GPC Computer Science

Formation des enseignants. Le tensiomètre. Objet technique modélisable issu de l environnement des élèves

Représentation des Nombres

Thème 3 Conception et vérification d architectures de systèmes sur puce

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Programmation Par Contraintes

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Efficacité énergétique des réseaux de cœur et d accès

Cours Informatique 1. Monsieur SADOUNI Salheddine

SIMULATION HYBRIDE EN TEMPOREL D UNE CHAMBRE REVERBERANTE

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

CAC: Un algorithme d arc-consistance. configurable, générique et adaptatif.

PREMIER RETOUR D EXPERIENCE SUR LE FLOW-SHOP BIOBJECTIF ET HYBRIDE A DEUX ETAGES AVEC UNE CONTRAINTE DE BLOCAGE PARTICULIERE

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

Big Data et Graphes : Quelques pistes de recherche

Le programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie.

Réplication adaptative sur les réseaux P2P

Modélisation multi-agents - Agents réactifs

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Les apports de l informatique. Aux autres disciplines

Linked Data et description du produit automobile SemWeb Pro, Paris, 2 mai 2012

Big Data et Graphes : Quelques pistes de recherche

Transcription:

Colloque GEMSTIC 03 Programmation par contraintes pour les technologies logicielles Narendra Jussien École des Mines de Nantes 4, rue Alfred Kastler BP 20722 F-44307 Nantes Cedex 3 email: jussien@emn.fr Résumé La programmation par contraintes, discipline au carrefour de l intelligence artificielle, de la recherche opérationnelle et de l analyse numérique a fait ses preuves pour la résolution de problèmes combinatoires complexes dans le domaine de l aide à la décision. De nouveaux champs d applications apparaissent, en particulier dans le domaine du génie logiciel. Au travers de quelques exemples (notamment l identification et la correction de motifs de conception approchés et la réalisation d applications dans un contexte anytime), nous montrons les apports et les perspectives de l utilisation de la programmation par contraintes dans le domaine du génie logiciel. 1 Introduction La programmation par contraintes, discipline au carrefour de l intelligence artificielle, de la recherche opérationnelle et de l analyse numérique, a maintenant fait ses preuves pour la résolution de problèmes combinatoires complexes dans le domaine de l aide à la décision. Grâce à des propositions récentes d extension, de nouveaux champs d applications apparaissent. Dans cet article, nous présentons la programmation par contraintes et quelques unes de ses extensions et montrons au travers de deux exemples leur application au domaine du génie logiciel. 2 Programmation par contraintes La programmation par contraintes est un sujet de recherche au carrefour des travaux de divers domaines comme les mathématiques discrètes, l analyse numérique, l intelligence artificielle, la programmation mathématique (ou plus généralement la recherche opérationnelle) ou le calcul formel. 1

2 La communauté contraintes peut s enorgueillir de réussites marquantes dans des domaines d applications réellement diversifiés : les problèmes combinatoires, l ordonnancement, l analyse financière, la simulation et la synthèse de circuits intégrés, le diagnostic de pannes, l aide à la décision, la biologie moléculaire, la résolution de problèmes géométriques,... La programmation par contraintes est actuellement en plein essor industriel grâce, en particulier, à deux acteurs majeurs : les sociétés Ilog et Cosytec qui ont développé, par exemple, des logiciels d optimisation pour la gestion du trafic aérien, utilisés par de nombreux aéroports, des logiciels d emploi du temps et de rotation de personnels,... 2.1 Analyse d un succès Ces résultats positifs ont été obtenus pour différentes raisons : l hypothèse de base de la programmation par contraintes, la recherche de solutions dans un domaine borné, est souvent naturellement vérifiée dans la pratique où les inconnues correspondent à des grandeurs physiques ; les outils et méthodes sont d application très générale, ils ne se restreignent pas à une catégorie particulière de problème ; par principe même, les méthodes sont très appropriées à une implémentation distribuée, ce qui permet d en améliorer sensiblement l efficacité ; les méthodes viennent compléter d autres approches plus sensibles au nombre d inconnues ou à la structure des équations, comme les systèmes algébriques. 2.2 Le cadre général Un problème de satisfaction de contraintes (csp) [Tsa93] est représenté par un triplet (V, D, C) où V est un ensemble de variables prenant leur valeur dans un domaine précisé pour chaque variable (leur ensemble est D) et sur lesquelles portent des contraintes C. Une solution pour csp est une affectation complète des variables (c.-à-d. l attribution d une valeur unique à chaque variable) telle que toutes les contraintes soient vérifiées. La résolution d un csp met en œuvre de manière entrelacée des étapes de filtrage (réduction sophistiquée des domaines des variables pour éliminer les portions de l espace de recherche ne pouvant faire partie d une solution) et des étapes d énumération (prise de décision pour se rapprocher d une solution). Un solveur de contrainte est un système programmable qui réalise le contrôle de cet entrelacement en faisant appel à divers composants de filtrage (les contraintes elles-mêmes) et de contrôle de l énumération. Les travaux de la communauté contraintes portent sur ces deux étapes cruciales et sur les techniques permettant de les améliorer. 3 Extensions de la programmation par contraintes Longtemps spécialisée dans la résolution de problèmes combinatoires complexes dans le domaine de l aide à la décision, la programmation par contraintes s ouvre maintenant à de nouveaux horizons. Des extensions à la programmation par contraintes classique existent maintenant pour prendre en compte de nouvelles problématiques.

3 3.1 Explications et analyse de programmes avec contraintes L introduction de la notion d explication dans le contexte de la programmation par contraintes est relativement récente [Jus01]. Il s agit en fait de conserver une trace limitée et lisible de l activité passée du solveur de contraintes. L intégration d explications dans un solveur de contraintes permet, entre autres : d unifier une grande majorité des techniques existantes dans un cadre générique permettant de caractériser simplement ces méthodes afin de faciliter le choix d une technique donnée pour un problème donné ; de développer des algorithmes capables de gérer dynamiquement les modifications du problème avant, pendant ou après sa résolution avec une certaine stabilité dans les résultats obtenus ; de rendre compte à l utilisateur, de manière compréhensible et lisible, de l activité du solveur de contraintes. Cette extension définit un nouveau paradigme de programmation par contraintes. 3.2 Préférences pour les problèmes avec contraintes Le cadre des csp valués (vcsp) [BMR + 99] forme une extension des csp permettant de manipuler des problèmes sur-contraints ou pour lesquels des pondérations sont spécifiées entre solutions. Un vcsp peut être défini comme un csp (V, D, C) auquel on adjoint une structure de valuation S et une fonction de valuation ϕ. La structure de valuation S est un triplet (E,, ), où E est un ensemble de valuations, un ordre total sur E (avec et les élément maximaux et minimaux de E) et un opérateur binaire clos sur E. La fonction de valuation ϕ, définie de C vers E, associe une valuation à chaque contrainte dénotant son importance relative. Soit A une affectation de toutes les variables et C unsat (A) l ensemble des contraintes non satisfaites par A. La valuation de A est l agrégation des valuations de toutes les contraintes de C unsat (A) : ϕ(a) = ϕ(c) pour c C unsat (A). Résoudre un vcsp revient à trouver une affectation complète des variables avec une valuation minimale. Des techniques spécifiques sont utilisées en fonction de l opérateur d agrégation retenu : pour les csp classique, max pour les csp possibilistes, sur des multi-ensembles pour les csp lexicographiques, Σ pour les csp additifs. Cette dernière catégorie est la plus souvent étudiée. Il s agit de plus de la catégorie la plus rétive algorithmiquement parlant. 3.3 Approches hybrides L extension de la programmation par contraintes aux algorithmes hybrides emprunte les mécanismes à la fois des recherches de type arborescent et des méthodes approchées de type recherches locales. Les méthodes arborescentes sont utilisées pour produire des solutions optimales et donner une preuve d optimalité. Mais, du fait de leur comportement potentiellement exponentiel, elles peuvent être très coûteuses en temps de calcul. De plus, de telles méthodes ne sont souvent pas capables de fournir rapidement une bonne solution. Au contraire, les méthodes approchées (comme le recuit simulé ou les recherches taboues) peuvent produire rapidement de très bonnes solutions grâce à leur façon opportuniste d explorer l espace

4 de recherche. Mais, ces méthodes ne peuvent pas toujours se sortir facilement d optima locaux et peuvent perdre beaucoup de temps à explorer un voisinage inintéressant. Les algorithmes hybrides sont un compromis entre les deux types d approches. Ils combinent efficacement les avantages de la propagation de contraintes fournis par les méthodes arborescentes et de l exploration opportuniste des recherches locales. Ces techniques mettant harmonieusement en œuvre deux ou plusieurs approches différentes pour résoudre un même problème donnent de bons résultats. 4 Une première application : résolution de problèmes en ligne Il est indiscutable d affirmer aujourd hui que la programmation par contraintes est capable de satisfaire à la demande de l industrie pour résoudre des problèmes hors-ligne (problème fixé et temps de résolution libre). Dans un contexte d optimisation en ligne 1, les problèmes évoluent dynamiquement suivant les modifications de l environnement externe et leur résolution doit respecter des contraintes temporelles fortes. Même si la programmation par contraintes classique ne semble pas en mesure de répondre à ce type de demande, l utilisation de ses extensions permet de fournir un algorithme utilisable dans un contexte où il peut être interrompu à tout moment et garantissant les propriétés suivantes : production rapide de solutions de bonne qualité et améliorations graduelles de ces solutions compte-tenu du temps qui lui a été attribué (c est un contexte dit anytime). Il s agit ainsi d obtenir un bon profil de performance pour un tel algorithme interruptible. Dans ce contexte, l utilisation d un vcsp (pour modéliser la notion de qualité d une solution partielle) et d un algorithme hybride paraît tout à fait appropriée. Par exemple, l algorithme VNS/LDS+CP [LB01] est un algorithme hybride récent qui sur une base de recherche locale utilise des voisinages de tailles variables dont l exploration est assurée par une méthode efficace de type LDS [HG95] (une exploration partielle mais bien répartie de l espace de recherche) aidée par la propagation de contraintes pour résoudre des vcsp. Son utilisation sur des instances réelles de problèmes d affectation de fréquence radio [CdGL + 99] montre qu une telle hybridation est une réponse efficace pour résoudre un problème dans un contexte anytime. 5 Une seconde application : le système PTIDEJ L extension de la programmation par contraintes aux explications a été utilisée pour produire le système ptidej (Pattern Trace Identification, Detection and Enhancement in Java [AACGJ01]). ptidej est un système automatique pour l identification de microarchitectures similaires à des patrons de conception dans du code source orienté objet. Une micro-architecture décrit la structure d un sous-ensemble des classes d un programme orienté objets. La production de code source de qualité est un enjeu important pour l industrie du logiciel. Un code source de qualité facilite l évolution et la maintenance : ajout de 1 L École des Mines de Nantes est partenaire du projet RNRT EOLE (Environnement d Optimisation en LignE) avec Thalès RT, Bouygues, l ONERA et Cosytec.

5 nouvelles fonctionnalités, correction de bogues, adaptation à de nouvelles plates-formes d exécution, intégration dans des bibliothèques de classes,... En programmation par objets, un code source de qualité se distingue par deux aspects : des algorithmes efficaces et énoncés clairement, respectant des conventions et des idiomes d écriture, et une architecture de classes élégante. Les patrons de conception (design patterns) [GHJV94] sont des exemples de micro-architectures élégantes qui résument l expérience de développeurs expérimentés. Néanmoins, il n est pas aisé d écrire directement du code source qui respecte les patrons de conception. C est pourquoi les patrons de conception sont souvent présents dans le code source sous des formes approchées (c.-à-d. des micro-architectures similaires mais non parfaitement identiques à celles proposées par les patrons de conception). Il n existe pas d outils pour retrouver dans du code source ces formes approchées de patrons de conception pour en proposer une amélioration à l utilisateur pour les rendre conformes aux micro-architectures élégantes proposées par les patrons de conception. ptidej est un tel outil. Son but est d identifier des micro-architectures dans du code source. L idée de ptidej est de définir un problème de satisfaction de contraintes dont la structure (les variables et les contraintes) représente le patron de conception recherché et dont la sémantique (les domaines des variables et la sémantique des contraintes) est déduite du code source objet. La résolution de ce problème permet de découvrir les microarchitectures correspondant exactement au patron de conception cherché. Pour trouver les formes approchées, l utilisation d un solveur de contraintes avec explications permet de déterminer précisément pourquoi la structure exacte n a pas été trouvée et donc de guider l utilisateur vers les contraintes incriminées. L intérêt de ptidej, mis à part le fait qu il s agisse véritablement du premier outil capable d identifier des micro-architectures approchées [GJ01], est sa capacité à expliquer ses réponses. Cette capacité est intéressante dans la mesure où le codage et le développement d applications sont souvent considérés comme un art (alors que la tendance est vers l industrialisation du logiciel) et où les systèmes complètement automatiques ne sont pas toujours bien reçus par les utilisateurs potentiels de tels systèmes : les programmeurs. 6 Conclusion Nous avons présenté rapidement la programmation par contraintes et trois de ces extensions. L intérêt de la programmation par contraintes en se limite pas, loin s en faut, à la résolution de problèmes d optimisation combinatoire dans le domaine de l aide à la décision où elle a largement fait ses preuves. En effet, les deux applications décrites de ses extensions (un système automatique d identification de micro-architectures et un outil de résolution de problèmes en ligne) montrent que la programmation par contraintes a son mot à dire dans le domaine du génie logiciel.

6 Références [AACGJ01] Hervé Albin-Amiot, Pierre Cointe, Yann-Gaël Guéhéneuc, and Narendra Jussien. Instantiating and detecting design patterns : Putting bits and pieces together. In 16th IEEE conference on Automated Software Engineering (ASE 01), pages 166 173, San Diego, USA, November 2001. IEEE Computer Society Press. [BMR + 99] S. Bistarelli, U. Montanari, F. Rossi, T. Schiex, and G. Verfaillie H. Fargier. Semiring-based csps and valued csps : Frameworks, properties, and comparison. Constraints, 4(3) :199 240, 1999. [CdGL + 99] B. Cabon, S. de Givry, L. Lobjois, T. Schiex, and J.P. Warners.W.K. Radio link frequency assignment. Constraints, 4(1) :79 89, 1999. [GHJV94] [GJ01] [HG95] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Yann-Gaël Guéhéneuc and Narendra Jussien. Using explanations for designpatterns identification. In IJCAI 01 Workshop on Modelling and Solving problems with constraints, pages 57 64, Seattle, WA, USA, August 2001. William D. Harvey and Matthew L. Ginsberg. Limited discrepancy search. In Proceedings of IJCAI 95, Montreal, August 1995. [Jus01] Narendra Jussien. Programmation par contraintes avec explications. In 7ièmes Journées nationales sur la résolution pratique de problèmes NPcomplets (JNPC 01), pages 147 158, June 2001. [LB01] [Tsa93] Samir Loudni and Patrice Boizumault. A new hybrid method for solving constraint optimization problems in anytime contexts. In Proceedings of the Thirteenth IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2001), pages 325 332, Dallas, USA, November 2001. IEEE Computer Society. Edward Tsang. Foundations of Constraint Satisfaction. Academic Press, 1993.