La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 IV - Heuristic algorithm Constraint programming.

Présentations similaires


Présentation au sujet: "1 IV - Heuristic algorithm Constraint programming."— Transcription de la présentation:

1 1 IV - Heuristic algorithm Constraint programming

2 V Mise en situation Aujourd'hui, sur un marché où la concurrence est toujours plus compétitive, la recherche de gains en productivité est devenue un point prioritaire. Avant d'entrer dans la théorie de la programmation par contraintes, voyons comment il est possible de résoudre l'un de ces problèmes (dits NPComplets) : la gestion d'emploi du temps.

3 V Séminaire de nutrition Soit à réaliser lorganisation d'un séminaire de formation à la nutrition ayant les contraintes suivantes : Le séminaire ne doit pas durer plus de quatre jours. Deux salles sont disponibles, La salle 1 possède un rétro-projecteur et peut accueillir jusqu'à 200 personnes, La salle 2 possède un projecteur de diapositives et peut accueillir 500 personnes.

4 V Séminaire de nutrition (2) Les formations sont NombreMatérielPersonnesPrécédence Physiologie de la nutrition 1150 Biochimie métabolique 1Rétro150 Après structurale Biochimie alimentaire 1Rétro200 Après structurale Biochimie structurale 2300 Connaissance des aliments 2Diapo.400 Procédés de fabrication 1Diapo.100

5 V Solution un (générer et tester) On doit trouver les valeurs de huit variables (4 jours x 2 salles); on tente une configuration, on teste si elle est viable, sinon on revient sur la valeur d'une des variables. Figure Arbre

6 V Solution un (générer et tester) 2 A chaque ligne, correspondent les différentes valeurs de la variable (donc les différents cours possibles pour une salle pour une journée). A une solution, correspond un parcours de l'arbre, de la racine jusqu'à une feuille. Si la solution n'est pas viable (contraintes non respectées) on revient en arrière sur la dernière affectation (la dernière valeur de la dernière variable) et ainsi de suite tant qu'aucune solution viable n'est trouvée.

7 V Solution deux On part de l'ensemble des données, sans aucune contrainte ; on propage une à une toutes les contraintes ; s'il reste une solution on la prend, s'il en reste beaucoup, on en choisit une (cf. solution un). Sans aucune contrainte, le problème peut être représenté par le tableau ci- dessous.

8 V Solution deux (2) Figure Emploi du temps non contraint

9 V Solution deux (3) Puis lon pose une à une chaque contrainte… La contenance de la salle doit être supérieure ou égale au nombre de personnes attendues. Une formation nécessitant un matériel doit se dérouler dans la salle possédant ce matériel. Les séances allant par deux se suivent. Les précédences sur les formations doivent être respectées. …ce qui donne…

10 V Solution deux (4) Figure Emploi du temps contraint

11 V Solution deux (5) …il reste quatre solutions dont une est : Figure Emploi du temps final

12 V Idée En fait, la programmation par contraintes va combiner ces deux manières de procéder afin de réduire le nombre de tentatives et donc d'optimiser le temps de recherche de la solution. La propagation des contraintes sera intégrée à chaque cycle de choix de l'algorithme. Cela réduira d'autant le nombre de choix pour le cycle suivant.

13 V Principe théorique Type de problèmes Problèmes de classe "P" Exemple Chercher un enregistrement dans un fichier. Complexité O(n 1 ), le temps de recherche est proportionnel au nombre d'enregistrements présents. Autre exemple Trier les éléments d'un tableau en les comparant deux à deux et en les permutant si nécessaire. Au maximum : n permutations pour n nombres, donc complexité en O(n 2 ), c'est à dire proportionnelle au carré du nombre d'éléments à trier.

14 V Problèmes NP Complets Les problèmes dits "Non déterministe Polynomiaux Complets" sont des problèmes de grande taille, pour lesquels les recherches de solutions par algorithme conduisent à des calculs exponentiels. Exemple : Trouver le plus court chemin partant de la ville A (et y revenant) passant par toutes les villes du graphe en minimisant la distance parcourue. Figure Le voyageur de commerce

15 V Problèmes NP Complets (2) 3 villes : 2 solutions 4 villes :6 solutions 5 villes :24 solutions 6 villes :120 solutions... 10villes : solutions... 15villes :8,71010 solutions

16 V Problèmes NP Complets (3) Figure Évolution des coûts

17 V Exemples de problèmes NPComplets Allocation de ressource (humaine, matérielle...) Optimisation de tournée Emploi du temps, Planning Ordonnancement de tâches Optimisation de mélanges Rotation d'équipe Découpe de pièces...

18 V Approches Pour résoudre ces problèmes, trois approches différentes : Algorithme de recherche opérationnelle ou programmation linéaire Système expert Programmation par contraintes

19 V Approche algorithmique Par l'utilisation d'un algorithme de Recherche Opérationnelle fournissant une solution en un temps raisonnable. Il est possible d'utiliser par exemple la méthode du Simplex, ou un recuit simulé, ou même un simple algorithme Branch & bound. Contraintes Nécessité d'un modèle mathématique Peu de paramétrages possibles Difficulté d'évolution (problème de l'algorithme)

20 V Approche par système expert Par utilisation d'un générateur de système expert du marché et d'une expertise privée permettant de résoudre le problème. Contraintes Nécessité d'une expertise Pas de solution algorithmique triviale Stratégies possibles (paramétrage dynamique) Possibilités d'évolution (de par la déclarativité des règles)

