Skip to content
Snippets Groups Projects
Verified Commit c9e5fa29 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

updated for next part

parent 1b5d6171
Branches
No related tags found
No related merge requests found
...@@ -198,7 +198,7 @@ void rotate(node *qt) { ...@@ -198,7 +198,7 @@ void rotate(node *qt) {
} }
``` ```
# Compression sans perte (1/N) # Compression sans perte (1/5)
## Idée générale ## Idée générale
...@@ -216,7 +216,7 @@ void rotate(node *qt) { ...@@ -216,7 +216,7 @@ void rotate(node *qt) {
* Comment faire? * Comment faire?
# Compression sans perte (2/N) # Compression sans perte (2/5)
## Que devient l'arbre suivant? ## Que devient l'arbre suivant?
...@@ -228,7 +228,7 @@ void rotate(node *qt) { ...@@ -228,7 +228,7 @@ void rotate(node *qt) {
![](figs/quad_img_simple_comp.svg) ![](figs/quad_img_simple_comp.svg)
# Compression sans perte (3/N) # Compression sans perte (3/5)
* Si un nœud a tous ses enfants égaux: * Si un nœud a tous ses enfants égaux:
* Donner la valeur au nœud, * Donner la valeur au nœud,
...@@ -251,7 +251,7 @@ rien compression_sans_pertes(arbre) ...@@ -251,7 +251,7 @@ rien compression_sans_pertes(arbre)
detruire_enfants(arbre) detruire_enfants(arbre)
``` ```
# Compression sans perte (4/N) # Compression sans perte (4/5)
\footnotesize \footnotesize
...@@ -279,7 +279,7 @@ void lossless_compression(node *qt) { ...@@ -279,7 +279,7 @@ void lossless_compression(node *qt) {
} }
``` ```
# Compression sans perte (5/N) # Compression sans perte (5/5)
\footnotesize \footnotesize
...@@ -305,7 +305,7 @@ bool last_value(node *qt, int *val) { ...@@ -305,7 +305,7 @@ bool last_value(node *qt, int *val) {
``` ```
# Compression avec perte (1/N) # Compression avec perte (1/5)
## Idée générale ## Idée générale
...@@ -323,7 +323,7 @@ bool last_value(node *qt, int *val) { ...@@ -323,7 +323,7 @@ bool last_value(node *qt, int *val) {
* On enlève si l'écart à la moyenne est "petit"? * On enlève si l'écart à la moyenne est "petit"?
# Compression avec perte (2/N) # Compression avec perte (2/5)
## Que devient l'arbre suivant si l'écart est petit? ## Que devient l'arbre suivant si l'écart est petit?
...@@ -335,7 +335,7 @@ bool last_value(node *qt, int *val) { ...@@ -335,7 +335,7 @@ bool last_value(node *qt, int *val) {
![](figs/quad_img_simple_comp_loss.svg) ![](figs/quad_img_simple_comp_loss.svg)
# Compression avec perte (3/N) # Compression avec perte (3/5)
## Comment mesurer l'écart à la moyenne? ## Comment mesurer l'écart à la moyenne?
...@@ -362,7 +362,7 @@ bool last_value(node *qt, int *val) { ...@@ -362,7 +362,7 @@ bool last_value(node *qt, int *val) {
* Plus $\theta$ est grand, plus l'image sera compressée. * Plus $\theta$ est grand, plus l'image sera compressée.
# Compression avec perte (4/N) # Compression avec perte (4/5)
## Que devient l'arbre avec $\theta=0.5$? ## Que devient l'arbre avec $\theta=0.5$?
...@@ -372,7 +372,7 @@ bool last_value(node *qt, int *val) { ...@@ -372,7 +372,7 @@ bool last_value(node *qt, int *val) {
![Arbre compressé.](figs/quad_img_simple_comp_avg.svg) ![Arbre compressé.](figs/quad_img_simple_comp_avg.svg)
# Compression avec perte (6/N) # Compression avec perte (5/5)
## Modifications sur la structure de données? ## Modifications sur la structure de données?
......
...@@ -325,134 +325,7 @@ page ajouter_niveau(page, element) ...@@ -325,134 +325,7 @@ page ajouter_niveau(page, element)
retourne tmp retourne tmp
``` ```
# Les B-arbres: suppression
## Cas simplissime
![Suppression de 25.](figs/barbres_ordre2_supp1.svg){width=80%}
. . .
![25 supprimé, on décale juste 27.](figs/barbres_ordre2_supp2.svg){width=80%}
# Les B-arbres: suppression
\footnotesize
## Cas simple
![Suppression de 27.](figs/barbres_ordre2_supp2.svg){width=60%}
. . .
* On retire 27, mais....
* Chaque page doit avoir au moins 2 éléments.
* On doit déplacer des éléments dans une autre feuille! Mais comment?
. . .
![La médiane de la racine descend, fusion de 20 à gauche, et suppression à droite.](figs/barbres_ordre2_supp3.svg){width=60%}
# Les B-arbres: suppression
## Cas moins simple
![Suppression de 5.](figs/barbres_ordre2_supp4.svg){width=60%}
. . .
* Un élément à droite, comment on fait?
* Remonter `7`, serait ok si racine, mais... c'est pas forcément.
* On redistribue les feuilles.
. . .
![Descente de `3`, remontée médiane des feuilles `2`.](figs/barbres_ordre2_supp5.svg){width=60%}
# Les B-arbres: suppression
\footnotesize
## Cas ultra moins simple
![Suppression de 3.](figs/barbres_ordre2_supp6.svg){width=60%}
. . .
* `7` seul:
* Fusionner les feuilles et redistribuer, comment?
. . .
![Descendre `-1`, déplacer `7` à gauche, et décaler les éléments de droite au milieu.](figs/barbres_ordre2_supp7.svg){width=60%}
# Les B-arbres: suppression
## Cas ultra moins simple
![On a pas fini...](figs/barbres_ordre2_supp7.svg){width=60%}
. . .
* `8` est seul, c'est plus un B-arbre :
* Fusionner le niveau 2 et redistribuer, comment?
. . .
![Fusionner `8`, `17`, `22` et descendre `12`.](figs/barbres_ordre2_supp8.svg){width=40%}
. . .
* La profondeur a diminué de 1.
# Les B-arbres: suppression
## Algorithme pour les feuilles!
* Si la clé est supprimée d'une feuille:
* Si on a toujours `n` (ordre de l'arbre) clés dans la feuille on décale simplement les clés.
* Sinon on combine (récursivement) avec le nœud voisin et on descend la clé médiane.
# Les B-arbres: suppression
## Cas non-feuille!
![Suppression de 8.](figs/barbres_ordre2_supp9.svg){width=60%}
. . .
* On sait comment effacer une valeur d'une feuille, donc?
. . .
![Échanger le `8` avec le plus grand du sous-arbre de gauche.](figs/barbres_ordre2_supp10.svg){width=60%}
* Ensuite?
# Les B-arbres: suppression
## Cas non-feuille!
![Suppression de 8.](figs/barbres_ordre2_supp10.svg){width=60%}
. . .
* On sait comment effacer une valeur d'une feuille!
. . .
![Yaka enlever le 8 de la feuille comme avant!](figs/barbres_ordre2_supp11.svg){width=60%}
# Les B-arbres: suppression
## Algorithme pour les non-feuilles!
* Si la clé est supprimée d'une page qui n'est pas une feuille:
* On échange la valeur avec la valeur de droite de la page de gauche
* On supprime comme pour une feuille!
## Et maintenant des exercices par millions!
......
---
title: "Graphes - Généralités"
date: "2023-05-24"
patat:
eval:
tai:
command: fish
fragment: false
replace: true
ccc:
command: fish
fragment: false
replace: true
images:
backend: auto
---
# Les B-arbres: suppression
## Cas simplissime
![Suppression de 25.](figs/barbres_ordre2_supp1.svg){width=80%}
. . .
![25 supprimé, on décale juste 27.](figs/barbres_ordre2_supp2.svg){width=80%}
# Les B-arbres: suppression
\footnotesize
## Cas simple
![Suppression de 27.](figs/barbres_ordre2_supp2.svg){width=60%}
. . .
* On retire 27, mais....
* Chaque page doit avoir au moins 2 éléments.
* On doit déplacer des éléments dans une autre feuille! Mais comment?
. . .
![La médiane de la racine descend, fusion de 20 à gauche, et suppression à droite.](figs/barbres_ordre2_supp3.svg){width=60%}
# Les B-arbres: suppression
## Cas moins simple
![Suppression de 5.](figs/barbres_ordre2_supp4.svg){width=60%}
. . .
* Un élément à droite, comment on fait?
* Remonter `7`, serait ok si racine, mais... c'est pas forcément.
* On redistribue les feuilles.
. . .
![Descente de `3`, remontée médiane des feuilles `2`.](figs/barbres_ordre2_supp5.svg){width=60%}
# Les B-arbres: suppression
\footnotesize
## Cas ultra moins simple
![Suppression de 3.](figs/barbres_ordre2_supp6.svg){width=60%}
. . .
* `7` seul:
* Fusionner les feuilles et redistribuer, comment?
. . .
![Descendre `-1`, déplacer `7` à gauche, et décaler les éléments de droite au milieu.](figs/barbres_ordre2_supp7.svg){width=60%}
# Les B-arbres: suppression
## Cas ultra moins simple
![On a pas fini...](figs/barbres_ordre2_supp7.svg){width=60%}
. . .
* `8` est seul, c'est plus un B-arbre :
* Fusionner le niveau 2 et redistribuer, comment?
. . .
![Fusionner `8`, `17`, `22` et descendre `12`.](figs/barbres_ordre2_supp8.svg){width=40%}
. . .
* La profondeur a diminué de 1.
# Les B-arbres: suppression
## Algorithme pour les feuilles!
* Si la clé est supprimée d'une feuille:
* Si on a toujours `n` (ordre de l'arbre) clés dans la feuille on décale simplement les clés.
* Sinon on combine (récursivement) avec le nœud voisin et on descend la clé médiane.
# Les B-arbres: suppression
## Cas non-feuille!
![Suppression de 8.](figs/barbres_ordre2_supp9.svg){width=60%}
. . .
* On sait comment effacer une valeur d'une feuille, donc?
. . .
![Échanger le `8` avec le plus grand du sous-arbre de gauche.](figs/barbres_ordre2_supp10.svg){width=60%}
* Ensuite?
# Les B-arbres: suppression
## Cas non-feuille!
![Suppression de 8.](figs/barbres_ordre2_supp10.svg){width=60%}
. . .
* On sait comment effacer une valeur d'une feuille!
. . .
![Yaka enlever le 8 de la feuille comme avant!](figs/barbres_ordre2_supp11.svg){width=60%}
# Les B-arbres: suppression
## Algorithme pour les non-feuilles!
* Si la clé est supprimée d'une page qui n'est pas une feuille:
* On échange la valeur avec la valeur de droite de la page de gauche
* On supprime comme pour une feuille!
## Et maintenant des exercices par millions!
# Les graphes! Historique
**Un mini-peu d'histoire...**
## L. Euler et les 7 ponts de Koenigsberg:
* Existe-t-il une promenade sympa, passant **une seule fois** par les 7 ponts et revenant au point de départ?
![Les ponts c'est beau. Source: Wikipédia, <https://bit.ly/37h0yOG>](figs/Konigsberg_bridges.png){width=50%}
. . .
* Réponse: ben non!
# Utilisation quotidienne
## Réseau social
![Source, Wikipedia: <https://bit.ly/3kG6cgo>](figs/Social_Network.svg){width=40%}
* Chaque sommet est un individu.
* Chaque trait une relation d'amitié.
* Miam, Miam, Facebook.
# Utilisation quotidienne
## Moteurs de recherche
![Source, Wikipedia: <https://bit.ly/3kG6cgo>](figs/PageRanks-Example.svg){width=40%}
* Sommet est un site.
* Liens sortants;
* Liens entrants;
* Notion d'importance d'un site: combien de liens entrants, pondérés par l'importance du site.
* Miam, Miam, Google (PageRank).
# Introduction
## Définition, plus ou moins
* Un graphe est un ensemble de sommets, reliés par des lignes ou des flèches.
![Deux exemples de graphes.](figs/ex_graphes.png)
* Des sommets (numérotés 1 à 6);
* Connectés ou pas par des traits ou des flèches!
# Généralités
## Définitions
* Un **graphe** $G(V, E)$ est constitué
* $V$: un ensemble de sommets;
* $E$: un ensemble d'arêtes.
* Une **arête** relie une **paire** de sommets de $V$.
## Remarques
* Il y a **au plus** une arête $E$ par paire de sommets de $V$.
* La **complexité** d'un algorithme dans un graphe se mesure en terme de $|E|$ et $|V|$, le nombre d'éléments de $E$ et $V$ respectivement.
# Généralités
## Notations
* Une arête d'un graphe **non-orienté** est représentée par une paire **non-ordonnée** $(u,v)=(v,u)$, avec $u,v\in V$.
* Les arêtes ne sont pas orientées dans un graphe non-orienté (elles sont bi-directionnelles, peuvent être parcourues dans n'importe quel ordre).
## Exemple
::: columns
:::: column
![Un graphe non-orienté.](figs/ex_graphe_non_oriente.svg)
::::
:::: column
## Que valent $V$, $|V|$, $E$, et $|E|$?
. . .
\begin{align*}
V&=\{1, 2, 3, 4\},\\
|V|&=4,\\
E&=\{(1,2),(2,3),(2,4),(4,1)\},\\
|E|&=4.
\end{align*}
::::
:::
# Généralités
## Notations
* Une arête d'un graphe **orienté** est représentée par une paire **ordonnée** $(u,v)\neq(v,u)$, avec $u,v\in V$.
* Les arêtes sont orientées dans un graphe orienté (étonnant non?).
## Exemple
::: columns
:::: column
![Un graphe non-orienté.](figs/ex_graphe_oriente.svg)
::::
:::: column
## Que valent $V$, $|V|$, $E$, et $|E|$?
. . .
\begin{align*}
V&=\{1, 2, 3, 4\},\\
|V|&=4,\\
E&=\{(1,2),(2,3),(2,4),(4,1),(4,2)\},\\
|E|&=5.
\end{align*}
::::
:::
# Généralités
## Définition
* Le somme $v$ est **adjacent** au sommet $u$, si et seulement si $(u,v)\in E$;
* Si un graphe non-orienté contient une arête $(u,v)$, $v$ est adjacent à $u$ et $u$ et adjacent à $v$.
## Exemple
::: columns
:::: column
![Sommet $a$ adjacent à $c$, $c$ adjacent à $a$.](figs/ex_adj_non_or.svg){width=80%}
::::
:::: column
![Sommet $a$ adjacent à $c$.](figs/ex_adj_or.svg){width=80%}
::::
:::
# Généralités
## Définition
* Un **graphe pondéré** ou **valué** est un graphe dont chaque arête a un
poids associé, habituellement donné par une fonction de pondération $w:E\rightarrow\mathbb{R}$.
## Exemples
![Graphe pondéré orienté (gauche) et non-orienté (droite).](figs/ex_graph_pond.pdf){width=80%}
# Généralités
## Définition
* Dans un graphe $G(V,E)$, une **chaîne** reliant un sommet $u$ à un sommet $v$ est une suite d'arêtes entre les sommets, $w_0$, $w_1$, ..., $w_k$, telles que
$$
(w_i, w_{i+1})\in E,\quad u=w_0,\quad v=w_k,\quad \mbox{pour }0\leq i< k,
$$
avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
## Exemples
![Illustration d'une chaîne, ou pas chaîne dans un graphe.](figs/ex_graphe_chaine.pdf){width=80%}
# Généralités
## Définition
* Une **chaîne élémentaire** est une chaîne dont tous les sommets sont distincts, sauf les extrémités qui peuvent être égales
## Exemples
![Illustration d'une chaîne élémentaire.](figs/ex_graphe_chaine_elem.pdf){width=80%}
# Généralités
## Définition
* Une **boucle** est une arête $(v,v)$ d'un sommet vers lui-même.
## Exemples
![Illustration d'une boucle.](figs/ex_graphe_boucle.pdf){width=40%}
# Généralités
## Définition
* Un graphe non-orienté est dit **connexe**, s'il existe un chemin reliant n'importe quelle paire de sommets distincts.
## Exemples
\
::: columns
:::: column
![Graphe connexe. Source, Wikipédia: <https://bit.ly/3yiUzUv>](figs/graphe_connexe.svg){width=80%}
::::
:::: column
![Graphe non-connexe avec composantes connexes. Source, Wikipédia: <https://bit.ly/3KJB76d>](figs/composantes_connexes.svg){width=60%}
::::
:::
# Généralités
## Définition
* Un graphe orienté est dit **fortement connexe**, s'il existe un chemin reliant n'importe quelle paire de sommets distincts.
## Exemples
\
::: columns
:::: column
![Graphe fortement connexe.](figs/ex_graph_fort_connexe.pdf){width=60%}
::::
:::: column
![Composantes fortement connexes. Source, Wikipédia: <https://bit.ly/3w5PL2l>](figs/composantes_fortement_connexes.svg){width=100%}
::::
:::
# Généralités
## Définition
* Un **cycle** dans un graphe *non-orienté* est une chaîne de longueur $\leq 3$ telle que le 1er sommet de la chaîne est le même que le dernier, et dont les arêtes sont distinctes.
* Pour un graphe *orienté* on parle de **circuit**.
* Un graphe sans cycles est dit **acyclique**.
## Exemples
![Illustration de cycles, ou pas.](figs/ex_graphe_cycle.pdf){width=100%}
# Question de la mort
* Qu'est-ce qu'un graphe connexe acyclique?
. . .
* Un arbre!
# Représentations
* La complexité des algorithmes sur les graphes s'expriment en fonction du nombre de sommets $V$, et du nombre d'arêtes $E$:
* Si $|E|\sim |V|^2$, on dit que le graphe est **dense**.
* Si $|E|\sim |V|$, on dit que le graphe est **peu dense**.
* Selon qu'on considère des graphes denses ou peu denses, différentes structure de données peuvent être envisagées.
## Question
* Comment peut-on représenter un graphe informatiquement? Des idées (réflexion de quelques minutes)?
. . .
* Matrice/liste d'adjacence.
# Matrice d'adjacence
* Soit le graphe $G(V,E)$, avec $V=\{1, 2, 3, ..., n\}$;
* On peut représenter un graphe par une **matrice d'adjacence**, $A$, de dimension $n\times n$ définie par
$$
A_{ij}=\left\{ \begin{array}{ll}
1 & \mbox{si } i,j\in E,\\
0 & \mbox{sinon}.
\end{array} \right.
$$
::: columns
:::: column
## Exemple
```{.mermaid format=pdf width=400 loc=figs/}
graph LR;
1---2;
1---4;
2---5;
4---5;
5---3;
```
::::
:::: column
\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 symétrique
$$
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 (non-orienté)
* 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
![Un graphe non-orienté.](figs/ex_graph_adj.pdf){width=80%}
::::
:::: column
## Quelle liste d'adjacence?
. . .
![La liste d'adjacence.](figs/ex_graph_list_adj.pdf)
::::
:::
# La liste d'adjacence (orienté)
::: columns
:::: column
## Quelle liste d'adjacence pour...
* Matrix (2min)
```{.mermaid format=pdf width=400 loc=figs/}
graph LR;
0-->1;
0-->2;
1-->2;
3-->0;
3-->1;
3-->2;
```
::::
:::: column
```
```
::::
:::
# Complexité
## Stockage
* Quelle espace est nécessaire pour stocker une liste d'adjacence (en fonction de $|E|$ et $|V|$)?
. . .
$$
\mathcal{O}(|E|)
$$
* Pour les graphes *non-orientés*: $\mathcal{O}2|E|$.
* Pour les graphes *orientés*: $\mathcal{O}|E|$.
## Définition
* Le **degré** d'un sommet $v$, est le nombre d'arêtes incidentes du sommet (pour les graphes orientés on a un degré entrant ou sortant).
* Comment on retrouve le degré de chaque sommet avec la liste d'adjacence?
. . .
* C'est la longueur de la liste chaînée.
# Parcours
* Beaucoup d'applications nécessitent de parcourir des graphes:
* Trouver un chemin d'un sommet à un autre;
* Trouver si le graphe est connexe;
* Il existe *deux* parcours principaux:
* en largeur (Breadth-First Search);
* en profondeur (Depth-First Search).
* Ces parcours créent *un arbre* au fil de l'exploration (si le graphe est non-connexe cela crée une *forêt*, un ensemble d'arbres).
# Illustration: parcours en largeur
![Le parcours en largeur.](figs/parcours_larg.pdf){width=80%}
# Exemple
## Étape par étape (blanc non-visité)
![Initialisation.](figs/parcours_larg_0.pdf){width=50%}
## Étape par étape (gris visité)
![On commence en `x`.](figs/parcours_larg_1.pdf){width=50%}
# Exemple
## Étape par étape
![On commence en `x`.](figs/parcours_larg_1.pdf){width=50%}
## Étape par étape (vert à visiter)
![Vister `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
# Exemple
## Étape par étape
![Vister `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
## Étape par étape
![`w`, `t`, `y` visités. `u`, `s` à visiter.](figs/parcours_larg_3.pdf){width=50%}
# Exemple
## Étape par étape
![`w`, `t`, `y` visités. `u`, `s` à visiter.](figs/parcours_larg_3.pdf){width=50%}
## Étape par étape
![`u`, `s`, visités. `r` à visiter.](figs/parcours_larg_4.pdf){width=50%}
# Exemple
## Étape par étape
![`u`, `s`, visités. `r` à visiter.](figs/parcours_larg_4.pdf){width=50%}
## Étape par étape
![`r` visité. `v` à visiter.](figs/parcours_larg_5.pdf){width=50%}
# Exemple
## Étape par étape
![`r` visité. `v` à visiter.](figs/parcours_larg_5.pdf){width=50%}
## Étape par étape
![The end. Plus rien à visiter!](figs/parcours_larg_6.pdf){width=50%}
# En faisant ce parcours...
::: columns
:::: column
## Du parcours de l'arbre
![](figs/parcours_larg_6.pdf){width=100%}
::::
:::: column
## Quel arbre est créé par le parcours (2min)?
. . .
```{.mermaid format=pdf width=400 loc=figs/}
graph LR;
0[x]-->1[w];
0-->2[t];
0-->3[y];
2-->9[u];
1-->4[s];
4-->5[r];
5-->6[v];
```
::::
:::
## Remarques
* Le parcours dépend du point de départ dans le graphe.
* L'arbre sera différent en fonction du noeud de départ, et de l'ordre de parcours des voisins d'un noeud.
# Le parcours en largeur
## L'algorithme, idée générale (3min, matrix)?
. . .
```C
v = un sommet du graphe
i = 1
pour sommet dans graphe et sommet non-visité
visiter(v, sommet, i) // marquer sommet à distance i visité
i += 1
```
## Remarque
* `i` est la distance de plus cours chemin entre `v` et les sommets en cours de visite.
# Le parcours en largeur
## L'algorithme, pseudo-code (3min, matrix)?
* Comment garder la trace de la distance?
. . .
* Utilisation d'une **file**
. . .
```C
initialiser(graphe) // tous sommets sont non-visités
file = visiter(sommet, vide) // sommet est un sommet du graphe au hasard
tant que !est_vide(file)
v = défiler(file)
file = visiter(v, file)
```
## Que fait visiter?
```
file visiter(sommet, file)
sommet = visité
pour w = chaque arête de sommet
si w != visité
file = enfiler(file, w)
retourne file
```
# Exercice (5min)
## Appliquer l'algorithme sur le graphe
![](figs/parcours_larg_0.pdf){width=50%}
* En partant de `v`, `s`, ou `u` (par colonne de classe).
* Bien mettre à chaque étape l'état de la file.
# Complexité du parcours en largeur
## Étape 1
* Extraire un sommet de la file;
## Étape 2
* Traîter tous les sommets adjacents.
## Quelle est la complexité?
. . .
* Étape 1: $\mathcal{O}(|V|)$,
* Étape 2: $\mathcal{O}(2|E|)$,
* Total: $\mathcal{O}(|V| + |2|E|)$.
# Exercice
* Établir la liste d'adjacence et appliquer l'algorithme de parcours en largeur au graphe
```{.mermaid format=pdf width=400 loc=figs/}
graph LR;
1---2;
1---3;
1---4;
2---3;
2---6;
3---6;
3---4;
3---5;
4---5;
```
# Illustration: parcours en profondeur
![Le parcours en profondeur. À quel parcours d'arbre cela ressemble-t-il?](figs/parcours_prof.pdf){width=80%}
# Parcours en profondeur
## Idée générale
* Initialiser les sommets comme non-lus
* Visiter un sommet
* Pour chaque sommet visité, on visite un sommet adjacent s'il est pas encore visité récursivement.
## Remarque
* La récursivité est équivalent à l'utilisation d'une **pile**.
# Parcours en profondeur
## Pseudo-code (5min)
. . .
```C
initialiser(graphe) // tous sommets sont non-visités
pile = visiter(sommet, vide) // sommet est un sommet du graphe au hasard
tant que !est_vide(pile)
v = dépiler(pile)
pile = visiter(v, pile)
```
## Que fait visiter?
. . .
```C
pile visiter(sommet, pile)
sommet = visité
pour w = chaque arête de sommet
si w != visité
pile = empiler(pile, w)
retourne pile
```
# Exercice
* Établir la liste d'adjacence et appliquer l'algorithme de parcours en profondeur au graphe
```{.mermaid format=pdf width=400 loc=figs/}
graph LR;
1---2;
1---3;
1---4;
2---3;
2---6;
3---6;
3---4;
3---5;
4---5;
```
# Interprétation des parcours
* Un graphe vu comme espace d'états (sommet: état, arête: action);
* Labyrinthe;
* Arbre des coups d'un jeu.
. . .
* BFS (Breadth-First) ou DFS (Depth-First) parcourent l'espace des états à la recherche du meilleur mouvement.
* Les deux parcourent *tout* l'espace;
* Mais si l'arbre est grand, l'espace est gigantesque!
. . .
* Quand on a un temps limité
* BFS explore beaucoup de coups dans un futur proche;
* DFS explore peu de coups dans un futur lointain.
slides/figs/Konigsberg_bridges.png

32.2 KiB

This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg width="332pt" height="340pt" viewBox="0 0 332 340" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g transform="translate(4 336)">
<g style="fill:none;stroke:black;">
<path d="M145,-134C157,-140 188,-155 200,-161"/>
<path d="M168,-191C173,-204 185,-236 189,-249"/>
<path d="M170,-52C179,-43 200,-19 208,-10"/>
<path d="M189,-260C186,-274 176,-307 173,-321"/>
<path d="M195,-250C204,-239 226,-212 234,-202"/>
<path d="M214,-11C219,-24 233,-59 238,-72"/>
<path d="M232,-197C218,-195 185,-189 171,-187"/>
<path d="M235,-75C221,-72 185,-61 171,-58"/>
<path d="M240,-82C238,-96 235,-136 234,-150"/>
<path d="M243,-195C256,-189 287,-174 299,-168"/>
<path d="M245,-76C259,-74 298,-68 312,-66"/>
<path d="M48,-31C54,-43 70,-73 76,-85"/>
<path d="M73,-90C59,-89 25,-87 11,-86"/>
<path d="M84,-93C95,-101 124,-120 135,-128"/>
<path d="M9,-81C16,-70 34,-42 42,-31"/>
</g>
<g style="fill:blue;stroke:black;">
<circle cx="140" cy="-131" r="5.4"/>
<circle cx="166" cy="-186" r="5.4"/>
<circle cx="166" cy="-56" r="5.4"/>
<circle cx="171" cy="-326" r="5.4"/>
<circle cx="191" cy="-254" r="5.4"/>
<circle cx="205" cy="-163" r="5.4"/>
<circle cx="212" cy="-6" r="5.4"/>
<circle cx="234" cy="-156" r="5.4"/>
<circle cx="238" cy="-198" r="5.4"/>
<circle cx="240" cy="-77" r="5.4"/>
<circle cx="304" cy="-166" r="5.4"/>
<circle cx="318" cy="-65" r="5.4"/>
<circle cx="45" cy="-26" r="5.4"/>
<circle cx="6" cy="-86" r="5.4"/>
<circle cx="79" cy="-90" r="5.4"/>
</g>
</g>
</svg>
\ No newline at end of file
<svg width="201mm" height="95mm" version="1.1" viewBox="0 0 201 95" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="201" height="95" fill="#fff"/>
<g transform="translate(-3-3)" stroke-width="1.5" stroke="#000">
<path d="m103.3 61c-56.6 .4-56.2 34.2 0 34 56.2 0 56.6-33.7 0-34z" fill="#eef" stroke-dasharray="1.5"/>
<g id="c"><path d="m6 5.7 0 89.3c46-.4 86-55.8 85.8-89.3z" fill="#eef" stroke-dasharray="1.5"/><g fill="#fff"><circle cx="18" cy="21.6" r="9.4"/><circle cx="74.6" cy="78" r="9.4"/><circle cx="74.6" cy="21.6" r="9.4"/><circle cx="18" cy="78.2" r="9.4"/></g>
<use transform="rotate(90 74.6 78.2)" xlink:href="#a"/><path d="m27.4 78.2h29.5"/>
<path id="a" d="m50.3 71.5 3.3 6.7-3.3 6.7 13.4-6.7z" stroke="none" fill="#000"/><path d="m74.6 31 0 29.6"/></g>
<use transform="translate(0-56.6)" xlink:href="#a"/><use transform="rotate(-90 17.5 77.6)" xlink:href="#a"/><use transform="rotate(135 46 66.8)" xlink:href="#a"/><use transform="matrix(-1 0 0 1 207 0)" xlink:href="#c"/><use transform="translate(57.8-56.6)" xlink:href="#a"/>
<g id="b" fill="none"><use transform="rotate(133 74.8 82)" stroke="none" xlink:href="#a"/><path d="m88.7 72.7c8-8.7 19.2-10 34.3 5.5"/>
<g transform="rotate(180 104 77.4)"><use transform="rotate(133.4 74.8 82)" stroke="none" xlink:href="#a"/><path d="m88.6 73c9-10.3 17.7-9.7 34.4 5"/></g></g>
<use transform="translate(56.4-55)" xlink:href="#b"/><use transform="rotate(-90 131.8 22.2)" xlink:href="#b"/>
<g fill="none"><path d="m27.4 21.6 29.5 0"/><path d="m18 69v-30.7"/><path d="m68 28.4-38.5 38"/><path d="m84 21.6h30.8"/></g>
<g style="font-family:'Arial';-inkscape-font-specification:'Arial'" font-weight="bold" text-anchor="middle" font-size="12px" stroke="none"><text x="18" y="24.7">a</text><text x="74.4" y="26">b</text><text x="132" y="24.7">c</text><text x="189" y="24.7">d</text><text x="18" y="81.3">e</text>
<text x="74.3" y="82.6">f</text><text x="132.5" y="80">g</text><text x="188.8" y="82.5">h</text></g></g></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="5108.000000pt" height="4940.000000pt" viewBox="0 0 5108.000000 4940.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,4940.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M6605 46644 c-824 -83 -1431 -296 -2105 -739 -258 -170 -446 -322
-684 -555 -420 -410 -740 -857 -1016 -1415 -310 -629 -486 -1237 -567 -1970
-26 -230 -26 -920 0 -1150 79 -708 252 -1321 543 -1923 203 -420 418 -756 713
-1112 113 -136 449 -475 576 -581 439 -366 966 -669 1467 -844 83 -29 107 -42
112 -59 3 -11 6 -5812 6 -12891 l0 -12870 -333 0 c-259 0 -363 -4 -472 -19
-723 -92 -1312 -312 -1935 -721 -258 -170 -446 -322 -684 -555 -420 -410 -740
-857 -1016 -1415 -310 -629 -486 -1237 -567 -1970 -26 -230 -26 -920 0 -1150
79 -708 252 -1321 543 -1923 203 -420 418 -756 713 -1112 113 -136 449 -475
576 -581 737 -615 1588 -980 2485 -1065 209 -20 681 -15 870 10 867 114 1667
470 2365 1054 128 107 463 446 576 582 730 879 1163 1958 1265 3150 20 245 15
825 -10 1044 -70 604 -195 1099 -411 1626 -90 219 -305 643 -387 762 -10 14
-18 28 -18 31 0 6 12933 8365 12952 8372 8 3 40 -38 79 -98 85 -130 225 -319
348 -467 113 -137 449 -476 576 -581 737 -615 1588 -980 2485 -1065 209 -20
681 -15 870 10 683 90 1272 307 1874 694 302 194 502 356 776 631 263 263 455
497 643 784 85 128 241 394 283 480 16 31 32 56 36 55 14 -5 12298 -8751
12304 -8760 3 -5 -29 -69 -71 -143 -444 -781 -708 -1720 -732 -2603 l-6 -212
-15653 0 -15654 0 0 -265 0 -265 15659 0 c8613 0 15662 -4 15665 -8 3 -5 12
-71 21 -148 97 -837 391 -1671 839 -2379 206 -326 409 -579 696 -866 203 -203
299 -288 485 -428 690 -521 1467 -829 2285 -907 209 -20 681 -15 870 10 867
114 1667 470 2365 1054 128 107 463 446 576 582 730 879 1163 1958 1265 3150
20 245 15 825 -10 1044 -83 723 -251 1315 -547 1924 -269 556 -574 987 -999
1413 -316 317 -551 499 -950 739 -585 352 -1311 570 -1985 598 l-160 7 -3
12546 -2 12546 97 7 c928 64 1828 438 2588 1074 128 107 463 446 576 582 730
879 1163 1958 1265 3150 20 245 15 825 -10 1044 -83 723 -251 1315 -547 1924
-269 556 -574 987 -999 1413 -262 263 -452 420 -720 594 -619 404 -1193 622
-1890 717 -145 20 -208 23 -525 23 -291 0 -387 -3 -500 -18 -728 -95 -1312
-313 -1935 -722 -258 -170 -446 -322 -684 -555 -317 -310 -570 -632 -819
-1045 -100 -166 -298 -566 -375 -760 -185 -463 -313 -961 -377 -1472 l-7 -53
-14943 0 -14943 0 -7 103 c-52 781 -237 1486 -566 2165 -199 411 -416 750
-708 1102 -113 136 -448 475 -576 582 -605 505 -1286 839 -2014 988 -290 59
-424 72 -791 75 -184 1 -353 1 -375 -1z m795 -548 c724 -103 1376 -386 1960
-852 173 -138 506 -471 642 -642 489 -614 814 -1298 988 -2077 56 -251 105
-603 112 -805 l3 -85 -42 -3 -43 -3 0 -265 0 -264 44 0 44 0 -5 -62 c-82
-1086 -450 -2043 -1101 -2860 -136 -171 -469 -504 -642 -642 -392 -313 -854
-564 -1309 -711 -249 -81 -548 -142 -813 -166 -171 -15 -616 -7 -773 15 -583
82 -1092 272 -1605 600 -280 179 -455 321 -706 571 -320 320 -549 624 -779
1039 -323 581 -525 1224 -612 1953 -25 213 -25 893 0 1106 111 927 409 1723
911 2430 260 367 640 752 991 1003 563 404 1206 657 1840 724 61 6 119 13 130
15 11 2 162 2 335 0 222 -2 349 -8 430 -19z m39290 -390 c724 -103 1376 -386
1960 -852 264 -211 609 -578 816 -871 444 -626 741 -1356 868 -2130 54 -330
61 -420 61 -853 0 -433 -7 -523 -61 -853 -127 -774 -424 -1504 -868 -2130
-207 -293 -552 -660 -816 -871 -392 -313 -854 -564 -1309 -711 -249 -81 -548
-142 -813 -166 -171 -15 -616 -7 -773 15 -583 82 -1092 272 -1605 600 -280
179 -455 321 -706 571 -320 320 -549 624 -779 1039 -323 581 -525 1224 -612
1953 -25 213 -25 893 0 1106 111 927 409 1723 911 2430 260 367 640 752 991
1003 563 404 1206 657 1840 724 61 6 119 13 130 15 11 2 162 2 335 0 222 -2
349 -8 430 -19z m-5189 -4871 c20 -814 210 -1599 565 -2333 203 -420 418 -756
713 -1112 113 -136 449 -475 576 -581 352 -294 785 -563 1175 -729 419 -180
778 -273 1288 -336 l42 -5 -2 -12566 -3 -12567 -125 -18 c-301 -43 -606 -121
-890 -228 -472 -178 -950 -459 -1355 -798 -195 -164 -518 -503 -711 -747 l-31
-39 -64 45 c-411 293 -12325 8772 -12327 8774 -1 1 22 69 52 151 169 467 276
963 322 1494 20 245 15 825 -10 1044 -83 723 -251 1315 -547 1924 -269 556
-574 987 -999 1413 -262 263 -452 420 -720 594 -619 404 -1193 622 -1890 717
-145 20 -208 23 -525 23 -291 0 -387 -3 -500 -18 -728 -95 -1312 -313 -1935
-722 -145 -96 -309 -218 -431 -321 l-85 -72 -6338 7010 -6338 7010 25 26 c13
15 66 82 116 150 599 809 985 1836 1070 2847 6 72 14 154 17 183 l5 52 14927
-2 14927 -3 6 -260z m-25241 -10250 c3406 -3767 6251 -6914 6322 -6992 l129
-142 -96 -110 c-272 -315 -508 -678 -715 -1096 -310 -629 -486 -1237 -567
-1970 -14 -128 -18 -243 -18 -575 0 -442 7 -552 60 -890 81 -528 251 -1083
472 -1549 35 -74 62 -135 61 -136 -20 -16 -12979 -8386 -12990 -8390 -10 -4
-51 38 -128 132 -127 154 -457 490 -595 605 -388 324 -846 599 -1285 771 -204
81 -346 126 -562 179 l-168 41 0 12859 c0 7102 4 12858 9 12858 4 0 66 -9 137
-19 225 -34 395 -44 691 -38 447 8 797 67 1215 203 622 203 1270 590 1728
1031 47 46 90 82 96 80 6 -1 2798 -3084 6204 -6852z m10240 -6179 c724 -103
1376 -386 1960 -852 173 -138 506 -471 642 -642 609 -765 961 -1628 1085
-2659 25 -213 25 -893 0 -1106 -124 -1031 -476 -1894 -1085 -2659 -136 -171
-469 -504 -642 -642 -392 -313 -854 -564 -1309 -711 -249 -81 -548 -142 -813
-166 -171 -15 -616 -7 -773 15 -583 82 -1092 272 -1605 600 -280 179 -455 321
-706 571 -320 320 -549 624 -779 1039 -323 581 -525 1224 -612 1953 -25 213
-25 893 0 1106 111 927 409 1723 911 2430 260 367 640 752 991 1003 563 404
1206 657 1840 724 61 6 119 13 130 15 11 2 162 2 335 0 222 -2 349 -8 430 -19z
m20320 -14330 c724 -103 1376 -386 1960 -852 264 -211 609 -578 816 -871 444
-626 741 -1356 868 -2130 54 -330 61 -420 61 -853 0 -433 -7 -523 -61 -853
-127 -774 -424 -1504 -868 -2130 -207 -293 -552 -660 -816 -871 -392 -313
-854 -564 -1309 -711 -249 -81 -548 -142 -813 -166 -171 -15 -616 -7 -773 15
-583 82 -1092 272 -1605 600 -280 179 -455 321 -706 571 -320 320 -549 624
-779 1039 -323 581 -525 1224 -612 1953 -25 213 -25 893 0 1106 74 616 217
1128 461 1657 58 126 214 420 232 440 3 2 14 -1 25 -8 11 -7 24 -10 29 -7 4 3
75 98 155 212 l147 207 -28 22 -28 23 99 123 c192 240 553 580 810 764 563
404 1206 657 1840 724 61 6 119 13 130 15 11 2 162 2 335 0 222 -2 349 -8 430
-19z m-41201 -72 l31 -6 0 -124 0 -124 265 0 265 0 0 81 0 82 43 -6 c60 -9
289 -80 447 -139 357 -133 772 -372 1100 -634 157 -125 502 -466 611 -604 42
-52 140 -195 218 -317 79 -123 149 -223 156 -223 23 0 188 -295 289 -517 239
-522 380 -1033 453 -1640 25 -213 25 -893 0 -1106 -124 -1031 -476 -1894
-1085 -2659 -136 -171 -469 -504 -642 -642 -392 -313 -854 -564 -1309 -711
-249 -81 -548 -142 -813 -166 -171 -15 -616 -7 -773 15 -583 82 -1092 272
-1605 600 -280 179 -455 321 -706 571 -320 320 -549 624 -779 1039 -323 581
-525 1224 -612 1953 -25 213 -25 893 0 1106 111 927 409 1723 911 2430 260
367 640 752 991 1003 563 404 1206 657 1840 724 61 6 119 13 130 14 41 6 544
6 574 0z"/>
<path d="M7490 43654 c-14 -2 -59 -9 -100 -15 -195 -28 -371 -84 -575 -184
-249 -122 -444 -264 -641 -467 -423 -438 -697 -1047 -764 -1701 -16 -156 -14
-481 4 -614 73 -554 358 -923 806 -1044 116 -32 405 -35 515 -5 299 79 567
248 919 579 111 104 128 117 122 92 -3 -17 -29 -151 -56 -300 -27 -148 -52
-280 -55 -292 l-5 -23 588 0 588 0 15 91 c11 64 13 92 5 95 -6 2 -110 26 -231
52 l-220 49 3 29 c2 16 147 836 322 1822 176 986 320 1797 320 1803 0 5 -47 9
-108 9 l-109 0 -92 -69 -92 -69 -102 34 c-278 94 -467 125 -787 129 -135 2
-256 2 -270 -1z m445 -344 c146 -39 345 -145 345 -183 0 -12 -101 -568 -224
-1236 l-223 -1214 -89 -84 c-356 -333 -648 -483 -938 -483 -365 1 -613 295
-667 790 -23 205 2 563 57 824 112 533 329 965 635 1262 180 174 348 273 549
324 111 28 121 29 305 25 134 -2 187 -8 250 -25z"/>
<path d="M44549 43481 l-14 -89 272 -48 c189 -34 273 -53 273 -61 0 -7 -211
-1203 -470 -2657 -258 -1454 -470 -2648 -470 -2654 0 -14 162 -101 282 -151
333 -138 636 -195 1028 -195 250 0 335 9 531 59 305 77 614 238 869 453 499
419 834 1076 926 1817 22 178 22 504 0 655 -48 338 -164 588 -366 788 -169
168 -378 260 -642 284 -108 10 -143 10 -235 -4 -334 -51 -702 -260 -1080 -614
-62 -58 -113 -103 -113 -101 0 3 15 69 34 148 19 79 46 205 60 279 22 115 366
2163 366 2176 0 2 -278 4 -618 4 l-618 0 -15 -89z m1978 -2327 c99 -26 192
-81 273 -164 169 -170 245 -384 257 -725 26 -756 -275 -1570 -734 -1983 -276
-248 -563 -357 -893 -338 -213 12 -380 60 -517 148 -53 35 -70 51 -67 65 2 10
101 563 219 1228 l215 1210 81 78 c162 154 377 303 561 392 222 106 424 136
605 89z"/>
<path d="M25471 21659 c-613 -59 -1231 -456 -1606 -1032 -220 -339 -371 -772
-419 -1203 -53 -471 -11 -838 129 -1129 182 -377 495 -600 945 -675 125 -21
365 -24 497 -6 445 59 919 282 1285 604 l56 49 -60 86 -61 85 -90 -55 c-210
-127 -462 -238 -667 -292 -293 -78 -604 -84 -805 -16 -223 75 -394 268 -465
525 -88 318 -76 836 30 1267 156 641 502 1151 925 1365 171 87 308 119 504
118 260 0 473 -72 634 -213 l48 -42 30 -335 c16 -184 32 -345 35 -357 4 -22 8
-23 114 -23 106 0 110 1 115 23 12 52 175 1019 175 1036 0 15 -18 26 -82 49
-363 131 -914 205 -1267 171z"/>
<path d="M45756 7319 c-423 -45 -855 -268 -1217 -629 -426 -426 -693 -1000
-770 -1660 -18 -158 -15 -512 5 -643 50 -317 151 -550 321 -734 232 -254 600
-393 1035 -393 483 0 1045 215 1510 579 46 36 90 71 98 76 11 9 3 26 -43 93
-31 45 -61 82 -66 82 -5 0 -44 -20 -87 -44 -261 -148 -562 -273 -755 -315
-219 -47 -499 -56 -666 -22 -144 31 -282 102 -374 194 -153 155 -232 357 -258
667 -11 126 -3 460 12 474 2 3 81 12 174 21 692 65 1249 215 1669 451 379 212
610 467 687 759 29 112 30 299 1 406 -65 243 -248 433 -524 547 -200 83 -492
118 -752 91z m285 -338 c138 -52 238 -174 280 -341 19 -75 16 -257 -5 -344
-38 -158 -129 -309 -264 -437 -247 -236 -593 -397 -1045 -488 -154 -31 -462
-70 -472 -59 -8 7 37 203 75 332 50 168 107 313 190 481 215 438 507 744 807
847 143 50 316 53 434 9z"/>
<path d="M5417 9123 c-7 -13 -30 -163 -26 -167 2 -2 141 -25 309 -51 168 -26
309 -51 313 -55 4 -3 -24 -188 -63 -411 -77 -444 -183 -1079 -200 -1203 -5
-44 -11 -81 -13 -82 -1 -1 -52 11 -112 26 -157 40 -341 60 -551 60 -356 0
-597 -53 -899 -199 -613 -296 -1075 -870 -1294 -1609 -123 -415 -155 -927 -81
-1294 84 -411 304 -724 612 -867 148 -70 227 -85 433 -86 202 0 243 8 420 76
230 89 457 247 749 522 111 104 128 117 122 92 -3 -17 -29 -151 -56 -300 -27
-148 -52 -280 -55 -292 l-5 -23 588 0 589 0 13 85 c7 46 13 88 12 92 0 5 -103
31 -229 59 l-228 51 3 29 c2 16 223 1270 492 2786 270 1516 490 2760 490 2763
0 8 -1328 6 -1333 -2z m-306 -2203 c57 -6 138 -20 179 -31 86 -22 339 -143
347 -166 3 -8 -94 -565 -217 -1237 l-223 -1221 -106 -104 c-425 -415 -886
-571 -1201 -405 -168 88 -301 285 -360 537 -106 448 1 1154 255 1684 123 258
247 435 422 604 237 229 476 339 759 348 23 0 88 -4 145 -9z"/>
</g>
</svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="5055.000000pt" height="4887.000000pt" viewBox="0 0 5055.000000 4887.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,4887.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M45055 46514 c-824 -83 -1431 -296 -2105 -739 -258 -170 -446 -322
-684 -555 -420 -410 -740 -857 -1016 -1415 -220 -446 -363 -854 -466 -1335
-56 -259 -114 -676 -114 -815 0 -24 -3 -50 -6 -59 -5 -12 -299 132 -1405 684
l-1399 700 0 -740 0 -740 -13565 0 c-7461 0 -13565 2 -13565 5 0 2 -12 85 -26
182 -115 797 -395 1561 -818 2228 -206 326 -409 579 -696 866 -262 263 -452
420 -720 594 -619 404 -1193 622 -1890 717 -145 20 -208 23 -525 23 -291 0
-387 -3 -500 -18 -728 -95 -1312 -313 -1935 -722 -258 -170 -446 -322 -684
-555 -420 -410 -740 -857 -1016 -1415 -310 -629 -486 -1237 -567 -1970 -26
-230 -26 -920 0 -1150 79 -708 252 -1321 543 -1923 273 -565 576 -994 1004
-1423 265 -266 442 -411 735 -603 500 -329 970 -530 1525 -654 l125 -28 3
-11287 2 -11287 -740 0 -740 0 635 -1270 635 -1269 -33 -5 c-17 -2 -102 -12
-187 -21 -769 -81 -1522 -386 -2185 -885 -166 -125 -274 -219 -449 -390 -420
-410 -740 -857 -1016 -1415 -310 -629 -486 -1237 -567 -1970 -14 -128 -18
-243 -18 -575 0 -332 4 -447 18 -575 79 -708 252 -1321 543 -1923 203 -420
418 -756 713 -1112 113 -136 449 -475 576 -581 737 -615 1588 -980 2485 -1065
209 -20 681 -15 870 10 867 114 1667 470 2365 1054 128 107 463 446 576 582
408 492 717 1036 946 1665 135 372 249 852 293 1235 6 58 14 115 16 128 l4 22
14090 0 14090 0 0 -745 0 -745 1510 755 1510 755 6 -28 c101 -441 237 -831
430 -1230 203 -420 418 -756 713 -1112 113 -136 449 -475 576 -581 737 -615
1588 -980 2485 -1065 209 -20 681 -15 870 10 867 114 1667 470 2365 1054 128
107 463 446 576 582 730 879 1163 1958 1265 3150 20 245 15 825 -10 1044 -83
723 -251 1315 -547 1924 -199 411 -416 750 -708 1102 -113 136 -448 475 -576
582 -498 416 -1074 729 -1649 897 -247 72 -461 115 -793 157 l-42 5 669 1340
670 1339 -745 0 -745 0 0 10975 0 10975 -267 0 -268 0 3 -10975 2 -10975 -740
0 -740 0 671 -1341 c368 -738 669 -1343 667 -1344 -2 -2 -57 -11 -123 -20
-748 -101 -1456 -398 -2090 -875 -342 -257 -685 -605 -952 -963 -58 -78 -108
-146 -113 -150 -4 -4 -283 514 -621 1152 -338 639 -617 1161 -620 1161 -4 0
-199 -270 -435 -599 l-429 -599 -30 21 c-49 35 -9950 7109 -9953 7112 -1 1 16
42 39 91 277 602 445 1250 505 1944 20 245 15 825 -10 1044 -83 723 -251 1315
-547 1924 -269 556 -574 987 -999 1413 -262 263 -452 420 -720 594 -619 404
-1193 622 -1890 717 -145 20 -208 23 -525 23 -291 0 -387 -3 -500 -18 -728
-95 -1312 -313 -1935 -722 -274 -180 -453 -327 -718 -590 -106 -105 -194 -189
-196 -186 -2 3 -225 805 -496 1781 -271 976 -496 1781 -499 1788 -5 9 -170
-133 -531 -458 l-523 -472 -22 24 c-35 37 -10438 11542 -10453 11560 -12 14
-5 32 49 125 77 133 231 449 294 603 281 686 435 1433 435 2118 l0 202 13550
0 13550 0 0 -745 0 -745 1401 701 c771 385 1402 699 1403 697 2 -2 11 -83 20
-181 85 -885 380 -1750 850 -2492 206 -326 409 -579 696 -866 203 -203 299
-288 485 -428 690 -521 1467 -829 2285 -907 209 -20 681 -15 870 10 867 114
1667 470 2365 1054 128 107 463 446 576 582 730 879 1163 1958 1265 3150 20
245 15 825 -10 1044 -83 723 -251 1315 -547 1924 -199 411 -416 750 -708 1102
-113 136 -448 475 -576 582 -605 505 -1286 839 -2014 988 -290 59 -424 72
-791 75 -184 1 -353 1 -375 -1z m795 -548 c724 -103 1376 -386 1960 -852 264
-211 609 -578 816 -871 444 -626 741 -1356 868 -2130 54 -330 61 -420 61 -853
0 -433 -7 -523 -61 -853 -127 -774 -424 -1504 -868 -2130 -207 -293 -552 -660
-816 -871 -392 -313 -854 -564 -1309 -711 -249 -81 -548 -142 -813 -166 -171
-15 -616 -7 -773 15 -583 82 -1092 272 -1605 600 -280 179 -455 321 -706 571
-320 320 -549 624 -779 1039 -369 664 -600 1481 -631 2236 l-7 155 82 40 c44
21 81 42 81 45 0 3 -37 24 -81 45 l-82 40 6 185 c33 959 369 1950 931 2743
260 367 640 752 991 1003 563 404 1206 657 1840 724 61 6 119 13 130 15 11 2
162 2 335 0 222 -2 349 -8 430 -19z m-39330 -400 c724 -103 1376 -386 1960
-852 173 -138 506 -471 642 -642 609 -765 961 -1628 1085 -2659 25 -213 25
-893 0 -1106 -124 -1031 -476 -1894 -1085 -2659 -136 -171 -469 -504 -642
-642 -390 -312 -855 -564 -1305 -710 -377 -122 -723 -176 -1130 -176 l-225 0
0 70 0 70 -270 0 -270 0 0 -30 c0 -36 1 -36 -103 -9 -563 141 -1086 405 -1582
798 -160 127 -495 463 -627 629 -610 766 -961 1628 -1085 2659 -25 213 -25
893 0 1106 111 927 409 1723 911 2430 260 367 640 752 991 1003 563 404 1206
657 1840 724 61 6 119 13 130 15 11 2 162 2 335 0 222 -2 349 -8 430 -19z
m8232 -13972 c2841 -3141 5168 -5716 5171 -5722 4 -5 -230 -222 -518 -483
-289 -260 -522 -476 -518 -480 5 -4 791 -311 1748 -683 956 -372 1741 -678
1742 -680 2 -2 -52 -77 -120 -167 -225 -299 -367 -531 -537 -874 -310 -629
-486 -1237 -567 -1970 -14 -128 -18 -243 -18 -575 0 -332 4 -447 18 -575 79
-708 252 -1321 543 -1923 203 -420 418 -756 713 -1112 113 -136 449 -475 576
-581 737 -615 1588 -980 2485 -1065 209 -20 681 -15 870 10 683 90 1272 307
1874 694 302 194 502 356 776 631 289 290 502 555 708 884 24 38 49 67 55 64
20 -8 9912 -7078 9915 -7087 2 -4 -191 -278 -427 -608 -417 -582 -429 -601
-403 -606 15 -3 632 -101 1372 -217 740 -116 1346 -212 1347 -213 2 -2 -20
-58 -47 -127 -193 -476 -324 -1010 -387 -1574 -25 -218 -25 -941 -1 -1145 9
-74 15 -136 13 -138 -1 -2 -660 326 -1464 727 l-1461 731 0 -740 0 -740
-14077 2 -14078 3 -6 225 c-20 697 -174 1393 -454 2059 -60 142 -206 438 -274
554 -28 49 -51 93 -51 98 0 5 8 9 18 9 31 0 2766 310 2803 317 l36 8 -402 620
-402 620 31 21 c17 11 414 268 881 571 5687 3681 9810 6357 9809 6366 -1 11
-255 410 -273 430 -4 4 -2419 -1554 -5366 -3463 -2947 -1909 -5361 -3472
-5366 -3473 -4 -1 -186 273 -403 608 -218 336 -400 611 -404 613 -4 1 -340
-560 -746 -1248 -406 -688 -741 -1252 -745 -1254 -3 -2 -35 30 -71 71 -88 100
-364 371 -475 464 -597 502 -1285 840 -2019 990 -83 17 -152 32 -154 34 -2 1
287 584 642 1294 l646 1291 -745 0 -745 0 0 11254 0 11254 298 5 c383 6 594
33 934 117 659 164 1299 495 1853 958 123 103 472 455 570 574 75 92 81 97 96
80 9 -9 2341 -2587 5181 -5728z m11568 -6928 c724 -103 1376 -386 1960 -852
173 -138 506 -471 642 -642 609 -765 961 -1628 1085 -2659 25 -213 25 -893 0
-1106 -124 -1031 -476 -1894 -1085 -2659 -136 -171 -469 -504 -642 -642 -392
-313 -854 -564 -1309 -711 -249 -81 -548 -142 -813 -166 -171 -15 -616 -7
-773 15 -583 82 -1092 272 -1605 600 -280 179 -455 321 -706 571 -320 320
-549 624 -779 1039 -323 581 -525 1224 -612 1953 -25 213 -25 893 0 1106 111
927 409 1723 911 2430 260 367 640 752 991 1003 563 404 1206 657 1840 724 61
6 119 13 130 15 11 2 162 2 335 0 222 -2 349 -8 430 -19z m19382 -14101 c40
-80 75 -145 78 -145 3 0 38 66 78 146 l73 147 118 -6 c763 -41 1549 -353 2201
-873 264 -211 609 -578 816 -871 444 -626 741 -1356 868 -2130 54 -330 61
-420 61 -853 0 -433 -7 -523 -61 -853 -127 -774 -424 -1504 -868 -2130 -207
-293 -552 -660 -816 -871 -392 -313 -854 -564 -1309 -711 -249 -81 -548 -142
-813 -166 -171 -15 -616 -7 -773 15 -583 82 -1092 272 -1605 600 -280 179
-455 321 -706 571 -320 320 -549 624 -779 1039 -323 581 -525 1224 -612 1953
-25 213 -25 893 0 1106 68 563 191 1035 399 1520 28 64 53 117 57 117 3 0 132
-20 286 -45 154 -24 280 -43 281 -42 1 1 -68 133 -153 294 l-155 292 63 98
c188 291 365 510 613 758 296 296 560 497 923 703 418 239 954 412 1428 462
61 6 119 13 130 14 11 2 39 4 63 5 l42 1 72 -145z m-40252 -765 c58 -115 107
-210 110 -210 3 0 50 90 105 200 55 110 104 200 110 200 24 0 266 -42 373 -65
555 -120 1140 -405 1622 -792 209 -167 518 -478 654 -656 l28 -37 -105 -178
c-57 -97 -104 -178 -103 -179 2 -3 306 30 392 42 l42 6 60 -94 c348 -542 605
-1228 716 -1904 54 -330 61 -420 61 -853 0 -433 -7 -523 -61 -853 -127 -774
-424 -1504 -868 -2130 -207 -293 -552 -660 -816 -871 -392 -313 -854 -564
-1309 -711 -249 -81 -548 -142 -813 -166 -171 -15 -616 -7 -773 15 -583 82
-1092 272 -1605 600 -280 179 -455 321 -706 571 -320 320 -549 624 -779 1039
-323 581 -525 1224 -612 1953 -25 213 -25 893 0 1106 111 927 409 1723 911
2430 260 367 640 752 991 1003 563 404 1206 657 1840 724 61 6 119 13 130 14
11 2 83 4 160 5 l140 1 105 -210z"/>
<path d="M43709 43741 l-14 -89 272 -48 c189 -34 273 -53 273 -61 0 -7 -211
-1203 -470 -2657 -258 -1454 -470 -2648 -470 -2654 0 -14 162 -101 282 -151
333 -138 636 -195 1028 -195 250 0 335 9 531 59 305 77 614 238 869 453 499
419 834 1076 926 1817 22 178 22 504 0 655 -48 338 -164 588 -366 788 -169
168 -378 260 -642 284 -108 10 -143 10 -235 -4 -334 -51 -702 -260 -1080 -614
-62 -58 -113 -103 -113 -101 0 3 15 69 34 148 19 79 46 205 60 279 22 115 366
2163 366 2176 0 2 -278 4 -618 4 l-618 0 -15 -89z m1978 -2327 c99 -26 192
-81 273 -164 169 -170 245 -384 257 -725 26 -756 -275 -1570 -734 -1983 -276
-248 -563 -357 -893 -338 -213 12 -380 60 -517 148 -53 35 -70 51 -67 65 2 10
101 563 219 1228 l215 1210 81 78 c162 154 377 303 561 392 222 106 424 136
605 89z"/>
<path d="M6610 43124 c-14 -2 -59 -9 -100 -15 -195 -28 -371 -84 -575 -184
-249 -122 -444 -264 -641 -467 -423 -438 -697 -1047 -764 -1701 -16 -156 -14
-481 4 -614 73 -554 358 -923 806 -1044 116 -32 405 -35 515 -5 299 79 567
248 919 579 111 104 128 117 122 92 -3 -17 -29 -151 -56 -300 -27 -148 -52
-280 -55 -292 l-5 -23 588 0 588 0 15 91 c11 64 13 92 5 95 -6 2 -110 26 -231
52 l-220 49 3 29 c2 16 147 836 322 1822 176 986 320 1797 320 1803 0 5 -47 9
-108 9 l-109 0 -92 -69 -92 -69 -102 34 c-278 94 -467 125 -787 129 -135 2
-256 2 -270 -1z m445 -344 c146 -39 345 -145 345 -183 0 -12 -101 -568 -224
-1236 l-223 -1214 -89 -84 c-356 -333 -648 -483 -938 -483 -365 1 -613 295
-667 790 -23 205 2 563 57 824 112 533 329 965 635 1262 180 174 348 273 549
324 111 28 121 29 305 25 134 -2 187 -8 250 -25z"/>
<path d="M25291 21919 c-613 -59 -1231 -456 -1606 -1032 -220 -339 -371 -772
-419 -1203 -53 -471 -11 -838 129 -1129 182 -377 495 -600 945 -675 125 -21
365 -24 497 -6 445 59 919 282 1285 604 l56 49 -60 86 -61 85 -90 -55 c-210
-127 -462 -238 -667 -292 -293 -78 -604 -84 -805 -16 -223 75 -394 268 -465
525 -88 318 -76 836 30 1267 156 641 502 1151 925 1365 171 87 308 119 504
118 260 0 473 -72 634 -213 l48 -42 30 -335 c16 -184 32 -345 35 -357 4 -22 8
-23 114 -23 106 0 110 1 115 23 12 52 175 1019 175 1036 0 15 -18 26 -82 49
-363 131 -914 205 -1267 171z"/>
<path d="M45226 7939 c-423 -45 -855 -268 -1217 -629 -426 -426 -693 -1000
-770 -1660 -18 -158 -15 -512 5 -643 50 -317 151 -550 321 -734 232 -254 600
-393 1035 -393 483 0 1045 215 1510 579 46 36 90 71 98 76 11 9 3 26 -43 93
-31 45 -61 82 -66 82 -5 0 -44 -20 -87 -44 -261 -148 -562 -273 -755 -315
-219 -47 -499 -56 -666 -22 -144 31 -282 102 -374 194 -153 155 -232 357 -258
667 -11 126 -3 460 12 474 2 3 81 12 174 21 692 65 1249 215 1669 451 379 212
610 467 687 759 29 112 30 299 1 406 -65 243 -248 433 -524 547 -200 83 -492
118 -752 91z m285 -338 c138 -52 238 -174 280 -341 19 -75 16 -257 -5 -344
-38 -158 -129 -309 -264 -437 -247 -236 -593 -397 -1045 -488 -154 -31 -462
-70 -472 -59 -8 7 37 203 75 332 50 168 107 313 190 481 215 438 507 744 807
847 143 50 316 53 434 9z"/>
<path d="M5417 9123 c-7 -13 -30 -163 -26 -167 2 -2 141 -25 309 -51 168 -26
309 -51 313 -55 4 -3 -24 -188 -63 -411 -77 -444 -183 -1079 -200 -1203 -5
-44 -11 -81 -13 -82 -1 -1 -52 11 -112 26 -157 40 -341 60 -551 60 -356 0
-597 -53 -899 -199 -613 -296 -1075 -870 -1294 -1609 -123 -415 -155 -927 -81
-1294 84 -411 304 -724 612 -867 148 -70 227 -85 433 -86 202 0 243 8 420 76
230 89 457 247 749 522 111 104 128 117 122 92 -3 -17 -29 -151 -56 -300 -27
-148 -52 -280 -55 -292 l-5 -23 588 0 589 0 13 85 c7 46 13 88 12 92 0 5 -103
31 -229 59 l-228 51 3 29 c2 16 223 1270 492 2786 270 1516 490 2760 490 2763
0 8 -1328 6 -1333 -2z m-306 -2203 c57 -6 138 -20 179 -31 86 -22 339 -143
347 -166 3 -8 -94 -565 -217 -1237 l-223 -1221 -106 -104 c-425 -415 -886
-571 -1201 -405 -168 88 -301 285 -360 537 -106 448 1 1154 255 1684 123 258
247 435 422 604 237 229 476 339 759 348 23 0 88 -4 145 -9z"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="84.931252mm"
height="46.831249mm"
viewBox="0 0 84.931252 46.831249"
version="1.1"
id="svg2537"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="ex_graphe_non_oriente.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2539"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.67081229"
inkscape:cx="144.60081"
inkscape:cy="27.578505"
inkscape:window-width="464"
inkscape:window-height="1022"
inkscape:window-x="1442"
inkscape:window-y="44"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2534" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5.6538963,-145.0027)">
<image
width="84.931252"
height="46.831249"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image2606"
x="5.6538963"
y="145.0027" />
</g>
</svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="8499.000000pt" height="4627.000000pt" viewBox="0 0 8499.000000 4627.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,4627.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M42095 46260 c-1181 -77 -2248 -435 -3220 -1083 -1110 -739 -1979
-1826 -2458 -3072 -793 -2069 -464 -4433 862 -6193 618 -820 1373 -1449 2306
-1923 l190 -96 3 -9107 2 -9106 -711 0 -710 0 888 -1770 c488 -973 891 -1770
894 -1770 3 0 402 797 886 1770 l882 1770 -710 0 -709 0 0 8970 0 8969 48 -15
c433 -136 921 -230 1432 -276 190 -17 810 -17 1000 0 215 19 515 59 683 91 81
15 147 26 147 25 0 -2 -319 -645 -709 -1429 l-709 -1425 709 0 709 0 0 -9226
0 -9226 -27 6 c-181 38 -522 84 -793 108 -188 16 -840 16 -1020 0 -888 -82
-1612 -271 -2365 -619 -963 -445 -1845 -1169 -2464 -2021 -575 -793 -944
-1693 -1080 -2637 -45 -311 -55 -455 -55 -835 0 -380 10 -524 55 -835 216
-1498 1016 -2870 2247 -3853 878 -701 1931 -1164 3072 -1351 401 -66 651 -85
1095 -85 387 0 528 8 860 49 960 121 1916 455 2695 943 695 435 1322 1017
1789 1660 575 793 944 1693 1080 2637 45 311 55 455 55 835 0 380 -10 524 -55
835 -121 843 -434 1667 -905 2382 -263 400 -521 711 -880 1063 -851 832 -1871
1384 -3099 1675 l-140 34 323 0 322 1 0 9230 0 9230 711 0 711 0 -757 1506
c-416 828 -755 1507 -753 1509 2 3 77 29 165 60 806 276 1556 717 2198 1290
502 448 968 1021 1309 1610 138 239 359 705 432 913 11 33 23 51 31 48 12 -5
20915 -11466 20922 -11472 2 -2 -150 -281 -337 -621 -331 -603 -339 -618 -313
-621 14 -2 882 -36 1928 -76 1046 -39 1904 -74 1907 -77 3 -3 -32 -88 -78
-190 -916 -2023 -730 -4382 491 -6232 950 -1440 2465 -2460 4143 -2791 1113
-220 2252 -149 3320 207 742 247 1373 590 1985 1078 223 178 353 295 565 508
738 743 1278 1637 1585 2626 634 2042 235 4233 -1080 5921 -893 1148 -2135
1955 -3545 2303 -477 118 -916 176 -1425 188 -1439 34 -2853 -421 -4015 -1291
-755 -565 -1390 -1303 -1835 -2134 -33 -61 -62 -108 -66 -104 -3 4 -498 717
-1099 1585 -601 867 -1096 1577 -1099 1577 -4 0 -159 -277 -345 -616 -271
-492 -342 -614 -355 -609 -12 5 -21038 11532 -21048 11539 -1 1 13 71 32 155
271 1212 183 2503 -252 3671 -653 1754 -2065 3168 -3808 3813 -556 205 -1121
330 -1750 387 -158 14 -725 21 -890 10z m880 -270 c831 -75 1569 -282 2292
-643 1395 -699 2503 -1943 3045 -3421 356 -973 464 -2047 307 -3071 -19 -128
-88 -487 -95 -494 -1 -1 -46 20 -98 48 l-95 52 -43 -78 c-227 -411 -295 -539
-292 -545 2 -3 74 -44 159 -90 85 -45 155 -88 155 -95 0 -6 -20 -62 -44 -125
-247 -637 -611 -1243 -1071 -1783 -164 -192 -488 -516 -680 -680 -622 -530
-1297 -913 -2075 -1176 -63 -22 -121 -39 -130 -39 -10 0 -40 49 -85 140 -38
77 -72 140 -75 140 -3 0 -48 -86 -100 -190 -90 -182 -96 -191 -130 -200 -70
-19 -389 -80 -515 -99 -908 -138 -1871 -69 -2735 196 -63 19 -130 39 -147 44
l-33 10 0 124 0 125 -313 0 -313 0 -175 88 c-872 442 -1617 1063 -2192 1827
-1359 1804 -1628 4209 -703 6280 322 720 839 1446 1409 1977 1091 1016 2406
1587 3892 1688 162 11 719 5 880 -10z m36020 -17990 c831 -75 1569 -282 2292
-643 1687 -845 2929 -2470 3297 -4317 324 -1623 6 -3288 -888 -4645 -240 -364
-494 -675 -810 -991 -316 -316 -627 -570 -991 -810 -1198 -789 -2660 -1136
-4104 -974 -1408 159 -2703 787 -3716 1804 -302 303 -557 616 -791 971 -969
1472 -1263 3331 -795 5041 394 1441 1301 2700 2546 3533 923 617 1949 964
3080 1041 162 11 719 5 880 -10z m-36170 -16000 c926 -55 1781 -282 2598 -691
878 -439 1696 -1150 2253 -1959 561 -813 880 -1671 986 -2653 32 -292 32 -822
0 -1114 -106 -981 -425 -1840 -986 -2653 -614 -891 -1537 -1655 -2526 -2090
-1078 -475 -2250 -657 -3395 -529 -1718 191 -3250 1027 -4280 2334 -1072 1360
-1464 3084 -1081 4752 237 1031 771 1985 1549 2765 1108 1110 2582 1753 4227
1841 139 8 501 6 655 -3z"/>
<path d="M42440 41583 c-184 -18 -542 -78 -667 -112 l-43 -12 0 -400 0 -400
102 3 102 3 53 250 c37 170 59 254 70 262 27 21 154 70 249 98 151 44 269 58
438 52 170 -5 267 -26 376 -79 93 -45 204 -159 252 -259 74 -152 105 -349 94
-579 -18 -336 -73 -574 -191 -815 -106 -216 -230 -379 -490 -644 -184 -188
-248 -247 -848 -790 l-347 -314 0 -229 0 -228 1270 0 1270 0 0 240 0 240
-1063 2 -1063 3 141 126 c77 70 282 249 455 399 413 358 570 501 765 695 378
377 572 698 657 1088 31 140 33 478 4 602 -106 459 -465 731 -1048 794 -89 10
-454 13 -538 4z"/>
<path d="M77803 23584 c-192 -20 -386 -57 -565 -105 l-38 -10 0 -399 0 -400
103 0 103 0 53 254 54 254 76 35 c88 41 200 77 321 103 119 26 422 27 531 1
248 -58 396 -206 461 -462 26 -104 36 -386 18 -518 -46 -340 -214 -532 -516
-591 -63 -13 -480 -46 -573 -46 -20 0 -21 -4 -21 -130 l0 -130 38 0 c117 -1
539 -32 610 -45 208 -40 340 -102 453 -216 124 -123 187 -274 209 -500 15
-148 -1 -361 -37 -504 -38 -154 -114 -289 -211 -375 -104 -93 -277 -163 -467
-189 -113 -16 -358 -13 -482 5 -207 31 -482 114 -502 152 -5 9 -36 134 -70
277 -34 143 -66 270 -71 283 -9 21 -16 22 -104 22 -52 0 -97 -3 -99 -7 -2 -5
4 -201 14 -437 12 -303 20 -431 29 -436 18 -11 374 -79 500 -95 319 -39 770
-45 982 -11 341 54 591 169 784 361 93 93 150 173 206 292 136 291 139 714 7
993 -141 297 -418 471 -874 548 l-110 19 60 12 c249 49 455 156 598 311 176
190 262 497 228 812 -23 209 -82 365 -189 500 -162 203 -427 327 -797 372
-160 20 -535 20 -712 0z"/>
<path d="M41787 5370 l-1017 -1429 2 -203 3 -203 928 -3 927 -2 0 -455 0 -455
265 0 265 0 0 455 0 455 283 2 282 3 0 220 0 220 -282 3 -283 2 0 1410 0 1410
-177 0 -178 0 -1018 -1430z m843 -345 l0 -1045 -751 0 c-597 0 -749 3 -743 13
37 60 1478 2077 1485 2077 5 0 9 -432 9 -1045z"/>
<path d="M32170 38258 c10 -24 143 -315 294 -648 151 -333 272 -606 268 -608
-4 -1 -5015 -2272 -11137 -5046 l-11130 -5044 -45 34 c-1011 768 -2142 1201
-3425 1314 -66 6 -237 13 -380 17 -1439 34 -2871 -425 -4010 -1284 -718 -542
-1284 -1179 -1737 -1958 -1295 -2224 -1127 -5059 421 -7113 676 -897 1563
-1602 2576 -2050 1467 -649 3138 -728 4665 -219 742 247 1373 590 1985 1078
223 178 353 295 565 508 398 401 742 849 1024 1336 142 246 358 704 437 928
13 37 26 67 29 66 3 0 439 -580 969 -1290 530 -709 966 -1289 970 -1289 3 0
147 282 319 626 200 401 317 624 326 622 7 -2 4688 -2349 10403 -5216 5714
-2866 10394 -5212 10399 -5212 5 0 80 141 166 314 l157 314 -10402 5218
c-5721 2869 -10404 5219 -10407 5221 -2 2 138 289 312 637 l317 633 -1672 7
c-920 4 -1673 9 -1674 10 -1 1 4 26 12 56 28 104 84 376 109 530 242 1482 -36
3004 -782 4285 -267 459 -551 838 -930 1242 l-112 121 177 80 c98 44 5040
2284 10983 4977 5943 2693 10810 4899 10815 4901 6 2 140 -284 300 -636 159
-352 294 -639 299 -637 10 3 2494 3060 2491 3065 -2 2 -3891 152 -3952 152 -8
0 -6 -13 7 -42z m-25185 -10258 c831 -75 1569 -282 2292 -643 103 -52 244
-127 313 -167 135 -78 422 -265 535 -348 l69 -52 -92 -42 c-51 -23 -92 -45
-92 -50 0 -8 279 -629 286 -637 2 -2 114 47 250 108 l248 112 79 -78 c109
-108 286 -305 408 -453 1185 -1443 1658 -3312 1303 -5145 -28 -144 -66 -312
-89 -392 l-16 -53 -174 0 -175 0 125 -167 c97 -129 124 -171 119 -187 -4 -12
-33 -93 -66 -181 -252 -678 -621 -1304 -1103 -1870 -164 -192 -488 -516 -680
-680 -195 -166 -428 -341 -640 -481 -1198 -789 -2660 -1136 -4104 -974 -1408
159 -2703 787 -3716 1804 -1077 1080 -1700 2479 -1795 4026 -66 1081 180 2239
677 3190 554 1059 1338 1894 2353 2508 197 119 623 330 850 420 627 251 1265
395 1955 442 162 11 719 5 880 -10z"/>
<path d="M5803 22407 l-602 -342 -1 -82 c0 -46 1 -83 3 -83 1 0 189 67 417
149 l415 149 3 -1691 c1 -930 0 -1693 -3 -1695 -3 -3 -194 -24 -425 -46 l-420
-41 0 -82 0 -83 1115 0 1115 0 0 83 0 83 -392 37 c-216 21 -408 41 -425 44
l-33 5 0 1969 0 1969 -82 -1 -83 0 -602 -342z"/>
</g>
</svg>
slides/figs/ex_graphes.png

25.7 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="468" height="396">
<g style="fill:none;stroke:black;stroke-width:1.5">
<polyline points="162,162.001 126,234 54,306 18,378 18,234.001 90,162.001"/>
<polyline points="18,90 126,18 162,162.001"/>
<polyline points="126,18 234,18 234,162 162,162.001 90,162.001 18,90 18,234.001"/>
<polyline points="234,18 377.999,90 377.999,198 306,198"/>
<polyline points="377.999,90 449.999,162 377.999,198"/>
<polyline points="449.999,234 377.999,306 377.999,198 449.999,234 449.999,162"/>
<polyline points="377.999,306 306,378.001 306,198 234,162"/>
<polyline points="306,378.001 234,378 198,306"/>
<polyline points="234,378 162,378 198,306 126,234"/>
<polyline points="162,378 90,378 54,306"/>
<line x1="90" y1="378" x2="18" y2="378"/>
</g><g style="fill:blue;stroke:black;stroke-width:1.5">
<circle cx="18" cy="90" r="9"/>
<circle cx="126" cy="18" r="9"/>
<circle cx="162" cy="162" r="9"/>
<circle cx="90" cy="162" r="9"/>
<circle cx="18" cy="234" r="9"/>
<circle cx="126" cy="234" r="9"/>
<circle cx="198" cy="306" r="9"/>
<circle cx="54" cy="306" r="9"/>
<circle cx="18" cy="378" r="9"/>
<circle cx="90" cy="378" r="9"/>
<circle cx="162" cy="378" r="9"/>
<circle cx="233.999" cy="378" r="9"/>
<circle cx="305.999" cy="378" r="9"/>
<circle cx="306" cy="198" r="9"/>
<circle cx="234" cy="162" r="9"/>
<circle cx="233.999" cy="18" r="9"/>
<circle cx="377.999" cy="90" r="9"/>
<circle cx="377.999" cy="198" r="9"/>
<circle cx="449.999" cy="162" r="9"/>
<circle cx="449.999" cy="234" r="9"/>
<circle cx="377.999" cy="306" r="9"/>
</g>
</svg>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment