Organisation

This commit is contained in:
2025-10-28 20:08:14 +01:00
parent d3fd0e11eb
commit 407312ac4d
10 changed files with 167 additions and 166 deletions

17
docs/graphe-A-cheminD.svg Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<circle cx="25" cy="25" r="5"/>
<circle cx="50" cy="100" r="5"/>
<circle cx="140" cy="130" r="5"/>
<circle cx="150" cy="80" r="5"/>
<circle cx="200" cy="40" r="5"/>
<circle cx="290" cy="140" r="5"/>
<g stroke="#000">
<line x1="25" y1="25" x2="150" y2="80" />
<line x1="150" y1="80" x2="140" y2="130" stroke-width="3" />
<line x1="140" y1="130" x2="290" y2="140" />
<line x1="290" y1="140" x2="150" y2="80" />
<line x1="140" y1="130" x2="50" y2="100" />
</g>
<svg>

After

Width:  |  Height:  |  Size: 686 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
</svg>

After

Width:  |  Height:  |  Size: 202 B

29
docs/graphe-A-multi.svg Normal file
View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<g stroke="#000" fill="none">
<line x1="20" y1="100" x2="90" y2="140"/>
<line x1="20" y1="100" x2="110" y2="40"/>
<line x1="90" y1="140" x2="110" y2="40"/>
<line x1="90" y1="140" x2="195" y2="15"/>
<line x1="107" y1="40" x2="185" y2="130"/>
<line x1="185" y1="130" x2="263" y2="70"/>
<line x1="405" y1="55" x2="353" y2="115"/>
<line x1="411" y1="115" x2="353" y2="115"/>
<line x1="411" y1="115" x2="405" y2="55"/>
<path d="M185 130Q260 130 263 70"/>
<path d="M405 55Q310 50 353 115"/>
</g>
<circle r="5" cx="20" cy="100" /><text x="3" y="105">A</text>
<circle r="5" cx="90" cy="140" /><text x="100" y="145">B</text>
<circle r="5" cx="110" cy="40" /><text x="105" y="30">C</text>
<circle r="5" cx="185" cy="130" /><text x="180" y="150">D</text>
<circle r="5" cx="195" cy="15" /><text x="180" y="12">E</text>
<circle r="5" cx="263" cy="70" /><text x="275" y="75">F</text>
<circle r="5" cx="320" cy="15" /><text x="325" y="12">G</text>
<circle r="5" cx="353" cy="115" /><text x="340" y="135">H</text>
<circle r="5" cx="405" cy="55" /><text x="400" y="45">I</text>
<circle r="5" cx="411" cy="115" /><text x="408" y="135">J</text>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

16
docs/graphe-A-pondere.svg Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<circle r="5" cx="20" cy="100" /><text x="5" y="105">A</text>
<circle r="5" cx="90" cy="140" /><text x="100" y="145">B</text>
<circle r="5" cx="110" cy="40" /><text x="105" y="30">C</text>
<circle r="5" cx="185" cy="130" /><text x="180" y="150">D</text>
<circle r="5" cx="195" cy="15" /><text x="180" y="10">E</text>
<circle r="5" cx="263" cy="70" /><text x="275" y="75">F</text>
<circle r="5" cx="320" cy="15" /><text x="325" y="10">G</text>
<circle r="5" cx="353" cy="115" /><text x="335" y="120">H</text>
<circle r="5" cx="405" cy="55" /><text x="400" y="45">I</text>
<circle r="5" cx="411" cy="115" /><text x="405" y="135">J</text>
</svg>

After

Width:  |  Height:  |  Size: 842 B

