Algorithmes et structures de données avancées Cours 6 Patrick Reuter

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

La recherche de chemin optimal
Structures de données avancées : Principales structures de données
Connexité.
Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancées Cours 4
Algorithmes et structures de données avancées 6ème cours Patrick Reuter
Algorithmes et structures de données avancées 5ème cours Patrick Reuter
Algorithmes et structures de données 7ème cours
Algorithmes et structures de données avancés
Algorithmes et structures de données 3ème cours Patrick Reuter
Portée des variables VBA & Excel
Algorithmes et structures de données
Patrick Reuter maître de conférences
Algorithmes et structures de données Cours 3
Algorithmes et structures de données Cours 1 Patrick Reuter
Algorithmes et structures de données 4ème cours
Algorithmes et structures de données 5ème cours
Algorithmes et structures de données Cours 9 Patrick Reuter
Algorithmes et structures de données avancées Cours 1+2+3
Niveau: 4ème Math Prof: Donia JEBALI Année Scolaire 2007/2008
Modélisation par le concept de graphe
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Visualisation d’information interactive 5 : Graphes
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
Chapitre VIII. Introduction aux graphes
COURS SUR LA THEORIE DES GRAPHES
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Les structures de données arborescentes
Arbre binaire de recherche
Analyse lexicale Généralités Expressions rationnelles Automates finis
Les algorithmes: complexité et notation asymptotique
Chapitre VII. Tri Tri par tas Tri rapide.
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Théorie des graphes Un peu de vocabulaire.
Module 4 : Parcours dans un graphe
Pr ZEGOUR Djamel Eddine
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
IFT-2000: Structures de données Les graphes Dominic Genest, 2009.
Structures de données IFT-2000
Structures de données IFT-2000
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Modèles d’implantation
Structures de données IFT-2000
Structures de données IFT-2000
Quatrième étape : cheminer dans les graphes. Une chaîne… Quand elle nutilise pas plusieurs fois la même arête, la chaîne est dite simple. Au sens du programme,
Coloration gap sommet identifiante de graphes

Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
- GRAPHES - Composantes et types
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
Deuxième étape : échanger des poignées de mains
Atelier de formation : MAT optimisation II (les graphes).
Algorithmique et structures de données en C
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
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.
Notions premières. x a b c d y z t G = (V,E) V sommets ou nœuds E arêtes ou liens.
Décomposition des graphes et problèmes d’Optimisation
Algorithmique et programmation en
Algorithmes de tri et de recherche
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Arbres binaires et tables de hachage
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
Soutenance du projet de M1
Problème de double digestion
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Traversées (Parcours ) de graphes
Transcription de la présentation:

Algorithmes et structures de données avancées Cours 6 Patrick Reuter

Arbre binaire de recherche procedure nomducle(noeud : p_t_noeud; cle : integer); Max Nat Rol PoloTony

procedure nomducle(noeud : p_t_noeud; cle : integer); begin if (noeud = NIL) then WriteLn('existe pas') else if (noeud^.cle = cle) then WriteLn('Solution ', noeud^.nom) else if (noeud^.cle > cle) then nomducle(noeud^.gauche, cle) else nomducle(noeud^.droite, cle); end; Complexité ??

Les graphes Un graphe G = (V,E) un couple de deux ensembles –Un ensemble V(G) = {v 1, v 2, …, v n } de sommets (anglais : one vertex, two vertices) –Un ensemble E(G) V x V darêtes (anglais : edges)

Définitions Orientation : –les graphes non orientés –les graphes orientés degré boucle parité (sommets pairs et impairs) adjacence, voisin et voisinage sommet isolé sous-graphe, clique Graphe régulier Graphe complet Isomorphisme Chaîne, chaîne simple, cycle Connexité Stockage des graphes

Matrice dadjacence Pour des graphes orientés et non-orientés Soit G = (V,E) avec V = {v 1, v 2, …, v n } La matrice dadjacence A est une matrice quadratique binaire de taille n x n avec A i,k = 1 si (v i, v k ) E, A i,k = 0 sinon La matrice dadjacence dun graphe non orienté est symétrique Suivant lordre des nœuds, il y a plusieurs matrice dadjacence du même graphe

Exemple A = v1v2 v3 v4 v5 de à

Algorithmes sur les graphes Comment trouver une chaîne entre s et t ? Comment savoir si un graphe est connexe ? Comment savoir si un graphe est eulérien ? …

Graphe de contacts Comment montrer les contacts des contacts des contacts … Patrick Pierre Clémentine Jérôme Petra Luc Axl

Définir une structure de données graphe dadjacence Définir un tableau contenant des étiquettes pour chaque sommet

Etape 1 : montrer les contacts directs Entrée : Graphe G définie par une matrice dadjacence A et un sommet s défini par son indice procedure montrerContacts(s : integer) début pour i de 1 à nbSommets(G) si (i s ET A[s][i]=1) alors afficher nom[i] à lécran; fin si fin pour fin { Montrer les conacts directs }

Définir un tableau contenant un indicateur si un sommet a déjà été visité

Etape 2 : montrer les contacts et les contacts des contacts Entrée : Graphe G définie par une matrice dadjacence A et un sommet s défini par son indice procedure montrerContacts(s : integer) Début marquerSommet(s); pour i de 1 à nbSommets(G) si (i s ET A[s][i]=1 ET NOT marqué(i)) alors afficher nom[i] à lécran fin si fin pour fin { Montrer les contacts directs et les contacts des contacts directs }

Etape 2 : montrer les contacts et les contacts des contacts Entrée : Graphe G définie par une matrice dadjacence A et un sommet s défini par son indice procedure montrerContacts(s : integer) Début marquerSommet(s); pour i de 1 à nbSommets(G) si (i s ET A[s][i]=1 ET NOT marqué(i)) alors afficher nom[i] à lécran marquerSommet(i); pour j de 1 à nbSommets(G) si (j s ET A[i][j]=1 ET NOT marqué(j)) alors marquerSommet(j); afficher nom[j] à lécran fin si fin pour fin si fin pour fin { Montrer les contacts directs et les contacts des contacts directs }

Etape 3 : Reconnaître la récursivité Entrée : Graphe G définie par une matrice dadjacence A et un sommet s défini par son indice procedure montrerContacts(s : integer) Début marquerSommet(s); pour i de 1 à nbSommets(G) si (i s ET A[s][i]=1 ET NOT marqué(i)) alors afficher nom[i] à lécran marquerSommet(i); pour j de 1 à nbSommets(G) si (j s ET A[s][j]=1 ET NOT marqué(j)) alors marquerSommet(j); afficher nom[j] à lécran fin si fin pour fin si fin pour fin { Montrer les contacts directs et les contacts des contacts directs }

Etape 4 : Récursivité Entrée : Graphe G définie par une matrice dadjacence A et un sommet s défini par son indice procedure montrerContacts(s : integer) Début marquerSommet(s); pour i de 1 à nbSommets(G) si (i s ET A[s][i]=1 ET NOT marqué(i)) alors afficher nom[i] à lécran montrerContacts(i); fin si fin pour fin { Montrer les conacts directs et les contacts des contacts directs }

Vérification des deux conditions dun algorithme récursif La fonction est appelé par elle-même La fonction est protégé par une condition pour ne pas sappeler infiniment –Quand tous les sommets voisins dun sommet sont marqués, la fonction nest plus appelée.