adding graphopti

This commit is contained in:
Anthony Debucquoy
2025-09-19 17:34:25 +02:00
parent 2245c0a6da
commit 10b78a2016
12 changed files with 3293 additions and 0 deletions

View File

@ -7,3 +7,9 @@ title = "Cours UMONS"
[output.html]
mathjax-support = true
additional-js = ["mermaid.min.js", "mermaid-init.js"]
[preprocessor]
[preprocessor.mermaid]
command = "mdbook-mermaid"

35
mermaid-init.js Normal file
View File

@ -0,0 +1,35 @@
(() => {
const darkThemes = ['ayu', 'navy', 'coal'];
const lightThemes = ['light', 'rust'];
const classList = document.getElementsByTagName('html')[0].classList;
let lastThemeWasLight = true;
for (const cssClass of classList) {
if (darkThemes.includes(cssClass)) {
lastThemeWasLight = false;
break;
}
}
const theme = lastThemeWasLight ? 'default' : 'dark';
mermaid.initialize({ startOnLoad: true, theme });
// Simplest way to make mermaid re-render the diagrams in the new theme is via refreshing the page
for (const darkTheme of darkThemes) {
document.getElementById(darkTheme).addEventListener('click', () => {
if (lastThemeWasLight) {
window.location.reload();
}
});
}
for (const lightTheme of lightThemes) {
document.getElementById(lightTheme).addEventListener('click', () => {
if (!lastThemeWasLight) {
window.location.reload();
}
});
}
})();

2609
mermaid.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -58,6 +58,10 @@
# Bac3
- [Graph. et Opti.]()
- [définitions](./bac3/GraphOpti/Definitions.md)
- [Représentation](./bac3/GraphOpti/rpz.md)
- [Complexité](./bac3/GraphOpti/complexite.md)
- [Algos](./bac3/GraphOpti/Algos.md)
- [Statistiques]()
- [Introduction](./bac3/Stats/Introduction.md)

View File

@ -0,0 +1,40 @@
# Algos
## Décompisition de graph en niveaux
1) Calculer \\( d^- \\)
2) incrémenter *layer*
3) pour chaques sommets, si \\( d^-(s) = 0 \\) alors définir sommets à layer
4) retirer sommets
5) recommencer jusqu'a ce qu'il n'y ai plus de sommets à explorer.
Il est possible d'incrémenter layer à chaque fois qu'un sommet est trouvé pour optenir une nouvelle
numérotation du graph qui respecterait l'ordre.
Cet algo ne fonctionnerais pas pour des graph cycliques.
## Exploration de graph
- Exploration en **Largeur** avec une **file** (BFS)
- Exploration en **Profondeur** avec une **pile** (DFS)
## Composantes connexes
On parle de composantes connexe comme un sous-graph tel qu'il existe une chaine entre chaques paire
de sommets.
Un sommet qui augmente les composants connexe si enlevé est appelé un **point d'articulation**
pour un graph non-dirigé: pour chaque sommets, faire une exploration et regrouper les sommets
visités en composants puis le supprimer pour continuer l'exploration.
Pour un graph dirigé, faire une detection de composantes fortements connexes.
## Détection d'un graph bi-partie
Pour la detection d'un graph bi-partie, il faut pour chaques sommets passer d'une couleur à l'autre.
si ça n'est pas possible, le graph n'est pas bi-partie.

View File

