travaux dirigé de la théorie des graph

22
´ El´ ements de th´ eorie des graphes Licence — Universit´ e Lille 1 Pour toutes remarques : [email protected] Semestre 3 — 2008-09 Exercice 1 — Construction de graphe. On souhaite pr´ elever 4 litres de liquide d’un tonneau. Pour ce faire, on dispose de 2 sceaux (non gradu´ es) d’une contenance de 5 et 3 litres. Comment proc´ eder ? Correction. On peut construire le graphe dont les sommets sont les ´ etats possibles (couples de volume d’eau dans les sceaux) et les arcs sont les op´ erations permettant de passer d’un ´ etat ` a un autre. Exercice 2 — Graphe de contrˆ ole d’un programme informatique. On cherche ` a concevoir des jeux de donn´ ee afin de tester le programme suivant : int pgcd (int x, int y) { while( x!=y ) if (x>y) x-=y; else y-=x; return x ; } Questions. 1. Donnez le graphe de contrˆ ole de ce programme. 2. Donnez un jeux de donn´ ees de d´ epart afin parcourir tous les : 1

description

des exercice corrigé sur la théorie des graphes -les cycle et les cocycle-arbre-isthme-fuck you

Transcript of travaux dirigé de la théorie des graph

  • Elements de theorie des graphes

    Licence Universite Lille 1Pour toutes remarques : [email protected]

    Semestre 3 2008-09

    Exercice 1 Construction de graphe.

    On souhaite prelever 4 litres de liquide dun tonneau. Pour ce faire, ondispose de 2 sceaux (non gradues) dune contenance de 5 et 3 litres. Commentproceder ?

    Correction. On peut construire le graphe dont les sommets sont les etatspossibles (couples de volume deau dans les sceaux) et les arcs sont lesoperations permettant de passer dun etat a` un autre.

    Exercice 2 Graphe de controle dun programme informatique.

    On cherche a` concevoir des jeux de donnee afin de tester le programmesuivant :

    intpgcd(int x, int y){while( x!=y )if (x>y)

    x -= y ;else

    y -= x ;return x ;

    }

    Questions.

    1. Donnez le graphe de controle de ce programme.

    2. Donnez un jeux de donnees de depart afin parcourir tous les :

    1

  • sommets du graphe de controle ; arcs du graphe de controle ; chemins du graphe de controle.

    Correction.

    1. Les sommets du graphe de controle sont :

    1 :(x,y), 2 :(x !=y), 3 :(return x), 4 :(x > y), 5 :(y-=x), 6 :(x-=y)

    La matrice dadjacence du graphe de controle est :0 1 0 0 0 00 0 1 1 0 00 0 0 0 0 00 0 0 0 1 10 1 0 0 0 00 1 0 0 0 0

    .

    Exercice 3 Relations remarquables.

    Soit G un graphe fini ayant n sommets et m aretes avec n 1 et m 0.Pour tout entier k, on note nk le nombre de sommets de degre k et K lemaximum des degres des sommets.

    1. Montrer queKk=0

    nk = n.

    2. En utilisant la representation dun graphe par sa matrice dincidence,montrer que

    Kk=0

    k nk = 2m.

    3. En utilisant la representation dun graphe par sa matrice dadjacence,montrer que si G na pas de boucle alors K n 1.

    4. Donner un exemple ou` on a legalite.

    Correction.

    2

  • 1. On peut partitionner lensemble des sommets suivant leur degre. Ainsilensemble des sommets S peut etre partitionner par les ensembles Skdes sommets de degre k :

    S = Kk=0Sk, avec Si Sj = , si i 6= j.On a donc

    |S| =Kk=0

    |Sk|.

    Comme le cardinal de Sk est nk, la relation a demontrer en decouleimmediatement.

    2. La matrice dincidence associee a` un graphe non oriente (S,A) est detaille |S| |A| et definie par :

    S :={s1, . . . , s|S|

    },

    A :={a1, . . . , a|A|

    },Mi,j =

    2 si aj est une boucle de si,1 si aj est incident avec si,0 sinon.

    Notons d(vi) le degre i.e. le nombre daretes partant et arrivant a` vi.Par definition, on a

    sS

    d(s) =Kk=0

    sSk

    d(s)

    Donc en notant que |Sk| = nk et que s Sk implique que d(s) = k, ona bien

    sSd(s) =

    Kk=0

    knk.

    Or en considerant chaque ligne de la matrice dincidence, on avG

    d(v) =ni=1

    mj=1

    Mi,j,

    avec Mi,j le coefficient de la matrice dincidence positionne dans laligne i et la colonne j. Ainsi, cette somme correspond a` la sommede tous les coefficients de cette matrice. Or comme un arc rejoint 2sommets, la somme de chaque colonne est 2. Comme il y a m colonnes,cette somme est 2m.

    3

  • 3. La matrice dadjacence associee a` un graphe (oriente ou pas) (S,A) estde taille |S| |S| et definie par :

    S :={s1, . . . , s|S|

    }, Mi,j =

    {1, si (si, sj) A,0, sinon.

    Si notre graphe na pas de boucle alors les coefficients diagonaux decette matrice sont nuls (on a Mi,i = 0). La somme de la jie`me colonnede la matrices correspond au degre du jie`me sommet. Cette somme estinferieure ou egale a` n 1 (i.e. le nombre de lignes moins 1 pour ne pasconsiderer la diagonale). CQFD.

    4. Il suffit de se donner une matrice dadjacence comme : 0 1 11 0 01 0 0

    et de tracer le graphe correspondant.

    Exercice 4 Un graphe sans boucle a au moins 2 sommets dememe degre.

    Soit G un graphe sans boucle ayant n sommets (n 1).1. Montrer que le degre dun sommet est toujours strictement inferieur

    a` n.

    2. Montrer quil ne peut pas y avoir simultanement un sommet de degre 0et un sommet de degre n 1.

    3. En deduire quil y a au moins deux sommets de meme degres.

    Correction.

    1. Considerons un sommet quelconque du graphe, une arete peut lier cesommet a` chacun des n 1 autres sommets. Donc, le degre de ce som-met est n 1 au plus.Plus formellement, on conside`re la matrice dadjacence, la somme dunecolonne correspond au degre du sommet. Sil ny a pas de boucle, cettesomme est inferieure ou egale a` n 1.

    2. Supposons quil existe un sommet de degre 0 ; les autres sommets sontassocies a` des colonnes ou il y a 2 zeros (un pour labsence de boucle

    4

  • et un pour ce sommet de degre 0). Ainsi le maximum des degres est auplus n 2 et il ne peut y avoir de sommet de degre n 1.Inversement, sil y a un sommet de degre n 1, alors chaque autresommet du graphe posse`de une arete adjacente avec ce sommet. Donc,il ne peut y avoir de sommet de degres 0.

    3. La question precedente montre quil y a n 1 degres possibles au maxi-mum pour n sommets. Il ne peut y avoir dinjection dun ensemble de nelements dans n 1 elements et donc 2 sommets ont meme degre.

    Exercice 5 Propriete des sommes de degres dun graphe.

    A` tout sommet s dun graphe G = (S, A), on associe le nombre d+(s)darcs deA de but s, le nombre d(s) darcs deA de source s et le nombre d(s) = d+(s) + d(s),appele degre de s.

    1. Quel rapport y a-t-il entre la somme des degres des sommets dungraphe et le nombre darcs m ?

    2. En deduire que dans un graphe, le nombre de sommets de degre impairest pair.

    3. Soit le minimum des degres des sommets dun graphe ayant m arcset n sommets. Montrer que n 2m.

    Correction.

    1. Cest le theore`me des poignees de mains. La somme des degres est egalea` 2m.

    2. Notons d1 + + dk la somme des degres impairs et dk+1 + + dn lasomme des degres pairs. Cette dernie`re somme est manifestement unnombre pair. La difference de deux nombres pairs est un nombre pairdonc la somme des degres impairs

    d1 + + dk = 2m (dk+1 + + dn)est un nombre pair.

    3. On a di pour tout i donc n d1 + + dn = 2m.

    Exercice 6 Utilisation de la parite de la somme des degres dungraphe.

    Est-il possible de tracer 5 segments sur une feuille de papier de manie`rea` ce que chaque segment en coupe exactement 3 autres ?

    5

  • Correction. Modelisons la situation par un graphe. Les sommets de notregraphe sont les segments. Une arete entre 2 sommets indique que les segmentscorrespondant se coupent. On veut que le degre de chaque sommet soit 3 ; lasomme des degres est donc 3 5 et doit etre le double du nombre daretes.Comme 15 nest pas un nombre pair, ce nest pas possible.

    Exercice 7 .

    Soit G un graphe fini sans boucle. On suppose que G ne contient pas detriangle et on note S lensemble des sommets et A lensemble des aretes.

    1. Montrer que pour deux sommets adjacents distincts x et y, le nombre nxde sommets S \ {x, y} adjacents a` x et le nombre ny de sommets S \ {x, y}adjacents a` y satisfont linegalite :

    nx + ny |S| 2.

    2. En deduire par recurrence sur le nombre |S| de sommets que le nombredaretes |A| verifie :

    |A| |S|2

    4.

    Correction.

    1. Construisons le graphe G pour lequel x et y sont identifies (fusionnes)en un meme sommet z. On a d(z) = d(x) + d(y) 2 et d(z) |G| 1cest a` dire d(z) |S| 2. Comme d(x) = nx + 1 et de meme pour y,le resultat en decoule trivialement.

    2. Pour |S| = 1, on a |A| = 0 et pour |S| = 2, on a |A| = 1. La relation estverifiee pour ces cas. Supposons quelle est verifiee pour |S| = n 2 etconsiderons un graphe a` n sommet. Si on lui retire 2 sommets x et y,alors lensembleB des aretes restantes est de cardinal au plus n2/4 n 1.Le fait quil ny a pas de triangle dansGmontre que |A| = |B|+ nx + nyet donc que la relation est vraie pour un ensemble de cardinal n.

    Exercice 8 Isomorphisme de graphes.

    1. Montrer que la relation disomorphisme entre les graphes est une rela-tion dequivalence.

    2. Trouver tous les graphes non-isomorphes dordre n 4.

    6

  • 3. Parmi les graphes suivants y a-t-il des graphes isomorphes ?

    q qq qqq q q q qq q qqq q q q qqq

    q q q q qqq q q

    Correction.

    1. On doit montrer que cest une relation :

    (a) binaire : trivial dans notre cas ;

    (b) reflexive : trivial dans notre cas ;

    (c) symetrique : trivial dans notre cas ;

    (d) transitive : trivial dans notre cas ;

    2. On peut raisonner sur les matrices dadjacence par exemple.

    3. Lisomorphisme entre graphes conserve certaines proprietes les in-variants de graphes comme par exemple le nombre de sommets, lenombre daretes, le degres des sommets mis en relation, lexistence decycle, etc.

    On voit ainsi que seuls les 2 premiers graphes peuvent etre isomophes.Pour aller plus loin, on peut mettre les 2 graphes sous une forme cano-nique (par exemple, les sommets tries par degres croissants) puis tenterde voir si ces formes normales sont isomorphes. En maple, on a :

    A1:=Matrix([[0,1,0,0,0,0,0],[1,0,1,0,0,1,0],[0,1,0,1,0,0,1],[0,0,1,0,0,0,0],[0,0,0,1,0,0,0],[0,1,0,0,0,0,0],[0,0,1,0,0,0,0]]) ;A2:=Matrix([[0,1,0,0,0,0,0],[1,0,1,0,0,1,0],[0,1,0,1,0,0,0],[0,0,1,0,1,0,1],[0,0,0,1,0,0,0],[0,1,0,0,0,0,0],[0,0,0,1,0,0]]) ;

    Exercice 9 Les matrices associees a` un graphe.

    7

  • Soit G un graphe fini ayant n sommets si. On definit la matrice AG = (aij)dadjacence par aij = 1 si les sommets si et sj sont adjacents et aij = 0 sinon.Le rang de la matrice dadjacence AG est appele le rang du graphe G quonnote rank(G).

    1. Montrer que les graphes finis G et H sont isomorphes si, et seulementsi, la matrice dadjacence AG sobtient par les memes permutations deslignes et des colonnes de la matrice AH .

    2. En utilisant la matrice dadjacence du grapheGmontrer que le diame`tre d(G)et le rang rank(G) du graphe G sont lies par linegalite

    d(G) rank(G).(Indic. : utiliser le block de la matrice AG correspondant au chemin leplus long de G et montrer que son rang est au moins d(G)).

    Correction.

    1.

    2. La distance entre deux sommets est le minimum darete permettant derelier ces sommets.

    Le diame`tre dun graphe est le maximum des distances entre deuxsommets de ce graphe relies par une chane simple.

    Exercice 10 Connexite.

    1. Soit Gn un graphe dont les sommets sont si avec i {1, ..., n}. On jointdeux sommets sk et sm par une arete si, et seulement si, les nombres ket m sont premiers entre eux. Ecrivez la matrice dincidence du grapheG5.

    2. Est ce que le graphe Gn de lexercice precedent est connexe ?

    3. Montrer que si le nombre daretes dun grapheG sans boucle et dordre n > 2est strictement superieur a` C2n1 alors G est connexe.

    4. Soit G un graphe connexe, montrer que tout couple de deux chanessimples de longueur maximale de G ont un sommet commun.

    5. Montrer quil nexiste pas de graphe dont les degres des sommets sonttous distincts.

    6. Montrer que si le degre minimal (G) = minvV G d(v) dun graphe Gdordre n verifie la relation (G) (n 1)/2 alors G est connexe.

    8

  • 7. Montrer que pour tous les nombres naturels n,m, k verifiant les condi-tions :

    1 k n, n k m C2nk+1,il existe un graphe dordre n ayant exactement m aretes et k compo-santes connexes.

    Correction.

    1.

    2.

    3. Si le graphe G a strictement plus de C2n1 aretes, cest un graphe com-plet et donc connexe.

    4. Une chane simple ne peut visiter le meme sommet 2 fois. Une chanede longueur maximale ne peut etre prolongee. Si ces chanes nont pasde sommet commun, le graphe a deux composantes connexes disjointes(preuve a` faire).

    5. Cest un exercice de cette feuille. On ne peut avoir en meme temps unsommet de degres 0 et un sommet de degres n 1. Les degres possiblesdu graphe sont compris dans lensemble {1, . . . , n 1} ou {0, . . . , n 2}et le principe des tiroirs indique que deux sommets ont meme degres.

    6. Prenons deux sommets distincts x et y du graphe. La composanteconnexe de x (resp. y) est composee de 1 + (n 1)/2 sommets au mini-mum de par la condition sur le degree minimal du graphe. Lintersectionde ces composantes connexes ne peut donc etre vide (leur reunion estdordre 1 + n et donc au moins un sommet est dans les deux compo-santes) et le graphe est donc connexe.

    7. Montrons quem n k en raisonnant par recurrence. Sim = 0, linegaliteest vraie. Supposons cette inegalite vraie pour des graphes dordre n etconsiderons un graphe G dordre n+ 1 ayant k composantes connexes.

    Considerons une arete a et le graphe G = G \ {a}. Le nombre de com-posantes connexes de G est soit k, soit k + 1 et son nombre daretesest m 1. On a donc linegalite

    m 1 n k > n k 1

    qui permet de conclure.

    9

  • Montrons quem C2nk+1. Prenons le cas extremes dun graphe ayant kcomposantes connexes toutes constituees par un graphe complet. Nousallons voir que dans ce cas, quil y a k 1 composantes qui sont dessommets isoles et une composante dordre n k + 1. Raisonnons parlabsurde. On suppose que le nombre daretes de G est maximale.Soit Kp et Kq deux graphes complets disjoints avec p q > 1. En re-tirant un sommet de Kq (on supprime les aretes incidentes a` ce som-mets) et en lajoutant a` Kp, on augmente lordre du graphe (ce quiest impossible, car en iterant ce processus, on arrive a` des graphesdordre fini avec un nombre daretes infinie). Donc, il y a dans lecas du plus grand nombre daretes une unique composante connexedordre n k + 1 ce qui prouve linegalite.

    Exercice 11 arbres et forets (rang cyclomatique).

    On rappelle que le nombre (G) = m(G) n(G) + k(G) est appele rangcyclomatique dun graph G ou` m(G), n(G), k(G) designent respectivementles nombres daretes, de sommets et de composantes connexes de G. Montrerque

    1. Un graphe G est une foret si, et seulement si, (G) = 0.

    2. G contient un seul cycle si, et seulement si, (G) = 1.

    3. G contient n cycles differents sans corde si, et seulement si, (G) = n.

    4. Sim(G) n(G) alorsG contient un cycle (on peut donner deux methodesdifferentes de la preuve : soit par labsurde soit une preuve directe).

    Correction. Lexercice sur la connexite indique que n(G) k(G) m(G) ;Ainsi, (G) 0 pour tout graphe.

    1. Un arbre est un graphe H tels que m(H) = n(H) 1 (il ny a pas decycle) et k(H) = 1. Donc en prenant un ensemble darbres G, i.e. uneforet, on a bien (G) = 0.

    Faisons une recurrence sur le nombre m(G) en fixant lordre du graphe.Si m(G) = 0 alors la relation (G) = 0 est evidente.

    Supposons que si (G) = 0 pour un graphe avec m aretes alors cegraphe est une foret.

    Considerons un graphe avec m+ 1 aretes tel que (G) = 0. Deux cassont possibles :

    10

  • (a) larete am+1 relie deux composantes distinctes du graphe resultantG

    a` m aretes. On a m(G) = m(G) + 1 et k(G) = k(G) 1(G) = m(G) n+ k(G) = m(G) + 1 n+ k(G) 1 = 0.

    On a donc (G) = 0 et G est une foret. On vient juste de coller 2arbres ensembles sans mettre de cycle, on garde une foret.

    (b) larete am+1 relie deux sommets dans la meme composante dugraphe resultant G a` m aretes.

    (G) = m(G) n+ k(G) = m(G) + 1 n+ k(G) 1 = 0.On a donc (G) = 1 ce qui nest pas possible dapre`s lexercicesur la connexite (car on y voit que n(G) k(G) m(G)).

    2. Faisons une recurrence sur le nombre m(G) en fixant lordre du graphe.Remarquons que pourm(G) 2, il ne peut y avoir de cycle. Pourm(G) = 3,montrons que (G) = 1 si, et seulement si, G posse`de un cycle. SiG posse`de un cycle alors deux sommets sont adjacents a` un troisie`me.Dans ce cas, une composante connexe regroupe 3 sommets et lesautres forment donc chacun une composante. Donc k(G) = n(G) 2.En conclusion, on a donc

    (G) = m(G) n(G) + k(G) = 3 n(G) + n(G) 2 = 1. Reciproquement, supposons que (G) = 1. Dans ce cas, on a :

    k(G) = n(G) 2.Considerons tous le graphes possibles comprenant 3 aretes et leurnombre de composantes connexes. Cest a` dire, les graphes avec : 3 sommets non isoles (qui ne forme pas chacun une composanteconnexe) et un cycle : k(G) = n(G) 2 ;

    4 sommets non isoles et sans cycle : k(G) = n(G) 3 ; 5 sommets non isoles et sans cycle : k(G) = n(G) 3 ; 6 sommets non isoles et sans cycle : k(G) = n(G) 3 ;Donc si G posse`de un cycle, on a k(G) = n(G) 2 et donc (G) = 1.Supposons maintenant la propriete vraie pour tout graphe ayant maretes. Considerons un graphe G ayant m(G) = m+ 1 aretes. Ensupprimant une arete a, on definit un graphe G ; deux cas sont pos-sibles :

    11

  • (a) a est dans un cycle et sa suppression ne modifie pas le nombrede composante connexe, donc k(G) = k(G). Si (G) = 1, on a donc :

    (G) = 1 = m(G)n(G)+k(G) = m(G)+1n(G)+k(G) = (G)+1.Ainsi, (G) = 0 et G navait pas de cycle. Donc G a un seulcycle.

    Si G na pas de cycle, on a

    (G) = 0 = m(G)n(G)+k(G) = m(G)1n(G)+k(G) = (G)1.Ainsi, si G a un cycle alors (G) = 1.

    (b) a nest pas dans un cycle et sa suppression augmente le nombrede composantes connexes k(G) = k(G) + 1. Si (G) = 1, on a donc :

    (G) = 1 = m(G)n(G)+k(G) = m(G)+1n(G)+k(G)1 = (G).Dans ce cas, (G) = 1 et par hypothe`se de recurrence G a unseul cycle. Pour obtenir G, on rajoute une arete qui ne produitpas de cycle supplementaire. G admet un unique cycle.

    Si G a un unique cycle, le graphe induit G a aussi un uniquecycle et donc :

    (G) = 1 = m(G)n(G)+k(G) = m(G)1n(G)+k(G)+1 = (G).Donc, si G a un unique cycle, on a (G) = 1.

    3. Une corde dans un cycle est une arete qui relie deux sommets nonadjacents de ce cycle (pensez au carre avec une diagonale, il y a 3cycles 2 triangles et le carre , pour le cycle constitue du carre, lacorde est la diagonale).

    Faisons maintenant une recurrence sur (G) le nombre de cycle. Lesquestions precedentes permettent de traiter les cas (G) = 0 et (G) = 1.Supposons la propriete vraie pour (G) = p et considerons un graphe Gtel que (G) = p+ 1.

    Le graphe G posse`de au moins un cycle (comme nous le montre lexer-cice precedant).

    Prenons une arete a dun cycle de G que lon supprime pour obtenirun graphe G. Le nombre de composantes connexes ne change pas carcette arete est dans un cycle.

    12

  • Si (G) = p+ 1 alors

    (G) = p+1 = m(G)n(G)+k(G) = m(G)+1n(G)+k(G) = (G)+1.

    Ainsi, (G) = p et par hypothe`se de recurrence admet p cycles. Doncle graphe G admet p+ 1 cycles.

    Si le graphe G admet p+ 1 cycles sans cordes, alors G en contient p(on vient den supprimer un, car il ny a pas de corde en fait, oncompte les faces internes constitues par un cycle). Donc,

    (G) = p = m(G)n(G)+k(G) = m(G)1n(G)+k(G) = (G)1.

    Ainsi, si le grapheG admet p+ 1 cycles sans cordes, alors (G) = p+ 1.

    4. Si m(G) n(G) alors (G) est strictement positif. Supposons quil nya pas de cycle, alors (G) = 0 ce qui implique un nombre de compo-santes connexes negatif. Cest impossible.

    Exercice 12 Exemple de raisonnement sur les graphes.

    La syldavie est un pays avec 15 villes. On peut aller de chaque ville a`au moins 7 autres villes du pays par une autoroute. Peut-on se rendre, parautoroute de la capitale du pays a` chacune des autres villes.

    Correction. Soit A une ville quelconque. Lautoroute nous conduit de lacapitale vers au moins 7 villes differentes ; on a donc un reseau de 8 villesrelies par autoroute. De la ville A on peut egalement relier par autoroute aumoins 7 autres villes differentes ; on a donc un nouveau reseau de 8 villesrelies par autoroute. Il doit y avoir une ville commune a` ces deux reseaux,car sinon le pays aurait au moins 16 villes. La capitale est donc relie a` A enau plus deux coups, en passant par cette ville commune ; elle est donc relieea` toutes les autres villes du pays.

    Exercice 13 Graphe de de Bruijn.

    Un code dentree dun dimmeuble est compose de 3 lettres binaires. Trou-ver un mot de longueur aussi petite que possible qui contient toutes motsde 3 lettres binaires. (Un tel mot contiendra alors le code dentree).

    Pour ce faire construire un graphe oriente compose de 4 sommets representantdes mots binaires de longueur 2 : {00, 01, 11, 10}. Une arete orientee relie toutsommet ab aux deux sommets b0 et b1.

    13

  • Correction. Du sommet ab partent donc exactement 2 aretes et arriventaussi exactement 2 aretes, celles venant des sommets 0a et 1a (si a et b sontidentiques on aura une boucle).

    Le graphe ainsi construit posse`de donc par la version oriente du theore`medEuler un cycle oriente eulerien. On peut coder chaque arete orientee parun mot de longueur 3, plus precisement, larete orientee partant de ab vers bcest codee par abc.

    Pour obtenir une solution, on part dun sommet quelconque, par exemple 10,et on parcourt un circuit eulerien : chaque arete parcourue indique quel chiffreon ajoute a` la droite du mot commence.

    On obtient ainsi une suite de 10 chiffres, par exemple ici 1011100010. Lecycle est :

    10 01 11 11 10 00 00 01 10.

    Ce resultat peut etre etendu a` un alphabet fini quelconque et a` des motsde longueur quelconque. On montre ainsi que, etant donne un alphabet de dlettres, il existe toujours un mot de longueur dn + (n 1) qui contient tousles mots de longueur n sur cet alphabet une fois et une seule. Dans notreexemple, nous avons d = 2, n = 3, donc un mot de longueur 8 + 2 = 10.

    Exercice 14 Exemple dun graphe complet non planaire.

    Montrer que le graphe complet a` 5 sommet (note K5) nest pas planaire.

    Correction. Raisonnons par labsurde. Supposons une realisation plane deK5de sommets {a, b, c, d}. Les arcs (a, b), (b, c) et (c, a) forment une courbefermee et donc une face. Supposons que le point d soit a` linterieur de cetteface ; si le point e est a` lexterieur, le graphe nest pas planaire. Donc ce pointdoit etre a` linterieur du cycle (a, b, c, a). Supposons que ce point e soit dansla face delimite par le cycle (b, c, d, b) dans ce cas, larc (a, e) coupe ce cycleet le graphe nest pas planaire. Les autres cas se traitent de la meme facon.

    Une autre demonstration repose sur la formule dEuler. K5 a 10 areteset 5 sommets et cest un graphe simple connexe donc on aurait 10 3 5 6ce qui est faux.

    Exercice 15 Exemple dun graphe complet non planaire.

    Trois consommateurs doivent etre relies a` 3 producteurs leur fournissant 3produits par des tubes differents. Tracer le plan du reseau ainsi constitue enrespectant une contrainte de non croisement.

    14

  • Correction. Le graphe ainsi obtenu est appele le graphe bi-parti completdordre 3 et on le noteK3,3. Nous allons montrer que la relation s a+ f = 2permet de voir que ce graphe nest pas planaire. Le graphe K3,3 a 6 sommetset 9 aretes. Donc, on a la relation f = 5 dans notre cadre. Il nous faut main-tenant expliciter la notion de face :

    une face bordee par une seule arete correspond a` une boucle ; une face bordee par 2 aretes correspond a` des aretes joignant les memessommets ;

    pour un graphe simple planaire, chaque face est bordee par au moins 3aretes.

    Notre graphe bi-parti simple ne peut avoir de faces triangulaires : en effet,il relie une partie {a, b, c} a` lautre {, , } et un triangle comporteraitnecessairement 2 (ou 3) sommet de la meme partie. Donc toute face estbordee par 4 aretes et donc 4f 2a. Dans notre cas, 4f = 20 et 2a = 18.Exercice 16 Utilisation de la puissance de la matrice dadjacence.

    Un voyageur veut aller de la ville 1 a` la ville 9 dans un reseau donne parle graphe suivant :

    {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (5, 7), (6, 7), (6, 9), (7, 9), (8, 9)}

    De combien de facons peut on faire le trajet en 5 etapes.

    Correction. Utilise les puissances de la matrice dadjacence.

    Exercice 17 Exemple de graphe probabiliste.

    Un individu peut etre dans 3 etats differents : immunise I, malade M ousain S. Dun momment de mesure a` un autre, letat peut evoluer selon lesre`gles :

    etant I, il peut le rester avec une probabilite 0.9 ou passer a` letat Savec une probabilite 0.1 ;

    etant S, il peut le rester avec une probabilite 0.5 ou passer a` letat Mavec une probabilite 0.5 ;

    etant M, il peut le rester avec une probabilite 0.2 ou passer a` letat Iavec une probabilite 0.8.

    Questions.

    1. Dessinez le graphe probabiliste decrivant cette situation.

    15

  • 2. Calculer la probabilite quun individu soit dans letat M ou I au boutde 3 mesures dans chacune des situations de depart suivantes : I, Met S.

    3. Que peut on dire de la proportion dindividu dans letat M au boutdun an ?

    Correction.

    1.

    2. La matrice de transition associee est :

    1

    10

    9 0 18 2 00 5 5

    .Exercice 18 Exemple dautomate.

    Proposez un automate deterministe permettant de reconnatre les mul-tiples de 3.

    Correction. Lautomate va avoir 4 etats : init, 0, 1 et 2 qui sont les restesmodulo 3 possibles. On part de letat init puis a` chaque lettre decimaleconstituant le nombre, on prend letat correspondant.

    Exercice 19 Graphes planaires.

    1. Montrer que la formule dEuler peut etre generalisee pour un grapheplanaire ayant n sommets, m aretes, f faces et k composantes connexescomme suit :

    nm+ f = k + 1.2. Montrer que pour un graphe planaire avec k composantes connexes, on

    a m 3(n k 1).

    Correction.

    1. Nous allons refaire la demonstration de la formule dEuler en suivantla demarche classique : prouver laformule pour une foret de k arbres ; passer des arbres aux graphes en ajoutant des aretes.

    16

  • Lidee de base est que tout graphe planaire connexe sobtient a` partirdun arbre par ajout daretes.

    Pour chaque un arbre, on a la relation m = n 1. Ceci implique quepour une foret, on a la relation m = n k. Puisque dans une foret,il ny a quune face (la face exterieure, et donc f = 1), on a bien larelation :

    nm+ f = k + 1.Passons maintenant aux graphes. On fixe le nombre de sommets et onfait une recurrence sur le nombre darete (i.e. on ajoute des aretes a` ungraphe G pour obtenir un graphe G). En ajoutant une aretes soit : on relie deux composantes connexes en une seule m(G) = m(G) + 1et k(G) = k(G) 1. Cela ne change ni le nombre de sommets ni lenombre de face. On a :

    0 = nm(G)+fk(G)1 = n(m(G)+1)+f(k(G)1)1 = nm(G)+fk(G)1 = 0. on le nombre de composantes connexes reste fixe et on vient dajouterune face :

    0 = nm(G)+f(G)k1 = n(m(G)+1)+(f(G)+1)k1 = nm(G)+f(G)k1.Ceci montre que la formule reste vraie.

    2. Commencons par montrer un analogue du lemme des poignees de mainspour les faces. Le degre dune face est le nombre daretes que len-tourent. En sommant lensemble des degres, on trouve 2 fois le nombredaretes :

    face

    d(f) = 2m.

    Toute face est bordee par au moins 3 aretes. Donc d(f) 3. On enconclut donc que 2m 3f . En utilisant la formule dEuler, on obtientdonc que

    3f = 3k + 3 3n+ 3m 2m, 3n 3k 3 m.

    Exercice 20 Polye`dres reguliers connexes : euleriens et hamilto-niens.

    Verifier si les graphes definis par les polye`dres reguliers convexes (tetrae`dre,cube, octae`dre, dodecae`dre, icosae`dre) sont euleriens (resp. hamiltoniens).

    Correction.

    17

  • Un circuit est simple sil ne contient pas deux fois le meme arc. Un circuit est eulerien sil est simple et contient tous les arcs dungraphe.

    Un circuit est elementaire sil ne contient pas deux arcs de meme origineou de meme but.

    Un circuit est hamiltonien sil est elementaire et contient tous les som-mets dun graphe.

    Le theore`me dEuler permet de determiner si un graphe est euleriens.Un graphe non oriente sans sommets isoles posse`de un cycle eulerien si,

    et seulement si,

    1. Il est connexe.

    2. Il a 0 ou 2 sommets de degre impair.

    Dans le cas ou` il ny a aucun sommet de degre impair, cette chane eulerienneest un cycle. Dans le cas ou` il y en a deux, ce sont les extremites de la chane.

    Le theore`me de Dirac permet de decider si certains graphes sont pla-naires : Si chaque sommet dun graphe de n sommets est de degre superieurou egal a` n/2 alors le graphe admet un cycle hamiltonien.

    Les polye`dres reguliers (les degres des sommets sont tous egaux) convexesverifient la relation deuler :

    s a+ f = 2.

    Le lemme des poignees de mains permet de conclure sur les degres despolye`dres reguliers :

    d = 2a

    s.

    Polye`dre Sommets Aretes Faces degres euleriens hamiltonientetrae`dre 4 6 4 3 non ouicube 8 12 6 3 non oui

    octae`dre 6 12 8 4 oui ouidodecae`dre 20 30 12 3 non ouiicosae`dre 12 30 20 5 non oui

    Comme tous les polye`dres reguliers convexes sont complets et planaires, onpeut donner une representation plane.

    Exercice 21 Modelisation et graphe hamiltoniens.

    18

  • Un groupe de 9 chevaliers se reunit chaque jours autour dune table ronde.Combien de jour au plus peuvent-ils se reunir si lon souhaite que personnenait deux fois le meme voisin ?

    Correction. On peut regarder le graphe complet a` 9 sommets (les cheva-liers). Une arete peut se comprendre comme le fait que les cheveliers incidentssont voisins. Un circuit hamiltonien est une disposition autour de la table. Laquestion est donc de savoir combien il y a de circuits hamiltoniens disjointsdans K9.

    Le graphe K9 posse`de (8 9)/2 aretes dapre`s le lemme des poignees demains, soit 36 aretes. De plus, chaque cycle doit utiliser 9 aretes (pour relierles chevaliers). Il ne peut donc y avoir que 4 cycles au maximum.

    Exercice 22 Existence dun graphe.

    Considerons 13 telephones. Est-il possible de les relier par des fils telephoniquesde sorte que chaque appareil soit relie avec exactement 3 autres ?

    Correction. Les sommets sont les telephones et les aretes sont les fils. Orle lemme des poignees de mains interdit cette situation (39 est un nombreimpair).

    Exercice 23 Coloration de graphe.

    Les etudiants a, b, c, d, e et f doivent passer des examens occupant unedemi-journee dans differentes disciplines :

    matie`re etudiantsalgorithmique a,bcompilation c,dbases de donnees c, e, f, gJava a, e, f, hArchitecture b,f,g,h

    Organiser la session dexamen la plus courte possible.

    Correction. On peut construire un graphe non oriente dont chaque sommetest une discipline et dont les aretes correspondent aux incompatibilites (i.e.aux etudiants devant assister a` deux examens).

    Le reste est un proble`me de coloration, chaque couleur etant une demi-journee.

    Le nombre chromatique du graphe est le nombre minimal de demi-journee.

    19

  • Exercice 24 Graphe daretes associe a` un graphe.

    Etant donne un graphe G, le graphe daretes L(G) associe au graphe Gest le graphe dont les sommets sont les aretes de G et tel que deux sommetsde L(G) sont adjacents si, et seulement si, les aretes correspondantes de Gsont incidentes.

    Questions.

    1. Dessinez les graphes L(G) pour G = Kn avec n 4.2. Montrer que le nombre daretes du graphe L(G) verifie :n(G)

    i=1 di2

    2m(G)

    avec n(G) le nombre de sommets, m(G) le nombre daretes de G et dile degre du ie`me sommet.

    3. On conside`re le gaphe G definit par la matrice dadjacence suivante :

    s1 s2 s3 s4 s5 s6 s7 s8s1 0 1 1 1 1 1 1 1s2 1 0 1 0 0 0 0 1s3 1 1 0 1 0 0 0 0s4 1 0 1 0 1 0 0 0s5 1 0 0 1 0 1 0 0s6 1 0 0 0 1 0 1 0s7 1 0 0 0 0 1 0 1s8 1 1 0 0 0 0 1 0

    (a) Donnez une representation sagittale de ce graphe. (Dessinez cegraphe.)

    (b) Combien le graphe G a-t-il daretes ?

    (c) Ce graphe est-il eulerien ?

    (d) Combien le graphe L(G) a-t-il daretes ?

    (e) Le graphe L(G) est-il planaire ?

    Correction.

    1.

    20

  • 2. Considerons un graphe G obtenu a` partir dun graphe G par lajoutdune arete entre les sommets s1 et s2 de G

    . Par definition, on a :

    n(L(G)) = n(L(G)) + 1, m(L(G)) = m(L(G)) + d1(G) + d2(G).

    En effet, en rajoutant une arete a` G, on rajoute un sommet a` L(G).De plus, le nombre daretes de L(G) augmente de d1(G

    ) + d2(G) carcette nouvelle arete est incidente avec d1(G

    ) + d2(G) aretes de G.On peut maintenant raisonner par recurrence. Pour tout graphe Gayant 1 unique arete, L(G) na pas darete et on a bien :n(G)

    i=1 di2

    2= 1, m(G) = 1.

    La relation est donc vraie pour m(L(G)) = 1.

    Supposons cette relation vraie pour un graphe G ayant n aretes etajoutons lui une arete entre les sommets s1 et s2. On a :

    m(L(G)) = m(L(G))+d1(G)+d2(G) =n(G)

    i=1 di2

    2m(G)+d1(G)+d2(G).

    Ce qui peut secrire :

    m(L(G)) =

    n(G)i=3 di

    2

    2(m(G)+1)+d1

    2(G) + d22(G) + 2d1(G) + 2d2(G) + 2

    2.

    Or comme dans notre situation dj(G) = dj(G) + 1 pour j = 1, 2 et di(G) = di(G)

    pour i > 2, on a bien :

    m(L(G)) =

    n(G)i=1 di

    2(G)

    2m(G).

    3. (a)

    (b) m(G) = (73 + 7)/2 = 28/2 = 14 dapre`s le lemme des poignes demains.

    (c) Puisquil y a 7 sommets de degre impair, le theore`me dEulermontre que ce graphe nest pas eulerien.

    (d) m(L(G)) = (72 + 79)/2 14 = 42 dapre`s le resultat precedent.(e) Pour un graphe planaire, on doit avoir m(L(G)) 3n(L(G)) 6

    ce qui nest pas le cas dans notre exemple.

    21

  • Exercice 25 Etude dune famille de graphes.

    ConsideronsGn le graphe dont les sommets sont les permutations de {1, . . . , n}.Deux sommets de Gn sont adjacents si, et seulement si, les permutations cor-respondantes sobtiennent lune de lautre par une transposition.

    Questions.

    1. Combien Gn a-t-il de sommets ?

    2. Donnez les degres des sommets de Gn.

    3. Combien Gn a-t-il daretes ?

    4. Le graphe Gn est-il planaire si n > 3.

    Correction.

    1. Gn a n! sommets.

    2. Gn est un graphe regulier dont le degres de chaque sommet est C2n.

    3. Le lemme des poignes de mains indique n!C2n/2.

    4. Non car on a n!C2n/2 > 3n! 6.

    22