Top Banner

of 23

Algorithmes Recherche opérationnelle et théorie des Graphes

Jul 07, 2018

Download

Documents

sfd
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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