Recherche operationnelle - La theorie du graphe.doc

24
MATHEMATIQUES Année Universitaire : 2015-2016 Chapitre 4 : GRAPHES ET RESEAUX Professeur : Tayeb OUADERHMAN 0

description

Recherche operationnelleLa theorie du graphe

Transcript of Recherche operationnelle - La theorie du graphe.doc

Page 1: Recherche operationnelle - La theorie du graphe.doc

MATHEMATIQUES

Année Universitaire : 2015-2016

Chapitre 4 :

GRAPHES ET RESEAUX

Professeur : Tayeb OUADERHMAN

0

Page 2: Recherche operationnelle - La theorie du graphe.doc

INTRODUCTIONL’histoire de la théorie des graphes débute avec les travaux d’Euler au XVIIIe siècle et trouve

son origine dans certains problèmes, tels que celui des ponts de Königsberg :

Figure 2.1 : Carte du village de Königsberg

Figure 2.2 : graphe du problème des ponts de Königsberg

Les habitants se demandaient s’il était possible, en partant d’un quartier quelconque de la

ville, de traverser tous les ponts sans passer deux fois par le même et de revenir à leur point de

départ. 

L’idée d’Euler était très simple et marqua le début de la théorie des graphes. Tout d’abord, il

remplaça la carte du village par le diagramme de figure 2.2 . Sur ce graphe les sommets s1 et

s3 représentent les deux rives de la rivière, les sommets s2 et s4 représentent les deux îles, et

les sept arêtes reliant ces sommets correspondent aux sept ponts.

Euler a donc démontré que la réponse à cette question est négative.

Dés lors la théorie des graphes s’est alors développée dans diverses disciplines telle que la

chimie, la biologie, les sciences sociales…

île 1 11 île 2

11

Rive nord

Rive sud

s2

s1

s3

s4

Page 3: Recherche operationnelle - La theorie du graphe.doc

Un graphe permet de représenter la structure, les connections d’un ensemble complexe en

exprimant les relations entre ses éléments : réseau de communication, réseaux routiers,

circuits électriques…

Les graphes permettent donc de modéliser une grande variété de problèmes en se ramenant à

l’étude de sommets et d’arcs. Les derniers travaux en théorie des graphes sont souvent

effectués par des informaticiens, du fait de l’importance qu’y revêt l’aspect algorithmique.

DEFINITIONS ET PREMIERS EXEMPLES :Il existe plusieurs manières de caractériser un graphe, nous allons en parcourir quelques unes.

Notons immédiatement qu’il existe deux grands types de graphes :

Les graphes orientés

Les graphes non orientés

Concepts orientés (digrahe)Un graphe G(S,U) est caractérisé par :

Unb ensemble S={s1, s2,…, sn} dont les éléments sont appelés sommets ou noeuds

un ensemble U={ u1, u2,…, um } du produit cartésien SxS dont les éléments sont

appelés arcs.

On appelle le cardinal de S l’ordre du graphe.

Pour un arc u=( si,sj), si est l’extrémité initiale, sj est l’extrémité finale ( ou bien origine et

destination).

u

figure 2.1 : Diagramme sagittal

Un arc u=( si,si) est appelé une boucle :

Application multivoquesj est successeur de si si , l’ensemble des successeurs de si est noté . (si est prédécesseur de , l’ensemble des prédécesseurs de ) :

Exemple 1 :

si

2

s1 S2

Page 4: Recherche operationnelle - La theorie du graphe.doc

Figure 2.2 :

Calculer (si) pour i=1,..,5

Remarques 1: - G peut être parfaitement déterminé par .- On peut également définir une fonction telle que représente l’ensemble des

arcs sortant de et réciproquement pour les arcs entrants.

Concepts non orientésLors de l’étude de certaines propriétés, il arrive que l’orientation des arcs ne joue aucun rôle.

