1 / 37

IV - Heuristic algorithm Constraint programming

IV - Heuristic algorithm Constraint programming. 1 - 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.

hollie
Download Presentation

IV - Heuristic algorithm Constraint programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IV - Heuristic algorithmConstraint programming

  2. 1 - 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. 1.1 - Séminaire de nutrition • Soit à réaliser l’organisation 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. 1.1 - Séminaire de nutrition (2) • Les formations sont

  5. 1.1.1 - 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 4.1 - Arbre

  6. 1.1.1 - 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. 1.1.2 - 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. 1.1.2 - Solution deux (2) Figure 4.2 - Emploi du temps non contraint

  9. 1.1.2 - Solution deux (3) • Puis l’on 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. 1.1.2 - Solution deux (4) Figure 4.3 - Emploi du temps contraint

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

  12. 1.2 - 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. 2 - Principe théorique2.1 - Type de problèmes2.1.1 - Problèmes de classe "P" • Exemple • Chercher un enregistrement dans un fichier. • Complexité O(n1), 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(n2), c'est à dire proportionnelle au carré du nombre d'éléments à trier.

  14. 2.1.2 - 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 4.5 - Le “voyageur de commerce”

  15. 2.1.2 - Problèmes NP Complets (2) • 3 villes : 2 solutions • 4 villes : 6 solutions • 5 villes : 24 solutions • 6 villes : 120 solutions... • 10villes : 362 880 solutions... • 15villes : 8,71010 solutions

  16. 2.1.2 - Problèmes NP Complets (3) Figure 4.6 - Évolution des coûts

  17. 2.1.3 - Exemples de problèmesNPComplets • 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. 3 - 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. 3.1 - 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. 3.2 - 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 expertisePas de solution algorithmique triviale • Stratégies possibles (paramétrage dynamique) • Possibilités d'évolution (de par la déclarativité des règles)

  21. 3.3 - 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. 3.4 - Évolution • Évolution du nombre de problèmes traités par ces diverses approches au fil du temps Figure 4.7 - Nombre de problèmes traités

  23. 3.5 - 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. 3.6 - Idée démarquant la programmationpar 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 4.8 - Comment converger rapidement vers une solution ?

  25. 3.7 - Fonctionnement (avec algorithme de recherche trivial) • • Donner les objets du problème • • Énoncer les contraintes sur ces objets • • Propager les contraintes (restriction des ensembles de valeurs) • • Toutes 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 • • Boucler

  26. 4 - Un exemple : Les huit reines4.1 - Énoncé • Un exemple simple (et historique) reprenant les principes des problèmes d’allocation. • 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. 4.1 - Énoncé (2) Figure 4.9 - The empty board

  28. 4.2 - 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. 4.2 - Résolution (2) Figure 4.10 - Queens are placed

  30. 4.3 - 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. 4.4 - 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. 5 - Applications opérationnelles5.1 - Les produits du marché • Liste des produits disponibles sur station de travail sous Unix ou sur PC sous Windows NT. • Solver Ilog Objet (Lisp ou C++) • Chip V5 Cosytec Prolog, C, C++ • Prolog IV PrologIA Prolog

  33. 5.2 - Applications • 5.2.1 - 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 • 5.2.2 - PMFT(Armée de Terre)Planification de la formation du personnel de l'armée de terre sur 20 ans.12000variables, 20000 contraintes (solution trouvée en 2 minutes) • 5.2.3 - Journal espagnol (Madrid)Problème de disposition de petites annonces sur une page de journal.

  34. 5.2 - Applications (2) • 5.2.4 - Comité de sécurité des Jeux OlympiquesGestion 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. • 5.2.5 - Elf SanofiRéalisation de mélanges devant respecter certaines propriétés relatives aux durées de préparation, quantités etc... • 5.2.6 - Aéroport de MarseilleAllocation des parkings aux avions • 5.2.7 - Air FranceGestion des emplois du temps du personnel navigant.

  35. 5.2 - Applications (3) • 5.2.8 - VachetteGénération des configurations de clés permettant de satisfaire les différents usagers d'un immeuble (gardien, résident, entretien...) • 5.2.9 - Rhône PoulencAide à la formulation de la vitamine A pour les produits de nutrition animale (optimisation de mélanges) • 5.2.10 - Découpage de plaques de tôleDécouper une bande tôle afin d'obtenir des plaques rectangulaires de dimensions fixes. Minimiser la surface de chutes. • 5.2.11 - Construction d'un pontAfin 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. 5.2 - Applications (4) • 5.2.12 - …et • disposition d'entrepôts, • emploi du temps d'un établissement scolaire • affectation de conteneurs à des wagons • allocations de fréquences hertziennes...

  37. 6 - 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).

More Related