32
docs/graphe-A-sous.svg Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<g stroke="#000">
<line x1="405" y1="55" x2="353" y2="115"/>
<line x1="411" y1="115" x2="353" y2="115"/>
<line x1="411" y1="115" x2="405" y2="55"/>
</g>
<g stroke="#f00">
<line x1="20" y1="100" x2="90" y2="140"/>
<line x1="20" y1="100" x2="110" y2="40"/>
<line x1="90" y1="140" x2="110" y2="40"/>
<line x1="90" y1="140" x2="195" y2="15"/>
<line x1="107" y1="40" x2="185" y2="130"/>
<line x1="185" y1="130" x2="263" y2="70"/>
</g>
<g fill="#f00">
<circle r="5" cx="20" cy="100" /><text x="5" y="105">A</text>
<circle r="5" cx="90" cy="140" /><text x="100" y="145">B</text>
<circle r="5" cx="110" cy="40" /><text x="105" y="30">C</text>
<circle r="5" cx="185" cy="130" /><text x="180" y="150">D</text>
<circle r="5" cx="195" cy="15" /><text x="180" y="10">E</text>
<circle r="5" cx="263" cy="70" /><text x="275" y="75">F</text>
</g>
<circle r="5" cx="320" cy="15" /><text x="325" y="10">G</text>
<circle r="5" cx="353" cy="115" /><text x="335" y="120">H</text>
<circle r="5" cx="405" cy="55" /><text x="400" y="45">I</text>
<circle r="5" cx="411" cy="115" /><text x="405" y="135">J</text>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

16
docs/graphe-A-vide.svg Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<circle r="5" cx="20" cy="100" /><text x="5" y="105">A</text>
<circle r="5" cx="90" cy="140" /><text x="100" y="145">B</text>
<circle r="5" cx="110" cy="40" /><text x="105" y="30">C</text>
<circle r="5" cx="185" cy="130" /><text x="180" y="150">D</text>
<circle r="5" cx="195" cy="15" /><text x="180" y="10">E</text>
<circle r="5" cx="263" cy="70" /><text x="275" y="75">F</text>
<circle r="5" cx="320" cy="15" /><text x="325" y="10">G</text>
<circle r="5" cx="353" cy="115" /><text x="335" y="120">H</text>
<circle r="5" cx="405" cy="55" /><text x="400" y="45">I</text>
<circle r="5" cx="411" cy="115" /><text x="405" y="135">J</text>
</svg>

After

Width:  |  Height:  |  Size: 842 B

27
docs/graphe-A.svg Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<g stroke="#000">
<line x1="20" y1="100" x2="90" y2="140"/>
<line x1="20" y1="100" x2="110" y2="40"/>
<line x1="90" y1="140" x2="110" y2="40"/>
<line x1="90" y1="140" x2="195" y2="15"/>
<line x1="107" y1="40" x2="185" y2="130"/>
<line x1="185" y1="130" x2="263" y2="70"/>
<line x1="405" y1="55" x2="353" y2="115"/>
<line x1="411" y1="115" x2="353" y2="115"/>
<line x1="411" y1="115" x2="405" y2="55"/>
</g>
<circle r="5" cx="20" cy="100" /><text x="3" y="105">A</text>
<circle r="5" cx="90" cy="140" /><text x="100" y="145">B</text>
<circle r="5" cx="110" cy="40" /><text x="105" y="30">C</text>
<circle r="5" cx="185" cy="130" /><text x="180" y="150">D</text>
<circle r="5" cx="195" cy="15" /><text x="180" y="12">E</text>
<circle r="5" cx="263" cy="70" /><text x="275" y="75">F</text>
<circle r="5" cx="320" cy="15" /><text x="325" y="12">G</text>
<circle r="5" cx="353" cy="115" /><text x="340" y="135">H</text>
<circle r="5" cx="405" cy="55" /><text x="400" y="45">I</text>
<circle r="5" cx="411" cy="115" /><text x="408" y="135">J</text>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