On s’intéresse simplement à l’existence d’arc (s) entre deux sommets (sans en préciser

l’ordre). Un arc sans orientation est appelé arête. u est constitué non pas de couples, mais de

paires de sommets non ordonnés.

Pour une arête (si,sj) on dit que U est incidente aux sommets si et sj .

Remarque : Dans le cas non orienté, au lieu de noter G =(S,U) et u=( ei,ej) on préfère souvent G=(S,E) et

e=[ si,sj ] .

Les graphes simples et les multigraphes

Un multigraphe G=(S,E) (ou G=(S,U)) est un graphe pour lequel il peut exister plusieurs

arêtes entre deux sommets.

Un graphe est simple :

o S’il n’est pas multigraphe

o S’il n’existe pas de boucles.

s2

s1

s3

s5

s4

Page 5: Recherche operationnelle - La theorie du graphe.doc

Arêtes multiples Arcs multiples

Remarque : Deux arcs de sens opposés ne sont pas des arcs multiples.

On appelle p-graphe, un multigraphe dont le nombre maximum d’arcs liant deux sommets ne

peut jamais excéder p.

Exemple 2 : Donner un exemple de chaque type de graphes suivants :

(a) : 3-graphe d’ordre 4 (b) 2-graphe d’ordre 5

Lorsque p=1, le p-graphe devient un 1-graphe, les arcs de U étant tous distincts, U devient un

ensemble de cardinal m.

adjacence et incidence Définitions :

o Deux sommets distincts d’un graphe G=(S,U) sont dits adjacents si et seulement si ils

sont joints par un arc : Si et alors

est adjacent à .

o Deux arcs distincts d’un graphe sont dits adjacents si et seulement si ils ont au moins

une extrémité commune.

Un arc u= d’un graphe G est dit incident à vers l’extérieur et incident à

vers l’intérieur.

s2

s1

s1

s2

4

Page 6: Recherche operationnelle - La theorie du graphe.doc

Dans un graphe G, le nombre d’arcs incidents à un sommet s vers l’extérieur, noté ,

s’appelle le demi-degré extérieur de s. De même, le nombre d’arcs incidents à s vers

l’intérieur, noté , s’appelle le demi-degré intérieur de s.

Le degré d’un sommet s d’un graphe G, noté , est défini comme le nombre total d’arcs

ayant une extrémité en s :

Remarques : On a : et

Le degré d’un sommet d’un graphe non orienté est le nombre d’arêtes qui lui sont

incidentes.

Dans le cas d’un 1-graphe, on peut tout aussi bien définir le degré d’un sommet à

l’aide de l’application multivoque puisque :

= et =

Une boucle augmente de deux unités le degré d’un sommet concerné.

Théorème 2.1 :

Pour tout graphe G , la somme des degrés des sommets égale deux fois le nombre

d’arcs.

Preuve : exercice

Corollaire  2.1 :

Pour tout graphe G , il existe un nombre pair des sommets dont le degré est impair.

Proposition 2.1 :

Soit G un graphe, alors g admet au moins une paire de sommets ayant le même degré.

Autres terminologies :o Graphe complémentaire :G= et , et , est le graphe complémentaire de G.o Graphe partiel :G= et , est un graphe partiel de G.o Sous-graphe :G= et , est un sous-graphe de G, où V est la réstriction de la fonction caractéristique de U à S’ :

o Sous-graphe partiel : combiner les deuxo Graphe réflexif :o Graphe symétrique :

Page 7: Recherche operationnelle - La theorie du graphe.doc

o Graphe asymétrique :o Graphe antisymétrique : et o Graphe transitif : et o Graphe complet :

Notons qu’un graphe complet et antisymétrique s’appelle un tournoi, car il symbolise le

résultat d’un tournoi où chaque joueur est opposé une fois à chacun des autres joueurs.

REPRESENTATION DES GRAPHES

3.1. Matrice d’adjacence Soit G= un graphe d’ordre n :