@ -0,0 +1,42 @@
# Définitions
- **Un graph**: \\( G = (X, U) \\) où \\( X \\) est l'ensemble de sommets et \\( U \\) est
l'ensemble de couple de sommets
- **Orienté**: si le sens est pris en compte
- **Non-orienté**: sinon
- soit \\( u = (x, y) \in U \\) on a que \\( x \\) est le **prédécesseur** et \\( y \\) est le
**succésseur**.
Dans le cas d'un **graph orienté**,
- \\( d^+(x) \\) le demi-degré extérieur, le nombre d'axe sortant
- \\( d^-(x) \\) le demi-degré intérieur, le nombre d'axe entrant
- \\( d(x) \\) le degré, le nombre d'axe en lien
- La **Densité d'un graph**:
- \\( \frac{||U||}{||X||(||X||-1)} \\) en pourcentage si **orienté**.
- \\( \frac{2||U||}{||X||(||X||-1)} \\) en pourcentage si **non-orienté**.
- Nous avons régulièrement des graphs peu dense.
- Un **Chemin** de largeur q est une séquence d'arc
- Un **Cycle** si cette chaine boucle
- Un graph **Connexe** possède une lien entre tout sommets.
- Si ça n'est pas le cas, il possède des **sous-graph**
- Un graph **Fortement connexe** si une chaine existe entre tout sommets
- Un graph est **Eulérien** s'il passe exactement 1 fois par chaque sommets
- Jeu de l'enveloppe
- On peut chercher à minimiser le nombre d'arc dans un graph non-eulérien: postier chinois
- Un graph est **Hamiltonien** s'il passe exclusivement une fois par chaques sommets
- Voyageur de commerce
- Un graph **Bi-partie** peut être divisé en deux groupe. Les éméteurs et les receveurs.
- Un graph est **Planaire** si on peut lne pas croiser d'arc **dans le plan**
- utile pour les circuits imprimés
- sa desitée maximale est \\( A_{max} = 3(S-2) \\)
- Un **Arbre** ne posède pas de cycle. Il est **exactement** convexe
- Un ensemble d'arbre est une **Foret**

View File

@ -0,0 +1,26 @@
# Complexité
la **Complexité** \\( A \\) est une fonction non décroissante \\( f_A(k) \\) le nombre
d'instructions caractéristiques éxécuté par A pour une donnée de taille \\( k \\)
On parle de la **compléxité d'un problème** lorsque c'est celle du meilleur algo connu pour résoudre
ce problème.
Un problème d'optimisation est
\\[
f(s^*) = \min_{s \in S}\\{f(s)\\}
\\]
Un problème d'éxistance est un sous problème d'optimisation ou tq
Un problème d'optimisation est au moins aussi difficile que le problème d'existance associé
- **facile**: existe un algorithme polynomiale
- **difficile**: n'existe pas actuellement.
On donne la class **P** aux problèmes polynominaux et **NP** aux problème *vérifiables* en temps
polynominal.
\\[
NP \subseteq P
\\]

View File

