Professional Documents
Culture Documents
NON
Il existe au moins un
circuit.
OUI
Eventuellement,
obtention d'un
circuit en
appliquant
l'algorithme 2.3.5.
NON
OUI
A ne contient
que des zros.
ik 1 ;
k=k+1
I I ik 1
ij I /
ai
k j
OUI
NON
NON
OUI
X(i) =
FIN
Chapitre 3
3.2.1 Version rcursive du parcours en profondeur d'un graphe.
3.2.1.1 Algorithme gnral
Le programme principal a la structure suivante :
var i : integer ;
gr : GRAPHE ;
marque : array[1..n] of boolean ;
.
begin
for i:=1 to n do marque[i]:=false ;
for i:=1 to n do
if not (marque[i]) then prof(i,gr,marque)
end;
La procdure rcursive prof de parcours en profondeur ressemble :
procedure prof(i : Integer; g : GRAPHE; var M : array[1..n] of boolean);
{ s est un sommet o commence le parcours }
var i,v : Integer ; { v est un sommet }
M[s] := true ;
{ on marque le sommet s }
{ 1 : premire rencontre avec s }
for j :=1 to n do d+ de s dans g do
begin
v:=j ime- succ-de s dans g ; { rencontre de larc (s,v) laller }
if not (M[v]) then prof(v,g,M) ; { rencontre de larc (s,v) au retour }
end
{ 2 : dernire rencontre avec s }
end prof ;
Chapitre 5
Organigramme de l'algorithme de coloration de Welsh et Powell
k=1
N=M
Colorer par la couleur ck la premire ligne non
encore colore dans N, ainsi que la colonne
correspondante.
N = ensemble des lignes non encore colores
ayant un zro dans les colonnes de couleur ck
NON
N=
OUI
k=k+1 ;
Changer de
couleur
NONN
Toutes
les
lignes
sont
colorie
s
OUI
STOP
La coloration
obtenue est une
k-coloration
xX-C
OUI
Marquer + un tel sommet x
XM=XM{x} ; XN=XN - {x}
NON
y(x)YN
(1)
OUI
Soit y*YM - C ;
Dterminer la chane
A=(x,,y*)
commennant en un
sommet marqu + et
qui a conduit au
marquage de y*
x(y)CXN (2)
o yYM
OUI
Marquer (-,y) un tel sommet x
XM=XM{x} ; XN=XN - {x}
G=(X,E
Tous les yYM
)
appartiennent C
NON
F possede-il n-1
lments ?
OUI
NON
k=k+1
OUI
Existe-t-il un
cycle dans
F{ek} ?
NON
F= F {ek}
Algorithme de Kruskal
Stop
Chapitre 6
1=0
j=, j1
(chemin plus court)
j=-, j1
OUI
Marquer xj de
j = i + l i j
STOP - Identification
du (des) chemin(s)
cherch(s) par
l'algorithme 6.3.2
xk=x1
OUI
1(0)=0
j(0)=, j1
(chemin plus court)
j(0)=-, j1
(chemin plus long)
k=0
k=k+1
j(k)=
1(k)=0
OUI
j(k)=
xj tel que :
j(k) j(k-1)
NON
STOP - Identification
du (des) chemin(s)
cherch(s) par
l'algorithme 6.3.2
Algorithme de Bellman-Kalaba
k=k+1
OUI
xj Nk
non marqu
Marquer xj
Fj={ i + l i j | xiN1N2Nk-1}
j=min Fj
j=maxFj
OUI
NON
xn marqu
D={x1} ;
1=0;
j=l1j, j1
k=min j
Voir remarque
xjD
D=D { xk }
j=min { j, k+ lkj }
NON
xn D
OUI
Algorithme de Dijkstra
Chapitre 7
Algorithme de Ford Fulkerson:
Version 1
T=(X,U,C)
STOP. Le flot
obtenu est un flot
NON
pour un x i marqu
de valeur
minimale
(II) j i >0
OUI
Choisir un tel x j
Marquage direct de x j :
m j=[i ; j ; + ]
Marquage indirect de x j :
avec
j=min{ i , r i j=c i j-
xn marqu
(I)
i j
cas (I) ou
cas (II)
m j = [i ; j ; -] avec
j=min { i , r
i j
j i
NON
OUI
()= () + n
i j = i j + n
(II)
j=n
m j=
(I)
(I) [ i ; j ; + ]
(II) [ i ; j ; - ]
j=i
Effacer m j , j1
OUI
j=1
NON
(II)
ji = ji - n
T = (X , U ,C)
Flot ralisable initial , de valeur ()
STOP. Le flot
obtenu est un flot de
valeur maximale.
c i j - i j si ( x i , x j ) U
r ij =
ij
si (x i , x j) - U
= min { r i j / (x i , x j)
ji +
si ( x i , x j ) U
ij -
si ( x i , x j ) - U
ij=
= (X , U ,C) ; f ; 0
Flot ralisable initial = { i j =0 , (xi,xj)U }, de
valeur ()=0
Construire le graphe d'cart G( ) = ( X , U( )) : (x i , x j ) U( ) si
c i j - i j si ( x i , x j ) U
r ij =
ji
si (x i , x j) - U
= min { r i j / (x i , x j)
()=()+
NON
OUI
0 ()
i j = i j + 0 - () si ( x i , x j ) U
i j = i j + si ( x i , x j ) U
i j = i j - 0 + () si ( x i , x j ) - U
i j = i j - si ( x i , x j ) - U
Chapitre 8
C ) LALGORITHME DU SIMPLEXE : Principe.
Considrons le cas o lensemble des solutions ralisables
forment un polydre convexe. On sait que la solution
optimale est un sommet de ce polydre. Seuls les sommets
doivent tre examins pour atteindre cette solution
optimale.
Il y a identit entre sommet et solution de base ralisable :
pour atteindre l'optimun, il suffit d'examiner les solutions
de base ralisables.
Le principe de l'algorithme est le suivant :
a) Dterminer la premire solution de base ralisable;
b)
c)
La mme procdure est applique lorsque l'ensemble polydrique convexe des solutions
ralisables est non born.
cj zj > 0 tel
que x i j 0
FIN
la solution optimale
est atteinte
FIN
Max=+
(Polydre non born)
i=1,,n
Changement de base
(1) Dtermination
x'i = xi (xi k / xr k) xr
x'i j = xi j (xi k / xr k) xr j
-z'0 = -z0 (xr / xr k) (ck zk)
cj z'j = cj zj (xr j /xr k) (ck-zk)
PL maximum.
j1aij x jvib
Mthode M
Rsoudre le PL :
n
i 1
max z c j x j M vi
max z1vi
i 1
v i = 0 , i=1m
PHASE 1
Rsoudre le PL:
NON
NON
v i = 0 , i=1m
OUI
FIN
La solution
optimale du PL de
dpart est atteinte
OUI
FIN
Pas de solution
ralisable
PHASE 2
Rsoudre le PL:
max z2 c j x j
j 1
j1aij x jb
xj 0, j=1,,n ; i=1,,m
en prenant comme solution