Algorithmes Recherche opérationnelle et théorie des Graphes

download Algorithmes Recherche opérationnelle et théorie des Graphes

of 23

Transcript of Algorithmes Recherche opérationnelle et théorie des Graphes

  • 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