IV - Heuristic algorithm Constraint programming

Slides:



Advertisements
Présentations similaires
[number 1-100].
Advertisements

1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
La Méthode de Simplexe Standardisation
Fabrice Lauri, François Charpillet, Daniel Szer
CONDUIRE une REUNION.
Algorithmes et structures de données avancés
Fonctions & procédures
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
MATHEMATIQUES COMPETENCE 3 :
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
ASSISES 2006 QUELS PROJETS POUR LES JEUNES Résultats quantitatifs et qualitatifs de lenquête A LECOUTE DU CLUB.
ASSISES 2006 QUELS PROJETS POUR LES JEUNES Résultats quantitatifs et qualitatifs de lenquête A LECOUTE DU CLUB.
Présentation de l’application « Livret personnel de compétences »
Page : 1 / 6 Conduite de projet Examen du 6 mai 1999 Durée : 4 heures Le support de cours est toléré La notation tiendra compte très significativement.
Page : 1 / 6 Conduite de projet Examen du 13 mai 2002 Durée : 3h30mn Le support de cours et les notes sont nécessaires La notation tiendra compte très.
Page : 1 / 6 INSA Rouen département ASI UV MGPI Examen du 25 juin 2003 Durée : 120 mn Le support de cours est toléré La notation tiendra compte très significativement.
Les éléments de mémorisation
Systèmes Experts implémentation en Prolog
et évaluation des compétences
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Utilisation des tableaux
Par Clément en vacances sur la Côte d’Azur Le 17 décembre 2011
Améliorer les performances du chiffrage à flot SYND
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Les résultats Le tri croisé
Plan Évolution Système On Chip Difficultés de la testabilité des SOCs
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Application des algorithmes génétiques
16/10/10 Préparé par: Ing. Rodrigue OSIRUS (+509) , *** Conception dun site web Cours: Conception.
KAKI - Gestion budgétaire et comptable de la paye
Algorithmes Branch & Bound
Pourquoi les réseaux de neurones de type « perceptron multicouche » conviennent-ils à l’apprentissage Stéphane Canu, INSA de Rouen , PSI André Elisseeff,
Heuristiques A. Introduction B. Recherche d ’une branche
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
18/05/ Utiliser le cahier de texte en ligne avec lapplication SPIP Adresse du site du lycée :
Traitements &Suppléments
SUJET D’ENTRAINEMENT n°2
Le point le plus près Montage préparé par : André Ross
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
ENTRAÎNEMENT pour l’ASSR 2
2 TP avec l ’aide d ’un modeleur 3D :
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Algorithmes d ’approximation
Les Algorithmes de Tri Introduction Tri par Sélection
Ordonnancement de tâches
Résoudre une équation du 1er degré à une inconnue
Programmation dynamique
Programmation linéaire en nombres entiers : les méthodes de troncature
ASI 3 Méthodes numériques pour l’ingénieur
Introduction Objet de la programmation mathématique, construction d'un modèle mathématique, problème général de programmation mathématique et classification,
Présentation de la méthode des Eléments Finis
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Equation différentielle de 2ème ordre
ANALYSE METHODE & OUTILS
Création et présentation d’un tableau avec Word 2007
LES PILES ET FILES.
Programmation dynamique
Les Chiffres Prêts?
Rappels de statistiques descriptives
Université de Sherbrooke
Partie II: Temps et évolution Energie et mouvements des particules
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Transcription de la présentation:

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. 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.

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.

1.1 - Séminaire de nutrition (2) Nombre Matériel Personnes Précédence Physiologie de la nutrition 1 150 Biochimie métabolique Rétro Après structurale Biochimie alimentaire 200 Biochimie structurale 2 300 Connaissance des aliments Diapo. 400 Procédés de fabrication 100 Les formations sont

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

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.

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.

Figure 4.2 - Emploi du temps non contraint 1.1.2 - Solution deux (2) Figure 4.2 - Emploi du temps non contraint

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…

Figure 4.3 - Emploi du temps contraint 1.1.2 - Solution deux (4) Figure 4.3 - Emploi du temps contraint

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

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.

2 - Principe théorique 2. 1 - Type de problèmes 2. 1 2 - Principe théorique 2.1 - Type de problèmes 2.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.

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”

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

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

2.1.3 - 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 ...

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

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)

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 expertise Pas de solution algorithmique triviale Stratégies possibles (paramétrage dynamique) Possibilités d'évolution (de par la déclarativité des règles)

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

Figure 4.7 - Nombre de problèmes traités 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

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.

Figure 4.8 - Comment converger rapidement vers une solution ? 3.6 - 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 4.8 - Comment converger rapidement vers une solution ?

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

4 - Un exemple : Les huit reines 4.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.

Figure 4.9 - The empty board 4.1 - Énoncé (2) Figure 4.9 - The empty board

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.

Figure 4.10 - Queens are placed 4.2 - Résolution (2) Figure 4.10 - Queens are placed

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...) ?

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.

5 - Applications opérationnelles 5.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

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.

5.2 - Applications (2) 5.2.4 - 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. 5.2.5 - Elf Sanofi Ré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 Marseille Allocation des parkings aux avions 5.2.7 - Air France Gestion des emplois du temps du personnel navigant.

5.2 - Applications (3) 5.2.8 - Vachette Gé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 Poulenc Aide à 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ôle Dé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 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...)

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 ...

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