Définition de Graphes et MST Flashcards

(32 cards)

1
Q

Graphe orienté

A

Couple (S, A) sommets arcs tels que A définit une relation binaire non symétrique.

(si , sj ) ∈ A =/=> (sj , si ) ∈ A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Graphe non orienté

A

Couple (S,A) sommets arêtes tel que
A définit une relation binaire symétrique

∀(si , sj ) ∈ S × S, (si , sj ) ∈ A ⇔ (sj , si ) ∈ A (noté {si , sj })

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Degré d’un sommet

A

Nombre de sommets adjacents : d°(s) = #adj(s)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Demi-degré

A

Demi-degré extérieur d°+(si) = #succ(si)
Demi-degré intérieur d°−(si) = #pred(si)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Graphe non-orienté complet

A

si ∀{si , sj} ⊆ S, {si , sj } ∈ A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Graphe partiel

A

G′ = (S, A′) est un graphe partiel de G = (S, A) si A′ ⊆ A
==> graphe obtenu en supprimant certains arcs ou arêtes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Sous-graphe

A

G′ = (S′, A′) est un sous-graphe de G = (S, A) si S′ ⊆ S et A′ = A ∩ S′ × S′
; G′ est le sous-graphe de G induit par S

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Graphe connexe

A

Un graphe non orienté est connexe si chaque sommet est accessible à partir de n’importe quel autre.
∀(si , sj ) ∈ S2, si ∼ sj

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Graphe fortement connexe

A

Un graphe orienté est fortement connexe si chaque sommet est accessible à partir de n’importe quel autre.
∀(si , sj ), si ∼> sj et sj ∼> si.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Composante connexe de G

A

Sous-graphe de G connexe et maximal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Composante fortement connexe de G

A

Sous-graphe de G fortement connexe maximal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Chaîne/chemin

A

Séquence de sommets < s0, s1, s2, …, sk >
telle que ∀i ∈ [1, k], {si−1, si } ∈ A ( ou (si−1, si ) ∈ A )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cycle/circuit

A

Chaîne/chemin commençant et terminant par un même sommet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Arbre

A

Graphe non orienté G = (S, A) vérifiant
<=> G est connexe et sans cycle
<=> G est sans cycle et possède #S − 1 arêtes
<=> G est connexe et admet #S − 1 arêtes
<=> G est sans cycle, et en ajoutant une arête, on crée un cycle élémentaire
<=> G est connexe, et en supprimant une arête, il n’est plus connexe
<=> ∀(si , sj ) ∈ S × S, il existe exactement une chaine entre si et sj

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Forêt

A

Graphe non orienté dont chaque composante connexe est un arbre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Arborescence

A

Graphe orienté sans circuit admettant une racine s0 ∈ S tel que ∀si ∈ S, il existe un chemin unique allant de s0 vers si

17
Q

Structures de données pour représenter un graphe

A

Liste d’adjacence et Matrice d’adjacence

18
Q

Matrice d’adjacence

A

Matrice M telle que M[si ][sj ] = 1 si (si , sj ) ∈ A
et M[si ][sj ] = 0 sinon

19
Q

Liste d’adjacence

A

Tableau succ tel que succ[s] = liste des successeurs de s

20
Q

M^k[si][sj]

A

Nombre de chemins de longueur k allant de si à sj

21
Q

Utilité des matrices d’adjacence

A

Déterminer si un arc existe

22
Q

Utilité des listes d’adjacence

A

Accéder à tous les successeurs

23
Q

Arbre couvrant minimal (MST)

A

Graphe partiel G ′ = (S, E) de G tel que :
- G′ est un arbre couvrant (G ′ est connexe et sans cycle)
- La somme des coûts des arêtes de E est minimale

24
Q

MST : coupure d’un graphe

A

Coupure d’un graphe G = (S, A) : Partition de S en 2 parties (P, S \ P)

Une coupure respecte E ⊆ A si aucune arête de E n’est traversée.

Une arête {si , sj } traverse une coupure (P, S \ P) si #(P ∩ {si , sj }) = 1

25
Algorithmes pour trouver un MST
Algorithme de Prim et de Kruskal
26
Comment représente-t-on un arbre ?
On utilise un tableau π des prédecesseurs
27
Algorithme de Kruskal
1 Fonction Kruskal(g, cout) 2 E ← ∅ 3 Trier les arêtes de A par ordre de coût croissant 4 pour chaque arête {si , sj } prise par ordre de coût croissant faire 5 si si et sj sont dans 2 composantes connexes différentes de (S, E) alors 6 Ajouter {si , sj } dans E 7 retourne E
28
Structure de données pour Kruskal
Tableau π Pour effectuer efficacement le test de la ligne 5 : composantes connexes de (S, E) = disjoint sets
29
Complexité Kruskal
O(p log p) (graphe à n sommets et p arcs)
30
Algorithme de Prim
``` 1 Fonction Prim(g, cout) 2 Soit s0 un sommet de S choisi arbitrairement 3 P ← {s0} ; E ← ∅ 4 pour chaque sommet si ∈ S faire 5 si si ∈ adj(s0) alors π[si ] ← s0 ; c[si ] ← cout(s0, si ) ; 6 sinon π[si ] ← null ; c[si ] ← ∞ ; 7 tant que P 6 = S faire 8 Ajouter dans P le sommet si ∈ S \ P ayant la plus petite valeur de c 9 Ajouter (si , π[si ]) à E 10 pour chaque sommet sj ∈ adj(si ) faire 11 si sj 6 ∈ P et cout(si , sj ) < c[sj ] alors π[sj ] ← si ; c[sj ] ← cout(si , sj ) ; 12 retourne E ```
31
Structure de données pour Prim
Tableaux π (prédecesseurs) et c (coûts) Ligne 8 : File de priorité implémentée par un tas binaire
32
Complexité Prim
O(p log n) (sous réserve d’une implémentation par listes d’adjacence)