UNIVERSITE M.MAMMERI Département d’Informatique T. Graphes CHAPITRE III : Graphe planaire / indicateurs ds un graphe / P. affectation Partie I : Graphes planaires Problème posé : ‘Problème des 3 villas’ I-1) Fournir du gaz ,de l’électricité , et de l’eau pour les 3 villas . ** Peut-on résoudre ce problème sans avoir aucun croisement ? ** Non , on ne peut pas sur le plan il y a au moins un croisement la solution est possible dans R3 (espace) . Déf : Un graphe est dit planaire , si on peut le représenter sur une surface plane (plan ) , sans que ses arêtes (arcs) ne se coupent sauf aux sommets du graphe . I-1-2) Résultat général ( Kuratowski ) Déf : On appelle subdivision d’un graphe G, un sous graphe partiel de G. Résultat Un graphe G est planaire si et seulement si , G ne possède pas de subdivision K5 ou K3,3. Exemples 5 1°) K3,3 2°) K4 1 1 2 1 2 4 2 5 3 I-1-3) I-1-4) 3°) K5 6 3 4 3 K4 : planaire ; K3,3 , K5 : non planaire 4 Définitions : (Face, frontière , contour , face illimitée) : Voir T.D Résultats : 1) Théorème : Soit G = ( X,U) , un graphe planaire ,alors l’ensemble des contours des faces finies forment une base de cycle de G. Démons : (C. Berge , M405) 1 2) corollaire 1 : ‘ Formule d’ Euler ‘ G = (X,U) , planaire ,connexe X= n , U = m f = Nb de face de G (face infinie incluse) Alors n-m+ f = 2 Démons : Posons : f ’ = Nb de faces finies de G . f ’ = (G) Nb cyclomatique f’ = m-n +1 ( cardinal de la base de cycles ) f = f ’ +1 f = (m – n +1 ) + 1 = m- n +2 n-m +f = 2 C.Q.F.D 4 ) Corollaire 2 : X= n , U = m Soit G =(X,E) , un graphe simple planaire Alors : x X / dG(x) 5 Démons : ‘ Par l’ absurde ’ Supposons que G est connexe et * x X dG(x) 6 xX , dG(x) 6 dG(x) 6n x X Sachant que : dG(x) = 2m , on a : 2m 6n n 2m/6 = m / 3 x X (2) formule d’Euler * G est planaire n-m + f = 2 Calculons n – m +f = ? (1) et (2) n – m +f m / 3 –m + 2m / 3 = 0 2 Contradiction G planaire , il doit vérifier la formule d’ Euler Donc : x X / dG(x) 5 C.Q.F.D 2 3) Relation Face -arête Posons N = Ensemble des arêtes définies par la liaison : faces ( fi ) N ={Ensemble des arêtes nécessaire pour toutes les faces} Exemple arêtes ei 2 A = {faces de G} ; B = {arêtes} f = nb de faces G: 1 f2 A = (fi) f1 3 B = (ei) f1 ( 1, 3) 4 (3,4) fI ( face infinie) (1,4) f2 (1,4) (1,2) fI (2,4) Graphe biparti d’incidence faces – arêtes En lisant le tableau comparatif ,on peut déduire que : 1) Une face est définie par au moins 3 arêtes ( 1 face 3 arêtes ) N 3f (2) Une arête est commune à au plus 2 faces ; elle est comptée 2 fois par rapport au nb de faces . ( 1 arête 2 faces ) correspond Donc : N 2m N 3f 2m 3f f 2m / 3 (1) N 2m 4) Vérification de la structure planaire du graphe K5 Supposons K5 planaire : formule d’Euler * G est planaire n-m + f = 2 3 Calculons n – m +f = ? (1) et (2) n – m +f n – m +2 m / 3 = 5 – 10+20/ 3 = 5 / 3 2 Contradiction Donc K5 n’est pas planaire Rmq : K5 : Nb de sommets : 5 ; Nb d’arêtes : 10 III-1-5 ) Graphe dual :Définition , construction : Voir T.D Théorème Un cycle élémentaire dans G est un cocycle élémentaire dans G* et inversement Partie II : Indicateurs dans un graphe II –1) Stabilité – nb chromatique (cas des graphe planaires ) – Noyau II-1-1) Stabilité interne ds un graphe – nb chromatique : X x X’ X est intérieurement stable si : a) Stabilité interne : Déf : G = (X,U) ; xX’ , X x = (x) x X’ = Dans le S/ graphe défini par X’ , il n’existe pas d’arcs . Conséquence : a1) Coefficient (nb) de stabilité interne 1( G)= max X’ X’ int-stable De G a2) S / ensembles int- stable maximaux Maximalité : X’ est int-stable : Soit x X’ alors X’ { x} n’est pas int-stable 3 Exemple : 1 2 6 5 { 3,5} : S/ens int-stable maximal {4 ,6,3} : S/ens int-stable maximum 4 4 b) Nombre chromatique : noté (G) Déf : C’est le nombre minimum de couleurs ,coloriant les sommets d’un graphe tels que 2 sommets adjacents n’aient pas la même couleur . Cas des graphes planaires : 1) Résultat Le nombre chromatique dans un graphe planaire 2) 5 (G) 5 Conjecture des 4 couleurs (1852 - 1976) On peut colorier n’importe quelle carte géographique telle que le maximum du nombre minimum de couleurs soit 4 , c .a .d (G) 4. Cette conjecture a été démontrée en 1976 par Kenneth - Appeld -Wolfgang-Haken II-1-2) Stabilité –externe - Noyau a) Stabilité – externe : Rmq : G= (X,U) X’ X est un s/ ensemble –extérieurement stable si : __ + x X ’ , x X ’ X ’ est dit aussi ensemble absorbant . Exemple : ‘ Problème des radars ’ (C. Berge ) Enoncé : Un certain nb de points stratégiques x1,x2,….. (cellules) sont surveillées par des unités militaires pourvues de radars . Par exemple , une unité placée ds la cellules x4 peut également surveiller avec son radar les cellules x1, x2, x3 (voir G) ; de même pour x2 qui peut surveiller x3 et x5 , etc … Problème : Quel est le nombre minimum d’unités nécessaires pour surveiller toutes les cellules ? Solution : C’est le nombre de stabilité externe 2( G) x1 G: x4 A = { x2,x4} x3 x5 x2 Dans cet exemple 2( G) = 2 donc , deux radars suffisent pour contrôler toutes les cellules ( on peut le vérifier sur G ). 5 a1) Coefficient de stabilité externe : 2( G) = min X’ X’ ext-stable De G a2) S / ensembles ext- stable minimaux Minimalité : X’ est ext-stable : Soit x X’ alors X’ - { x} n’est pas ext-stable b) Noyau dans un graphe b1) Déf : G=(X,U) un 1-graphe ; X ’ X X ’ est un noyau de G ,s’il vérifie à la fois : 1) X ’ int-stable 2) X ’ ext-stable Donc , X ’ vérifie simultanément : x X ’ alors __ x X ’ alors x X ’ = + x X ’ Conséquences 1°) Dans X ’ ,il n’y a pas d’arcs . __ 2°) Chaque sommet de X ’ admet un successeur dans X ’ . b2) Théorème Alors Démons : Soit G =(X,U) ,un 1-graphe , orienté , sans circuit G possède un noyau unique . ( voir C. Berge ) Basée sur l’existence dans G (sans circuit) des différents niveaux , ce qui permet de mettre en évidence un noyau . 6 Partie III : Problème d’affectation III-1) Position du problème Soient n personnes et n tâches P = { p1,p2, …..,pn} : ensemble des personnes T = { t1,t2,…..,tn} : ensemble des tâches ** Il s’agit de répartir les différentes tâches entre les différentes personnes en tenant compte des préférences de chaque personne aux différentes tâches ** La préférence d’une personne Pi à la tâche tj est représentée par un nombre noté aij . Modélisation Les éléments de la matrice A = (aij) i , j=1,n constituent la matrice A(n x n) qui modélise le problème posé . A est appelée matrice d’affectation . Objectif : Affecter de manière optimale chaque personne à une tâche au sens de la satisfaction générale . (en satisfaisant au mieux chaque personne) III-2) Lien avec la notion de couplage et de transversal III-2-1 Notion de couplage Déf : Soit G = (X,U) un multigraphe . Un couplage de G est un ensemble d’arêtes E’ E / e’1 ,e’2 E’ e’1 et e’2 ne sont pas adjacentes. Exemple G : x2 x1 e4 e5 E1 = { e2,e4} e1 x5 e3 e2 x3 x6 e6 E2 ={ e2,e4,e6} E2 est maximal , E1 ne l’est pas x4 III-2-2 Notion de Transversal Déf : Soit G =( X,E) , T X : un ensemble de sommets ; T est un transversal de G si toute arête de E est incidente à , au moins , un sommet de T. Pour G : T1 = { x1,x3,x4,x5} ; T2= { x1,x3,x5} T2 est minimal ,T1 est ne l’est pas Problème : Déterminer un couplage maximum et un transversal minimum 7 Théorème E max =Max E T min = Min T E COUPLAGE Si E 0 = T 0 alors T TRANSVERSAL E 0 = E max et T 0 = T min Problème d’affectation en termes de couplage III-2-3) Soient X et Y deux ensembles finis tels que et une application : X x Y N (x,y) (x,y) X = Y Déf : On appelle affectation , un couplage E de X sur Y dont le coût est défini par la valeur de la fonction L(E) = (x,y) (x,y) E La détermination de l’affectation optimale (valeur minimale) revient à déterminer un couplage maximum de coût minimum . Ce qui peut revenir aussi à déterminer un transversal minimum de coût minimum . Graphiquement on a : Graphe biparti valué , X et Y deux s/ens de sommets de G tels que : X={ Pi , i=1,n} : Personnes P1 . . . a12 t1 * Les arêtes ( P1t1 , Pitj , Pntn) forment un couplage * Une arête Pitj est valuée par aij = (x,y) avec x= Pi , x X y = tj , y Y . . Pn Y ={ tj , j=1,n} : tâches a11 t2 Pi . . an1 , tj aij ann tn * La valeur de l’affectation V(aff) = aij aij = (x,y) (x,y) E 8 III-3 ) Méthode Hongroise La minimisation correspond au cas où le classement des tâches se fait dans l’ordre croissant . A la plus grande préférence ,on associe la valeur ‘1’. But Soit A = ( aij) , i=1,n la matrice d’affectation J=1,n Il s’agit donc de minimiser la valeur de l’affectation V(Aff) = aij i,j / Pi On dit aussi , déterminer l’affectation de coût minimal. tj * La résolution de ce problème est basée sur la notion de ‘0’ indépendants . Déf ‘Zéros indépendants’ On appelle ‘Zéros’ indépendants des ‘0’ qui n’appartiennent ni à la même ligne ,ni à la même colonne . Exemple : A = 0 3 0 0 2 4 3 0 0 Les ‘0’ encadrés sont indépendants . III-3-1 )Description globale de l’algorithme : Méthode Hongroise 1) L’algorithme est basé sur la détermination des zéros sur chaque ligne et chaque colonne de la matrice d’affectation . 2) L’affectation d’une personne à une tâche peut se faire en choisissant un ‘0’ sur une ligne ou une colonne , les autres ‘0’ sont barrés . 3) Pour que chaque personne soit affectée à une et une seule tâche , il faut choisir des ‘0’ indépendants . But de l’algorithme : Obtenir n zéros indépendants à la fin de l’application de l’algorithme 9 III-3-2 ) Etapes de Algorithme Hongrois de minimisation Début : Etape 1 : 1-1) Création d’au moins un ‘0’ sur chaque ligne et chaque colonne de la matrice . Pour cela , on retranche le plus petit élément d’une ligne ( colonne) à tous les éléments de la ligne (colonne). 1-2) 1-3) Pour chaque colonne (ou ligne ) , choisir un ‘0’ en l’encadrant puis barrer ceux qui se trouvent sur la même ligne ( ou colonne ) . Si on a obtenu n ‘0’ indépendants , alors l’affectation est optimale , elle est obtenue comme suit : * Si un ‘0’ encadré correspond à ai0j0 ( dans la matrice initiale ) alors la personne pi0 est affectée à la tâche tj0 * La valeur de l’affectation v(Aff) = * Aller à la fin de l’algorithme ai0j0 de la matrice initiale . 1- 4) Si on n’a pas obtenu n ‘0’ indépendants on passe à l’étape 2 Etape 2 : 2- 1) Marquer toute ligne ne contenant pas de ‘0’ encadrés . 2- 2) Sur chaque ligne marquée ,marquer toute colonne contenant un ‘0’ barré. 2- 3) Sur chaque colonne marquée , marquer toute ligne contenant un ‘0’ encadré 2- 4) Reprendre à partir de 2 –2) jusqu’à ce qu’on ne puisse plus marquer ni de ligne ni de colonne . 2- 5) Barrer toutes les lignes non marquées et les colonnes marquées . 2-6) on considère les éléments (rij) non barrés de la matrice , soit a , le plus petit d’entre eux 6-1) A chaque élément rij retrancher a : r’ij = rij –a 6-2) A tous les éléments barrés 2fois ,ajouter a : a’ij = aij + a 10 2-7) On intègre les nouveaux éléments calculés dans A et on choisit de nouveaux ‘0’ pour les lignes ne contenant pas encore de ‘0’ encadrés . Si la solution n’est toujours pas optimale (on n’a pas n ‘0’ indépendants), on reprend l’algorithme à partir de l’étape 2 sur la dernière matrice . FIN Exemple : On commence par traiter les lignes n= Nb de lig = Nb de col Etape 1 t1 P1 A1 = P2 P3 P4 P5 t2 t3 t4 t5 1 2 1 4 3 4 5 3 2 5 5 2 4 3 1 6 4 5 2 6 7 6 8 5 1 -1 -2 -1 -2 -1 A2 = 0 2 4 4 6 1 3 1 2 5 Etape 2 0 1 3 3 7 3 0 2 0 4 2 3 0 4 0 -1 0 2 4 4 6 A3= 2 0 2 0 1 4 0 1 3 3 7 * 3 2 0 3 2 0 0 4 4 0 2 1 - 3 * Nb de zeros encadrés =4<n=5 donc sol non optimale, passer à l’étape 2 * a =1 1 1 0 - 2 3 0 2 - 3 rij – a = Matrice rij = 4 1 Eléments barrés deux fois 3 - 4 a’14 = a14 + 1 = 3+1 =4 a’35 = a34 + 1 = 2 + 1 = 3 a’54 = a54 + 1 = 4 +1 = 5 Nouvelle matrice A 3= 0 2 4 4 6 0 0 3 2 2 1 0 3 0 3 2 0 1 3 0 4 4 7 4 0 A4 = 0 1 4 3 6 0 1 0 0 4 0 4 2 0 0 2 3 3 0 2 0 3 7 5 0 On a 5 ‘0’ indépendants , donc l’affectation est optimale 11 Solution a11 =1 a32 =2 P1 t1 P3 a23 =3 a55= 1 t2 P5 t5 a44 =2 P2 t3 P4 t4 Valeur de l’affectation : V(Aff) = aij i,j / Pi = a11 +a23 + a32 + a44 + a55 = 9 tj III-3-3 ) Cas d’une matrice rectangulaire [A(m,n)] Cas 1 : Situation suivante : Parmi les 1°) 2°) Exemple n tâches Nombre de personnes < nbde tâches m < n , m seulement sont assurées par les m personnes . Il suffit d’ajouter (n-m) lignes de zéros , ceci revient à créer (n-m) personnes fictives avec des valeurs aij = 0 . Appliquer l’alg . 1 2 3 4 4 1 3 2 A= Cas 2 : A= 1 4 0 0 2 1 0 0 3 3 0 0 4 2 0 0 Nb de tâches < nb de personnes n < m Parmi les m personnes , n seulement seront affectées aux n tâches . 1°) Ajouter (m-n) colonnes de zéros , ce qui revient à créer ( m-n) tâches fictives avec aii = 0 . 2°) Appliquer l’alg . Exemple A = 1 2 3 4 1 19 A = 1 2 3 4 1 19 0 0 0 12 III- 4) Problème de maximisation Il est résolu en passant par la minimisation . Soit A = {aij} i=1,n j=1,n matrice d’affectation 1°) Calculer M = max ( aij) i, j =1,n ; aij + 2°) Calculer une nouvelle matrice B/ B =( bij) i,j =1,n avec bij = M- aij i,j =1,n 3°) Si aij = + alors bij = + 4°) Appliquer l’alg . aij + Exemple A = Rmq : 20 6 10 8 0 13 2 12 3 max aij = 20 B = 0 12 20 14 7 18 10 8 17 Dans le cas où la matrice n’est pas carrée , on construit d’abord la matrice B , on ajoute par la suite les lignes ou les colonnes de zéros . 13