Recherche plus court Chemin par A*

Slides:



Advertisements
Présentations similaires
Introduction à la Théorie des graphes
Advertisements

La recherche de chemin optimal
Théorie des graphes.
Introduction à la Théorie des graphes
Modélisation par le concept de graphe
Mise à Niveau en Recherche Opérationnelle
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chapitre VIII. Introduction aux graphes
Optimisation et Complexité
Pr ZEGOUR Djamel Eddine
Algorithme de Bellman-Ford
Structures de données IFT-2000
Recherche Opérationnelle
Pour le chemin le plus court pour tous les couples
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
On cherche le plus court chemin de E à S sur le graphe suivant :
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Sixième étape : pondérer les graphes. Longueur d’une chaîne d’un graphe quelconque = nombre des arêtes qui la constituent. Distance entre deux sommets.
Visualisation dynamique d'arbres hiérarchiques de très grande taille Par Rémi Fusade TER encadré par Thomas Hurtut et Thierry Stein.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Stage de Master M2 Les graphes 2-intervallaires Philippe Gambette Sous la direction de Michel Habib (LIAFA) LIAFAUniversité.
Exercice 1 : A Roland-Garros, un balayeur doit, lors d’une interruption de jeu, nettoyer les lignes de la moitié d’un court de tennis. Pour gagner du temps,
bgp always-compare-med
Module de gestion des tournées de livraison
On complète le tableau des incompatibilités par symétrie :
Coloration de graphe, backtracking, branch and bound
V Graphes étiquetés Ce sont des graphes orientés où les arêtes sont affectées d’étiquettes. Lorsque les étiquettes sont des nombres, on dit que le graphe.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Javadoc et débogueur Semaine 03 Version A17.
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Activités mentales rapides Bilan sur le cours
Techniques d’Optimisation Chapitre 2: Problème de flôt
Pr ZEGOUR Djamel Eddine
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Plan Introduction Parcours de Graphe Optimisation et Graphes
Technologies de l’intelligence d’affaires Séance 11
Questions 1- Qu'est ce qu'un réseau informatique ?
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
Technologies de l’intelligence d’affaires Séance 12
République Algérienne Démocratique et Populaire Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Université Saad.
Exercice 6 : Les sommets de ce graphe sont des équipes, et les arêtes des matchs d’un tournoi. Combien de matchs devra disputer chaque équipe ? Combien.
Sujets Spéciaux en informatique II
Plan Introduction Parcours de Graphe Optimisation et Graphes
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
Branch-and-price algorithms for the solution of the multi-trip vehicle routing problem with time windows (MTVRPTW) 1.
Questions Qu'est ce qu'un réseau informatique ?
Type Concret – Type Abstrait
OPTIMISATION 1ère année ingénieurs
Ruoqi He & Chia-Man Hung
Arbres de décision.
Plan Introduction Parcours de Graphe Optimisation et Graphes
Cycle, Cocycle, Arbre et Arborescence
Support de cours: WSN Préparé par : Samir GHOUALI Année Universitaire : 2018/2019.
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Moteurs de recherches Data mining Nizar Jegham.
Structure de données utiles
Flowchart Itération Cours 04.
Piles et files.
IN302 – Chapitre 3 Plus courts chemins.
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Arbres et arborescences
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
UMLV ã Plus courts chemins Toutes paires d'états
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
STS Web Services libres Gérer les services libres
Type Tableau Partie 1 : Vecteurs
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
La programmation dynamique
Transcription de la présentation:

Recherche plus court Chemin par A* Graphes Recherche plus court Chemin par A* By Subh83 - Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=14916867

Graphe Structure de données qui permet de représenter un réseau de données Réseaux de télécommunication Réseaux sociaux Réseaux routier Carte … Objectifs Représentation d'un graphe Parcours de graphe Quelques problèmes

Arbres Chaque chemin (de la racine à une feuille) représente un mot V Chaque chemin (de la racine à une feuille) représente un mot Optimisation en terme de taille Besoin de marquer la fin d’un mot allez, allons, va, vais, vas, vont L A L \0 I O S O E S N \0 N \0 T Z S \0 \0 \0

Graphe Théoriquement la meilleure implémentation pour coder un lexique Optimisation en terme de taille de stockage Quels mots sont représentés ci-dessous ?

Graphe : exemple Qui copie sur qui ? Largest Connected Component (LCC): (2,000 largest phrase clusters, 100 most active sites, 100 iterations, cascades traced from hyperlinks) Rouge : journaux du net ; Bleu : blogs, la taille est proportionnelle au nombre de participations à une diffusion http://snap.stanford.edu/netinf/ Acces 1702/2017 M. Gomez-Rodriguez, J. Leskovec, A. Krause. Inferring Networks of Diffusion and Influence. ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD), 2010.

Définition Graphe : couple G[X,A] où 1 Définition 3 4 Graphe : couple G[X,A] où X est un ensemble de nœuds ou sommets et A est l’ensemble des paires de sommets reliés entre eux (arêtes du graphe ou «arc») Chemin = séquence d’arêtes menant d'un sommet i à un sommet j Circuit = chemin dont les sommets de départ et d'arrivée sont identiques degré d’un sommet = nombre d'arêtes ayant ce sommet pour extrémité Voisins : les voisins des sommets sont ceux qui sont reliés à ce sommet par une arête

