From 6b1983d0628209d81312932ccffce09bc6d25f8e Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Sat, 7 May 2022 22:48:20 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20d=C3=A9but=20liste=20d'adjacence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slides/cours_24.md | 182 +++++++++++++++++++++++++++++- slides/figs/ex_graph_adj.pdf | Bin 0 -> 9563 bytes slides/figs/ex_graph_list_adj.pdf | Bin 0 -> 15921 bytes 3 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 slides/figs/ex_graph_adj.pdf create mode 100644 slides/figs/ex_graph_list_adj.pdf diff --git a/slides/cours_24.md b/slides/cours_24.md index 28f05ba..5dcea36 100644 --- a/slides/cours_24.md +++ b/slides/cours_24.md @@ -336,13 +336,193 @@ graph LR; :::: column -## Quelle est la matrice d'adjacence (1min)? +\footnotesize + +## Quelle matrice d'adjacence? + +. . . + +``` + || 1 | 2 | 3 | 4 | 5 +===||===|===|===|===|=== + 1 || 0 | 1 | 0 | 1 | 0 +---||---|---|---|---|--- + 2 || 1 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 3 || 0 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 4 || 1 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 5 || 0 | 1 | 1 | 1 | 0 +``` + +:::: + +::: + +# Matrice d'adjacence + +## Remarques + +* Zéro sur la diagonale. +* La matrice d'un graphe non-orienté est symétrique + +$$ +A_{ij}=A_{ji}, \forall i,j\in[1,n] +$$. + +::: columns + +:::: column + +```{.mermaid format=pdf width=400 loc=figs/} +graph LR; + 1---2; + 1---4; + 2---5; + 4---5; + 5---3; +``` + +:::: + +:::: column + +\footnotesize + +``` + || 1 | 2 | 3 | 4 | 5 +===||===|===|===|===|=== + 1 || 0 | 1 | 0 | 1 | 0 +---||---|---|---|---|--- + 2 || 1 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 3 || 0 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 4 || 1 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 5 || 0 | 1 | 1 | 1 | 0 +``` + +:::: + +::: + +# Matrice d'adjacence + +* Pour un graphe orienté (digraphe) + +::: columns + +:::: column + +## Exemple + +```{.mermaid format=pdf width=400 loc=figs/} +graph LR; + 2-->1; + 1-->4; + 2-->5; + 5-->2; + 4-->5; + 5-->3; +``` + +:::: + +:::: column + +\footnotesize + +## Quelle matrice d'adjacence? . . . +``` + || 1 | 2 | 3 | 4 | 5 +===||===|===|===|===|=== + 1 || 0 | 0 | 0 | 1 | 0 +---||---|---|---|---|--- + 2 || 1 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 3 || 0 | 0 | 0 | 0 | 0 +---||---|---|---|---|--- + 4 || 0 | 0 | 0 | 0 | 1 +---||---|---|---|---|--- + 5 || 0 | 1 | 1 | 0 | 0 +``` + :::: ::: +* La matrice d'adjacence n'est plus forcément diagonale +$$ +A_{ij}\neq A_{ji}. +$$ + +# Stockage + +* Quel est l'espace nécessaire pour stocker une matrice d'adjacence pour un graphe orienté? + +. . . + +* $\mathcal{O}(|V|^2)$. +* Quel est l'espace nécessaire pour stocker une matrice d'adjacence pour un graphe non-orienté? + +. . . + +* $\mathcal{O}(|V|-1)|V|/2$. + +# Considérations d'efficacité + +* Dans quel type de graphes la matrice d'adjacence est utile? + +. . . + +* Dans les graphes denses. +* Pourquoi? + +. . . + +* Dans les graphes peu denses, la matrice d'adjacence est essentiellement composée de `0`. + +## Remarque +* Dans la majorité des cas, les grands graphes sont peu denses. +* Comment représenter un graphe autrement? + +# La liste d'adjacence + +* Pour chaque sommet $v\in V$, stocker les sommets adjacents à $v$- +* Quelle structure de données pour la liste d'adjacence? + +. . . + +* Tableau de liste chaînée, vecteur (tableau dynamique), etc. + + +::: columns + +:::: column + +## Exemple + +{width=80%} + +:::: + +:::: column + + +## Quelle liste d'adjacence? + +. . . + + + + +:::: + +::: diff --git a/slides/figs/ex_graph_adj.pdf b/slides/figs/ex_graph_adj.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e228c116d52e38d6227fc0b93f24d2b2e7342147 GIT binary patch literal 9563 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 R=vo?DnsceDy863u0RU3FvpoO+ literal 0 HcmV?d00001 diff --git a/slides/figs/ex_graph_list_adj.pdf b/slides/figs/ex_graph_list_adj.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3288ba8e2a14bd62d599ac23907fafc33c3c23ed GIT binary patch literal 15921 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 AyZ`_I literal 0 HcmV?d00001 -- GitLab