[PDF] [PDF] Graphes en Python - Jules Svartz





Previous PDF Next PDF



Parcours dun graphe

1. 4. 2013 Exemple de codage : utilisation d'un dictionnaire python. Python. G=dict() ... Parcours en profondeur : principe de l'algorithme.



6.3.1 Parcours en profondeur itératif 6.3.2 Parcours en profondeur

Université Paris Diderot – LI0436 – 08/09. Ch6. Les arbres. 6.3.1 Parcours en profondeur itératif procedure Parcours(A); var X : sommet ;.



Algo Prog Objet Python

Parcours en profondeur d'abord (depth first). – Préfixé. – Infixé On peut éviter d'utiliser un algorithme récursif pour représenter un parcours en ...



Quelques rappels sur la théorie des graphes

Algorithme 4 : parcours en profondeur récursif (DFSrec)(S A



Parcours darbres ?

L'algorithme de parcours en profondeur (DFS) d'un graphe G prend un temps O(n+m). L'algorithme de parcours en profondeur peut être étendu pour.



Théorie des graphes et optimisation dans les graphes Table des

Algorithme de parcours en profondeur des sommets accessibles depuis s0 DFS(S A



TP Python: le retour de Ford-Fulkerson

L'algorithme de Ford-Fulkerson consiste à partir du flot nul et à effectuer des parcours en profondeur sur le graphe des résidus (défini plus tard) pour tenter 



Parcours dun arbre binaire

2 Algorithmes récursifs. Pour chacun des parcours définis ci-dessus (postfixe infixe



Arbres et récursivité

1. 7. 2020 Algorithme récursif La manière la plus simple de faire un parcours en profondeur est d'utiliser la récursion.



Corrigé - Percolation

proposé correspond à un parcours en profondeur du graphe (cet algorithme est étudié en détail en option informatique de seconde année).



[PDF] Parcours dun graphe

Parcours en profondeur Jean-Manuel Mény – IREM de LYON () Algorithmique ISN 2013 47 / 97 Page 66 Parcours en profondeur : principe de l'algorithme Vous 



[PDF] Arbres et graphes - Algo Prog Objet Python

Parcours en profondeur d'abord (depth first) – Préfixé – Infixé On peut éviter d'utiliser un algorithme récursif pour représenter un parcours en 



[PDF] 1 Parcours en profondeur 2 Tri topologique

Question 1 Appliquer l'algorithme à un graphe non connexe (tel qu'il existe deux sommets non reliés par un chemin) à partir de différents sommets pour 



[PDF] Parcours de graphes - IGM

Les deux types de parcours principaux pour les graphes sont les parcours en profondeur et en largeur Ce cha- pitre couvre les algorithmes correspondants 



[PDF] Graphes en Python - Jules Svartz

Algorithme 2 : Parcours en profondeur complet du graphe Entrée : Un graphe G donné par liste d'adjacence deja_vu[v] ? Faux pour tout sommet v;



[PDF] Parcours en profondeur dun graphe - DFS La méthode - ISN

On peut utiliser un algorithme récursif pour parcourir un graphe en profondeur En voici la description : 1 On part d'un nœud du graphe 2 On le marque comme 



[PDF] Première partie : Algorithmique avancée pour les graphes - CNRS

Une façon naïve de déterminer les différentes SCC d'un graphe consiste à faire un parcours (en largeur ou en profondeur) à partir de chacun des sommets du 



[PDF] Algorithmique et programmation à destination des étudiants dIMSD

1 août 2019 · Ce document contient en annexe un aide-mémoire sur les notations algorithmiques et Python sur les prérequis du cours 1 4 Quelques références L 



[PDF] Algorithmes illustrés

triée et comment cet algorithme serait implémenté en langage Python au cours de disputes des défis mathématiques et étudiait en profondeur les 



[PDF] Parcours de graphes et applications - ZoneNSI

Le parcours en profondeur d'un graphe (Depth First Search en anglais) c'est-à-dire un parcours où on explore chaque chemin jusqu'à son extrémité nale 

:

Graphes en Python

Jules Svartz

Lycée Masséna

1/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Historique

Applications :

graphe du web (plus de 8 milliards d"URL valides) graphes des réseaux sociaux, ex : Facebook?2.91 milliards d"utilisateurs.graphe des routes en France (35000 communes françaises, nombre

de routes?)vols en avion dans le monde (?100000 vols commerciaux par jour)réseaux de distribution eau/électricité...

etc... 2/22

Vocabulaire : graphes non orientés

0 54321
678

9Graphe non orienté : couple

G= (V,E):noeuds(ou

sommets),arêtesboucle,multi-arêtesommetsvoisins, arête incidente,degréd"un sommet.chemin,cycle.connexité,composante connexe.arbre. 3/22

Exemple de graphes non orientés

0 54321

CycleC60

54321

CliqueK6

4/22

Vocabulaire : graphes orientés

012 3

45Graphe orienté : couple

G= (V,E):noeuds(ou

sommets),arcsdegré entrant,degré sortantcircuit.composante fortement connexe. 5/22

Implémentation

012 3 45
Repr. creuse : listes d"adjacence (dictionnaire ok) G = [[5, 1], [2, 5], [3], [0, 4], [2, 1], [0, 4]]Repr. dense : matrice d"adjacence. M=( ((((((0 1 0 0 0 1

0 0 1 0 0 1

0 0 0 1 1 0

1 0 0 0 1 0

0 1 1 0 0 0

1 0 0 0 1 0)

))))))M=[[0, 1, 0, 0, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0], [1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0]]Graphe non orienté : arête{x,y}!arcsx→yety→x.6/22

Implémentation

012 3 45
Repr. creuse : listes d"adjacence (dictionnaire ok) G = [[5, 1], [2, 5], [3], [0, 4], [2, 1], [0, 4]]Repr. dense : matrice d"adjacence. M=( ((((((0 1 0 0 0 1

0 0 1 0 0 1

0 0 0 1 1 0

1 0 0 0 1 0

0 1 1 0 0 0

1 0 0 0 1 0)

))))))M=[[0, 1, 0, 0, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0], [1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0]]Graphe non orienté : arête{x,y}!arcsx→yety→x.6/22

Implémentation

012 3 45
Repr. creuse : listes d"adjacence (dictionnaire ok) G = [[5, 1], [2, 5], [3], [0, 4], [2, 1], [0, 4]]Repr. dense : matrice d"adjacence. M=( ((((((0 1 0 0 0 1

0 0 1 0 0 1

0 0 0 1 1 0

1 0 0 0 1 0

0 1 1 0 0 0

1 0 0 0 1 0)

))))))M=[[0, 1, 0, 0, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0], [1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0]]Graphe non orienté : arête{x,y}!arcsx→yety→x.6/22

Implémentation

012 3 45
Repr. creuse : listes d"adjacence (dictionnaire ok) G = [[5, 1], [2, 5], [3], [0, 4], [2, 1], [0, 4]]Repr. dense : matrice d"adjacence. M=( ((((((0 1 0 0 0 1

0 0 1 0 0 1

0 0 0 1 1 0

1 0 0 0 1 0

0 1 1 0 0 0

1 0 0 0 1 0)

))))))M=[[0, 1, 0, 0, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0], [1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0]]Graphe non orienté : arête{x,y}!arcsx→yety→x.6/22

Intermède : structure de pile

Pile : principeLIFObase de la pile.........sommet : le seul élément accessible

Opérations :

Création d"une pile vide;

Test si une pile est vide;

Rajout d"un élément au sommet d"une pile;

Accès au sommet d"une pile non vide;

Suppression (et renvoi) du sommet d"une pile non vide. 7/22

Intermède : structure de pile

Pile : principeLIFObase de la pile.........sommet : le seul élément accessible

Opérations :

Création d"une pile vide;

Test si une pile est vide;

Rajout d"un élément au sommet d"une pile;

Accès au sommet d"une pile non vide;

Suppression (et renvoi) du sommet d"une pile non vide. 7/22

Structure de pile en Python

liste classique viaappend,popet accès au dernier élément. >>> P=[] >>> P.append(3) >>> P.append(5) >>> P.pop() 5 >>> P[-1] 3 >>> P==[]

FalseModuledeque(voir la suite).

8/22

Intermède : structure de file

File : principeFIFO

Opérations :Création d"une file vide;

Test si une file est vide;

Rajout d"un élément dans la file;

Suppression (et renvoi) du premier élément inséré dans la file. 9/22

Structure de file en Python

liste classique viaappend,pop(0)? >>> F=[] >>> F.append(6) >>> F.append(4) >>> F.pop(0) 6 >>> F.pop(0) 4 >>> F==[] True Mauvais en complexité!Utilisation de deux listes (deux piles!)

Moduledeque.

10/22 Structure de pile et de file en Python : module deque >>> from collections import deque # importation >>> f = deque() # une file à deux bouts vide >>> for i in range(5): f.append(i) #ajout à droite >>> f deque([0, 1, 2, 3, 4]) >>> f.pop() #suppression à droite 4 >>> f.appendleft(5) ; f #ajout à gauche deque([5, 0, 1, 2, 3]) >>> f.popleft() #suppression à gauche 5 >>> f deque([0, 1, 2, 3]) >>> len(f)

4pile viaappendetpop(ouappendleftetpopleft)file viaappendetpopleft(ouappendleftetpop)

11/22

Parcours de graphe

Algorithme 1 :Parcours générique de grapheEntrée :Un grapheGdonné par listes d"adjacence, un sommet de

départs0 a_traiter← {s0};

B←[Faux,...,Faux];

B[s0]←Vrai;

tant quea_traiterest non videfaires←sortir un élément dea_traiter; pourtout voisin s?de s tel queB[s?]estFauxfairea_traiter←a_traiter? {s?};

B[s?]←VraiQuestions :

Terminaison?

Sommets atteints?

Complexité?

Applications?

12/22

Parcours de graphe

Algorithme 1 :Parcours générique de grapheEntrée :Un grapheGdonné par listes d"adjacence, un sommet de

départs0 a_traiter← {s0};

B←[Faux,...,Faux];

B[s0]←Vrai;

tant quea_traiterest non videfaires←sortir un élément dea_traiter; pourtout voisin s?de s tel queB[s?]estFauxfairea_traiter←a_traiter? {s?};

B[s?]←VraiQuestions :

Terminaison?

Sommets atteints?

Complexité?

Applications?

12/22

Parcours de graphe

Algorithme 1 :Parcours générique de grapheEntrée :Un grapheGdonné par listes d"adjacence, un sommet de

départs0 a_traiter← {s0};

B←[Faux,...,Faux];

B[s0]←Vrai;

tant quea_traiterest non videfaires←sortir un élément dea_traiter; pourtout voisin s?de s tel queB[s?]estFauxfairea_traiter←a_traiter? {s?};

B[s?]←VraiQuestions :

Terminaison?

Sommets atteints?

Complexité?

Applications?

12/22

Parcours de graphe

Algorithme 1 :Parcours générique de grapheEntrée :Un grapheGdonné par listes d"adjacence, un sommet de

départs0 a_traiter← {s0};

B←[Faux,...,Faux];

B[s0]←Vrai;

tant quea_traiterest non videfaires←sortir un élément dea_traiter; pourtout voisin s?de s tel queB[s?]estFauxfairea_traiter←a_traiter? {s?};

B[s?]←VraiQuestions :

Terminaison?

Sommets atteints?

Complexité?

Applications?

12/22

Parcours de graphe

Algorithme 1 :Parcours générique de grapheEntrée :Un grapheGdonné par listes d"adjacence, un sommet de

départs0 a_traiter← {s0};

B←[Faux,...,Faux];

B[s0]←Vrai;

tant quea_traiterest non videfaires←sortir un élément dea_traiter; pourtout voisin s?de s tel queB[s?]estFauxfairea_traiter←a_traiter? {s?};

B[s?]←VraiQuestions :

Terminaison?

Sommets atteints?

Complexité?

Applications?

12/22

Parcours en largeur

Utilisation d"une file poura_traiter.Calcul des distances depuiss0.Rajouterpredpour des calculs de plus courts chemins.Exemple :

45670123

13/22

Parcours en largeur

Utilisation d"une file poura_traiter.Calcul des distances depuiss0.Rajouterpredpour des calculs de plus courts chemins.Exemple :

45670123

13/22

Parcours en profondeur (complet)

Discussion pile / récursivité

Mutualisation liste de booléens

Algorithme 2 :Parcours en profondeur complet du grapheEntrée :Un grapheGdonné par liste d"adjacence

deja_vu[v]←Fauxpour tout sommetv;

Fonctionpp(u):deja_vu[u]←Vrai;

pourtout voisin v de ufairesideja_vu[v] =Fauxalorspp(v) pourtout sommet u du graphefairesideja_vu[u] =Fauxalorspp(u) 14/22

Application du parcours en profondeur

Calcul des composantes connexes (code).

Existence d"un circuit dans un graphe orienté : trois couleurs blanc / gris / noir ;compilation de programmeExistence d"un cycle dans un graphe non orienté :attention u→v etv→u

;supprimer des arêtes pour garder un graphe connexe?Tri topologique d"un graphe orienté sans circuit

;compilation de programme.Calcul des composantes fortement connexes d"un graphe orienté. 15/22

Graphes pondérés

quotesdbs_dbs16.pdfusesText_22
[PDF] parcours en largeur graphe java

[PDF] conflit de puissance définition

[PDF] parcours lecture acces pas cher

[PDF] parcours lecture pdf

[PDF] parcours lecture le petit chaperon rouge

[PDF] parcours lecture acces avis

[PDF] parcours lecture occasion

[PDF] coexistence pacifique cours

[PDF] archives militaire en ligne

[PDF] livret militaire en ligne

[PDF] la coexistence pacifique de 1953 ? 1962 pdf

[PDF] cornière catnic

[PDF] corniere galva pour brique

[PDF] corniere pour linteau brique

[PDF] cornière support briques