Optimisation et Recherche Op´ erationnelle
M1 Informatique
Julien Ah-Pine (julien.ah-pine@univ-lyon2.fr) Universit´ e Lyon 2 - ICOM
M1 Informatique 2019/2020
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 1 / 159
Recherche Op´ erationnelle
⇒ Qu’est-ce que la Recherche Op´ erationnelle (RO) ?
Voici la d´ efinition de la ROADEF (Soci´ et´ e Fran¸ caise de Recherche Op´ erationnelle et d’Aide ` a la D´ ecision) sur son site
http ://www.roadef.org/
I
La RO est la discipline des m´ ethodes scientifiques utilisables pour
´ elaborer de meilleures d´ ecisions. Elle permet de rationaliser, de simuler et d’optimiser l’architecture et le fonctionnement des syst` emes de production ou d’organisation.
I
La RO apparaˆıt comme une discipline carrefour associant les
math´ ematiques, l’´ economie et l’informatique. Elle est par nature en prise directe sur l’industrie et joue un rˆ ole-cl´ e dans le maintien de la comp´ etitivit´ e.
I
Exemples d’application : organisation des lignes de production de v´ ehicules, optimisation des portefeuilles bancaires, aide au s´ equen¸ cage de l’ADN, organisation des produits recyclables . . .
Dans ce cours nous aborderons l’utilisation des graphes en RO et les probl` emes permettant d’ˆ etre r´ esolus dans ce cadre.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 2 / 159
Th´ eorie des graphes et RO
⇒ Pourquoi les graphes et leurs applications en RO ?
Les graphes permettent de repr´ esenter de nombreux probl` emes de mani` ere intuitive et contribuent donc souvent ` a formaliser et
r´ esoudre ces derniers : “Un bon dessin vaut mieux qu’un long discours”.
Les graphes sont rencontr´ es dans de nombreux domaines et pour de nombreux probl` emes d’optimisation : cartographie (plus courts
chemins dans des r´ eseaux routiers, r´ eseaux de
t´ el´ ecommunication,. . . ), ´ economie-gestion (planning de livraison, ordonnancement, . . . ), aide ` a la d´ ecision (aide multicrit` ere ` a la d´ ecision, . . . ), . . .
Les objectifs du cours sont :
I
Pr´ esenter certains probl` emes de le th´ eorie des graphes trouvant des applications en RO.
I
Etudier et mettre en oeuvre des algorithmes r´ esolvant exactement ou de fa¸ con approch´ ee ces probl` emes.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 3 / 159
Contenu du cours
1 El´ ements de la th´ eorie des graphes
2 Quelques probl` emes importants de l’´ etude d’un graphe
3 Probl` eme du plus court chemin
4 Probl` emes de Flot
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 4 / 159
Quelques r´ ef´ erences faisant partie des sources du cours
F. Droesbeke, M. Hallin et Cl. Lef` evre, Les graphes par l’exemple, Ellipses, 1987
M. Gondran et M. Minoux, Graphes et Algorithmes (4` eme ´ edition), Lavoisier, 2009
R. Faure, B. Lemaire et Ch. Picouleau, Pr´ ecis de recherche op´ erationnelle (5` eme ´ edition), Dunod, 2000
T. Cormen, Ch. Leiserson, R. Rivest, C. Stein, Introduction ` a l’algorithmique (2` eme ´ edition), Dunod, 2004
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 5 / 159
D´ eroulement du cours
4 s´ eances CM de 1h45
8 s´ eances TD/TP de 1h45 (avec impl´ ementation sur machine ` a l’aide du language R)
Evaluation :
I
1 dossier R par groupe de 2
I
1 examen sur table individuel
Les supports de cours peuvent ˆ etre r´ ecup´ er´ es ` a partir de mon site eric.univ-lyon2.fr/~jahpine.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 6 / 159
Exemple introductif
A priori le premier probl` eme r´ esolu par la th´ eorie des graphes (en 1736).
La ville de Koenigsberg (aujourd’hui Kaliningrad) est travers´ ee par le Pregel, qui coule de part et d’autre de l’ˆıle de Kneiphof et poss` ede 7 ponts, comme le montre la figure ci-dessus. Un pi´ eton d´ esire se promener et visiter tous les quartiers en empruntant une et une seule fois chaque pont.
Est-ce que le parcours d´ esir´ e du pi´ eton est r´ ealisable ?
El´ements de la th´eorie des graphes
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
2 Quelques probl` emes importants de l’´ etude d’un graphe
3 Probl` eme du plus court chemin
4 Probl` emes de Flot
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
D´ efinitions et g´ en´ eralit´ es sur les graphes Matrices associ´ ees ` a un graphe
Connexit´ e
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 9 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Graphes : concepts orient´ es
D´ efinition. (Graphe orient´ e)
Un graphe G = [X , U] est d´ etermin´ e par la donn´ ee :
1
d’un ensemble X dont les ´ el´ ements sont appel´ es des sommets (ou des noeuds). Si N = |X | est le nombre de sommets, on dit que le graphe G est d’ordre N.
2
d’un ensemble U dont les ´ el´ ements u ∈ U sont des couples ordonn´ es de sommets appel´ es des arcs. Si u = (i , j) est un arc de G , i est l’extr´ emit´ e initiale et j l’extr´ emit´ e terminale de u. On notera M = |U|
le nombre d’arcs.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 10 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Exemple de graphe orient´ e
2
1
3
4
5 u 3
u 1 u 2
u 5
u 6
u 9
u 4
u 7
u 8
N = 5 M = 9
b
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 11 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Boucle et p-graphe
D´ efinition. (Boucle)
Un arc u = (i, i ) dont les extr´ emit´ es co¨ıncident est appel´ e une boucle.
D´ efinition. (p-graphe)
Un p-graphe est un graphe dans lequel il n’existe jamais plus de p arcs de la forme (i , j) entre deux sommets quelconques i et j , pris dans cet ordre.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 12 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Exemple de boucle et d’un 2-graphe
2
1
3
4
5 u 3
u 1 u 2
u 5
u 6 u 9
u 4
u 7
u 8
N = 5 M = 9
b
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 13 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Graphes et applications multivoques
D´ efinition. (Ensemble de successeurs d’un sommet)
j est un successeur de i s’il existe un arc de la forme (i, j). L’ensemble des successeurs d’un sommet i ∈ X est not´ e Γ(i ).
D´ efinition. (Application multivoque)
L’application Γ qui, ` a tout ´ el´ ement de X , fait correspondre une partie de X (Γ : X → P(X )), est appel´ ee une application multivoque.
D´ efinition. (Ensemble de pr´ ed´ ecesseurs d’un sommet)
j est un pr´ edecesseur de i s’il existe un arc de la forme (j , i ). L’ensemble des pr´ edecesseurs d’un sommet i ∈ X est not´ e Γ −1 (i ). (Γ −1 est alors l’application multivoque r´ eciproque de Γ).
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 14 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
1-graphe et application multivoque
Si G est un 1-graphe alors il est parfaitement d´ etermin´ e par la donn´ ee de l’ensemble X et de l’application multivoque Γ. On peut donc aussi not´ e G = [X , Γ].
2
1
3
4 5
u 3
u 1 u 2
u 5
u 6
u 4
u 7
u 8
Γ 1 = {2} ; Γ 2 = {1, 3} ; Γ 3 = {4, 5}...
b
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Graphes : concepts non orient´ es
D´ efinition. (Graphe non orient´ e)
Un graphe G = [X , U] dont les ´ el´ ements u ∈ U ne sont pas ordonn´ es est dit non orient´ e. Les ´ el´ ements u sont alors appel´ es arˆ etes.
Il s’agit d’un graphe dont on ne s’int´ eresse pas ` a l’orientation des arcs. Dans ce cas, (i, j) ∈ U est ´ equivalent ` a (j, i ) ∈ U.
Dans la suite du cours :
I
L’utilisation du terme arc sous-entend que le graphe est orient´ e
I
L’utilisation du terme arˆ ete sous-entend que le graphe est non orient´ e
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Multigraphe et Graphe simple
D´ efinition. (Multigraphe)
Un multigraphe est un graphe pour lequel il peut exister plusieurs arˆ etes entre deux sommets i et j donn´ es.
D´ efinition. (Graphe simple)
Un graphe sans boucle et ayant au plus une arˆ ete pour toute paire de sommets est appel´ e graphe simple.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 17 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Exemple de multigraphe
2
1
3
4
5 u 3
u 1 u 2
u 5
u 6 u 9
u 4
u 7
u 8
N = 5 M = 9
b
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 18 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
D´ efinitions principales
D´ efinition. (Arcs adjacents, arˆ etes adjacentes)
Deux arcs (deux arˆ etes) sont dit adjacents s’ils ont au moins une extr´ emit´ e commune.
D´ efinition. (Degr´ e et demi-degr´ e)
le demi-degr´ e ext´ erieur du sommet i , not´ e d G + (i ) est le nombre d’arcs ayant i comme extrˆ emit´ e initiale
le demi-degr´ e int´ erieur du sommet i , not´ e d G − (i ) est le nombre d’arcs ayant i comme extrˆ emit´ e terminale
le degr´ e du sommet i , not´ e d G (i ) est le nombre d’arcs (arˆ etes) ayant i comme extr´ emit´ e et on a (pour les arcs) : d G (i ) = d G + (i ) + d G − (i)
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 19 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Exemple
2
1
3
4
5 u 3
u 1 u 2
u 5
u 6
u 9
u 4
u 7
u 8
N = 5 M = 9
b
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 20 / 159
El´ements de la th´eorie des graphes D´efinitions et g´en´eralit´es sur les graphes
Sous-graphes, graphes partiels et graphes compl´ ementaires
D´ efinition. (Sous-graphes, graphes partiels et graphes compl´ ementaires)
Le sous-graphe induit par A ⊂ X est le graphe G A dont les sommets sont les ´ el´ ements de A et dont les arcs sont les arcs de G ayant les deux extr´ emit´ es dans A
Soit G = [X , U ] et soit V ⊂ U. Le graphe partiel engendr´ e par V est le graphe [X , V ]
Soit G = [X , U ] et soient A ⊂ X , V ⊂ U. Le sous-graphe partiel engendr´ e par A et V est le graphe partiel de G A engendr´ e par V Etant donn´ e un 1-graphe G = [X , U], le graphe compl´ ementaire de G , est le graphe [X , U] tel que : (i , j ) ∈ U ⇒ (i , j) ∈ / U et
(i , j) ∈ / U ⇒ (i , j) ∈ U
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 21 / 159
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
D´ efinitions et g´ en´ eralit´ es sur les graphes Matrices associ´ ees ` a un graphe
Connexit´ e
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 22 / 159
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Matrice d’incidence sommets-arcs
D´ efinition. (Matrice d’incidence sommets-arcs)
Soit G = [X , U] un graphe sans boucle. La matrice d’incidence de G est une matrice A = (a iu ), i = 1, . . . , N, u = 1, . . . , M, ` a coefficients entiers dans {0, 1, −1} tel que chaque colonne correspond ` a un arc de G et chaque ligne ` a un sommet. Si u = (i , j) ∈ U alors la colonne u contient des termes nuls sauf pour les suivants : a iu = 1 et a ju = −1.
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Exemple de matrice d’incidence sommets-arcs
2
1
3
4 5
b
u 1
u 2
u 3
u 4
A =
u
1u
2u
3u
41 1 1 0 0
2 −1 0 0 0
3 0 −1 1 1
4 0 0 0 −1
5 0 0 −1 0
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Matrice d’incidence sommets-arˆ etes
D´ efinition. (Matrice d’incidence sommets-arˆ etes)
Soit G = [X , U] un graphe non orient´ e sans boucle. La matrice d’incidence de G est une matrice A = (a iu ), i = 1, . . . , N, u = 1, . . . , M, ` a coefficients entiers dans {0, 1} telle que chaque colonne correspond ` a une arˆ ete de G et chaque ligne ` a un sommet. Si u = (i , j) ∈ U alors la colonne u contient des termes nuls sauf pour les suivants : a iu = 1 et a ju = 1.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 25 / 159
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Exemple de matrice d’incidence sommets-arˆ etes
2
1
3
4 5
u 3
u 1 u 2
u 5
u 6
u 4
u 7
b
A =
u
1u
2u
3u
4u
5u
6u
71 1 1 0 0 1 0 0
2 1 1 1 0 0 0 0
3 0 0 1 1 0 1 0
4 0 0 0 1 0 0 1
5 0 0 0 0 1 1 1
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 26 / 159
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Matrice d’adjacence sommets-sommets
D´ efinition. (Matrice d’adjacence sommets-sommets)
Soit G = [X , U] un 1-graphe comportant ´ eventuellement des boucles. La matrice d’adjacence de G est une matrice carr´ ee A = (a ij ), i = 1, . . . , N, j = 1, . . . , N, ` a coefficients entiers dans {0, 1} tel que chaque colonne correspond ` a un sommet de G et chaque ligne ` a un sommet de G et de terme g´ en´ eral : a ij = 1 ⇔ (i , j) ∈ U (a ij = 0 sinon).
Dans le cas non orient´ e, la matrice d’adjacence est sym´ etrique.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 27 / 159
El´ements de la th´eorie des graphes Matrices associ´ees `a un graphe
Exemple de matrice d’adjacence
2
1
3
4 5
u 3
u 1 u 2
u 5
u 6
u 4
u 7
b
A =
1 2 3 4 5
1 0 1 0 0 0
2 1 0 1 0 0
3 0 0 0 1 1
4 0 0 0 0 1
5 1 0 0 0 0
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 28 / 159
El´ements de la th´eorie des graphes Connexit´e
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
D´ efinitions et g´ en´ eralit´ es sur les graphes Matrices associ´ ees ` a un graphe
Connexit´ e
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 29 / 159
El´ements de la th´eorie des graphes Connexit´e
Chaˆıne, chaˆıne ´ el´ ementaire, cycle, cycle ´ el´ ementaire
D´ efinition. (Chaˆıne de longueur q et chaˆıne ´ el´ elmentaire) -Une chaˆıne de longueur q est une s´ equence de q arcs : L = {u 1 , u 2 , . . . , u q } telle que chaque arc u r de la s´ equence
(2 ≤ r ≤ q − 1) ait une extr´ emit´ e commune avec l’arc u r−1 (u r−1 6= u r ) et l’autre extr´ emit´ e commune avec l’arc u r+1 (u r+1 6= u r ).
-L’extr´ emit´ e i de u 1 non adjacente ` a u 2 et l’extr´ emit´ e j de u q non adjacente ` a u q−1 sont appel´ ees les extr´ emit´ es de la chaˆıne L.
-On appelle chaˆıne ´ el´ ementaire une chaˆıne telle qu’en la parcourant, on ne rencontre pas deux fois le mˆ eme sommet.
D´ efinition. (Cycle et cycle ´ el´ ementaire)
Un cycle est une chaˆıne dont les extr´ emit´ es co¨ıncident (chaˆıne ferm´ ee).
Un cycle ´ el´ ementaire est un cycle minimal (pour l’inclusion) c` ad ne comprenant strictement aucun autre cycle. Dans un cycle ´ el´ ementaire, on ne rencontre pas deux fois le mˆ eme sommet (sauf l’origine).
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 30 / 159
El´ements de la th´eorie des graphes Connexit´e
Exemple de matrice
2
1
3
4 5
u 3
u 1 u 2
u 5
u 6
u 9 u 4
u 7
u 8
N = 5 M = 9
b
La chaˆıne L = {u 2 , u 5 , u 6 } de longueur 3, joint le sommet 2 et 3.
La chaˆıne L = {u 1 , u 5 , u 6 , u 3 } de longueur 4 est un cycle ´ el´ ementaire.
El´ements de la th´eorie des graphes Connexit´e
Chemin, chemin ´ el´ ementaire, circuit, circuit ´ el´ ementaire
D´ efinition. (Chemin de longueur q et chemin ´ el´ ementaire) -Un chemin de longueur q est une s´ equence de q arcs : P = {u 1 , u 2 , . . . , u q } avec
u 1 = (i 0 , i 1 ); u 2 = (i 1 , i 2 ); u 3 = (i 2 , i 3 ); . . . ; u q = (i q−1 , i q ). (chaˆıne dont tous les arcs sont orient´ es dans le mˆ eme sens.)
-Les extr´ emit´ es i 0 et i q sont respectivement appel´ es extr´ emit´ es initiale et terminale du chemin P.
-On appelle chemin ´ el´ ementaire un chemin tel qu’en le parcourant, on ne rencontre pas deux fois le mˆ eme sommet.
D´ efinition. (Circuit et circuit ´ el´ ementaire)
Un circuit est un chemin dont les extr´ emit´ es co¨ıncident (chemin ferm´ ee).
Un circuit ´ el´ ementaire est un circuit minimal (pour l’inclusion) c` ad ne
comprenant strictement aucun autre circuit. Dans un circuit ´ el´ ementaire,
on ne rencontre pas deux fois le mˆ eme sommet (sauf l’origine).
El´ements de la th´eorie des graphes Connexit´e
Parcours, parcours eul´ erien et hamiltonien
Un parcours d’un graphe G est une chaˆıne, un cycle, un chemin ou un circuit.
D´ efinition. (Parcours eul´ erien)
Un parcours d’un graphe G est dit eul´ erien s’il passe une et une seule fois par chaque arc ou arˆ ete de G (il peut passer plusieurs fois par un mˆ eme sommet).
D´ efinition. (Parcours hamiltonien)
Un parcours d’un graphe G est dit hamiltonien s’il passe une et une seule fois par chaque sommet de G (et donc au plus une fois par chaque arc ou arˆ ete).
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 33 / 159
El´ements de la th´eorie des graphes Connexit´e
Connexit´ e
D´ efinition. (Graphe connexe)
Un graphe est dit connexe, si pour tout couple de sommets i et j , il existe une chaˆıne joignant i et j .
D´ efinition. (Graphe orient´ e fortement connexe)
Un graphe orient´ e est dit fortement connexe, si pour tout couple de sommets ordonn´ es (i , j), il existe un chemin joignant i et j .
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 34 / 159
El´ements de la th´eorie des graphes Connexit´e
Th´ eor` eme d’Euler
Th´ eor` eme. (Th´ eor` eme d’Euler)
Un multigraphe G = [X , U] connexe admet un parcours eul´ erien ssi le nombre de sommets de degr´ e impair est 0 ou 2. S’il y en a 0, alors il s’agit d’un cycle d’origine quelconque. S’il y en a 2 alors le parcours est une chaˆıne reliant ces deux noeuds.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 35 / 159
Quelques probl`emes importants de l’´etude d’un graphe
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
2 Quelques probl` emes importants de l’´ etude d’un graphe
3 Probl` eme du plus court chemin
4 Probl` emes de Flot
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 36 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Rappel du Sommaire
2 Quelques probl` emes importants de l’´ etude d’un graphe Graphes sans circuit
Noyau d’un graphe
Stabilit´ e et absorption d’un graphe non orient´ e Coloration des sommets
Arbre partiel de poids minimum
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 37 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Pourquoi d´ eterminer si un graphe est sans circuit ?
L’absence de circuits est une condition n´ ecessaire pour beaucoup d’algorithmes en th´ eorie des graphes. Il est donc important de disposer de m´ ethodes permettant de tester l’absence de circuit dans un graphe donn´ e.
Nous allons ´ etudier :
I
Un algorithme permettant d’obtenir un circuit si le graphe en poss` ede au moins un.
I
Un algorithme permettant d’obtenir les niveaux d’un graphe sans circuit.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 38 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Niveaux d’un graphe sans circuit
L’algorithme permettant de d´ eterminer si un graphe est sans circuit repose sur la d´ efinition suivante et la propri´ et´ e qui suit.
D´ efinition. (Niveaux d’un graphe)
Soit G un graphe ` a N sommets, consid´ erons les N + 1 sous-ensembles de sommets, X (k ), k = 0, . . . , N, d´ efinis de la mani` ere suivante :
X (0) = {i |i ∈ X , Γ(i ) = ∅}
X (1) = {i |i ∈ X \ X (0), Γ(i) ⊂ X (0)}
X (2) = {i |i ∈ X \ (X (0) ∪ X (1)) , Γ(i ) ⊂ (X (0) ∪ X (1))}
. . .
X (N) = {i |i ∈ X \ (X (0) ∪ X (1) ∪ . . . ∪ X (N − 1)) , Γ(i) ⊂ (X (0) ∪ X (1) ∪ . . . ∪ X (N − 1))}
Ces N + 1 sous-ensembles sont disjoints (par construction) et repr´ esentent les niveaux du graphe.
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Propri´ et´ es des niveaux d’un graphe sans circuit
Propri´ et´ e.
Si G est sans circuit alors les niveaux constituent un recouvrement de X ,
c’est ` a dire que X = X (0) ∪ X (1) ∪ . . . ∪ X (N). De plus, nous avons la
propri´ et´ e que X (k) est l’ensemble des sommets i de X tel que le chemin
de longueur maximale issu de i contient k arcs.
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Exemples
Exemple 1 : A =
1 2 3 4 5
1 0 1 0 0 0
2 1 0 1 0 0
3 0 0 0 1 1
4 0 0 0 0 1
5 1 0 0 0 0
X (0) = ∅ ; X (1) = X (2) = X (3) = X (4) = X (5) = ∅.
Exemple 2 : A =
1 2 3 4 5
1 0 1 0 1 0
2 0 0 1 1 0
3 0 0 0 0 1
4 0 0 0 0 1
5 0 0 0 0 0
X (0) = {5} ; X (1) = {3, 4} ; X (2) = {2} ; X (3) = {1} ; X (4) = X (5) = ∅.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 41 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Algorithme permettant de tester l’absence de circuit
Soit A la matrice d’adjacence du graphe G = [X , U ].
Input : A 1 A ˜ ← A
2 Tant que il existe une ligne i de ˜ A ne comportant que des 0 faire 3 Enlever de ˜ A la ligne i et la colonne i
4 Fin Tant que 5 Si A ˜ = 0 faire
6 Output : Absence de circuit 7 Sinon faire
8 Output : Existence d’un circuit 9 Fin Si
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 42 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Exemple
Reprenons l’exemple 2 pr´ ec´ edent : A =
1 2 3 4 5
1 0
1 0 1 0
2
0 0 1 1 0
3
0 0 0 0 1
4
0 0 0 0 1
5
0 0 0 0 0
Nous voyons que nous pouvons successivement enlever les lignes et colonnes :
1
5
2
4
3
3
4
2
Nous obtenons finalement ˜ A = (0) ce qui indique l’absence de circuit.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 43 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Obtention d’un circuit
Si ` a l’issue de l’algorithme pr´ ec´ edent, ˜ A 6= 0 alors il existe un circuit et on peut en construire un ` a l’aide de l’algorithme suivant.
Soit ˜ A la matrice d’adjacence en sortie de l’algorithme pr´ ec´ edent.
Input : A ˜
1 v ← i (sommet de ˜ A pris au hasard) 2 S ← {v }
3 Tant que il n’existe pas j ∈ S tel que ˜ a vj = 1 faire 4 Choisir k ∈ / S tel que ˜ a vk = 1
5 S ← append(S , {k})
6 v ← k
7 Fin Tant que
8 Output : {j, k , . . . , j}
Dans cet algorithme, l’op´ eration append(S , {k }) ajoute ` a la fin de la s´ equence de sommets S , le sommet k .
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 44 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Exemple
Reprenons l’exemple 1 pr´ ec´ edent : A =
1 2 3 4 5
1 0 1 0 0 0
2 1 0 1 0 0
3 0 0 0 1 1
4 0 0 0 0 1
5 1 0 0 0 0
Dans ce cas ˜ A = A car aucune ligne ne comporte que des 0 et il existe donc au moins un circuit.
2
1
3
4 5
u 3
u 1 u 2
u 5
u 6
u 4
u 7
b
Prenons au hasard le sommet 3 :
1
S = {3}
2
S = {3, 5}
3
S = {3, 5, 1}
4
S = {3, 5, 1, 2}
5
˜ a
21= 1 avec 1 ∈ S et donc {1, 2, 1} est un circuit
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 45 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Niveaux d’un graphe sans circuit
On suppose ici que le graphe est sans circuit.
Rappel :
Dans ce cas, un sommet appartient ` a X (k) avec k = 0, . . . , N, si le chemin de longueur maximale issu de ce sommet est de longueur k . De plus, les niveaux X (k ) forment une partition de X et tout sommet de X (k ) n’admet aucun successeur dans les niveaux X (l) avec l ≥ k .
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 46 / 159
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Algorithme d’obtention des niveaux d’un graphe sans circuit
Input : A 1 k ← 0
2 Calculer X (k ), l’ensemble des sommets correspondant aux lignes de A non marqu´ ees ne contenant que des 1 barr´ es ou des 0 3 Tant que X (k) 6= ∅ faire
4 Marquer les lignes de A correspondant aux ´ el´ ements de X (k ) et barrer les 1 des colonnes correspondantes
5 k ← k + 1
6 Calculer X (k ), l’ensemble des sommets correspondants aux lignes de A non marqu´ ees ne contenant que des 1 barr´ es ou des 0
7 Fin Tant que
8 Output : X (0), . . . , X (k − 1) et X (k) = . . . = X (N) = ∅
Quelques probl`emes importants de l’´etude d’un graphe Graphes sans circuit
Exemple
Reprenons l’exemple 2 pr´ ec´ edent : A =
1 2 3 4 5 1 0 /1 0 /1 0 2 0 0 /1 /1 0 3 0 0 0 0 /1 4 0 0 0 0 /1 5 0 0 0 0 0
Nous voyons que nous pouvons successivement d´ eterminer les niveaux suivants :
1
X (0) = {5}
2
X (1) = {3, 4}
3
X (2) = {2}
4
X (3) = {1}
X (4) = ∅ puisque tous les sommets ont ´ et´ e marqu´ es. On arrˆ ete donc
l’algorithme.
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Rappel du Sommaire
2 Quelques probl` emes importants de l’´ etude d’un graphe Graphes sans circuit
Noyau d’un graphe
Stabilit´ e et absorption d’un graphe non orient´ e Coloration des sommets
Arbre partiel de poids minimum
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 49 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
D´ efinition
D´ efinition. (Noyau d’un graphe)
Soit G = [X , U] un graphe sans boucle, de matrice d’adjacence A. Un sous-ensemble Y de sommets est un noyau s’il satisfait aux deux conditions suivantes :
∀i , j ∈ Y : (i, j) ∈ / U ∧ (j, i ) ∈ / U (un ensemble Y v´ erifiant cette propri´ et´ e est dit stable)
∀i ∈ X \ Y , ∃j ∈ Y tel que (i , j) ∈ U (un ensemble Y v´ erifiant cette propri´ et´ e est dit absorbant)
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 50 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Exemples
2
1
3
4 5
2
1
3
4 5
6
2
1
3
4
2
1
3 Exemple 1 Exemple 2
Exemple 3 Exemple 4
Exemple 1 : Y = {2, 4, 5} ; Exemple 2 : {1, 4, 5, 6} ; Exemple 3 : Y = {1, 3} et Y = {2, 4} ; Exemple 4 : Y = ∅.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 51 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Th´ eor` eme d’existence
De fa¸con g´ en´ erale, il peut exister plusieurs noyaux ´ etant donn´ e un graphe.
Th´ eor` eme.
Un 1-graphe sans circuit poss` ede un et un seul noyau.
Propri´ et´ e.
Dans un graphe sans circuit, tous les sommets n’ayant aucun successeur (les feuilles) sont des ´ el´ ements du noyau.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 52 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Algorithme d’obtention d’un noyau d’un graphe sans circuit
Input : A (Matrice d’adjacence d’un graphe sans circuit)
1 Y ← ∅
2 Marquer une ligne j ne comportant que des 0 3 Y ← Y ∪ {j}
4 Dans la colonne j, barrer les lignes et colonnes i telles que a ij = 1 5 Tant que il existe une ligne non marqu´ ee et non barr´ ee ne
comportant que des 1 barr´ es ou des 0 faire
6 Marquer une ligne j non marqu´ ee et non barr´ ee ne comprenant que des 1 barr´ es ou des 0
7 Y ← Y ∪ {j}
8 Dans la colonne j, barrer les lignes et colonnes i telles que a ij = 1
9 Fin Tant que 10 Output : Y
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 53 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Exemple
Reprenons l’exemple 2 pr´ ec´ edent : A =
/1 2 /3 /4 5 /1 0 /1 0 /1 0 2 0 0 /1 /1 0 /3 0 0 0 0 /1 /4 0 0 0 0 /1 5 0 0 0 0 0
Nous voyons que nous pouvons successivement d´ eterminer les
´ el´ ements du noyau :
1
It´ eration 1 : Y = {5}
2
It´ eration 2 : Y = {2, 5}
Puisque toutes les lignes sont soit marqu´ ees (en rouge) soit barr´ ees, on arrˆ ete l’algorithme.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 54 / 159
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Exemple pratique
Le concept de noyau est important en th´ eorie des graphes tant du point de vue th´ eorique que du point de vue pratique. Il intervient notamment dans les probl` emes de th´ eorie des jeux et d’aide ` a la d´ ecision.
Exemple concret : Un gouvernement a d´ ecid´ e de r´ epartir 500 Millions d’Euros en vue de diminuer la mortalit´ e sur les routes et propose dans ce cas cinq alternatives :
1
Augmentation du nombre de gendarmes
2
Construction d’autoroutes
3
Mise en place de signaux lumineux ` a tous les carrefours
4
R´ ecompenses aux meilleurs conducteurs
5
Gratuit´ e des transports publics
Quelques probl`emes importants de l’´etude d’un graphe Noyau d’un graphe
Exemple pratique (suite)
Il charge un groupe de receuillir les pr´ ef´ erences du public et ce groupe parvient ` a ´ etablir le graphe suivant o` u les cinq sommets repr´ esentent les cinq alternatives et o` u un arc (i , j) est trac´ e s’il est certain que la population ne pr´ ef` ere pas i ` a j (autrement dit elle pr´ ef` ere j ` a i).
autor
gend
signaux
r´ ecomp
trans pub
D´ etermination du noyau : Y = {autor,trans pub}
Ceci permet de justifier : (i) la
non-subvention des ´ el´ ements hors du
noyau, (ii) la subvention des ´ el´ ements
du noyau, (iii) l’incomparabilit´ e entre
les deux ´ el´ ements du noyau (50/50).
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Rappel du Sommaire
2 Quelques probl` emes importants de l’´ etude d’un graphe Graphes sans circuit
Noyau d’un graphe
Stabilit´ e et absorption d’un graphe non orient´ e Coloration des sommets
Arbre partiel de poids minimum
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 57 / 159
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Rappel et d´ efinition
D´ efinition. (Graphe non orient´ e)
Un graphe G = [X , U] dont les ´ el´ ements u ∈ U ne sont pas ordonn´ es est dit non orient´ e. Les ´ el´ ements u sont alors appel´ es arˆ etes.
Il s’agit d’un graphe dont on ne s’int´ eresse pas ` a l’orientation des arcs. Dans ce cas, (i, j) ∈ U est ´ equivalent ` a (j, i ) ∈ U.
D´ efinition. (Graphe biparti)
Un graphe G = [X , U] est biparti s’il est possible de partitionner X en deux
sous-ensembles S et S tel que chaque arˆ ete ait exactement une extr´ emit´ e dans S et une extr´ emit´ e dans S
Exemple de graphe biparti :
1 2 3
5 4
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 58 / 159
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Stabilit´ e et absorption
D´ efinition. (Sous-ensemble stable et absorbant) Soit G = [X , U] un graphe non orient´ e.
Un sous-ensemble S ⊂ X est stable si deux sommets de S ne sont jamais adjacents : ∀i , j ∈ S : (i , j) ∈ / U
Un sous-ensemble T ⊂ X est absorbant a si toute arˆ ete de U poss` ede au moins une extr´ emit´ e dans T : ∀u = (i , j) ∈ U : i ∈ T ∨ j ∈ T
a. on dit ´egalement transversal pour les graphes non orient´es
1 2
3
5 4 u 1
u 2 u 3
u 4
u 5
Exemples de sous-ensembles stables :
S 1 = {1, 3}, S 2 = {2, 5}.
Exemples de sous-ensembles absorbants :
T 1 = {2, 4, 5}, T 2 = {1, 3, 4}.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 59 / 159
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Propri´ et´ es sur la stabilit´ e et l’absorption
Propri´ et´ e.
Le compl´ ement de tout sous-ensemble stable est absorbant et r´ eciproquement.
Dans l’exemple pr´ ec´ edent on a par exemple : T 1 = X \ S 1 et S 2 = X \ T 2 .
Propri´ et´ e.
Dans un graphe biparti, les sous-ensembles X 1 et X 2 sont tout ` a la fois stables et absorbants.
1 2 3
5 4
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 60 / 159
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Nombres de stabilit´ e et d’absorption
D´ efinition.
Soit respectivement S et T , les familles des sous-ensembles stables et absorbants de X . On d´ efinit alors les nombres suivants :
Nombre de stabilit´ e : α(G ) = max S∈S |S | Nombre d’absorption : τ (G ) = min T∈T |T | Remarque : α(G ) + τ (G ) = |X |.
1 2
3
5
4 u 1
u 2 u 3
u 4 u 5
Dans l’exemple pr´ ec´ edent : α(G ) = 2 et τ (G ) = 3.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 61 / 159
Quelques probl`emes importants de l’´etude d’un graphe Stabilit´e et absorption d’un graphe non orient´e
Exemple d’application
Soit une forteresse compos´ ee de 5 tours {1, . . . , 5} qui sont reli´ ees par 5 murs {u 1 , . . . , u 5 } comme l’indique le graphe suivant :
1
2
3
5
4 u 1
u 2
u 3
u 4 u 5
Un gardien plac´ e sur une tour peut surveiller les deux murs adjacents
`
a cette tour. Pour des raisons d’´ economie, on cherche a mobiliser le minimum de gardiens pour garder la forteresse. Quel est donc le nombre minimum de gardiens permettant de garder tous les murs de la forteresse ?
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 62 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Rappel du Sommaire
2 Quelques probl` emes importants de l’´ etude d’un graphe Graphes sans circuit
Noyau d’un graphe
Stabilit´ e et absorption d’un graphe non orient´ e Coloration des sommets
Arbre partiel de poids minimum
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Coloration des sommets d’un graphe
Colorer les sommets d’un graphe G = [X , U], consiste ` a leurs asssocier des couleurs (ou tout autre identificateur : num´ eros, noms, . . . ) de telle sorte que deux sommets adjacents n’aient pas la mˆ eme couleur. Si k-couleur sont utilis´ ees on parle de k-coloration.
On v´ erifie directement qu’une k -coloration des sommets de G est
´ equivalent ` a une partition de X en k sous-ensembles stables, chacun
d’entre eux contenant les sommets de mˆ eme couleur.
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Nombre chromatique
D´ efinition. (Nombre chromatique)
Le nombre chromatique d’un graphe G , not´ e γ(G ), est la plus petite valeur de k pour laquelle il existe une k-coloration. Une coloration des sommets en γ(G ) couleur est dite minimale.
De nombreux probl` emes concrets, tels que certains probl` emes d’horaire et d’allocation de ressources, peuvent se ramener ` a la recherche d’une coloration minimale des sommets d’un graphe.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 65 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple d’un graphe biparti
1
2
3
5
4
Nombre chromatique du graphe : γ(G ) = 2.
Propri´ et´ e.
Un graphe G est biparti ssi il est bichromatique.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 66 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
D´ etermination du nombre chromatique d’un graphe
La d´ etermination du nombre chromatique d’un graphe G = [X , U]
ainsi que l’obtention d’une coloration minimale des sommets de G constitue un probl` eme complexe. Na¨ıvement, on peut proc´ eder de la mani` ere suivante :
I
Enum´ erer tous les ensembles stables maximaux (au sens de l’inclusion).
I
Chercher un recouvrement des sommets form´ e d’un nombre minimum d’ensembles stables maximaux. Ce nombre est ´ egal ` a γ(G ).
I
D´ eduire de ce recouvrement une partition de X en sous-ensembles stables et donc une coloration minimale de G .
Cependant, le nombre d’ensembles stables maximaux sera souvent trop important pour que la proc´ edure soit effectivement appllicable.
⇒ En pratique on a recours ` a des algorithmes de coloration heuristiques simples mais qui m` enent ` a une coloration des sommets non
n´ ecessairement minimale.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 67 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Algorithme de coloration de Welsh et Powell
Input : A (matrice d’adjacence de G )
1 Ranger les sommets par ordre de degr´ es non croissant 2 k ← 0
3 B ← liste ordonn´ ee des sommets
4 Tant que toutes les lignes de B ne sont pas color´ ees faire
5 k ← k + 1
6 Tant que B 6= ∅ faire
7 Colorer dans A par la couleur c k la 1` ere ligne non color´ ee dans B ainsi que la colonne correspondante 8 B ← liste ordonn´ ee des sommets non color´ es ayant un z´ ero dans toutes les colonnes de A de couleur c k
9 Fin Tant que
10 B ← liste ordonn´ ee des sommets non color´ es 11 Fin Tant que
12 Output : k -coloration de G
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 68 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple
1 2
5
3
4 6
7
8
Matrice d’adjacence A :
1 2 3 4 5 6 7 8
1 0 1 1 0 0 1 1 0
2 1 0 1 0 1 0 1 0
3 1 1 0 1 0 0 0 1
4 0 0 1 0 1 0 0 1
5 0 1 0 1 0 1 0 0
6 1 0 0 0 1 0 0 0
7 1 1 0 0 0 0 0 0
8 0 0 1 1 0 0 0 0
Degr´ e des sommets :
1 2 3 4 5 6 7 8
d G (i ) 4 4 4 3 3 2 2 2
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 69 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple (initialisation)
1 2
5
3
4 6
7
8
Input : A
1 Les sommets sont d´ ej` a ordonn´ es 2 k ← 0
3 B ← {1, 2, . . . , 8}
Matrice d’adjacence A :
1 2 3 4 5 6 7 8
1 0 1 1 0 0 1 1 0
2 1 0 1 0 1 0 1 0
3 1 1 0 1 0 0 0 1
4 0 0 1 0 1 0 0 1
5 0 1 0 1 0 1 0 0
6 1 0 0 0 1 0 0 0
7 1 1 0 0 0 0 0 0
8 0 0 1 1 0 0 0 0
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 70 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple (1` ere it´ eration : k = 1)
1 2
5
3
4 6
7
8
5 k ← 1 Matrice d’adjacence A :
1 2 3 4 5 6 7 8 1 0 1 1 0 0 1 1 0
2 1 0 1 0 1 0 1 0
3 1 1 0 1 0 0 0 1
4 0 0 1 0 1 0 0 1
5 0 1 0 1 0 1 0 0
6 1 0 0 0 1 0 0 0
7 1 1 0 0 0 0 0 0
8 0 0 1 1 0 0 0 0
8 B ← {4, 5, 8}
8 B ← ∅
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple (2` eme it´ eration : k = 2)
1 2
5
3
4 6
7
8
10 B ← {2, 3, 5, 6, 7, 8}
5 k ← 2 Matrice d’adjacence A :
1 2 3 4 5 6 7 8 1 0 1 1 0 0 1 1 0 2 1 0 1 0 1 0 1 0
3 1 1 0 1 0 0 0 1
4 0 0 1 0 1 0 0 1
5 0 1 0 1 0 1 0 0
6 1 0 0 0 1 0 0 0
7 1 1 0 0 0 0 0 0
8 0 0 1 1 0 0 0 0
8 B ← {6, 8}
8 B ← {8}
8 B ← ∅
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple (3` eme it´ eration : k = 3)
1 2
5
3
4 6
7
8
10 B ← {3, 5, 7}
5 k ← 3 Matrice d’adjacence A :
1 2 3 4 5 6 7 8 1 0 1 1 0 0 1 1 0 2 1 0 1 0 1 0 1 0 3 1 1 0 1 0 0 0 1 4 0 0 1 0 1 0 0 1 5 0 1 0 1 0 1 0 0 6 1 0 0 0 1 0 0 0 7 1 1 0 0 0 0 0 0 8 0 0 1 1 0 0 0 0
8 B ← {5, 7}
8 B ← {7}
8 B ← ∅
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 73 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple (fin de l’algorithme)
1 2
5
3
4 6
7
8
4 Toutes les lignes sont color´ ees (B = ∅)
12 On obtient une 3-coloration : {1, 4}, {2, 6, 8}, {3, 5, 7}
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 74 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Borne pour le nombre chromatique
Attention : l’algorithme de Welsh et Powell est une heuristique et donc la k-coloration obtenue n’est pas n´ ecessairement minimale. Le nombre chromatique est en g´ en´ eral inconnu.
En revanche, il existe des bornes pour γ(G ) :
I
Bornes inf´ erieures :
F
γ(G ) ≥
N−minNi(dG(i)) F
γ(G ) ≥
α(G)NF
γ(G ) ≥ ω(G ) o` u ω(G ) est le cardinal de la plus grande clique de G (une clique est un sous-graphe complet c` ad tel qu’il existe une arˆ ete pour toute paire de sommets)
I
Bornes sup´ erieures :
F
γ(G ) ≤ max
i(d
G(i)) + 1
F
γ(G ) ≤ N + 1 − α(G )
F
γ(G ) ≤ k o` u k est le nombre de couleurs obtenu ` a l’issue de l’algorihtme de Welsh et Powell
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 75 / 159
Quelques probl`emes importants de l’´etude d’un graphe Coloration des sommets
Exemple
1 2
5
3
4 6
7
8 Degr´ e des sommets :
1 2 3 4 5 6 7 8
d G (i ) 4 4 4 3 3 2 2 2
Calcul des bornes : Bornes inf´ erieures :
I
γ(G ) ≥
N−minNi(dG(i))
=
86I
γ(G ) ≥
α(G)N=
83I
γ(G ) ≥ ω(G ) = 3
Bornes sup´ erieures :
I
γ(G ) ≤ max
i(d
G(i)) + 1 = 5
I
γ(G ) ≤ N + 1 − α(G ) = 6
I
γ(G ) ≤ k = 3
Donc pour l’exemple : γ(G ) = 3.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 76 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Rappel du Sommaire
2 Quelques probl` emes importants de l’´ etude d’un graphe Graphes sans circuit
Noyau d’un graphe
Stabilit´ e et absorption d’un graphe non orient´ e Coloration des sommets
Arbre partiel de poids minimum
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 77 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Pr´ eambule : Graphes valu´ es
D´ efinition. (Graphe valu´ e)
Etant donn´ e un graphe G = [X , U], on associe ` a chaque arˆ ete u un nombre p(u) ∈ R appel´ e poids de l’arˆ ete. On dit que G est valu´ e ou pond´ er´ e par les valeurs p(u). Si u = (i , j), on utilisera ´ egalement la notation p ij pour d´ esigner le poids de l’arˆ ete u.
2
1
4 5
1
3
10 6
8 5 2
4
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 78 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Arbres
D´ efinition. (Arbres et forˆ ets)
Un arbre est un graphe non orient´ e simple, connexe et sans cycle. Une forˆ et est un graphe non orient´ e simple et sans cyle. Une forˆ et peut ˆ etre vue comme un ensemble d’arbres.
Exemples d’application : r´ eseaux de t´ el´ ecommunications, hi´ erarchies, taxonomies. . .
Exemples d’arbres :
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Poids d’un graphe partiel
D´ efinition. (Poids d’un graphe partiel)
Soit G = [X , U] un graphe valu´ e simple et soit U 0 ⊂ U. Le poids du graphe partiel G 0 = [X , U 0 ] est le nombre :
p(U 0 ) = X
u∈U
0p(u)
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Probl` eme de l’arbre partiel de poids minimum
D´ efinition. (Probl` eme de l’arbre partiel de poids minimum)
Soit G = [X , U] un graphe valu´ e simple et connexe. Un graphe partiel sans cycles de G (donc un arbre admettant X pour ensemble de sommets) est appel´ e arbre partiel de G . Notons par A l’ensemble de tous les arbres partiels de G . L’ arbre partiel de poids minimum a est l’arbre G 0 = [X , U 0 ] qui minimise p(U 0 ) sur A :
∀G 00 = [X , U 00 ] ∈ A : p(U 0 ) ≤ p(U 00 )
a. on parle aussi d’arbre couvrant de poids ou de longueur minimum
La construction d’un arbre partiel de poids minimum dans un graphe a de nombreuses applications notamment dans certains probl` emes de distribution et de t´ el´ ecommunication. Par ailleurs, en fouille de donn´ ees, et en classification automatique en particulier, la r´ esolution du probl` eme aboutit ` a une m´ ethode de classification hi´ erarchique.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 81 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Obtention d’un arbre partiel de poids minimal : propri´ et´ es de l’algorithme de Kruskal
Il existe plusieurs algorithmes d’obtention d’un arbre partiel de poids minimum dans un graphe valu´ e simple et connexe G = [X , U]. Nous pr´ esentons ici l’algorithme de Kruskal. Il repose sur les propri´ et´ es suivantes :
I
La solution du probl` eme est unique si les poids des arˆ etes sont tous distincts. Nous supposons cette condition satisfaite dans la suite.
I
La solution du probl` eme est invariante pour les transformations
monotones croissantes des poids : elle ne d´ epend donc que du rang des arˆ etes lorsque celles-ci sont class´ ees par poids croissants.
I
Notons U
Yavec Y ⊂ X , l’ensemble des arˆ etes de G = [X , U] ayant une extr´ emit´ e dans Y et l’autre dans X \ Y . Si G
0= [X , U
0] est un arbre partiel de poids minimum alors pour tout Y ⊂ X , l’arˆ ete de valeur minimum de U
Yappartient ` a U
0.
I
Le graphe G = [X , U] ´ etant suppos´ e simple et connexe, tout arbre partiel de G est un arbre ` a N − 1 arˆ etes et N sommets.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 82 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Obtention d’un arbre partiel de poids minimal : algorithme de Kruskal
Input : G = [X , U]
1 Ranger les arˆ etes de U par ordre de poids croissants 2 U 0 ← {u 1 } ; k ← 1
3 Tant que |U 0 | 6= N − 1 faire
4 k ← k + 1
5 Tant que il existe un cycle dans U 0 ∪ {u k } faire
6 k ← k + 1
7 Fin Tant que
8 U 0 ← U 0 ∪ {u k } 9 Fin Tant que
10 Output : G 0 = [X , U 0 ] est l’arbre partiel de poids minimum On ajoute successivement ` a U 0 les arˆ etes dont les poids sont les plus bas pourvu que ces ajouts n’entraˆınent pas l’apparition d’un cycle.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 83 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Exemple
2
1
4 5
1
3
10 6
8 5 2
4
7
1 Ranger les arˆ etes de U par ordre de poids croissants
(i , j) p
iju
k(1, 4) 1 u
1(2, 4) 2 u
2(2, 3) 4 u
3(1, 3) 5 u
4(1, 2) 6 u
5(3, 4) 7 u
6(2, 5) 8 u
7(1, 5) 10 u
8J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 84 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Exemple (suite)
2
1
4 5
1
3
10 6
8 5 2
4
7
(i, j) p
iju
k(1, 4) 1 u
1(2, 4) 2 u
2(2, 3) 4 u
3(1, 3) 5 u
4(1, 2) 6 u
5(3, 4) 7 u
6(2, 5) 8 u
7(1, 5) 10 u
82 U
0= {u
1} ;k = 1 3 |U
0| = 1 4 k = 2 8 U
0= {u
1, u
2} 3 |U
0| = 2 4 k = 3
8 U
0= {u
1, u
2, u
3} 3 |U
0| = 3 4 k = 4 6 k = 5 6 k = 6 4 k = 7
8 U
0= {u
1, u
2, u
3, u
7} 3 |U
0| = 4
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 85 / 159
Quelques probl`emes importants de l’´etude d’un graphe Arbre partiel de poids minimum
Exemple (suite)
2
1
4 5
1
3 8
2 4
Arbre partiel de poids minimum : G 0 = [X , U 0 ] avec U 0 = {u 1 , u 2 , u 3 , u 7 }
p(U 0 ) = p(u 1 ) + p(u 2 ) + p(u 3 ) + p(u 7 ) = 15
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 86 / 159
Probl`eme du plus court chemin
Rappel du Sommaire
1 El´ ements de la th´ eorie des graphes
2 Quelques probl` emes importants de l’´ etude d’un graphe
3 Probl` eme du plus court chemin
4 Probl` emes de Flot
Probl`eme du plus court chemin
Exemples d’applications
Les probl` emes de cheminement dans les graphes sont parmi les probl` emes les plus anciens de la th´ eorie des graphes. Le probl` eme du plus court chemin est, parmi ceux-ci, le plus typique et poss` ede de nombreuses applications :
I
Probl` emes de tourn´ ees
I
Probl` emes d’optimisation de r´ eseaux (routiers, t´ el´ ecommunications)
I
certains probl` emes d’investissements et de gestion de stocks
I
certains probl` emes en intelligence artificielle
I
. . .
Probl`eme du plus court chemin
Pr´ eambule : Graphes valu´ es
D´ efinition. (Rappel : Graphe valu´ e)
Etant donn´ e un graphe G = [X , U], on associe ` a chaque arc u un nombre l (u) ∈ R appel´ e “longueur de l’arc” ou poids de l’arc (comme
pr´ ec´ edemment). On dit que G est valu´ e par les longueurs l (u). Si
u = (i , j), on utilisera ´ egalement la notation l ij pour d´ esigner la longueur de l’arc u.
2
1
4
6 3
4
7
1
3
7
5
5
2 5
2 1
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 89 / 159
Probl`eme du plus court chemin
Probl` eme du plus court chemin
D´ efinition. (Probl` eme du plus court chemin)
Le probl` eme du plus court chemin entre deux sommets i et j sera de trouver un chemin µ(i , j ) de i ` a j dont la longueur totale :
l(µ) = X
u∈µ(i,j)
l(u) soit minimum
La longueur d’un chemin est la somme des longueurs des arcs le consituant.
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 90 / 159
Probl`eme du plus court chemin Algorithme de Moore-Dijkstra
Rappel du Sommaire
3 Probl` eme du plus court chemin Algorithme de Moore-Dijkstra Algorithme de Ford-Bellman
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 91 / 159
Probl`eme du plus court chemin Algorithme de Moore-Dijkstra
Algorithme de Moore-Dijkstra
D´ etermination du plus court chemin du sommet s aux autres
sommets dans un graphe valu´ e dont les longueurs sont positives c` ad
∀u ∈ U : l(u) ≥ 0.
Exemples de longueurs positives ou nulles :
I
Temps (en minutes, en heures, . . . )
I
Coˆ uts (en euros, . . . ), . . .
Posons X = {1, 2, . . . , N } et soit l ij la longueur de l’arc (i, j) ∈ U . D´ efinissons π ∗ (i) comme la longueur du plus court chemin de s ` a i . Nous avons π ∗ (s) = 0.
L’algorithme utilise la repr´ esentation du graphe par Γ. Il proc` ede en N − 1 it´ erations. Au d´ ebut de chaque it´ eration, l’ensemble X est partitionn´ e en deux sous-ensembles, S et S = X \ S avec s ∈ S . Chaque sommet i de X est affect´ e d’une ´ etiquette π(i) qui v´ erifie la propri´ et´ e suivante :
I
si i ∈ S, π(i ) = π
∗(i)
I
si i ∈ S, π(i ) = min
j∈S,j∈Γ−1(i)(π(j) + l
ji)
J. Ah-Pine (Univ-Lyon 2) Optimisation et Recherche Op´erationnelle M1 Informatique 2019/2020 92 / 159