Graphes orientés Graphe dans lequel chaque arete a une direction associée Arc = arête orientée Graphe orienté pondéré: Graphe étiqueté ou chaque arc a un coût associé valuation, coût = valeur numérique associée à un arc ou à un sommet 1 4 3 1 4 3

Types de graphe 1 4 3 Graphe orienté Graphe complet arbre DAG

Opérations voisin : G x y → Booléen Teste si x et y sont voisin voisins : G x → liste Retourne la liste des voisins de x ajoute_noeud : G x → G Ajoute le nœud x si n'est pas déjà présent Supprime_noeud : G x → G Supprime x de G si présent ajoute_arc : G x y → G Ajoute un arc entre x et y est absent Supprime_arc : G x y → G Supprimer l'arc entre x et y est présent valeur_arc : G x y → N Retourne la valeur de l'étiquette de l'arc entre x et y; +oo sinon

Graphe : représentation matricielle Tout graphe G = (X,A) peut être représenté par une matrice d'adjacence mi,j = val(ai,,aj) si (ai,,aj) € A, ∞ sinon Arrivée→ 1 3 4 ∞ 2 -3 -5 9 -2 1 4 3

Graphe : représentation matricielle Complexité spatiale → O(|X|²) Coût d'ajout/suppression d'un nœud → O(|X|²) Coût d'ajout/suppression d'un arc → O(1) Fortement déconseillé pour les graphes creux ! Meilleur choix si la rapidité d’accès est cruciale ou si le graphe est très dense (→ complet)

Graphe : représentation par liste d'adjacence Les sommets sont numérotés et stockés dans un tableau Chaque sommet contient une liste d'arc qui partent de ce sommet Un arc est un triplet <sommet de départ,sommet d’arrivée,coût de l’arc>

Graphe : représentation par liste d'adjacence

Graphe : représentation par liste Complexité spatiale → O(|X|+|A|) Coût d'ajout d'un nœud → O(1) Coût d'ajout d'un arc → O(1) Coût suppression d'un nœud → O(|E|) Coût suppression d'un arc → O(|E|) Parfait pour représenter les graphes creux ! Meilleur compromis de complexité

Parcours de graphe Parcours non ordonnés : Parcours du tableau de nœuds (p.ex., affichage des valeurs des nœuds) Parcours des listes d'arêtes (p.ex., initialisation de poids) Parcours ordonnés selon les arêtes : Problème de cycle (comment être sur de ne pas passer plusieurs fois au même endroit ?) Problème d’initialisation (début) et de terminaison (fin) Problème de sens de parcours (tous les fils ou tous les frères d'abord ?)

Parcours en profondeur d'abord parcours_profondeur(graphe G, sommet X) Si X n'a pas encore été parcouru alors Noter X parcouru Pour tout voisin V de X : parcours_profondeur(G,V) Exemple: Même algorithme que pour les arbres 1 4 3

Parcours en largeur d'abord Stockage des frères par file d'attente parcours_largeur(graphe G, sommet X) Noter X parcouru File F ← {X} Tant F != ∅ N = défiler (F) Action ( N) // exemple Afficher N. Pour tout voisin V de N : Si V non parcouru alors Noter V parcouru F = enfiler (F,V) Exemple: Même algorithme que pour les arbres 1 4 3

Problème : plus court chemin Les nœuds sont les intersections Les arcs sont valués par la distance ou le temps Un plus court chemin entre un nœud A et B ou à partir de A ou entre toutes paires Dijkstra O(V²) une seule source Bellman O(VE) une seule source A* (en pire cas ; n log n meilleur cas) une seule paire Floyd–Warshall O(V3) toutes les paires

Exemple de problème : Max flow Trouver le flux maximal entre une source et une cible (sink). Résolution par l'algorithme de Ford-Fulkerson Exemples Flux de voitures entre deux villes selon un réseau EDF et les coupures possibles :) Optimiser le temps d’attente des remontées mécaniques

Problème : coloration de graphe Attribuer une couleur à chaque nœud de façon à ce qu'aucun nœud adjacent n'ait la même couleur Si on cherche le minimum alors on cherche le nombre chromatique du graphe Utilisation en allocation de ressource minimale Incompatibilité : des produits co- combustibles sont placés dans des wagons distincts==> de couleurs différentes

Et encore Test de planarité : un graphe est il planaire ? Routage et circuits imprimés Arbre couvrant de poids minimal d’un graphe : sous- ensemble qui connecte tous les sommets dont la somme des poids des arêtes est minimale Réseaux informatiques Ordonnancement et méthode PER, MPM Ordonnancement des tâches

Exercices Écrivez la structure de données d'un arc (indice départ, arrivée, coût) Écrivez la structure de données d'un sommet (nom, numéro, arcs) Écrivez la structure de données d'un graphe Écrivez la fonction d'affichage du graphe en C. La fonction devra se conformer à l'exemple suivant : Sommet 1 de voisins 1, 3, 4 Sommet 2 sans voisin ...