Vous êtes sur la page 1sur 9

Un probl` eme de digicode

Comme on peut le constater lorsque lon se trouve face ` a un digicode, lappareil fonctionne (la plupart du temps) de la fa con suivante : lutilisateur compose une suite de lettres (ou de chires) an de composer un mot qui soit le s esame de la porte concern ee. Supposons par exemple que le mot recherch e soit compos e de cinq caract` eres. Lappareil va, ` a chaque nouveau caract` ere choisi par lutilisateur, tester le mot constitu e par les cinq derniers caract` eres tap es par la personne. Ainsi, si lutilisateur rentre la s equence : 123456, la machine testera les mots 12345 et 23456. Le probl` eme qui nous int eresse ici est de savoir quel est le nombre minimal de caract` eres quil faut taper an que la machine teste tous les mots possibles, et quainsi la porte souvre ` a coup s ur. Formellement : Probl` eme 1 Soient n et p deux entiers. Soit un alphabet ` a p lettres. Quelle est la taille du plus petit mot contenant tous les mots de n lettres sur cet alphabet ? Remarquons tout dabord quil y a pn mots de n lettres sur un alphabet de p lettres. Nous appelerons dictionnaire lensemble de ces mots. On peut en d eduire deux bornes pour la taille du mot minimal r epondant au probl` eme : Si lon met bout ` a bout tous les mots de notre dictionnaire, le mot obtenu contient bien s ur tous les mots possibles. Le mot obtenu est de taille n pn . En eet on met bout ` a bout pn mots de n lettres chacun. Naturellement, ce mot est loin d etre optimal. Inversement, lhypoth` ese optimiste est quil existe un mot sans redondance, cest-` a-dire qui contienne une et une seule fois chaque mot de n lettres. Un tel mot r epondrait ` a notre probl` eme, puisque lon ne peut pas faire plus court. Sa taille serait pn +n1. En eet la s equence obtenue epuiserait ` a chaque nouvelle lettre tap ee un mot de notre dictionnaire. Mais ce ` a partir de la n-i` eme lettre tap ee, naturellement. Nous allons de fait montrer que cette derni` ere hypoth` ese est la bonne. Pour cela, il nous faut quelques outils de th eorie des graphes. En quelques mots, on construit un graphe orient e dont les sommets sont les mots de n 1 lettres, et les arcs les mots de n lettres. Il sagit de trouver dans ce graphe un chemin qui parcours tous les arcs une et une seule fois. Lobjet de ce qui suit est de trouver une condition susante sur un graphe pour quun tel chemin existe. Nous verrons ensuite que le graphe obtenu dans ce probl` eme pr ecis v erie bien cette condition.

Un r esultat sur les graphes orient es

On peut trouver les r esultats d emontr es dans cette partie dans le chapitre 12 de [1], nous avons ici essay e disoler le plus possible le r esultat pr ecis qui permet de r esoudre notre probl` eme de digicodes. On trouvera egalement une introduction a ` la th eorie des graphes claire, compl` ete et accessible dans [2]. Il est cependant n ecessaire dutiliser le vocabulaire de la th eorie des graphes, aussi nous allons etre amen es ` a d enir un certain nombre de notions. Malgr e le caract` ere parfois aride de ces d enitions, celles-ci correspondent ` a des id ees assez simples, que nous essaierons de reformuler de fa con intuitive.

1.1

Quelques d enitions

D enition Un graphe orient e G est la donn ee dune paire (S (G) , A (G)), o` u S (G) est un ensemble ni dont les el ements sont appel es sommets de G et A (G) est un ensemble ni de couples ordonn es (distincts) d el ements de S (G), appel es arcs de G. Un arc (S1 , S2 ) sera aussi not e S1 S2 , et lon dira que cet arc relie S1 a S2 . S1 est alors appel ` e lorigine de larc et S2 son extr emit e. Intuitivement, un graphe orient e nest rien dautre quun ensemble de points reli es par des ` eches. D enition (i) Un chemin de longueur r du graphe orient e G est une suite (S0 , . . . , Sr ) de sommets telle que pour tout i dans [[ 0 ; r 1 ]] il existe un arc reliant Si ` a Si+1 . Ces r arcs sont de plus suppos es deux ` a deux distinct. S0 est appel e origine du chemin, et Sr extr emit e du chemin. (ii) Le chemin (S0 , . . . , Sr ) est appel e un circuit (ou chemin ferm e) sil v erie S0 = Sr . (iii) Un circuit el ementaire est un circuit dont tous les sommets sont distincts (mis ` a part le premier et le dernier bien s ur). Exemple : Dans le graphe suivant, (1, 2, 3, 1) et (1, 2, 3, 4, 2, 5, 3, 1) sont deux circuits possibles, mais bien s ur seul (1, 2, 3, 1) est un circuit el ementaire. Le circuit (1, 2, 3, 4, 2, 5, 3, 1) passe deux fois par le sommet 2 (et le sommet 3).
2

