Exploration systématique de graphes

Slides:



Advertisements
Présentations similaires
Eléments d'algèbre linéaire
Advertisements

Explorer un espace d’états
Cours 5-b Problèmes spatio-temporels d’ordre 1 en temps
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.
Applications sur les algorithmes récurrents avec Les Matrices
LES GRAPHES.
INTRODUCTION.
On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils.
Section VI Structures répétitives (suite)
Chapitre VII :Commande par retour d’état
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
VI – Rang d’une matrice Mots clés : Rang.
Arbre binaire de recherche
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
ASI 3 Méthodes numériques pour l’ingénieur
Optimisation linéaire
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Pr ZEGOUR Djamel Eddine
Algorithme de Bellman-Ford
Examen partiel #3 Mercredi le 15 décembre de 15h30 à 17h20
Rappel... Systèmes dynamiques: discrets; continus.
Structures de données IFT-2000
Structures de données IFT-2000
Modélisation du robot Azimut-3
5.1 SYSTÈME DÉQUATIONS LINÉAIRES Cours 13. Au dernier cours nous avons vus Léquations vectoriel et léquation normale dun plan. Lintersection de deux plans.
Algorithmes d ’approximation
Optimisation linéaire
Recherche Opérationnelle
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Programmation logique Le Langage PROLOG
Programmation dynamique
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Cours du 25 octobre Mardi le 24 octobre
Rappel... Diagonalisation. Transformations linéaires.
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Diviser pour résoudre A. Principe général B. Applications
Solution connue à l’avance
Géométrie épipolaire (deux vues)
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Rappel... Valeurs propres et vecteurs propres. Définitions;
D.E ZEGOUR Ecole Supérieure d’Informatique
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Problème de 8 reines Sachant que dans un jeu d'échecs, une dame peut pendre toute pièce se trouvant sur la même colonne ou sur la même ligne ou sur une.
ASI 3 Méthodes numériques pour l’ingénieur
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
LE FLOT MAXIMAL et LA COUPE MINIMALE
Exploration systématique de graphes
Électricité et magnétisme (203-NYB) Chapitre 2: Le champ électrique
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Cours LCS N°4 Présenté par Mr: LALLALI
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Introduction à la récursivité
Calendrier (sur MathSV)
Cours 5 - Trois algorithmes de tri d'un tableau
Le Jeu et l’intelligence artificielle
La pile de crêpes.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département d’informatique et de génie logiciel Édition Septembre 2009.
Algorithmique Boucles et Itérations
Pierre Joli Cours de Mathématique Pierre Joli
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Cycle, Cocycle, Arbre et Arborescence
Cours 27 THÉORÈME FONDAMENTAL DU CALCUL. Au dernier cours, nous avons vu ✓ Notation sigma ✓ Règles de sommation.
Transcription de la présentation:

Exploration systématique de graphes A.Introduction B.Exploration en profondeur (Backtracking ) Exemples : . Placer 8 reines dans un échiquier . Problème des cruches d'eau . Sortie d'un labyrinthe

Exploration systématique de graphes Introduction Méthode de recherche (fouille) systématique pour la recherche d'une solution dans un graphe orienté implicite, le plus souvent sans circuit ou même arborescent. (Ex trouver son chemin dans un labyrinthe) Le parcours se fait généralement en profondeur. Si le graphe est très grand(ou infini) ou si l'on veut plutôt chercher une solution avec peu de manipulations, on utilise un parcours en largeur.

Backtracking Application 1 : Problèmes des 8 reines : "Il faut placer 8 reines dans un échiquier ( matrice 8X8) sans qu'aucune d'entres elles ne soit en prise par une autre." Deux reines sont en prise, si elles se trouvent sur une même ligne, une même colonne ou une même diagonale).

Backtracking Application 1 : Problèmes des 8 reines : On démarre d'un échiquier vide. premier niveau : Il y a 64 cas possibles de placer la premier reine. Deuxième niveau : Pour chaque cas du niveau 1, il y a 63 possibilités de placer une reine.( Chaque cas qui ne répond pas à la condition est écarté). Et ainsi de suite....