@ -0,0 +1 @@
# Complexité

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,498 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="56.683983mm"
height="24.667534mm"
viewBox="0 0 56.683983 24.667534"
version="1.1"
id="svg1"
sodipodi:docname="liste_dadjacence.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="liste_dadjacence.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:connector-spacing="8"
inkscape:zoom="3.9408307"
inkscape:cx="140.32574"
inkscape:cy="52.78075"
inkscape:window-width="1910"
inkscape:window-height="1040"
inkscape:window-x="5"
inkscape:window-y="35"
inkscape:window-maximized="1"
inkscape:current-layer="svg1"
showguides="true">
<inkscape:page
x="0"
y="1.182968e-15"
width="56.683983"
height="24.667536"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<defs
id="defs1">
<marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1" />
</marker>
</defs>
<rect
style="opacity:0.99;fill:#ffffff;fill-opacity:0.148131;fill-rule:evenodd;stroke:#000000;stroke-width:0.121988;stroke-linecap:round;paint-order:fill markers stroke"
id="rect11"
width="56.562"
height="24.545538"
x="0.060988639"
y="0.060994796"
inkscape:export-filename="liste_dadjacence.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-76.657815,-136.16624)">
<g
id="g11"
transform="translate(17.227086,-3.6865978)"
inkscape:export-filename="liste_dadjacence.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect1"
width="4.9427452"
height="4.9427452"
x="73.681824"
y="146.02863"
inkscape:connector-avoid="true"
inkscape:export-filename="liste_dadjacence.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<text
xml:space="preserve"
style="font-size:5.64444px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="61.700718"
y="150.38524"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-size:5.64444px;line-height:1.25;stroke-width:0.264583"
x="61.700718"
y="150.38524">Head</tspan></text>
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect6"
width="4.9427452"
height="4.9427452"
x="78.681824"
y="146.02863"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect7"
width="4.9427452"
height="4.9427452"
x="83.681824"
y="146.02863"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect8"
width="4.9427452"
height="4.9427452"
x="88.681824"
y="146.02863"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect9"
width="4.9427452"
height="4.9427452"
x="98.681824"
y="146.02863"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect10"
width="4.9427452"
height="4.9427452"
x="93.681824"
y="146.02863"
inkscape:connector-avoid="true" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="75.597572"
y="149.68181"
id="text11"><tspan
sodipodi:role="line"
id="tspan11"
x="75.597572"
y="149.68181"
style="stroke-width:0.264583">1</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="80.156601"
y="149.68181"
id="text14"><tspan
sodipodi:role="line"
id="tspan14"
style="stroke-width:0.264583"
x="80.156601"
y="149.68181">4</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="85.176003"
y="149.68181"
id="text15"><tspan
sodipodi:role="line"
id="tspan15"
style="stroke-width:0.264583"
x="85.176003"
y="149.68181">7</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="90.176003"
y="149.68181"
id="text16"><tspan
sodipodi:role="line"
id="tspan16"
style="stroke-width:0.264583"
x="90.176003"
y="149.68181">7</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="100.17248"
y="149.68004"
id="text17"><tspan
sodipodi:role="line"
id="tspan17"
style="stroke-width:0.264583"
x="100.17248"
y="149.68004">8</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="100.17248"
y="154.08975"
id="tspan18" /></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="95.176003"
y="149.68181"
id="text19"><tspan
sodipodi:role="line"
id="tspan19"
style="stroke-width:0.264583"
x="95.176003"
y="149.68181">7</tspan></text>
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect19"
width="4.9427452"
height="4.9427452"
x="73.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<text
xml:space="preserve"
style="font-size:5.64444px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="61.700718"
y="160.54333"
id="text20"><tspan
sodipodi:role="line"
id="tspan20"
style="font-size:5.64444px;line-height:1.25;stroke-width:0.264583"
x="61.700718"
y="160.54333">Succ</tspan></text>
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect20"
width="4.9427452"
height="4.9427452"
x="78.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect21"
width="4.9427452"
height="4.9427452"
x="83.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect22"
width="4.9427452"
height="4.9427452"
x="88.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect23"
width="4.9427452"
height="4.9427452"
x="98.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect24"
width="4.9427452"
height="4.9427452"
x="93.681824"
y="156.18672"
inkscape:connector-avoid="true" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="75.116035"
y="159.8593"
id="text24"><tspan
sodipodi:role="line"
id="tspan24"
style="stroke-width:0.264583"
x="75.116035"
y="159.8593">2</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="80.184822"
y="159.83636"
id="text25"><tspan
sodipodi:role="line"
id="tspan25"
style="stroke-width:0.264583"
x="80.184822"
y="159.83636">3</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="85.156601"
y="159.8399"
id="text26"><tspan
sodipodi:role="line"
id="tspan26"
style="stroke-width:0.264583"
x="85.156601"
y="159.8399">4</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="90.597572"
y="159.8399"
id="text27"><tspan
sodipodi:role="line"
id="tspan27"
style="stroke-width:0.264583"
x="90.597572"
y="159.8399">1</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="95.184822"
y="159.83636"
id="text28"><tspan
sodipodi:role="line"
id="tspan28"
style="stroke-width:0.264583"
x="95.184822"
y="159.83636">3</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="100.1566"
y="159.8399"
id="text29"><tspan
sodipodi:role="line"
id="tspan29"
style="stroke-width:0.264583"
x="100.1566"
y="159.8399">4</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="105.1566"
y="159.8399"
id="text30"><tspan
sodipodi:role="line"
id="tspan30"
style="stroke-width:0.264583"
x="105.1566"
y="159.8399">4</tspan></text>
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect30"
width="4.9427452"
height="4.9427452"
x="103.68182"
y="156.18672"
inkscape:connector-avoid="true" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 76.153196,150.97137 v 5.21535"
id="path30"
inkscape:connector-type="polyline"
inkscape:connector-curvature="7"
inkscape:connection-start="#rect1"
inkscape:connection-end="#rect19" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 83.586106,150.97137 5.134181,5.21535"
id="path31"
inkscape:connector-type="polyline"
inkscape:connector-curvature="7"
inkscape:connection-start="#rect6"
inkscape:connection-end="#rect22"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 93.624569,150.17363 10.057251,6.81084"
id="path32"
inkscape:connector-type="polyline"
inkscape:connector-curvature="7"
inkscape:connection-start="#rect8"
inkscape:connection-end="#rect30"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 96.153196,148.5 v 0"
id="path33"
inkscape:connector-type="orthogonal"
inkscape:connector-curvature="6"
inkscape:connection-start="#rect10"
inkscape:connection-end="#rect10" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 98.586106,150.97137 5.134184,5.21535"
id="path34"
inkscape:connector-type="polyline"
inkscape:connector-curvature="7"
inkscape:connection-start="#rect10"
inkscape:connection-end="#rect30"
sodipodi:nodetypes="cc" />
<rect
style="opacity:0.99;fill:none;fill-opacity:0.501676;fill-rule:evenodd;stroke:#000000;stroke-width:0.0572549;stroke-linecap:round;paint-order:fill markers stroke"
id="rect35"
width="4.9427452"
height="4.9427452"
x="108.68182"
y="156.18672"
inkscape:connector-avoid="true" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 103.58611,150.97137 5.13418,5.21535"
id="path35"
inkscape:connector-type="polyline"
inkscape:connector-curvature="7"
inkscape:connection-end="#rect35"
sodipodi:nodetypes="cc"
inkscape:connection-start="#rect9" />
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="75.708694"
y="145.13986"
id="text2"><tspan
sodipodi:role="line"
id="tspan2"
style="stroke-width:0.264583"
x="75.708694"
y="145.13986">1</tspan></text>
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="80.323463"
y="145.1554"
id="text3"><tspan
sodipodi:role="line"
id="tspan3"
style="stroke-width:0.264583"
x="80.323463"
y="145.1554">2</tspan></text>
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="85.378494"
y="145.13704"
id="text4"><tspan
sodipodi:role="line"
id="tspan4"
style="stroke-width:0.264583"
x="85.378494"
y="145.13704">3</tspan></text>
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="90.355911"
y="145.13986"
id="text5"><tspan
sodipodi:role="line"
id="tspan5"
style="stroke-width:0.264583"
x="90.355911"
y="145.13986">4</tspan></text>
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="95.371437"
y="145.12294"
id="text6"><tspan
sodipodi:role="line"
id="tspan6"
style="stroke-width:0.264583"
x="95.371437"
y="145.12294">5</tspan></text>
<text
xml:space="preserve"
style="font-size:2.82223px;line-height:1.25;font-family:'Highway Gothic';-inkscape-font-specification:'Highway Gothic';stroke-width:0.264583"
x="100.36861"
y="145.13846"
id="text7"><tspan
sodipodi:role="line"
id="tspan7"
style="stroke-width:0.264583"
x="100.36861"
y="145.13846">6</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