30
docs/graphe-B-1.svg Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="430" height="150"
style="font-family: ui-sans-serif, system-ui, sans-serif;font-size:14px">
<g>
<circle cx="30" cy="25" r="5"/>
<text x="10" y="30">A</text>
<circle cx="115" cy="40" r="5"/>
<text x="125" y="45">B</text>
<circle cx="70" cy="120" r="5"/>
<text x="50" y="125">C</text>
<circle cx="150" cy="80" r="5"/>
<text x="160" y="85">D</text>
<circle cx="170" cy="140" r="5"/>
<text x="180" y="140">E</text>
<circle cx="200" cy="50" r="5"/>
<text x="195" y="40">H</text>
<circle cx="280" cy="40" r="5"/>
<text x="290" y="40">G</text>
<circle cx="250" cy="100" r="5"/>
<text x="260" y="110">F</text>
</g>
<g stroke="#000" stroke-width="2">
<line x1="30" y1="25" x2="115" y2="40"/>
<line x1="115" y1="40" x2="70" y2="120"/>
<line x1="70" y1="120" x2="150" y2="80"/>
<line x1="150" y1="80" x2="170" y2="140"/>
<line x1="30" y1="25" x2="150" y2="80"/>
<line x1="280" y1="40" x2="250" y2="100"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1018 B

165
docs/graphe.md Normal file
View File