Backtracking Application 1 : Problèmes des 8 reines : On peut améliorer l'algorithme en considérant uniquement les positions où deux reines ne sont ni sur la même ligne ni sur la même colonne. On peut ainsi représenter tout l'échiquier par un vecteur V [1, 8] où les indices désignent les lignes et les contenus les colonnes. Par exemple si V est 1, 3, 7,.... Première ligne, première colonne: on a une reine Deuxième ligne, troisième colonne : on a une reine Troisième ligne, septième colonne : on a une reine

Backtracking Application 1 : Problèmes des 8 reines : Afin de montrer le principe, restreingnons l'espace de recherche en imaginant un échiquier 4 X 4.

Backtracking Backtracking Backtracking Backtracking

Backtracking Application 1 : Problèmes des 8 reines : Un arbre implicite se construit avec une recherche en profondeur. Niveau 1 : placer la reine sur la première colonne de la ligne une. Niveau 2 : essayer de placer la seconde reine de sorte qu'il n'y ait pas de prises. Niveau 3 : Dans les mêmes conditions, placer la troisième. Et ainsi de suite .... Si échec, remonter dans l'arbre pour essayer d'autres éventualités.

Backtracking Application 1 : Problèmes des 8 reines : Remarquer que pour une diagonale positive, la différence des indices est constante. pour une diagonale négative, la somme des indices constante Les valeurs possibles pour les diagonales positives sont : 0, 1, 2, ...7, -1, -2, ..., -7 Les valeurs possibles pour les diagonales négatives sont : 2, 3, 4, 5, 6, 7, 8.

Backtracking

Backtracking Application 1 : Problèmes des 8 reines : Procedure Placer (K) { On a déjà réussi à placer K reines et on place la reine suivante} Si K = 8 Ecrire (V) Sinon Pour j=1, 8 Si (j n'appartient pas à Col ET k+1 - j n'appartient pas à DiagP ET k+1 + j n'appartient pas à DiagN) : V[k+1] := j ; Col := Col U {j} DiagP := Diagp U {k+1 - j} DiagN := DiagN U {k+1 + j} Placer( k+1 ) Fsi Finpour Fsi

Backtracking Application 1 : Problèmes des 8 reines Appel initial : Placer(0) Col, DiagP et DiagN initialisés à {}. L'algorithme ressemble à l'algorithme dfs défini sur les graphes.

Backtracking Application 2 : Problèmes des cruches d'eau. Deux cruches A(4litres) et B(3litres). On part de A = 0 et B = 0 et on veut arriver à (2, n).

Backtracking Application 2 : Problèmes des cruches d'eau. Ensemble des règles applicables: 1. Si A non pleine : Remplir A 2. Si B non pleine : Remplir B 3. Si A non vide alors vider A 4. Si B non vide alors vider B 5. Si A non vide et A>(3-B) alors verser le contenu de A dans B jusqu'à ce que B soit plein. 6. Si B non vide et B>(4-A) alors verser le contenu de B dans A jusqu'à ce que A soit plein. 7. Si A non vide et A <= (3-B) alors verser tout le contenu de A dans B. 8. Si B non vide et B <= (4-A) alors verser tout le contenu de B dans A.

Backtracking Application 2 : Problèmes des cruches d'eau. La technique de backtracking consiste à appliquer les règles de 1 à 8, dans cet ordre, pour chaque nouvel état visité. La flèche verticale descendante désigne les nouveaux états, les flèches montantes désignent les retours arrières vers les états déjà visités.

Backtracking

Backtracking Application 3 :Sortie d'un labyrinthe Le problème consiste, une fois rentré dans le labyrinthe, de sortir de celui-ci. On suppose, ici, qu'il y a une seule entrée et une seule sortie.

Backtracking

Backtracking Application 3 :Sortie d'un labyrinthe Déplacements possibles : 1. vers le droite 2. vers le bas 3. vers le haut 4. vers la gauche Trouver l'algorithme.