32
src/bac3/GraphOpti/rpz.md Normal file
View File

@ -0,0 +1,32 @@
# Représentation
Les graphs peuvent être représenté à l'aide de matrice d'adjacence tel que
\\[
\begin{cases}
(i, j) = 1 &\text{ si } (i,j) \in U\\\\
0 &\text{ sinon }
\end{cases}
\\]
On y trouve facilement les successeurs en ligne et les prédécesseurs en colones. Mais il faut faire
énormément d'opérations pour vérifier un sommet...
Nous adoptons alors les **listes d'adjacences**. Cette structure possède 2 liste. Une est la
tête (head) et possède autant d'espace que de sommets et est remplie avec des pointeurs vers la
deuxième liste, celle-ci contient les successeurs d'un sommet.
![liste d'adjacence](./liste_dadjacence.png)
On peut alors transformer la liste de successeurs en liste de prédécésseurs
1) calculer \\( d^- \\)
2) placer dans le nouveau head \\( 1 + \sum^j_i d^-_i\\) où j est la position
3) pour chaques arcs \\( (i,j) \\) dans l'ordre de succ,
1) réduire \\( Head_j \\) de 1
2) placer i dans \\( Pred_{(Head_j)} \\)
![list d'adjacence_pred](liste_adjacence_pred.jpg)
**Remarque**: une fois un graph sous cette forme il est souvent plus difficile de le remttre sous
forme de dessin car les nodes n'ont pas de place définies.