La matrice d’adjacence A(G) de G est la matrice carré nxn définie comme suit :

avec est le nombre d’arêtes (arcs) de à

Remarques : Si G est non orienté alors A(G) est symétrique

Si g es simple, A(G) est une matrice booléens

Une consultation complète de A(G) occupe une place mémoire d’ordre , cette

représentation est coûteuse en mémoire.

Pour les graphes simples numérisés, on peut remplacer « 1 » par la valeur numérique

de l’arc.

6

Page 8: Recherche operationnelle - La theorie du graphe.doc

Exemples 3.1:

3.2. Matrice d’incidence sommets-arcsSoit G= un graphe à n sommets et m arcs, on lui associe une matrice D(G) à n lignes

(correspondant aux sommets ) et m colonnes (associées aux arcs ) :

avec

Exemple 3.2:

On obtient facilement :

s2

s1

s3

s4 s6

s1 s3

s1

s3

s2

s2

s5

Page 9: Recherche operationnelle - La theorie du graphe.doc

IV. COLORATION DES SOMMETS D’UN GRAPHEDéfinition 4.1 :Soit un graphe G= un graphe non orienté. Un sous-ensemble est un ensemble

stable s’il ne comprend que des sommets non adjacents deux à deux : .

Comme tout sous-ensemble d’un ensemble stable est un ensemble stable, il est naturel de

chercher le cardinal maximum d’un ensemble stable. Ce nombre, noté , est le nombre de

stabilité.

Définition 4.2 :

La coloration des sommets d’un graphe consiste en affectation de couleurs à tous les sommets

du graphe de telle sorte que deux sommets adjacents ne soient pas porteurs de la même

couleur.

Le nombre chromatique est défini comme le nombre minimum de couleurs distinctes

nécessaires à la coloration des sommets de G.

Un graphe G tel que qui est colorable en k couleurs est dit k-chromatique. Une

k-coloration des sommets est une partition de l’ensemble des sommets en k

ensembles stables.

Applications : De nombreux problèmes concrets, tels que certains problèmes d’horaire et

d’allocation de ressources, peuvent se ramener à la recherche d’une coloration minimale des

sommets d’un graphe.

4.2. Algorithme de coloration de Welsh et PowellLa détermination du nombre chromatique d’un graphe G= , ainsi que l’obtention

d’une coloration minimale des sommets de G, constituent un problème assez complexe.

Certes, on peut procéder de la manière suivante :

Enumérer tous les ensembles stable maximaux ;

Déduire de ce recouvrement une partition  ;

Cependant, le nombre d’ensembles stables maximaux sera souvent trop important pour que

cette procédure soit effectivement applicable.

Il est dès lors utile, en pratique, de recourir à des algorithmes de coloration heuristique mais

simple, qui mènent à une coloration des sommets non nécessairement minimale. L’algorithme

de W&P présenté ci-dessous en est un exemple. Cet algorithme est défini ici à partir d’une

8

Page 10: Recherche operationnelle - La theorie du graphe.doc

matrice d’adjacence A(G). L’expression « colorier le ligne i de la couleur  » est substituée à

« attribuer la couleur  ».

4.3. Bornes pour le nombre chromatiqueComme nous l’avons mentionné, cet algorithme ne conduit pas nécessairement à une

coloration minimale, de même d’ailleurs que beaucoup d’autres algorithmes proposés dans la

littérature. Le nombre chromatique étant généralement inconnu, il est impossible de comparer

directement le nombre k de couleurs résultant de l’application de l’algorithme à la valeur

Ranger les sommets de S par ordre de degrés décroissants : Soit A la matrice d’adjacence du graphe ainsi ordonné

k=1

N=AA

Colorer par la couleur ck la première ligne non encore colorée dans N, ainsi que la colonne correspondante

N= ensemble des lignes non encore colorées ayant un zéro dans les colonnes de couleur ck