@@ -0,0 +1,165 @@
# Théorie des graphes
> [!NOTE]
> La théorie des graphes est l'étude des structures mathématiques utilisées pour modéliser des relations par paires entre des objets. Un graphe est constitué de sommets qui sont reliés par des arêtes.
Un graphe **G** est constitué de deux ensembles **V** et **E**
- V est un ensemble fini mais non vide de sommets ;
- E est un ensemble darêtes.
Une arête est un ensemble de deux sommets appartenant à V.
### Vocabulaire
Les **sommets** sont appelés aussi des **nœuds**. En anglais ils sont appelés _**nodes**_ _**points**_ ou _**vertices**_ (sing. _vertex_).
Les **arêtes** sont appelés aussi des **arcs**. En anglais ils sont appelés _**links**_, _**lines**_ ou _**edges**_.
![Graphe](graphe-A.svg)
```
V = [A, B, C, D, E, F, G, H, I, J]
E = [{A, B}, {A, C}, {B, C}, {C, D}, {B, E}, {D, F}, {H, I}, {H, J}, {I, J}]
```
#### Notation :
Larête {A, B} pourra être notée A—B ou B—A.
### Définitions :
Soit un graphe G = {V , E}.
- L'**ordre** (_order_) d'un graphe est le nombre de sommets \|V\| ;
- La **taille** (_size_) d'un graphe est le nombre d'arêtes \|E\| ;
- deux sommets A, B ∈ V (qui appartiennent à l'ensemble des sommets V) sont **adjacents** sils sont reliés par une arête. Par exemple si A—B ∈ E (l'arête A-B appartient à l'ensemble E des arêtes) ;
- une arête A—B est **incidente** aux sommets A et B ;
- le **degré** (_degree_ or _valency_) dun sommet est le nombre darêtes qui lui sont incidentes.
- le **degré** d'un graphe est le maximum des degrés de ses sommets.
Dans notre exemple :
- A et B sont adjacents ;
- larête B—C est incidente à B et à C ;
- le degré de A est 2 ;
- le degré de B est 3 ;
- le degré de G est 0 ;
- le degré de E est 1 ;
- L'ordre du graphe est 10.
> La somme des degrés de tous les sommets d'un graphe est égal au double du nombre total d'arêtes.
{class=definition }
### Sous-graphes
Soit un graphe G = {V , E}.
Le graphe G' {V', E'} est un **sous-graphe** de G si les conditions suivantes sont réunies :
- V' ⊆ V et V ≠ ∅ (V' est inclus dans V et non nul) ;
- E' ⊆ E ;
- les sommets composant les arêtes de E' doivent appartenir à V'.
![Sous-graphe](graphe-A-sous.svg)
### Multigraphes / multigraph
Une paire de sommets peut être connectée par plus dune arête
![Sous-graphe](graphe-A-multi.svg)
### Graphes orientés / directed graph, digraph
Un graphe est orienté si ses arêtes, appelées **arcs** (_directed edges, directed links, directed lines, arrows or arcs_) dans ce cas, ont un sens de parcours.
- Une arête partant du sommet A et allant au sommet B est dénotée A → B.
- Le **degré entrant** dun sommet est le nombre darêtes arrivant à ce sommet.
- Le **degré sortant** dun sommet est le nombre darêtes sortant de ce sommet
![Sous-graphe](graphe-A-digraph.svg)
### Graphes étiqueté
Un graphe est étiqueté si ses arêtes (ou ses arcs dans le cas d'un graphe orienté) sont affectés d'étiquettes (mots, lettres, symboles, nombres, …)
### Graphes pondérés
Dans le cas où les étiquettes sont des nombres, le graphe est dit pondéré. Les étiquettes sont appelées les **poids** entre les sommets.
Le **poids** d'une chaîne est la somme des poids des arêtes constituant la chaîne.
De manière identique dans un graphe orienté Le poids d'un chemin est la somme des poids des arcs constituant le chemin.
### Boucles :
Une boucle c'est lorsqu'une arête a pour extrémités un seul et même sommet. L'incidence est compté double pour le sommet.
### Vide
Un graphe vide contient que des sommets et aucun arête.
![alt text](graphe-A-vide.svg)
### Complet
Un graphe est dit complet quand tous les sommets sont adjacents de tous les autres.
![alt text](graphe-A-complet.svg)
### Chaîne
Dans un graphe non orienté, une **chaîne** (en. _Walk_) est une suite finie non vide d'arête du graphe. Les sommets et les arêtes peuvent aparaître zéro, une ou plusieurs fois dans la chaîne.
La longueur d'une chaîne est celle de sa suite d'arêtes (un moins que la longueur sa suite de sommets).
### Trail
Dans un ... Les arêtes ne peuvent apparaître qu'une seule fois dans la chaîne.
#### Circuit
Un circuit est une trail de nœuds adjacents commençant et se terminant au même nœud. Les circuits ne répètent jamais les arêtes. Cependant, ils autorisent les répétitions de sommets dans la séquence.
### Chemin / Path
Dans un chemin Les arêtes ne peuvent apparaître qu'une seule fois dans la chaîne.
> Un chemin est un sous-graphe où le premier et le dernier nœuds ont un degré un, et les autres nœuds ont un degré deux.
{class=definition}
#### Cycle
Un cycle consiste en une séquence de sommets adjacents et distincts dans un graphe. La seule exception est que le premier et le dernier nœuds de la séquence de cycles doivent être le même nœud.
Un cycle est un chemin fermée.
- les sommets v1 , v2 , . . . , vn sont tous distincts,
### Chemin
La **source** de la chaîne est son premier sommet, et son **but** est son dernier sommet. Une chaîne est dite élémentaire si aucun sommet ne figure plus d'une fois dans la suite, à l'exception de la source et le but de la chaîne qui peuvent coïncider.
Parcours||Répetition de sommets|Répetition d'arêtes|Fermé
---|---|---|---|---
Walk||Oui | Oui |
Trail| |Oui | Non |Circuit
Chemin | Path | Non | Non | Cycle
### Chemins
Un chemin est un sous-graphe G = {V , E} où
- V = {v1, v2, ...,vn },
- E = {v1—v2 , v2—v3 , ... , vn-1—vn },
- n 1,
- les sommets v1 , v2 , . . . , vn sont tous distincts,
- les sommets v1 et vn sont appelés les **extrémités** du chemin.
La longueur dun chemin contenant n sommets est n - 1
### Graphes connexes
Un graphe G = {V , E} est connexe si pour **toute paire** de sommets A, B ∈ V, il existe un chemin à extrémités A et B dans G