|
- ---
- title: "Graphes"
- author: "Maxime Wack"
- date: "17/11/2020"
- output:
- xaringan::moon_reader:
- css: ['default','css/my_style.css']
- lib_dir: libs
- seal: false
- nature:
- ratio: '4:3'
- countIncrementalSlides: false
- self-contained: true
- beforeInit: "addons/macros.js"
- ---
-
- ```{r, include = FALSE}
- library(gapminder)
- library(tidyverse)
- library(DT)
- library(knitr)
-
- opts_chunk$set(message = F)
-
- options(DT.options = list(paging = F,
- info = F,
- searching = F))
-
- datatable <- partial(datatable, rownames = F)
- ```
-
- class: center, middle, title
- # UE Visualisation
- ### 2020-2021
- ## Dr. Maxime Wack
- ### AHU Informatique médicale
- #### Hôpital Européen Georges Pompidou, </br> Université de Paris
-
- ---
- class: center, middle
- # Objectif
- ## Théorie des graphes
- ## Créer et manipuler des graphes
- ## Représenter des graphes
-
- ---
- # Théorie des graphes
-
- ### Étude des graphes et leurs applications
- ### Topologie des graphes
- ### Propriétés des graphes
- ### Développement d'algorithmes
- - parcours en largeur/profondeur
- - calcul de trajet (A*, Dijkstra)
- - détection de sous-graphes
- - inférence, effets de réseaux
- - résolution de contraintes
-
- ---
- # Graphes
- .pull-left[
- ## Graphes ou réseaux
- *graphs* and *networks*
- ## Représentation de **relations** entre des **éléments**
- ]
-
- .pull-right[
- ![](06-img/graphe.png)
- ]
-
- ---
- # Sommets
- .pull-left[
- ### (ou nœuds, ou points)</br> *vertex (vertices)* en anglais
- ### Servent à représenter les **éléments**
- ### Peuvent posséder des **attributs** arbitraires (label, valeurs, etc.)
- ### Des attributs peuvent être **calculés** (degré, centralité, etc.)
- ]
-
- .pull-right[
- ![](06-img/vertices.png)
- ]
-
-
- ---
- # Arêtes
- .pull-left[
- ### (ou liens, ou lignes)</br> *edges* en anglais
- ### Servent à représenter les **relations**
- ### Peuvent également posséder des **attributs** (label, poids, etc.)
- ]
-
- .pull-right[
- ![](06-img/edges.png)
- ]
-
- ---
- # Graphe dirigé
-
- .pull-left[
- ### Graphe dont les arêtes ont une **direction**
- ### Arêtes **bidirectionnelles** possibles
- ]
-
- .pull-right[
- ![](06-img/directed.png)
- ]
-
- ---
- # Cycles
-
- .pull-left[
- ### Groupes de sommets formant un **anneau**
- ### Dans un graphe dirigé, on doit pouvoir tourner
- ]
-
- .pull-right[
- ![](06-img/cycle.png)
- ]
-
-
- ---
- # Clique
-
- .pull-left[
- ### Ensemble de sommets **tous connectés entre eux**
- ]
-
- .pull-right[
- ![](06-img/clique.png)
- ]
-
- ---
- # Graphe connecté
-
- .pull-left[
- ### Graphe dont **tous les sommets** forment une **clique**
- ]
-
- .pull-right[
- ![](06-img/connected.png)
- ]
-
- ---
- # Arbre
-
- .pull-left[
- ### Graphe ne comportant **pas de cycle**
- ### Possède une ou plusieurs **racines**
- ]
-
- .pull-right[
- ![](06-img/tree.png)
- ]
-
-
- ---
- # Graphe dirigé acyclique
-
- .pull-left[
- ### Depuis le graphe dirigé précédent
- ### Quelles arêtes supprimer pour obtenir un DAG ?
- ]
-
- .pull-right[
- ![](06-img/directed.png)
- ]
- ---
- # Graphe dirigé acyclique
-
- .pull-left[
- ### **DAG** (Directed Acyclic Graph)
- ### Structure très reconnue
- - Réseaux bayésiens
- - Arbres généalogiques
- - Systèmes de contrôle de version
- - Systèmes de workflow
- - Graphe de citations
- ]
-
- .pull-right[
- ![](06-img/DAG.png)
- ]
-
- ---
- # Représentation numérique
-
- .pull-left[
- ![](06-img/numbered.png)
- ]
-
- .pull-right[
- ## Liste de sommets
-
- `(1, 2, 3, 4, 5, 6, 7, 8)`
-
- ## Liste d'arêtes
-
- `((2, 1), (3, 1), (4, 1),`</br>
- ` (2, 3), (4, 3), (4, 2),`</br>
- ` (2, 5), (5, 2), (5, 7),`</br>
- ` (6, 5), (6, 7), (7, 4),`</br>
- ` (7, 8))`
- ]
-
- ---
- # Représentation numérique
-
- .pull-left[
- ![](06-img/numbered.png)
- ]
-
- ## Matrice d'adjacence
-
- ```{r matrice, echo = F}
- matrix(c(0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,
- 0, 0, 0, 1, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0),
- nrow = 8) %>% t
- ```
- ---
- class: center
- # Visualisation
- ## Cytoscape
- ## yEd
- ## ggraph
-
- ---
- # Outils externes
-
- ## Cytoscape
-
- https://cytoscape.org/
-
- Pour l'analyse de réseaux, orienté biologie à l'origine</br>
- Visualisation de réseaux</br>
- Calculs d'indicateurs</br>
- Mapping d'attributs sur des propriété esthétiques
-
- ## yEd
-
- https://www.yworks.com/products/yed
-
- Éditeur de graphes, multiples supportés</br>
- Visualisation de réseaux</br>
- Nombreux algorithmes de layout</br>
- Calculs d'indicateurs</br>
- Mapping d'attributs sur des propriété esthétiques</br>
-
- ---
- # ggraph
-
- https://ggraph.data-imaginist.com/
-
- ### `geom_node_*` → geom pour les sommets
- ### `geom_edge_*` → geom pour les arêtes
- ### Propriété `layout` dans `ggraph()`
|