N=

Toutes les lignes sont colorées

k=k+1, Changer de couleur

Stop, la coloration obtenue est une k-coloration

Non

Non oui

Page 11: Recherche operationnelle - La theorie du graphe.doc

optimale de . A défaut d’une valeur exacte, des bornes inférieures et supérieures

peuvent cependant être établies pour , aux quelles il peut être utile de comparer

k. Citons alors quelques bornes inférieures  :

où est le degré minimum des sommets du graphe,

où le cardinal de plus grand clique de G (un clique de G est un sous-graphe complet de G).

Et les bornes supérieures suivantes : , , où est le degré maximum des sommets du graphe.

Exemple :Colorons les sommets du graphe G présenté ci-dessous :

La matrice d’adjacence de graphe ordonné est :

Et les degrés de chaque sommet sont les suivants :

si s1 s2 s3 s4 s5 s6 s7 s8

d(si) 4 4 4 3 3 2 2 2

Par application de l’algorithme, on obtient alors la 3-coloration suivant des sommets de G :

La couleur est attribuée à et La couleur est attribuée à , et , La couleur est attribuée à , et

s6 s3

s7

s4

s1

s8

s2

s5

10

Page 12: Recherche operationnelle - La theorie du graphe.doc

Calculons les bornes inférieures et supérieures, pour le nombre chromatique :

On en déduit que =3, la 3-coloration obtenu par l’algorithme de W&P constitue donc ici

une coloration minimale des sommets de G.

Remarques : On peut également se pencher sur le problème de la coloration des arêtes d’un graphe.

On a alors la définition de l’indice chromatique, duale de celle du nombre chromatique pour le cas de la coloration des sommets d’un graphe. L’indice chromatique q(G) est défini comme le nombre minimum de couleurs distinctes nécessaires à la coloration des arêtes de G

L’algorithme nécessite autant d’étape que le nombre k de couleurs qu’il associera aux sommets de G.

V. CONNEXITE DANS UN GRAPHE

5.1. CheminsBeaucoup de problèmes en théorie des graphes tournent autour de l’existence de chemins pour

rendre d’un sommet à un autre. Nous allons définir dans cette section, différents types de

chemins correspondant à différents types de solutions.

Définitions 5.1 :

Dans un graphe orienté G= , on appelle chemin de longueur q, une séquence

d’arcs de G telle que pour tout arc l’extrémité terminale de coïncide

avec l’extrémité initiale de .

Un chemin est dit simple s’il ne comporte pas deux fois le même arc.

Un chemin est dit élémentaire s’il ne passe pas deux fois par le même sommet.

Un chemin est dit eulérien s’il emprunte une et une seule fois chaque arc du graphe.

Un chemin est dit hamiltonien s’il emprunte une et une seule fois chaque sommet du graphe.

Un chemin dont le sommet initial coïncide avec le sommet terminal s’appelle un circuit.

Tous les qualificatifs relatifs aux chemins s’appliquent aussi aux circuits.

Page 13: Recherche operationnelle - La theorie du graphe.doc

Remarque 5.1 : lorsqu’on travaille sur un graphe non orienté, on parle plutôt de chaîne au lieu de

chemin, et de cycle au lieu de circuit. Lorsqu’on travaille avec un 1-graphe, on peut également décrire un chemin à l’aide

d’une séquence de sommets. Dans ce cas, une telle description est équivalente à une séquence d’arcs.

Exemple 5.1 :

Par rapport au graphe de la figure 5.1a, la séquence est un chemin qui relie les

sommets et . Ici, nous pouvons décrire ce chemin à l’aide d’une séquence de sommets

car nous avons affaires à 1-graphe. Ce chemin est à la fois simple et élémentaire. Par contre,

le chemin est simple mais non élémentaire, et il correspond à un circuit. Le

chemin n’est pas un circuit et n’est ni simple, ni élémentaire. Finalement, le