Propri et e 1.1 Tout circuit peut se d ecomposer en circuits el ementaires. En dautres termes, etant donn e un circuit C, on peut trouver un ensemble de circuits el ementaires E1 , . . . , Ep de fa con ` a ce que lensembles des arcs de C soit lunion des ensembles des arcs de E1 , E2 , . . . , Ep . Ainsi le circuit (1, 2, 3, 4, 2, 5, 3, 1) de lexemple pr ec edent se d ecompose en deux circuits el ementaires : les circuits (1, 2, 3, 1) et (2, 5, 3, 4, 2). 2

Nous allons d emontrer ce r esultat par r ecurrence sur la longueur du circuit C consid er e. Si le circuit C est de longueur 1, il est de la forme S, S, et nest constitu e que dun seul arc SS. Il est alors bien s ur el ementaire. Supposons le r esultat vrai jusqu` a lordre n. Soit alors C = (Si )0in+1 un circuit de longueur n + 1. Soit C est lui-m eme un circuit el ementaire, auquel cas il ny a rien ` a d emontrer, soit C nest pas el ementaire. Cest-` a-dire quil existe une paire dindices i < j , v eriant (i, j ) = (1, n + 1), telle que Si = Sj . Nous pouvons alors d ecomposer le circuit C en deux circuits Si , . . . , Sj et S0 , . . . , Si , Sj +1 , . . . , Sn+1 , qui sont eux-m emes des circuits strictement moins longs, donc de longueur au plus n. Par hypoth` ese de r ecurrence, ils peuvent eux-m eme etre d ecompos es en circuits el ementaires, et donc C egalement. Par le principe de r ecurrence, on peut donc conclure que tout circuit dun graphe orient e se d ecompose en circuits el ementaires.

1.2

D ecomposition en circuits disjoints

D enition (i) La valence sortante d+ (S) dun sommet S est le nombre darc partant de ce sommet. (ii) La valence entrante d (S) dun sommet S est le nombre darc arrivant ` a ce sommet. D enition Un graphe orient e G est dit pseudo-sym etrique si tous ses sommets S v erient d (S) = d+ (S). En dautres termes, G est pseudo-sym etrique, si pour tout sommet de G, il y a le m eme nombre darcs qui arrivent ` a ce sommet que darcs qui en partent. Propri et e 1.2 Un graphe orient e G est pseudo-sym etrique si et seulement si il est r eunion de circuits el ementaires disjoints. Lun des sens est imm ediat. Si G est r eunion de circuits el ementaires disjoints, alors pour tout sommet S de G, les valences sortantes et entrantes de S sont egales au nombres de circuits el ementaires passant par S, donc egales entre elles. Et le graphe orient e G est donc pseudo-sym etrique. R eciproquement, nous allons montrer par r ecurrence sur le nombre darcs que tout graphe pseudo-sym etrique est r eunion de circuits el ementaires. Si G ne poss` ede aucun arc, le r esultat est imm ediat. Supposons le r esultat vrai pour tout graphe orient e pseudo-sym etrique dau plus n arcs. Soit G un graphe orient e poss edant n + 1 arcs. Tout dabord, nous allons montrer par labsurde que G contient un circuit, donc un circuit el ementaire. Supposons donc que G nait pas de circuit. Partant dun sommet S1 quelconque de G dont la valence sortante est non nulle (rappelons que G poss` ede au moins un arc, donc un sommet origine dun arc), on peut alors construire un chemin de longueur arbitrairement grande. En eet, ` a chaque etape de la construction, on arrive 3

` un sommet S du graphe de valence entrante strictement positive (on a arrive au sommet en question), et distinct des pr ec edents (sinon le chemin construit contiendrait un circuit). Mais alors, comme par hypoth` ese d+ (S) = d (S), la valence sortante de S est elle aussi strictement positive, et donc on peut trouver un arc partant de S, cest-` a-dire que lon peut continuer la construction. Mais une telle construction nest pas possible, attendu que le nombre de sommets du graphe orient e G est ni. En conclusion, on peut trouver dans G un circuit. La propri et e 1.1 nous assure alors que G contient un circuit el ementaire, puisque tout circuit se d ecompose en circuits el ementaires. Soit C un circuit el ementaire de G. Soit G le graphe orient e obtenu en enlevant ` a G les arcs de C. Les sommets de G ont pour valences sortantes et entrantes la m eme que pour G si C ne passe pas par eux, celle quils ont pour G moins 1, si C passe par eux. Donc G est encore pseudo-sym etrique et poss` ede au plus n arcs, et donc G est r eunion de circuits el ementaires C1 , . . . , Cp disjoints dapr` es lhypoth` ese de r ecurrence. De plus les arcs de C1 (resp C2 , . . . , Cp ) sont des arcs de G , donc sont disjoints des arcs de C. Ainsi G est r eunion des circuits el ementaires disjoints C, C1 , . . . , Cp . On conclue alors par le principe de r ecurrence que tout graphe orient e pseudo-sym etrique est r eunion de circuits el ementaires disjoints.

1.3

Graphes Traversables

D enition Un graphe orient e G est fortement connexe si pour tous sommets S1 et S2 distincts, il existe un chemin du graphe orient e allant de S1 ` a S2 . D enition (i) Un circuit dun graphe G est dit eul erien sil comporte une et une seul fois chaque arc de G. (ii) Un graphe orient e G est dit traversable sil existe un circuit eul erien de G. (i.e. un circuit passant une et une seule fois par chaque arc de G) Th eor` eme 1.3 Un graphe orient e fortement connexe est traversable si et seulement si il est pseudo-sym etrique. Le cas ou G ne poss` ede quun seul sommet est trivial. G se r eduit alors soit ` un point, soit ` a a un point et une boucle autour de ce point. Nous supposerons d esormais que G poss` ede au moins deux sommets. Soit G un graphe orient e traversable, S un sommet de G. Les valences entrante et sortante de S sont egales au nombre doccurences de S dans tout circuit eul erien de G ne partant pas de S (sinon, il faut enlever 1 ` a ces valences). Notons tout de m eme que comme G poss` ede au moins deux sommets, il existe un circuit eul erien ne partant pas de S (un circuit eul erien passant par tous les sommets de G, il sut de commencer ailleurs si le circuit de d epart commence en S). La valeur des valences entrante et sortante du sommet S est bien commune, ce pour tout sommet, et donc le graphe orient e G est bien pseudo-sym etrique.

R eciproquement, soit G un graphe orient e pseudo-sym etrique et fortement connexe. Dapr` es la propri et e 1.2, on sait que G peut se d ecomposer en un ensemble de circuits el ementaires C1 , . . . , Cr disjoints. Soit r = 1, auquel cas le graphe orient e G se r eduit au circuit el ementaire C1 , et est bien traversable. Dans le cas contraire, C1 a n ecessairement un sommet en commun avec lun des circuits Ci pour i = 1. En eet soit S1 un sommet de C1 et S2 un sommet non atteint par C1 (si un tel sommet nexiste pas, le probl` eme est r egl e). Comme G est suppos e fortement connexe, il existe un chemin joignant S1 ` a S2 . Soit S3 le dernier sommet de ce chemin par lequel passe C1 , et S4 le sommet suivant du chemin. Comme par construction C1 ne passe pas par S4 , larc S3 S4 nappartient pas ` a C1 . Or les circuits C1 , . . . , Cr comprennent tous les arcs de G, et particulier larc S3 S4 , qui appartient par cons equent ` a un circuit Ci , avec i = 1. Mais alors C1 et Ci ont bien un sommet en commun, et lon peut les recoller. Exemple : Dans la gure qui suit, on consid` ere le sommet 1, qui est sur le premier circuit el ementaire. Par connexit e, on peut le joindre au sommet 2, sommet qui lui nest pas sur le premier circuit (celui de gauche). Sur le chemin de lun ` a lautre, il faut bien que lon sorte du premier circuit ` a un moment donn e, ici entre le sommet not e 3 et le sommet not e 4. Mais alors larc (3, 4) appartient a un autre circuit ` el ementaire que lon recolle au premier de la mani` ere evidente (on parcours un huit).
2

3 1

Soit C1 le circuit obtenu en partant de S3 et en parcourant successivement C1 et Ci . On a obtenu une d ecomposition de lensemble des arcs de G en un ensemble de r 1 circuits disjoints, qui sont C 1 et les Cj pour j di erent de 1 et i. Il sut ensuite de recommencer le proc ed e, en tout r 1 fois, pour obtenir un circuit contenant tous les arcs de G, cest-` a-dire un circuit eul erien. Et donc G est bien traversable.

Exemple : Une application tr` es classique de ce th eor` eme est le probl` eme dit du laitier d ecourag e. Il doit desservir un quartier dont toutes les rues sont ` a sens unique, selon le plan suivant :

Il voudrait bien s ur d eterminer un parcours passant une et une seule fois par chacune des rues. Malheureusement, on saper coit ais ement quen 8 carrefours, les nombres de rues qui arrivent et de rues qui partent sont di erents. Le th eor` eme 1.3 nous assure que le graphe nest pas traversable. Il nexiste pas non plus de chemin ( eventuellement ouvert, donc) passant par chaque rues : si un tel chemin existait, seuls les sommets de d epart et darriv ee pourraient avoir des valences entrante et sortante distinctes.

Application au probl` eme du digicode

Eliminons dembl ee le cas n = 1. Il faut evidemment taper toutes les lettres de lalphabet pour etre s ur douvrir la porte, soit un s esame de p lettres (et 1 p = p + 1 1, notre formule fonctionne donc toujours). Soit G le graphe orient e dont les sommets sont les mots de n 1 lettres sur notre alphabet ` a p lettres. Les arcs de G sont d enis comme suit : un arc relie le sommet S1 au sommet S2 si et seulement si il existe un mot de n lettres commen cant par le mot S1 et nissant par le mot S2 . Par exemple, les mots 1234 et 2345 seront reli e dans le cas dun digicode classique o` u le mot recherch e est compos e de 5 caract` eres, sur lalphabet 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, A, B. Larc qui joint 1234 ` a 2345 correspond au mot 12345. Exemple Donnons par exemple le graphe correspondant ` a un digicode ` a deux lettres, not ees A et B, sur lequel on recherche un mot de trois lettres. Les mots possibles sont ici : AAA, AAB, ABA, ABB, BAA, BAB, BBA, BBB Ceci nous fait donc huit arcs pour le graphe cherch e, dont les quatre sommets seront les mots de deux lettres, soit AA, AB, BA et BB.
AA AB

BA

BB

On peut ici construire un circuit eul erien ` a la main, le graphe etant assez simple. Par exemple : (BA, AA, AA, AB, BB, BB, BA, AB, BA) Ce circuit correspond (un fois d epli e) ` a la s equence de lettre BAAABBBABA, qui contient tous les mots de 3 lettres possibles. Elle comporte 10 lettres, soit 23 + 2, comme pr evu. N.B. Le cas n = 1 pourrait aussi se traiter de cette fa con, en consid erant un graphe ` a un seul sommet (correspondant au mot vide), muni de p boucles correspondant aux p lettres... 6

Chaque sommet de G poss` ede alors p arcs partant et p arcs arrivant : en eet il y a exactement p mots de n lettres commen cant par un mot de n 1 lettre donn e (il y a p lettres possibles pour la derni` ere), et de la m eme mani` ere il y a p mots de n lettre se terminant par un mot de n 1 lettres donn e. Dans le cas des mots dont toutes les lettres sont identiques, il y a une boucle, cest-` a-dire un arc qui joint le mot ` a lui-m eme. Cest le seul cas ou cela arrive, il naecte dailleurs en rien le d ecompte des arcs partants et arrivants en ce sommet : la boucle compte ` a la fois comme un arc partant et comme un arc arrivant. En particulier les valences entrante et sortante de chaque sommet sont egales. Dautre part le graphe orient e G est fortement connexe. Soient deux sommets S1 et S2 distincts donn es. Soient u1 , . . . , un1 la suite de lettres composant S1 et v1 , . . . , vn1 celle composant S2 . En les concat enant, on obtient un mot de 2n 2 lettres, ` a savoir le mot u1 , . . . , un1 , v1 , . . . , vn1 , qui d enit un chemin allant de S1 ` a S2 dans le graphe G. (Les arcs sucessifs du chemin correspondent aux suites de n lettres cons ecutives de notre mot). N.B. Ce chemin nest pas n ecessairement optimal. Par exemple, pour passer de ABABA ` a BABAB, on aura un chemin de longueur 5 alors quil y a ici un chemin de longueur 1. Pour trouver le plus court chemin, on proc` ede de la fa con suivante : soit q la taille de leur plus grande intersection, cest-` a-dire le plus grand indice tel que les suites unq , . . . , un1 et v1 , . . . , vq co ncident. Alors le mot u1 , . . . , un1 , vq+1 , . . . , vn1 d enit le chemin le plus court qui joint S1 ` a S2 . Il est de longueur n 1 q . Le graphe orient e G v erie donc les hypoth` eses du th eor` eme 1.3, aussi nous pouvons armer quil est traversable, cest-` a-dire quil existe un circuit passant une et une seule fois par chacun de ses arcs. Or ` a une tel circuit correspond un mot dexactement pn + n 1 lettres, qui contient tous les mots de notre dictionnaire.

R esultats similaires et applications

Un r esultat analogue au th eor` eme 1.3 existe pour les graphes non orient es. Pour distinguer ces nouveaux graphes des graphes orient es, on parlera cette fois dar etes du graphe, et non plus darcs. On d enit la encore les notions de chemin, circuit et circuit el ementaire. On parle cette fois de valence tout court dun sommet pour d esigner le nombre de fois ou ce sommet est extr emit e dun ar ete (une boucle ayant ce sommet comme extr emit es compte deux fois). Le r esultat est alors le suivant : Th eor` eme 3.1 Un graphe (non orient e) connexe est traversable si et seulement si tous ses sommets ont une valence paire. La d emonstration de ce r esultat est essentiellement la m eme que celle du th eor` eme 1.3. Ici encore, lune des implications est evidente : si un graphe traversable, le circuit trouv e nous montre que tous les sommets ont une valence paire. R eciproquement, soit G un graphe connexe dont tous les sommets ont une valence paire. On commence par d ecomposer notre graphe en circuits disjoints : on construit un circuit au hasard, puis on enl` eve les ar etes par lesquels passe 7

le circuit construit, et on recommence. Ensuite, gr ace ` a la connexit e du graphe, on peut concat ener les circuits obtenus en un seul. On peut raner ce th eor` eme pour obtenir le suivant : Th eor` eme 3.2 Soit G un graphe connexe. Il existe un chemin (et non plus un circuit) eul erien, cest-` a-dire passant une et une seule fois par chaque ar ete de G, si et seulement si le nombre de sommets ayant une valence impaire est egal a 0 ou 2. ` Bien s ur, sil existe un chemin eul erien, le nombre de sommets ayant une valence impaire est 0 si le chemin est ferm e, 2 si le chemin est ouvert. R eciproquement, si le nombre de sommets ayant une valence impaire est 0, alors dapr` es le th eor` eme pr ec edent, G poss` ede un circuit eul erien, donc un chemin eul erien. Si ce nombre est 2, nous allons construire un autre graphe. Soit G le graphe obtenu en rajoutant ` a G un sommet, et deux ar etes, ar etes qui joignent respectivement le nouveau sommet aux deux sommet de valence impaire dans G. Alors G est bien s ur toujours connexe (le nouveau sommet etant reli e au reste du graphe). Dautre part, tous les sommets de G ont cette fois une valence paire. Donc G poss` ede un circuit eul erien, circuit que lon peut ouvrir ` a lendroit du nouveau sommet pour obtenir un chemin eul erien de G. Exemples :

Le dessin de droite peut etre eectu e sans lever le crayon, pas celui de gauche. En eet dans celui de gauche, les quatre sommets ont une valence impaire, tandis que dans celui de droite, seuls les deux sommets du bas ont une valence impaire, et donc il existe un chemin eul erien. Dautre part, ladjectif eul erien provient bien s ur du math ematicien Euler, qui r esolut en 1736 le probl` eme suivant : est-il possible pour un pi eton de la ville de K onigsberg (d esormais Kaliningrad) de traverser une et une seule fois chacun des 7 ponts de la ville ? La ville de K onigsberg avait alors la structure suivante :

2 4

On peut repr esenter ce probl` eme par le graphe suivant, o` u les ponts de K onigsberg correspondent aux ar etes du graphe : 1

L` a encore, les quatre sommets du graphe ont des valences impaires. Il nest donc pas possible de le parcourir en passant une et une seule fois par chaque ar ete.

R ef erences
[1] F. Harary, R.Z. Norman, D. Cartwright, Introduction ` a la th eorie des graphes orient es, Dunod, 1968. [2] C. Berge, Graphes et hypergraphes, Dunod, 1970.

Vous aimerez peut-être aussi