Cours GRF du jour
This commit is contained in:
parent
07894cfb0e
commit
91dd3a3e87
389
grf/cours.tex
389
grf/cours.tex
@ -1124,115 +1124,176 @@ X=\bordermatrix{~ & 1 & 2 & 3 & 4 & 5 & 6 & ~\cr
|
|||||||
& {\color{yellow}14} & {\color{yellow}5} & {\color{yellow}73}\cr}
|
& {\color{yellow}14} & {\color{yellow}5} & {\color{yellow}73}\cr}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
%cours du 5/06
|
%cours du 5/06 et du 11/06
|
||||||
\section{Problèmes de flot maximal}
|
\section{Problèmes de flot maximal}
|
||||||
Applications de 2 sortes :
|
|
||||||
-> type réseau (de communication, routier, fluvial)
|
|
||||||
Comment faire passer les éléments pour acheminer le débit maximun tout en
|
|
||||||
respectant toutes les contraintes de capacité ?
|
|
||||||
%ici faire petit dessin :)
|
|
||||||
-> type affectation -> exemple : graphe biparti
|
|
||||||
%ici faire petit dessin :)
|
|
||||||
employés :
|
|
||||||
-couplage de cardinal maximun (employé, tâche)
|
|
||||||
(1, b) -> coupable de cardinal 1
|
|
||||||
(1, a)
|
|
||||||
(2, b) cardinal 2
|
|
||||||
|
|
||||||
Définitions :
|
Il existe 2 types d'applications~:
|
||||||
Un réseau de transport est un graphe sans boucle qui comporte une entrée ou une
|
\begin{itemize}
|
||||||
source et une sortie ou puits.
|
\item type réseau (de communication, routier, fluvial)~: comment faire
|
||||||
%graphe ici
|
passer les éléments pour acheminer le débit maximun tout en
|
||||||
-Chaque arc u est doté d'une capacité c(u)
|
respectant toutes les contraintes de capacité~?
|
||||||
On s'intéresse à une fonction, appelée le flot. On associe à chaque arc une
|
\item type affectation, par exemple un graphe biparti.
|
||||||
fonction f(u) = flux transitant dans l'arc u.
|
\end{itemize}
|
||||||
$flot = \{\ flux\ \}_\text{tous les arcs}$
|
|
||||||
f(u): inconnue
|
|
||||||
c(u): donnée
|
|
||||||
-Le flot doit respecter 2 types de contraintes :
|
|
||||||
(1) $\forall{u}: 0=<f(u)<=c(u)$
|
|
||||||
(2) $\forall$ le noeud x dans le réseau, loi de kirshoff.
|
|
||||||
[si f(u)=c(u), on dit que l'arc u est saturé]
|
|
||||||
|
|
||||||
|
\paragraph{Définition} Un \emph{réseau de transport} est un graphe
|
||||||
|
orienté sans boucle qui comporte une entrée (ou une source $s$) et une
|
||||||
|
sortie (ou puits $p$).\\
|
||||||
|
|
||||||
$$\sum\text{flux entrants}=\sum\text{flux sortants}$$ $\forall$ le noeud x
|
Chaque arc $u$ est doté d'une capacité $c(u)\geq 0$, représenté $[]$
|
||||||
-Tout flot qui respect dans le réseau les contraintes de type (1) et (2) est
|
|
||||||
dit valide:
|
|
||||||
exemple : flot nul.
|
|
||||||
val(f) se définit de 3 manières différentes.
|
|
||||||
(1) Valeur à la source [hypothès: pas de flux entrants dans s]
|
|
||||||
$$val(f)=\sum\text{flux des arcs issues de s}$$
|
|
||||||
= Chaque arc u est doté d'une capacité c(u)
|
|
||||||
(2) Valeur au puits p [pas de flux sortants de p]
|
|
||||||
$$val(f)=\sum\text{flux des arcs entrants dans p}$$
|
|
||||||
(3) Valeur au niveau d'une coupe $$(S, \bar{S})$$ séparant la source du puits.
|
|
||||||
S=ensemble de sommets du réseau qui contient
|
|
||||||
obligatoirement s et qui ne contient pas p.
|
|
||||||
$$\bar{S} = \text{ensemble de sonnets complémentaires}$$.
|
|
||||||
$$val(f)=(\sum{f(S,\bar{S})}) - (\sum{f(\bar(S), S)})$$
|
|
||||||
$\sum{f(S,\bar{S})}$ : somme des flux des ars ayant leur origine dans S
|
|
||||||
et leur extrémité dans $$\bar{S}$$
|
|
||||||
$\sum{f(\bar(S), S)}$ : somme des flux des arcs ayant leur origine dans
|
|
||||||
$$\bar{S}$$ et leur extrémité dans S
|
|
||||||
Propriété : $\forall$ la coupe $$(S, \bar{S})$$ considérée, la valeur du flot
|
|
||||||
mesurée au niveau de cette coupe est la même : c'est val(f)
|
|
||||||
|
|
||||||
-Capacité d'une coupe $$(S,\bar{S})$$
|
On s'intéresse à une fonction, appelée le flot.\\
|
||||||
$c(S,\bar{S}) = \sum{c(u)}_{arcs allant de S vers \bar{S}}$
|
|
||||||
Propriétés (admises) :
|
|
||||||
[1] $\forall$ la coupe $$(S,\bar{S})$$ considérée, la valeur du flot mesurée
|
|
||||||
au niveau de cette coupe est la même
|
|
||||||
[2] Soit f un flot $\forall$ établi dans un réseau de transport
|
|
||||||
(1) $$val(f) =< c(S,\bar{S})$$, $\forall$ la coupe $$(S,\bar{S})$$ considérée
|
|
||||||
(2) Si on trouve un flot f et une coupe $$(S,\bar{S})$$ tels que :
|
|
||||||
$$val(f) = c(S,\bar{S})$$, alors le flot est de valeur maximale
|
|
||||||
-> c'est le flot optimal
|
|
||||||
|
|
||||||
Théoreme de la coupe et du flot :
|
On associe à chaque arc une fonction $f(u)=\text{flux transitant dans
|
||||||
Flot de valeur maximum $$\equiv$$ coupe de capacité minimal
|
l'arc} u$. $flot=\text{flux}_\text{tous les arcs}$ $f(u)$~:
|
||||||
(3) Lorsque le flot maximal (et la coupe de $$(S,\bar{S})$$ capacité minimale) :
|
inconnue $c(u)$~: donnée. C'est ce que l'on appel un \emph{flot}.
|
||||||
{ Pour tout arc de $$(S,\bar{S})$$, il est saturé: $$f(u)=c(u)$$
|
|
||||||
{ Pour tout arc de $$(\bar{S},S)$$, il est de flux nul: $$f(u) = 0$$
|
|
||||||
|
|
||||||
Détermination du flot maximal; algorithme de FORD-FULKERSON
|
Celui-ci doit respecter 2 types de contraintes~:
|
||||||
-On suppose établi un certain flot dans le réseau de transport (peut être
|
\begin{enumerate}
|
||||||
un flôt de bonne qualité déterminé empiriquement, ou alors peut être le
|
\item $\forall{u} : 0\leq f(u) \leq c(u)$
|
||||||
flot nul)
|
\item $\forall\text{ noeud }x$ dans le réseau, la loi de
|
||||||
-On cherche s'il existe dans le réseau une chaîne augmentante:
|
Kirshoff est vérifiée. (si $f(u)=c(u)$, on dit que l'arc $u$ est saturé).
|
||||||
-> si oui, alors on exploite cette chaine => nouveau flot de valeur supérieur
|
\end{enumerate}
|
||||||
-> si non, alors le flot considéré est optimal.
|
|
||||||
-Chaîne augmentante : chaîne reliant s à p:
|
$$\sum\text{flux entrants}=\sum\text{flux sortants}$$
|
||||||
%ici schema
|
|
||||||
-Cette chaîne est dite augmentante si et seulement si il existe un nombre
|
Un flot est valide si et seulement si, il respecte les deux conditions
|
||||||
positif $\alpha$ que l'on peut ajouter au flux de tous les arcs à l'endroit
|
ci-dessous. exemple~: le flot nul.
|
||||||
(sans aller au delà de leur saturation) et retrancher de tous les arcs à
|
|
||||||
l'envers (sans aller en-dessous du flux nul)
|
\paragraph{Définition} une \emph{coupe} sépare la source du puits.
|
||||||
-Exploiter une chaine augmentante, c'est rechercher le $\alpha$ maximum.
|
|
||||||
|
On appel $S$ l'ensemble de sommets incluant obligatoirement $s$ et excluant
|
||||||
|
obligatoirement $p$.
|
||||||
|
|
||||||
|
$\bar{S}$ est l'ensemble de sommets complémentaires.
|
||||||
|
|
||||||
|
$(S,\bar{S})$ est une coupe séparant la source du puits.\\
|
||||||
|
|
||||||
|
\paragraph{Propriété} $\forall$ coupe $(S, \bar{S})$ considérée, la valeur
|
||||||
|
du flot mesurée au niveau de cette coupe est la même~: c'est $val(f)$
|
||||||
|
|
||||||
|
\paragraph{Définition} La capacité d'une coupe se définit par~:
|
||||||
|
$$c(S,\bar{S}) = \sum{c(u)}_{arcs allant de S vers \bar{S}}$$
|
||||||
|
|
||||||
|
La valeur d'un flot ($val(f)$) se définit de 3 manières différentes~:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Valeur à la source (hypothèse~: pas de flux entrants dans $s$)
|
||||||
|
$$val(f)=\sum_{\text{arcs issus de }s}f(u)$$
|
||||||
|
\item Valeur au puits $p$ (pas de flux sortants de $p$)
|
||||||
|
$$val(f)=\sum_{\text{flux des arcs entrants dans }p}f(u)$$
|
||||||
|
\item Valeur au niveau d'une coupe $(S, \bar{S})$ quelconque.
|
||||||
|
$$val(f)=\sum_{\text{arcs allant de }S\text{ vers }\bar{S}}f(u)
|
||||||
|
\sum_{\text{arcs allant de }\bar{S}\text{ vers }S}f(u)$$
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\paragraph{Résultats théoriques}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $\forall$ coupe $(S,\bar{S})$ considérée, la valeur du flot mesurée au
|
||||||
|
niveau de cette coupe est la même~;
|
||||||
|
\item $\forall\text{ flot }f$ et $\forall\text{ coupe }(S, \bar{S})$, établi dans un réseau de
|
||||||
|
transport~: $Val(f)\leq c(S,\bar{S})$.\\
|
||||||
|
Si on trouve un flot $f$ et une coupe $(S,\bar{S})$ tels que~: $Val(f) =
|
||||||
|
c(S,\bar{S})$, alors le flot est de valeur maximale, c'est le flot optimal
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsection{Théorème du float maximal}
|
||||||
|
|
||||||
|
Le flot de valeur maximum est identique à la coupe de capacité minimale.
|
||||||
|
|
||||||
|
La coupe $(S,\bar{S})$ de capacité minimale respecte les propriétés suivantes~:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Tout arc $u$ allant de $S$ vers $\bar{S}$ dont $f(u)=c(u)$ est dit saturé.
|
||||||
|
\item Tout arc $u$ allant de $\bar{S}$ vers $S$ est de flux nul ($f(u)=0$).
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Lorsque le flot est maximal (et que la coupe de $(S,\bar{S})$ est de capacité
|
||||||
|
minimale)~: { Pour tout arc de $(S,\bar{S})$, il est saturé: $f(u)=c(u)$ { Pour
|
||||||
|
tout arc de $(\bar{S},S)$, il est de flux nul~: $f(u) = 0$
|
||||||
|
|
||||||
|
\subsection{Algorithme de Ford-Fulkerson}
|
||||||
|
|
||||||
|
Cet algorithme a pour but de déterminer le flot optimal dans un réseau de
|
||||||
|
transport donné.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item On part d'un flot initial établi dans le réseau (soit un flot établi à
|
||||||
|
la main, soit un flot nul)~;
|
||||||
|
\item on cherche s'il existe dans le réseau une \emph{chaîne augmentante}~
|
||||||
|
reliant $s$ à $p$~:
|
||||||
|
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
|
thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
|
||||||
|
\node[main node] (1) {$s$};
|
||||||
|
\node[main node] (2) [right of=1] {};
|
||||||
|
\node[main node] (3) [right of=2] {};
|
||||||
|
\node[main node] (4) [right of=3] {};
|
||||||
|
\node[main node] (5) [right of=4] {$p$};
|
||||||
|
|
||||||
|
\path[every node/.style={font=\sffamily\small}]
|
||||||
|
(1) edge [->, right] node[right] {$[6]$ 2} (2)
|
||||||
|
(3) edge [->, right] node[right] {$[3]$ 3} (2)
|
||||||
|
(3) edge [->, right] node[right] {$[12]$ 5} (4)
|
||||||
|
(4) edge [->, right] node[right] {$[7]$ 1} (5)
|
||||||
|
;
|
||||||
|
\end{tikzpicture}
|
||||||
|
\item Cette chaîne est dite \emph{augmentante} si et seulement s'il existe un
|
||||||
|
nombre positif $\alpha$ que l'on peut ajouter au flux de tous les arcs à
|
||||||
|
l'endroit (sans aller au delà de leur saturation) et retrancher de tous les
|
||||||
|
arcs à l'envers (sans aller en-dessous du flux nul). Ici~:
|
||||||
|
$\alpha_{\max}=3$ et $\alpha_{\min}=\left(\min\left(c(u)-f(u)\right);\min
|
||||||
|
f(u)\text{ des arcs à l'envers}\right)$
|
||||||
|
\item Exploiter une chaine augmentante, c'est rechercher le $\alpha$ maximum.
|
||||||
$$\alpha = [Min(c(u)-f(u)); Min f(u)]$$
|
$$\alpha = [Min(c(u)-f(u)); Min f(u)]$$
|
||||||
Algo de Ford-Fullkerson
|
\end{itemize}
|
||||||
(1) Faire passer un flot au pigé
|
|
||||||
(2) Améliorer ce flot pour le rendre complet -> tout chemin de s à p comporte
|
|
||||||
au moins 1 arc saturé.
|
|
||||||
|
|
||||||
(3) * marquer l'entrée du réseau
|
\subsubsection{Principe de l'algorithme de Ford-Fullkerson}
|
||||||
* marquer l'extrémité terminale J de tout arc (I,J) non saturé dont
|
\begin{itemize}
|
||||||
l'extrémité initiale est déjà marquée
|
\item On part d'un flot initial~;
|
||||||
* marquer l'extrémité initiale K de tout arc (K,L) de flux non nul dont
|
\item On cherche s'il existe une chaîne augmentante reliant $s$ à $p$.\\
|
||||||
l'extrémité terminale L est déjà marquée.
|
Si oui~: on exploite cette chaîne, on augmente $\alpha$ de la valeur du
|
||||||
|
flot et on recommence cette étape.\\
|
||||||
|
Si non~: on a atteint le flot optimal.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
Ces deux phaes de marquage avant et en arriere sont alternées jusqu'au blocage
|
\subsubsection{Recherche d'une chaîne augmentante dans le réseau}
|
||||||
-> 2 cas de figure :
|
Procédure de marquage des sommets.
|
||||||
(a) on a pu marquer p -> alors il existe une chaîne augmentante identifiée à
|
\begin{itemize}
|
||||||
l'aide des marques. On explicite cette chaîne (recherche du $\alpha$)
|
\item marquer (on note $+$ à côté du sommet) l'entrée du réseau~;
|
||||||
=> augmentationn de $\alpha$ de la valeur du flot
|
\item \textbf{marquage en avant~:} marquer ($+I$ à côté du sommet $J$)
|
||||||
(b) on n'a pas pu marquer p => il n'existe pas de chaîne augmentante reliant
|
l'extrémité terminale $J$ de tout arc $(I,J)$ non saturé et dont
|
||||||
s à p : le flot considéré est optimal.
|
l'extrémité initiale est déjà marquée~;
|
||||||
Remarque : à l'issue de l'étape p, la coupe $$(S,\bar{S})$$ où S = liste des
|
\item \textbf{marquage en arrière~:} marquer ($-L$ à côté du sommet $J$)
|
||||||
sommets marqués est la coupe de capacité minimale.
|
l'extrémité initiale $K$ de tout arc $(K,L)$ de flux non nul dont
|
||||||
|
l'extrémité terminale $L$ est déjà marquée.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
Application (polycop. p103)
|
Ces deux phaes de marquage avant et en arriere sont alternées jusqu'au blocage.
|
||||||
-2 ports A et B -> quantités 10 et 10
|
|
||||||
-marchandises demadée dans 3 ports C, D et E selon les quantités 9, 12 et 7
|
Si au moment du blocage, on constate que l'on a pu marqué $p$, cela signifie
|
||||||
|
que le flot considéré n'est pas encore optimal. On se sert alors des marques
|
||||||
|
pour identifier les différents sommets constituant la chaîne augmentante.
|
||||||
|
|
||||||
|
Si au moment du blocage, on constate que l'on a pas pu marqué $p$, dans ce cas
|
||||||
|
le flot considéré est optimal.
|
||||||
|
|
||||||
|
\paragraph{Remarque} Si l'on considère la dernière itération de marquage
|
||||||
|
réalisé (où l'on n'a pas pu marqué $p$), on a la coupe $(S,\bar{S})$ de
|
||||||
|
capacité minimale où $S$ est constitué de la liste des sommets marqués.
|
||||||
|
|
||||||
|
On véfifie que la valeur de cette capacité est égale à la valeur du flot
|
||||||
|
obtenu~: le flot maximal = la coupe de capacité minimale.
|
||||||
|
|
||||||
|
\paragraph{Remarque} Pour diminuer le nombre d'itération de l'algorithme de
|
||||||
|
Ford-Fullkerson, on s'efforce généralement de partir d'un \emph{flot initial
|
||||||
|
complet} (tout chemin de $s$ à $p$ comporte au moins un arc saturé).
|
||||||
|
|
||||||
|
\paragraph{Attention} Ne pas confondre les problèmes de flot optimal avec les
|
||||||
|
problèmes de plans de transport de coût minimal.
|
||||||
|
|
||||||
|
\subsection{Application (poly. p103)}
|
||||||
|
\begin{itemize}
|
||||||
|
\item 2 ports $A$ et $B$~: quantités 10 et 10~;
|
||||||
|
\item marchandises demandée dans 3 ports $C$, $D$ et $E$ selon les quantités
|
||||||
|
9, 12 et 7.
|
||||||
|
\end{itemize}
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
@ -1254,45 +1315,113 @@ Application (polycop. p103)
|
|||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
(1) Peut-on satisfaire toutes les demandes ? Non.
|
\begin{enumerate}
|
||||||
offre totale = $10+10=20$
|
\item Peut-on satisfaire toutes les demandes~?\\
|
||||||
demande totale = $9+12+7=28$
|
Non, car l'offre est inférieure à la demande~:\\
|
||||||
|
offre totale = $10+10=20$~; demande totale = $9+12+7=28$
|
||||||
|
\item Comment organiser les expéditions de façon à louer un maximun
|
||||||
|
de marchandise~?
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
(2) Comment organiser les expéditions de façon à louer un maximun
|
\begin{itemize}
|
||||||
de marchandise ?
|
\item transformer ce problème en un problème de recherche du flot maximal dans
|
||||||
|
un réseau de transport~;
|
||||||
-transformer ce problème en un problème de recherche du flot maximal dans
|
\item résoudre par l'algo de Ford-Fulkerson~;
|
||||||
un réseau de transport.
|
\item \textbf{initialisation~:} on s'efforce de démarrer l'algo à partir d'un
|
||||||
-résoudre par l'algo de Ford-Fulkerson
|
flot complet (tout chemin de $s$ à $p$ comporte au moins 1 arc saturé)~:
|
||||||
-Initialisation -> on s'efforce de démarrer l'algo à partir d'un flot complet
|
\begin{itemize}
|
||||||
(tout chemin de s à p comporte au moins 1 arc saturé :
|
\item flux 7 de $A$ vers $C$~;
|
||||||
* flux 7 de A vers C
|
\item flux 9 de $C$ vers $p$~;
|
||||||
* flux 9 de C vers p
|
\item Kirschoff au noeud $C$~: flux 2 de $B$ vers $C$ (OK car < capacité
|
||||||
* Kirschoff au noeud C => flux 2 de B vers C (OK car < capacité de 5)
|
de 5)~;
|
||||||
* flux 10 de s vers A
|
\item flux 10 de $s$ vers $A$~;
|
||||||
* Kirschoff en A => flux 3 de A vers D (OK car < capacité de 4)
|
\item Kirschoff en $A$~: flux 3 de $A$ vers $D$ (OK car < capacité de
|
||||||
* Kirschoff en D => flux 3 de D vers p (OK car < capacité de 12)
|
4)~;
|
||||||
* on sature B-E
|
\item Kirschoff en $D$~: flux 3 de $D$ vers $p$ (OK car < capacité de
|
||||||
* Kirschoff au moeud E => flux de 5 sur E-p (OK car < capacité de 7)
|
12)~;
|
||||||
* Kirshchoff au noeud B => flux de 7 sur s-B (OK car < capacité de 10)
|
\item on sature $B-E$~;
|
||||||
|
\item Kirschoff au n\oe ud $E$~: flux de 5 sur $E-p$ (OK car < capacité
|
||||||
|
de 7)~;
|
||||||
|
\item Kirshchoff au noeud $B$~: flux de 7 sur $s-B$ (OK car < capacité de
|
||||||
|
10).
|
||||||
|
\end{itemize}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
On a un flot complet de valeur 17.
|
On a un flot complet de valeur 17.
|
||||||
|
|
||||||
On a pu marquer p => le flot considéré n'est pas optimal :
|
On a pu marquer $p$~: le flot considéré n'est pas optimal :
|
||||||
|
|
||||||
%faire un graphe avec ça : s ->[10](7) B ->[5](2) C <-[7](7) A ->[4](3) D ->[12](3) p
|
%faire un graphe avec ça : s ->[10](7) B ->[5](2) C <-[7](7) A ->[4](3) D ->[12](3) p
|
||||||
%devient 8, 3, 6, 4, 4
|
%devient 8, 3, 6, 4, 4
|
||||||
$\alpha=1$ -> flot: de 17 à 18.
|
\begin{figure}[h]
|
||||||
-Le nouveau flot est encore complet.
|
\centering
|
||||||
-Le nouveau flot est de valeur 18 ($10 + 8$ ou $9 + 4 + 5$)
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
2e itération -> on ne peut pas marquer p => le flot optimal est de valeur 18
|
thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
|
||||||
-> La coupe où S = ensemble des sommets marqués en dernière itération
|
\node[main node] (s) {$s$};
|
||||||
La capacité de la coupe $$(S,\bar{S})$$ est :
|
\node[main node] (A) [right of=s]{$A$};
|
||||||
$c(C,p) + c(A,D) + c(B,E) = [9] + [4] + [5] = 18$
|
\node[main node] (B) [right of=A]{$B$};
|
||||||
|
\node[main node] (C) [right of=B]{$C$};
|
||||||
|
\node[main node] (D) [right of=C]{$D$};
|
||||||
|
\node[main node] (p) [right of=D]{$p$};
|
||||||
|
|
||||||
|
\path[every node/.style={font=\sffamily\small}]
|
||||||
|
(s) edge [right] node[right] {[10] 8} (A)
|
||||||
|
(A) edge [right] node[right] {[5] 3} (B)
|
||||||
|
(B) edge [right] node[right] {[7] 6} (C)
|
||||||
|
(C) edge [<-, right] node[right] {[4] 4} (D)
|
||||||
|
(D) edge [right] node[right] {[12] 4} (p)
|
||||||
|
;
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Exploitation de la chaîne augmentente avec $\alpha$ : le flot passe de 17 à 18.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Le nouveau flot est encore complet~;
|
||||||
|
\item le nouveau flot est de valeur 18 ($10 + 8$ ou $9 + 4 + 5$)~;
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
2\ieme itération~: on ne peut pas marquer $p$, donc le flot optimal est de
|
||||||
|
valeur 18.
|
||||||
|
|
||||||
|
La coupe où $S$ équivaut à l'ensemble des sommets marqués en dernière
|
||||||
|
itération.
|
||||||
|
|
||||||
|
La capacité de la coupe $(S,\bar{S})$ est~: $c(C,p) + c(A,D) + c(B,E) = [9] +
|
||||||
|
[4] + [5] = 18$
|
||||||
|
|
||||||
On a trouvé une coupe dont la capacité est alors à la valeur d'un flot.
|
On a trouvé une coupe dont la capacité est alors à la valeur d'un flot.
|
||||||
-> C'est que le flot es de valeur maximum et la coupe est de la capacité mini
|
|
||||||
Remarque: tous les acs de $$(S,\bar{S})$$ sont saturés
|
C'est que le flot de valeur maximum et la coupe est de la capacité minimal.
|
||||||
(tous les arcs de $$(\bar{S},S)$$ sont de flux nul)
|
|
||||||
|
\paragraph{Remarque} Tous les arcs de $(S,\bar{S})$ sont saturés (tous les
|
||||||
|
arcs de $(\bar{S},S)$ sont de flux nul)
|
||||||
|
|
||||||
%ici graphe et tableau exo
|
%ici graphe et tableau exo
|
||||||
|
\begin{figure}[h]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
|
thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
|
||||||
|
\node[main node] (A) {$A$};
|
||||||
|
\node[main node] (s) [below left of=A]{$s$};
|
||||||
|
\node[main node] (B) [below right of=s]{$B$};
|
||||||
|
\node[main node] (C) [below right of=A]{$C$};
|
||||||
|
\node[main node] (D) [right of=A]{$D$};
|
||||||
|
\node[main node] (E) [right of=B]{$C$};
|
||||||
|
\node[main node] (p) [right of=C]{$p$};
|
||||||
|
|
||||||
Flot max de 4 (En partant du flot nul)
|
\path[every node/.style={font=\sffamily\small}]
|
||||||
|
(s) edge [right] node[right] {[10] 10} (A)
|
||||||
|
(s) edge [right] node[right] {[10] 8} (B)
|
||||||
|
(A) edge [right] node[right] {[7] 6} (C)
|
||||||
|
(A) edge [right] node[right] {[4] 4} (D)
|
||||||
|
(B) edge [right] node[right] {[5] 3} (C)
|
||||||
|
(B) edge [right] node[right] {[5] 5} (E)
|
||||||
|
(C) edge [right] node[right] {[9] 9} (p)
|
||||||
|
(D) edge [right] node[right] {[12] 4} (p)
|
||||||
|
(E) edge [right] node[right] {[5] 7} (p)
|
||||||
|
;
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Flot maximal de 4 (En partant du flot nul)
|
||||||
|
Reference in New Issue
Block a user