algorithmes recherche opérationnelle et théorie des graphes
TRANSCRIPT
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
1/23
Chapitre 22.3.4. Organigramme de l'algorithme fondé sur le test 2 permettant de testant
l'absence de circuit.
Il existe dans A uneligne i ne comportant
que des zéros.
Supprimer dans A la ligne et lacolonne i.Soit R la matrice résultante..Redéfinir A en posant A =R
A ne contientque des zéros.
OUI
NON
OUINON
Eventuellement,obtention d'uncircuit enappliquantl'algorit me !.".#.
Il existe au moins uncircuit.
e graphe est sans circuit.
Soit M la matrice d'ad$acence d'ungrap e %.&éfinir la matrice A en posantA =M .
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
2/23
2.3.!. Organigramme de l'algorithme d'obtention d'un circuit.Supposons qu'apr s l'application de l'algorit me !.".(, nous vo)ons qu'un grap e %poss de au moins un circuit. Il est possible alors de construire explicitement un telcircuit. *our ce faire, il faut partir d'un sommet du sous grap e %+ défini par lamatrice + = -a+ i$ obtenue / la derni re itération de l'algorit me !.".(.
01 2i +=
=
i1i3I
$ ai +
∈∃
M*;I={i
1}
;k=1;
Obtention d'un circuit :
45I
646 7 oisir ∉ tel que :
k=k+1
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
3/23
2.3.". Organigramme de l'algorithme d'obtention des ni#eaux d'un graphe sanscircuit.
7onsidérons un grap e sans circuit %=-8,5 de matrice d'ad$acence .9es n niveaux de % sont les n sous:ensembles de sommets définis en !.".!.X -i , i=;,..n de la fax 3 x∈8 , Γ ? -x =∅@X -0 =>x 3 x∈8 : X -; , Γ ? -x ⊆X -; @X -! =>x 3 x∈8 : - X -; ∪X -0 ,Γ ? -x ⊆X -; ∪X -0 @...
$ -n =>x 3 x∈8 : - X -; ∪X -0 ∪A ∪X -n:0 ,Γ ?-x ⊆ X -; ∪X -0 ∪A ∪X -n:0 @
9'algorit me suivant permet de construire les niveaux successifs d'un grap e sanscircuit
9e partage en niveaux d'un grap e simplifie la rec erc e de c emon minimale oumaximale entre sommets.
i=;
X (i) est l'ensemble des sommets correspond nts u! li"nes nonm rqu#s ne conten nt que des 1 b rr#es ou des $#ros%
X (i) = ∅
M rquer lesli"nes de X (i) et
b rrer lescolonnescorrespond ntes
646BI6
45I
i=i?0
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
4/23
2.4.4. Organigramme de l'algorithme d'obtention du no%au d'un graphe sanscircuit.
L'existence d'un tel noyau est justifiée par le théorème 2.4.2.
&
7 oisir une ligne ne contenant que des zéros.
arquer cette ligne d'une croix. Entourer lacolonne correspondante / cette ligne. Carrer leslignes a)ant un 0 dans la colonne entourée. Carrerles colonnes correspondantes.
Il existe une ligne nonmarquée et non barréene contenant que des 0barrés ou des zéros.
7 oisir une ligne non marquée etnon barrée ne contenant que des 0barrés ou des zéros
6o)au = > sommets marqués@
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
5/23
Chapitre 3
3.2. (ersion récursi#e du parcours en profondeur d'un graphe.
3.2. . )lgorithme général
9e programme principal a la structure suivante var i integer 2
gr %RD* E 2 marque arra% F0..nG of boolean 2AAAAAAAAAAAAAAAAAAAA.beginfor i =0 to n do marque FiG =false 2for i =0 to n do if not -marqueFiG then prof(i,gr,marqueend*
9a procédure récursive prof de parcours en profondeur ressemble / procedure prof -i Integer2 g %RD* E2 #ar arra% F0..nGof boolean 2
>s est un sommet o! commence le parcours @#ar i," Integer 2 > " est un sommet @# Fs G =true 2> on marque le sommet s @> première rencontre a"ec s @
for j =0 to n do dH ? de s dans g dobegin"$%j ième& succ&de s dans g >rencontre de l arc (s," ) l aller @if not -# FvGthen prof(",g,# 2 > rencontre de l arc -s,v au retour @end>2 dernière rencontre a"ec s @end prof 2
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
6/23
3.2.2. +arcours d'un graphe en profondeur représenté par sa matrice ad,acente.
t%pe %RD* E= arra% F0..n,0.. nG of boolean2
procedure prof -i Integer2 g %RD* E2 #ar arra% F0..nG of boolean 2#ar $ Integer2begin
FiG =true 2for $ =0to n doif gFi,$Gand not - F$Gthen prof -$,g, 2end prof 2
3.2.3. +arcours d'un graphe en profondeur représenté par listes d'ad,acence.
J)pe adr= ↑ doublet2%RD* E= record
no *..n 2sui" adr2end*
procedure prof -i Integer2 g %RD* E2 #ar arra% F0..nG of boolean 2#ar $ Integer2 s adr2begin
FiG =true 2 s =gFiG2 -hile s ≠ nil do begin $ =s↑.no2if not - F$Gthen prof-$,g, 2
s =s↑.suivend
end prof 2
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
7/23
3.2.2. +rocédure iterprof de parcours en profondeur itérati#e.
procedure iterprof -s Integer2 g %RD* E2 #ar arra% F0..nG of boolean 2>s désigne un sommet de départ@#ar i,j,d Integer2 > i et $ sont des sommets@ poursuite boolean2 + *ile2
begin i$%s pile&"ide(+ > partir avec une pile vide@
poursuite =false2FiG =true2
> premi re rencontre avec avec i @+$%empiler(+,iif d - de i dans g ≠ then begin
poursuite =true2 j$%premsucc(i,g 2 > premier successeur de i dans g@end 2-hile not -est&"ide(+ do begin
-hile poursuite do if not - F$Gthen begin > $ n'est pas marqué et donc on progresse@ F$G =true 2 > premi re rencontre avec $ @ +$%empiler(+,j
i =$2 > on passe aux successeurs@ if d - de i dans g / then j$%premsucc(i,gelse poursuite =false > pas de successeur@endelse begin > $ est marqué, donc on regarde les autres successeurs de i @d$%d - de i dans gif j ≠ d ème&succ&de i dans g then j$%succsui"ant(i,j,gelse poursuite =false > il n') a pas d'autres successeurs de i@end2> retour arri re@
j$%sommet(++$%dépiler(+ 'derni re rencontre avec $@
if not -est0"ide(+ then begini$%sommet(+d$%d - de i dans gif j ≠ d ème&succ&de i dans g then begin
j$%succsui"ant(i,j,g
poursuite =trueend>sinon tous les successeurs de i ont été marqués2 on est sur la derni re rencontre de i2on continue le retour arri re@ endendend iterprof 2
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
8/23
3.4. +arcours en largeur.
gorithmeUtilisation d'une structure de file lors/ue l'on #isite les successeurs nonmar/ués d'un sommet s0 il faut les ranger successi#ement dans une file 1I1O*la recherche au ni#eau sui#ant repartira des chacun des successeurs de s0 partir du premier de la file.Rappelons que pour le type File, les adjonction se font à une extrémité et lesaccès ou suppression à l'autre extrémité.
+rocedure larg s integer* G raphe* #ar arra%5 ..n6 of boolean7*>s est un sommet 8#ar !,",i integer* F 1ile*9# et - sont des sommets8beginF :file;#ide* &5s6 : de # dans G do begin
- :i ?me successeur;de ! dans G if not % )"*& then begin
)"*#$ true* F#$ajouter%F,"&end
endend
end larg *
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
9/23
Chapitre 5Or" ni"r mme de l' l"orit&me de color tion de els& et o ell
@anger les sommets de $ par ordre dedegrés non croissants soit & la matriced'ad,acence du graphe ainsi ordonné
A:
N:&
Colorer par la couleur cA la premi?re ligne non
encore colorée dans N0 ainsi /ue la colonnecorrespondante.
N : ensemble des lignes non encore coloréesa%ant un Béro dans les colonnes de couleur c
A
N: ∅
*
Changer decouleur
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
10/23
!.!.3.2. )lgorithme du couplage maximun
!.D.2. Organigramme de l'algorithme de coloration des arEtes
e probl me de color tion des r,tes de - est #qui. lent / l color tion des sommets de -'%
: $ ∪ F0G7
Couplage initial C
$&
:F&
: ∅ * $N:$ * F
N:F
x∈$;C
&ar/uer > un tel sommet x$
&:$
&∪9x8 * $
N:$
N ; 9x8
%∈Γ x7∩ FN
&ar/uer >0x7 un tel sommet % F &:F &∪9%8 * FN:F N ; 9%8
x∈Γ %7∩C∩$N
oH %∈ F&
&ar/uer ;0%7 un tel sommet x$&
:$&∪
9x8 * $N:$
N ; 9x8
Tous les y ∈YM
appartiennent à C
STOP. Le couplage C obtenuest un couplage maximum
upprimer dans C toutesles arEtes appartenant C/ui sont reprises dans lacha ne ).),outer dans C toutes lesarEtes n'appartenant pas C /ui sont reprises dans lacha ne ).
oit %J∈ F&
; C *Kéterminer la cha ne): x0L0%J7commennMant en unsommet mar/ué > et/ui a conduit aumar/uage de %J
NON
OUI
NON
7OUI
NON
OUI
NON
OUI
27
: $0G7
+onstruire le graphe adjacent G' de G
Colorer les sommets de ' en appli/uant algorithme '!.4.2.de coloration de elsh et +o-ell. a coloration obtenue est
une A;coloration des arEtes de
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
11/23
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
12/23
!.".4. Organigramme de l'algorithme de rusAal
Algorithme de Kruskal
: $0G70 -
@anger les arEtes de par ordre depoids décroissants
1:9e 8 * A:
1 possede;il n;éléments P
A:A>
Gxiste;t;il unc%cle dans
1∪9eA8 P
F$ F e-
/top
)J: $017 est l'arbrepartiel de poidsminimum
OUI
010
OUI
010
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
13/23
Chapitre 6
2rincipe de l'algorithme de Ford
OUI
λ0=;
λ $=∞, ∀ $≠0 λ
$=:∞, ∀ $≠0
-chemin plus court -chemin plus long
xi0x,7∈U tel /ue λ
, Q λ i >l
i j λ , R λ i >l
i j
&ar/uer x , de
λ , : λ i >
l i j
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
14/23
+hemin de !aleur optimale
On part a#ec les mar/ues λ
,7,: 0..n
A:n*
µ: x n7
@echercher x , tel /ue λ
,: λ
A ; l
j k
+oser A:,
µ : xA0µ7
xA:x
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
15/23
3lgorithme de 4ellman(5ala6a
λ S7:S
λ ,
S7:∞0 ,≠ λ ,
S7:;∞0 ,≠-chemin plus court -chemin plus long
x , tel /ue
λ ,
A7≠ λ ,
A; 7
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
16/23
3lgorithme de 4ellman(5ala6a pour un graphe partagé en ni!eaux
est un graphe partagé enni#eaux tels /ue 9x 8⊆N 0N
20 N
A0L09x
n8⊆N
A:Sλ :S
A:A>
x , ∈N
A
non mar/ué
&ar/uer x ,
1 ,:
9 λi > l
i j T x
i∈N
∪N
2∪L ∪N
A;8
λ ,:min 1
, λ
,:max1
,
xn mar/ué
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
17/23
3lgorithme de 7ij-stra
K:9x 8 *
λ :S*
λ ,: l
1j 0 ,≠
λA:min λ
,
x ,∉
K Voir remarque
K:K ∪ 9 xA
8
λ ,:min 9 λ
,0λ
A> l
kj 8
x n ∈K
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
18/23
Chapitre 0l"orit&me de ord ulkerson:2ersion 1 T!"#$%$C&
lot r# lis ble initi l ϕ de . leur Φ(ϕ) ; m1=3∞ ; +4
un x '
non mar(u) tel (ue
pour un xi mar(u)
"*& ci '
+ϕ i '
, - ou bien
"**&ϕ ' i
,-
Choisir un tel x '
cas "*& ou
cas "**)
Mar(uage irect e x ' /
m '!0i 1 α
'1 2 3
a4ec
α ' !min α i $ r i ' !c i ' +ϕ i '
Mar(uage in irect e x ' /
m ' ! 0i 1 α
' 1 +3 a4ec
α ' !min α i $ r i ' ! ϕ ' i
xn mar(u)
Φ"ϕ&! Φ"ϕ& 2α n
'!n
m '
!
"*& 0 i 1α '
1 2 3
"**& 0 i 1α ' 1 + 3
ϕ i '
! ϕ i '
2 α n
ϕ ' i
! ϕ ' i
+α n
'!i
788acer m ' $ '≠9 '!9
56O % e 7lotϕ
obtenu est un 7lot
de . leur
minim le
:O:
O%*
"*& "**&
:O:
O%*
"*&"**&
:O:O%*
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
19/23
Dlgorit me de Bord Bul1erson Kersion !
T ! "# $ % $C&
;lot r)alisable initial ϕ $ e 4aleur Φ"ϕ&
Construire le graphe
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
20/23
L.#.!. 4rganigramme de l'algorit me permettant d'obtenir un flot de valeur
;lot r)alisable initial ϕ! ϕ i '
!- $ "xi$x
'&∈% $ e
4aleur Φ"ϕ&!-
τ ! "# $ % $C& 1 8 1φ-
Construire le graphe
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
21/23
Chapitre AC 7 ) O@I
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
22/23
O@ )NI @)&&G KG ') O@I c
'+E
',-
P r sort si x r >xr I ! min i xi > xi I > xi I ,- "x r I est dit le &i*ot &
(+) Constru"tion du nou*eau tableau du im&le! Sur la ligne e pi4ot / x<
I ! x
r> x
r I
x<I '
! xr '>x
r I
Billeurs "i ≠I& / x<i ! x
i F "x
i I > x
r I & x
r
x x
r I & "c
I F E
I &
c ' FE<
' ! c
' FE
' F"x
r ' >x
r I & "c
I +E
I &
-
8/19/2019 Algorithmes Recherche opérationnelle et théorie des Graphes
23/23
Organigramme e la m)tho e M et e la m)tho e en eux phases
ettre les contraintes sous forme d'é alités*9 / maximum.
Rendre positif le second membre des contraintes
Introduire des variables artificielles dans les contraintes n
=+ x $ % n i m )ontraites C - thode - - thode -
Résoudre le *9
∑∑==
−=m
ii j
n
j j $ xc * +
1
m !
sous les contraintes C (M 9> rbitr irement "r nd)
éthodes en deux phaseséthodes en deux phases
2 2 :3/; :3/; i m $ i = 9 > i mNON NON
OUI OUI
BI69a solution
optimale du *9 dedépart est atteinte
BI6*as de solution
réalisable2 2 :3/; :3/; = =
Résoudre le *9
x jn
jc + j∑
=
=1
?m !
bi xa jn
j
ij =∑
=1 x j ≥ %, j, ,n ( i, ,m