chemin est un circuit simple et élémentaire.

Par rapport au graphe de la figure 5.1b, la séquence [ ] est un chemin qui

relie les sommets et . Ce chemin est simple mais n’est pas élémentaire (il passe deux fois

par ). Le chemin [ ] est simple et élémentaire. Il correspond aussi à un circuit. Le

chemin [ ] est aussi un circuit simple non élémentaire.

5.2. ConnexitéDéfinitions 5.2 :

Une chaîne est l’équivalent d’un chemin mais pour un graphe non orienté. Une chaîne de

longueur q est une séquence d’arcs (ou d’arêtes) telle que chaque arc de la

séquence possède une extrémité en commun avec l’arc précédent, et l’autre extrémité en

commun avec l’arc suivant.

s3 s4

s1 s2

s5

Figure 5.1a :

s3

s4s1

s2

Figure 5.1b :

12

Page 14: Recherche operationnelle - La theorie du graphe.doc

Un graphe G= est dit (faiblement) connexe si et seulement si, pour toute paire de

sommets et , il existe une chaîne reliant ces deux sommets.

Un graphe G= est dit fortement connexe si et seulement si, pour toute paire de

sommets et , il existe un chemin reliant ces deux sommets.

Une composante connexe d’un graphe G= est définie comme une classe de la relation

d’équivalence ≡ dans SxS telle que : x≡y si et seulement si, x=y ou s’il existe une chaîne de x