21 V Approche "Contraintes" Par l'utilisation d'un langage de programmation par contraintes. Contraintes Pratiquement aucune (si ce n'est l'absence de motivation pour l'une des approches précédentes).

22 V Évolution Évolution du nombre de problèmes traités par ces diverses approches au fil du temps Figure Nombre de problèmes traités

23 V Résumé "En quoi consiste la programmation par contraintes ?" Souvent, quel que soit le problème, il est facile de trouver une solution, le plus difficile consistant à minimiser un critère de coût (ex : affectation de locomotives à des trains, emploi du temps, découpe de tissus...) En fait ces méthodes sont utilisées afin d'accroître la productivité en réduisant soit le temps, soit les coûts.

24 V Idée démarquant la programmation par contraintes des autres approches Utiliser au sein d'un même outil Un algorithme de Recherche Opérationnelle Des contraintes posées de manière déclarative (donc sans énoncer la façon de procéder) Figure Comment converger rapidement vers une solution ?

25 V Fonctionnement (avec algorithme de recherche trivial) lDonner les objets du problème lÉnoncer les contraintes sur ces objets lPropager les contraintes (restriction des ensembles de valeurs) lToutes les données ont-elles une seule valeur possible ? Oui ->Solution trouvée Non ->Choisir D une donnée, puis V une valeur possible pour D Impossible de trouver V (ensemble de valeurs vide) ? Oui -> Pas de solution (dans cette branche, faire un retour arrière) Non -> Choisir V comme valeur pour D lBoucler

26 V Un exemple : Les huit reines Énoncé Un exemple simple (et historique) reprenant les principes des problèmes dallocation. Placer huit reines sur un échiquier sans qu'aucune ne soit en prise. Énoncé déclaratif On dispose de huit reines (A à H), une par ligne, auxquelles il faut affecter un numéro de colonne. Toutes les reines sont sur des colonnes différentes. Toutes les reines sont sur des diagonales différentes.

27 V Énoncé (2) Figure The empty board

28 V Résolution Voyons comment, même avec l'algorithme simple que nous venons d'écrire, la recherche converge rapidement. Démonstration sur un damier 4x4.

29 V Résolution (2) Figure Queens are placed

30 V Mise en évidence de certains points Une seule solution est trouvée, or il en existe plusieurs (miroir + rotations) -> problème du déterminisme Quelle donnée choisir (la première, la plus contrainte, la moins contrainte...) ? Une fois la donnée choisie, quelle valeur choisir pour cette donnée (celle qui propage le plus, le moins, qui vide un ensemble...) ?

31 V Optimisation Une fois toutes les contraintes posées, l'espace de recherche est réduit, il est possible : soit de laisser l'algorithme "classique" prendre une à une les variables pour leur trouver une valeur ; soit d'utiliser un algorithme de recherche opérationnelle qui sera forcément plus efficace, puisque l'espace est réduit ; il sera à nouveau réduit à chaque pas.

32 V Applications opérationnelles Les produits du marché Liste des produits disponibles sur station de travail sous Unix ou sur PC sous Windows NT. SolverIlogObjet (Lisp ou C++) Chip V5CosytecProlog, C, C++ Prolog IVPrologIAProlog

33 V Applications CARAIBE (SNCF) A partir d'un ensemble de trains (heure de départ et d'arrivée, gare de départ et d'arrivée) avec des contraintes (vitesse maximale, autonomie des locomotives diésel de 3000 km, passage obligatoire dans certaines gares pour la maintenance tous les 7 jours...), minimiser le nombre de locomotives et le nombre de kilomètres à vide. Temps : 20s pour 300 trains PMFT (Armée de Terre) Planification de la formation du personnel de l'armée de terre sur 20 ans variables, contraintes (solution trouvée en 2 minutes) Journal espagnol (Madrid) Problème de disposition de petites annonces sur une page de journal.

34 V Applications (2) Comité de sécurité des Jeux Olympiques Gestion de la sécurité sur l'ensemble des sites des JOd'hiver 92 à Albertville. Expertise des ressources nécessaires, puis optimisation de l'affectation de ces ressources face à une situation de crise Elf Sanofi Réalisation de mélanges devant respecter certaines propriétés relatives aux durées de préparation, quantités etc Aéroport de Marseille Allocation des parkings aux avions Air France Gestion des emplois du temps du personnel navigant.

35 V Applications (3) Vachette Génération des configurations de clés permettant de satisfaire les différents usagers d'un immeuble (gardien, résident, entretien...) Rhône Poulenc Aide à la formulation de la vitamine A pour les produits de nutrition animale (optimisation de mélanges) Découpage de plaques de tôle Découper une bande tôle afin d'obtenir des plaques rectangulaires de dimensions fixes. Minimiser la surface de chutes Construction d'un pont Afin de construire un pont, il est nécessaire d'envisager trois phases: fondations, piliers et tabliers.Des contraintes existent entre ces phases (chaque tablier après deux piliers, ressources non partageables, minimisation de la durée...)

36 V Applications (4) …et disposition d'entrepôts, emploi du temps d'un établissement scolaire affectation de conteneurs à des wagons allocations de fréquences hertziennes...

37 V Conclusion Certains problèmes à forte combinatoire peuvent être résolus à l'aide de la programmation par contraintes. (ne pas vouloir tout résoudre à l'aide des contraintes, mais savoir les utiliser lorsque l'on se heurte à un problème typiquement combinatoire) Difficultés à trouver des compétences afin de développer une application, à cause du jeune âge de ce type de programmation (quelques années).


Télécharger ppt "1 IV - Heuristic algorithm Constraint programming."

Présentations similaires


Annonces Google