Algorithmes et structures de données avancées Cours 4

Slides:



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

Introduction à la Théorie des graphes
La recherche de chemin optimal
Présentation générale Marc Gengler
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 6ème cours Patrick Reuter
Algorithmes et structures de données avancées 5ème cours Patrick Reuter
Algorithmes et structures de données avancées Cours 6 Patrick Reuter
Algorithmes et structures de données avancés
Algorithmes et structures de données 3ème cours Patrick Reuter
Algorithmes et structures de données
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
Algorithmes et structures de données Cours 2
Introduction à la Théorie des graphes
CHAPITRE 6 Fonctions numériques.
Modélisation par le concept de graphe
Mise à Niveau en Recherche Opérationnelle
Initiation à l’informatique (MSI102)
Initiation à l’informatique (MSI102)
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.
INTRODUCTION.
Chapitre VI. Arbres (définition, parcours, représentation)
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Nombre de chaînes de longueur r
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Structures Pyramidales Luc Brun L.E.R.I., Reims and Walter Kropatsch Vienna Univ. of Technology, Austria.
COURS SUR LA THEORIE DES GRAPHES
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.
Les structures de données arborescentes
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
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
Courbes de Bézier.

Algorithmes d ’approximation
- 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).
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
INTRODUCTION.
Notions premières. x a b c d y z t G = (V,E) V sommets ou nœuds E arêtes ou liens.
Prolog Listes Arbres en prolog Structures : bases de données
Mathématiques Discrètes
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
Soutenance du projet de M1
Problème de double digestion
Les transducteurs En anglais transducers.
Structures de données et algorithmes – TP7 Maria-Iuliana Dascalu, PhD
Algorithme de DIJKSTRA
Traversées (Parcours ) de graphes
Soutenance du projet de M1
Introduction à la Théorie des graphes
Cours de base: Théorie des Graphes Dr TARI Abdelkamel
Transcription de la présentation:

Algorithmes et structures de données avancées Cours 4 Patrick Reuter http://www.labri.fr/~preuter

+ * 6 2 3 function calculer(noeud : p_t_noeud) : integer; begin if (noeud^.contenu = '+') then result := calculer(noeud^.gauche) + calculer(noeud^.droite) else if (noeud^.contenu = '-') then result := calculer(noeud^.gauche) - calculer(noeud^.droite) else if (noeud^.contenu = '*') then result := calculer(noeud^.gauche) * calculer(noeud^.droite) else if (noeud^.contenu = '/') then result := calculer(noeud^.gauche) DIV calculer(noeud^.droite) else result := StrToInt(noeud^.contenu); end;

Attention : Pour la notation infix, il faut des parenthèses… + * * 6 2 3 3 Infix : 2*3+6 (resultat : 18) Prefix: *2+36 Postfix: 236+* Infix : 2*3+6 (resultat : 12) Prefix : +*236 Postfix 23*6+

procedure infixparentheses(noeud : p_t_noeud); begin if (noeud^.gauche <> NIL) then Write(' ( '); infixparentheses (noeud^.gauche); end; Write(noeud^.contenu); if (noeud^.droite <> NIL) then infixparentheses (noeud^.droite); Write(' ) ');

Graphe eulérien Peut-on commencer une promenade sur une île ou une rive, terminer la promenade sur n'importe quelle autre (ou la même) île ou rive en passant exactement une fois sur chacun des ponts?

Abstraction

Les graphes Sommets (« nœuds ») Arêtes (« arcs »)

Motivation Illustration des objets et leurs relations entre eux Une des structures de données les plus importantes Applications dans d’autres disciplines Chimie Économie Sociologie ..

Les graphes Un graphe G = (V,E) un couple de deux ensembles Un ensemble V(G) = {v1, v2, …, vn} de sommets (anglais : one vertex, two vertices) Un ensemble E(G)  V x V d’arêtes (anglais : edges)

Les graphes On peut distinguer deux types de graphes les graphes non orientés. les graphes orientés

Graphe non orienté est cousin de (relation symétrique)

Exemples

Graphe orienté est fils de

Exemples

Exemples

Exemple Le graphe du web peut être modélisé par un graphe orienté (V,E) de la manière suivante: les sommets sont des pages web étant données 2 pages web a et b, il existe une arête (a,b) dans E si et seulement s'il existe un lien hypertexte dans la page a qui pointe vers la page b.

Définitions Attention : Il existe pleines de définitions différentes, attention à la nomenclature utilisée

Degré d’un sommet Le degré d’un sommet, noté d(s) avec s  V, est le nombre de brins ayant s comme extrémité Une boucle compte deux fois

Exemple de degré

Définitions Adjacence et Voisinage Deux sommets sont dits adjacents lorsqu'ils sont reliés par une arête On dit aussi que ces sommets sont voisins. Le voisinage d'un sommet dans un graphe est l'ensemble de ses voisins.

Définitions Un sommet est dit isolé lorsqu’il est du degré 0 Parité des sommets un sommet est pair si son degré est pair. un sommet est impair si son degré est impair.

Définitions Soit G = (V,E) un graphe. Un sous-graphe de G est un graphe G' = (V',E') tel que: V’  V E’  E  on dit donc G'  G Une clique dans un graphe G est un sous-graphe de G qui est complet.

Exemple

Exemple Graphe

Exemple Sous-graphe Clique Ni sous-graphe, Ni clique

Définitions Un graphe régulier est un graphe où chaque sommet est de degré k. Un graphe complet est un graphe dont tous les sommets sont reliés deux à deux.

Isomorphisme Deux graphes G1 = (V1,E1) et G2 = (V2,E2) sont dites isomorphe s’il existe au moins une fonction bijective f telle que (u, v)  E1  (f(u), f(v))  E2

Exemple u A B C D E f(u) 4 3 5 2 1 1 5 A B D E C 4 3 2