à y. (i.e. : c’est un sous ensemble de sommets tels qu’il existe une chaîne entre deux sommets

quelconques.

Un graphe est connexe s’il comporte une composante connexe et une seule. Chaque

composante connexe est un graphe connexe.

Théorème 5.1 (théorème d’Euler)Un multigraphe connexe possède une chaîne eulérienne si et seulement si, le nombre de

sommets de degré impair égale à 0 ou 2. Cette chaîne est un cycle si et seulement si, ce

nombre est 0 ; autrement dit, le chemin eulérien mène d’un des sommets de degré impair à

l’autre.

1. Autres difinitions Un arbre est un graphe non orienté simple, connexe, acyclique. Un arbre comprend

n-1 arêtes. L’addition d’une arête entre deux sommets crée un cycle et un seul.

Forêt : c’est un graphe non orienté acyclique (pas forcement connexe). Chaque

composante connexe d’une forêt est un arbre.

Arborescence : c’est un graphe orienté où chaque sommet possède un seul précédent

sauf un qui n’en a pas : la racine. un chemin unique de la racine à s. On

considère un nœud si d’arborescence T, de racine sr, un nœud sk quelconque sur le

chemin unique de sr vers si est appelé ancêtre de si ; si est un descendant de sk . si le

dernier arc sur le chemin de sr vers si est (sp, si), alors sp est le père de si , si est un fils

de sp . si deux nœuds ont le même père, ils sont frères. Un nœud sans fils est une

feuille. La longueur du chemin entre sr et si est la profondeur de si dans T. la plus

grande profondeur de T est la hauteur de T. Si chaque nœud a au maximum deux fils,

on parle d’arborescence binaire.

Exemple 6.2 :

Page 15: Recherche operationnelle - La theorie du graphe.doc

7.1. Arbre maximal de poids minimum7.1.1.Graphe valué (numérisé)

Jusqu’à présent, les graphes avec lesquels nous avons travaillé ont toujours représenté un

ensemble de sommets et un ensemble d’arcs (arêtes). Dans cette section, nous considérons un

dernier type de graphe où nous associons une valeur à chacun de ces liens.

Définition 7.3 :

Un graphe valué G= est un graphe G= auquel on a associé une application

dite fonction de valuation, de l’ensemble des arêtes (arcs) dans un ensemble de

valeurs .

Les valeurs associées aux arêtes peuvent représenter, selon le type de problèmes, soit des

poids, soit des coûts ou encore autres propriétés pertinentes.

Exemple 7.1 :

Un exemple de graphe valué où les sommets pourraient représenter des villes et les arêtes les

routes reliant ces villes. La valeur associée à chaque arête correspondrait alors à la distance

entre deux villes le long d’une route donnée :

s3

s4

s1

s2s5

Figure 6.1 : Arborescence

s8s6 s1

0

s1

1

s7 s1

2

s9

14

Page 16: Recherche operationnelle - La theorie du graphe.doc

Définitions 7.4 :

Soit G= un graphe valué. On définit le poids de G, comme somme des poids de

chacun de ses arêtes (arcs) :

Si G est connexe, on appelle arbre maximal (graphe partiel de G qui est un arbre) de poids

minimum, l’arbre maximal de G dont le poids est minimum.

Il existe plusieurs algorithmes pour trouver l’arbre maximal de poids minimum d’un graphe

valué. Nous en présentons un ici, l’algorithme dit de Kruskal.

7.2. Algorithme de Kruskalsoit G= un graphe connexe valué où . Alors, l’algorithme suivant nécessite exactement n-1 étapes pour produire un arbre maximal de poids minimum de G. à l’étape k, on définit l’ensemble formé de k arêtes distinctes de G :

La définition suivante de l’algorithme de Kruskal est inductive.

Etape k=1   : soit l’arête dont la valeur est minimum. On choisit alors

Etape k+1   : soit l’ensemble des arêtes obtenues à l’étape k. à l’étape k+1, il s’agit de

choisir l’arête \ dont la valeur est minimum et qui n’engendre aucun cycle avec

les arêtes de . Alors et :

A la fin des n-1 étapes, le graphe G= est un arbre maximal de poids minimum.

Exemple 7.2 :

Appliquons l’algorithme de Kruskal sur l’exemple de la figure 7.3. la première étape consiste

à choisir l’arête dont le poids minimum. C’est l’arête dont la valeur est 5 :

s3

s4s1

s2

Figure 7.3 :

s6

s7

s5

11

25

78

17

12

28 16

9

5 7

Page 17: Recherche operationnelle - La theorie du graphe.doc

Ensuite, parmi les arêtes restantes, il s’agit d’en choisir une de poids minimum et qui

n’engendre aucun cycle. La deuxième arête est de poids minimum mais engendre le

cycle  ; on ne peut donc pas le choisir. Notre deuxième choix est donc l’arête

comme le montre le graphe suivant :

Ensuite on choisit l’arête car c’est elle dont la valeur est maintenant minimum et elle

n’engendre aucun cycle. De même, on choisit par la suite l’arête . On obtient le graphe

suivant :

s3

s4s1

s2

Figure 7.3a :

s6

s7

s5

11

25

78

17

12

28 16

9

5 7

s3

s4s1

s2

Figure 7.3b :

s6

s7

s5

11

25

78

17

12

28 16

9

5 7

16

Page 18: Recherche operationnelle - La theorie du graphe.doc

A cette étape, on voudrait maintenant choisir l’arête , mais celle-ci engendrerait le

cycle . On choisit donc l’arête . De même, l’arête de poids minimum

suivante est . Cependant, cette arête engendrerait le cycle . Elle doit donc

être rejetée. On choisit donc l’arête qui nous donne le graphe suivant :

A ce graphe, on ne peut plus ajouter aucune arête sans créer de cycle. En vertu de l’algorithme

de Kruskal, on peut donc affirmer que ce graphe (celui en trait plein) correspond à un arbre

maximal de poids minimum. La somme des valeurs des ses arêtes égale à

5+7+8+9+12+17=58

s3

s4s1

s2

Figure 7.3c :

s6

s7

s5

11

25

78

17

12

28 16

9

5 7

s3

s4s1

s2

Figure 7.3d :

s6

s7

s5

11

25

78

17

12

28 16

9

5 7