You are on page 1of 5

C34212

INFORMATIQUE II

DURÉE: 5 HEURES

Aucun document personnel n ’est autorise‘

Pour les &preuves d’admissibilité, 1 ’usage de calculutrices èlectroniques de poche à


alimentation autonome, non imprimantes et sans document d ’accompugnernent,est autorisé3une seule
à lafois ètant udmise sur la table ou le poste de travail.

Le sujet porte sur des algorithmes de génération déatozre : dans une famille d’objets, par
exemple les arbres couvrants d’un graphe G donné, on veut choisir un élément au hasard, de
façon à ce que tous les éléments aient la même probabilité d’apparaître. Ce type d’algorithmes
est utilisé par exemple pour l’étude expérimentale de configurations aléatoires en physique
statistique ou pour la détermination de seuils de significativité dans l’analyse des gilnomes.

Le sujet comporte des préliminaires, puis un exercice et un problème independants. La


lecture des préliminaires est utile pour traiter l’exercice 011 le probl6me. A l’intérieiir d’une
partie, il est possible d’admettre les résultats d’une question pour traiter la suite. On prendra
soin de justifier les réponses données, y compris le fonctionnement des algorithmes et en
particulier leur terminaison.

Tournez la page S.V.P.


Préliminaires
On supposera dans toute le sujet qu’on dispose d’un générateur parfait BA de bits aléa-
toires : chaque appel dc BA renvoie un bit aléatoire O ou 1 avec probabilité 1/2. On notc cela
Pr(BA = O) = Pr(BA = 1) = 1/2. Notre objectif est d’étudier des algorithmes qui font appel
au ghkrateur BA. Considbrons par exemple l’algorithme suivant, qui tire une suite dc bits
aléatoires et s’arrête après avoir vu Ir, zéros.

algo s t o p ( d )
- ! : = O ;

- tant que !< al faire { si BA()= O alors f!:= ! 1;}+


Cct algorithme n’est pas déterministe : deux appels idcntiques stop (10) peuvent provoqucr
deux exécutions différentes. L’algorithme s t o p peut a priori ne pas terminer, par exemple si
la suite dc bits rcnvoyés par lc ghératcur cst une suite infinie de 1. Cependant ceci n’est pas le
comportement qu’on s’attend a observer : en pratique l’algorithme stop termine {< toujours >)
et on voudrait unc notion dc terminaison qui rende compte de cette intuition.
Question 1. Fixons une suite s = (b1,. . . ,bi) de i bits. Quelle est la probabilité p ( s ) qu’une
suite de i appels à BA donne exactement s ?
Question 2. Décrire l’ensemble & ( i ) des suites de i bits associées aux exécutions de s t o p ( d )
qui terminent après exactement i appels de BA.
Question 3. Calculer la probabilité p d ( i ) = CSEsd(Z)p ( s ) qu’une exécution de s t o p ( d ) ter-
mine après exactement i appels de BA et en déduire la probabilité quc l’exécution de
s t o p ( d ) termine. (On rappelle la formule du binômc : pour d 2 O; et 1x1 < 1, on a
ntd-l -
Ca20 ( d-1 ) ‘ - (l - ‘fi)-d.>
On dira dans la suite qu’un algorithme A t e r m i n e avec probabilitk 1 sur l’ensernble des
donnees 23,si pour tout d E D,la probabilité de terminaison de l’appel A(d) est 1. Dans le
même ordre d’idées, nous allons considérer la complexité e n moyenne plutôt que la complexité
dans le pire cas (qui serait infinie pour l’algorithme s t o p ) .
Question 4. Montrer que le nombre moyen de bits aléatoires utilisés par l’appel s t o p ( d )
s’écrit Ci>o
-
i p d ( i ) et que cette quantité est un O(d).
Un générateur aléatoire unijorme pour un ensemble fini E est un algorithme FE qui renvoit
un klément de E et tcl que, pour tout e E E , P r ( r E = e) = l/IEl.
Question 5. Donner un gknérateur alkatoire uniforme Rand(n) pour {O,, , . ,n - 1}, d’abord
avec n = 2 k , puis pour n quelconque. Indiquer le nombre rnoycn de bits alkatoires utilisés.

Exercice
Soit S, l’ensemble des permutations de (1,.. . ,n} ; on rappelle qu’une permutation de
(1;. . . ,n} est une bijection de cet ensemble dans lui-même, et que IS,I = 1 . 2 . 3 . . . n = n! .
Far ailleurs, l’ensemble B des arbres binaires complets est dkfini récursivement : un arbre
binaire complet est formé d’un nceud (appel6 racine de l’arbre) et de deux sous-arbres ; chaque
sous-arbre est formé d’une feuille ou d’un arbre binaire complet. Soit B, l’ensemble des arbres
+
binaires complets à 7t nmuds (et, par construction, ri n 1 feuilles).

2
Les 3 questions sont indépendantes. On precisera dans les réponses à ces 3 questions la r c
présentation choisie pour les structures manipulkes, la complexité en moyenne des algorithmes
et le nombre moyen de bits aléatoires utilisés.

Question 6. Donner un générateur aléatoire uniforme permute(n) de permutations de S,.


Question 7. Proposer une construction pour fabriquer à partir
C#J

- d’un triplet ( A , s , c ) tel que A E a,, s est un nœud ou une feuille de A e t c E


{gauche, droit},
- une pairc (A’,f ) telle que A’ E Bn+l et f est une feuille de A‘,
de façon quc chaque triplet corresponde à une unique paire et rkciproquemesit.
En dkduire (meme si vous n’avez pas trouvé la bijection) une récurrence pour le nombrc
d’arbres dans a,, et un générateur aleatoire uniforme Binaire(n).
Question 8. Donner une borne inférieure sur le nombre de bits aléatoires nécessaires à la
génération d’une permutation de S, e t à celle d’un arbre binaire complet de &.

Problème : Cycles eulériens aléatoires


Soit G = (V,E ) un graphe orienté : V = (1,. . . , n} est l’ensemble des sommets: E =
(1,.. . ,m} est l’ensemble des arcs, et à tout arc i E E est associé une origine i- E V et une
extr&mitéif E V .En particulier les boucles (i+ = i - ) et les arcs multiples ( i f = j + et i- = j -
pour i # j ) sont autorisées. Le degré sortant du sommet z est d-(x) = I{i E E 1 i- = x>I et
son degré entrant est d+(x) = I{i f E 1 i+ = z}I.
Une marche de x à y de longueur k est une suite d’arcs (al, . . . ,ak) de E tels que a l = z,
CL =:y et pour 1 5 i < k , CL’ = ai+l. Un circuit issu de x est une marche de x à x. Un chemin
(respectivement un Iwcet) est une marche (respectivement un circuit) dont lcs sommets sont
distincts deux A deux. Dans tout le probleme, on suppose le graphe G fortement connexe :
pour tout x et y de V , il existe une marche dc 5 A y.
Un graphe est un urbre s’il contient un sommct racine x tel que de tout sommet y part
une unique marche vers x. Un arbre couvrant de G est un enscmblc d’arcs A C E tel que le
graphe (V,A ) soit un arbre. (Nos arbres ont donc tous leurs arcs orientés {{ vers la racine ..)
Question 9. Donner un algorithme qui construit un arbre couvrant du graphe G.
Un circuit eulérien est un circuit qui emprunte exactement une fois chaque arc de E (il
est donc de longueur m). Le graphe G est dit eulérien s’il existe un circuit eulérien sur G.

Question 10. Donner unc condition nécessaire et suffisante sur les degres pour que G soit
eulkricn.
Question 11. Donner une bijection entre les circuits eulériens de G issus de x et les couples
( A ,(O,),Ev)formés d’un arbre couvrant A de racine z et pour chaque sommet y E V
d’un ordre O, sur les arcs sortants de y qui n’appartiennent pas à A .

Marche à lacets effacés et empilement de lacets


fitant donnée une liste C de longueur f!, on note Cu1 le j-ème élérnent, C[,f la liste des
+
j - 1 prcmicrs klkments et Cpjl la liste dcs f! - j 1 derniers élémerlts. Enfin, la concaténation
d‘un élément 2 à la fin d’une liste C est notée C .x.On considère l’algorithme suivant, connu

3 Tournez la page S.V.P.


..
. ..
. ...
. . . . .

FIG.1 - Un pas dans l’exécution de l’algorithme efface. En ha.ut : le chemin C dans le graphe
G. En dessous, la suite des lacets déjà formés rcprésentée comme cmpilemcnt de lacets. A
gauche, le prochain arc a de la marche M est indiqué. droite, le parcours de l‘arc a a créé
un sixième lacet. Les laxets maximaux sont 4 et 5 dans l’empilement de gauche ; 4,5 et 6 dans
celui de droite. On vérifie que dans les deux cas B . C est une pyramide car C intersecte tous
les chemins maximaux de B.

sous le nom de marche ù Zucets eflucés. On note V ( M )l’ensemble des sommets parcourus par
une marche M issue de 3;o ; par convention V ( M )= (20)si la marche M est vide.
-
u l p Efface CM) : la donnke est une marche M = (al, .. . ,u k ) d’origine 20 = odl.
-c := () ; (C est un chemin d’origine 20)
a := () ; (a est une liste de lacets)
- pour i de 1 ii le, faire
- si a+ E v ( C ) (détection d’un lacet)
alors soit j tel que Cil = a: ; (le hcet est Cpjl . ai)
a := a - (C[,j]
- * UZ) ; c
:= C[<j]; (ajout du lacet à a et effacement)
sinon C := C . ai ;
- renvoycr C et B.

Question 12. Montrer que la donnée du chemin C et de la liste de lacets B permet de retrouver
la marche M .

-
On dit que deux suites de marches sont équivalentes si on peut passer de l’une à l’autre par
une suite de commutations de la forme ( B I , . . , Bi, Bi+l,.. . , Bk) ( B I , . . ,Bi+l,Bi,. . . ,B k )
avec Bi et Bi+l des marches disjointes ( i e . V ( & )nV(Bi+,)= 0). Un empilement de marches
est une classe d’équivalence de suites de marches. Une marche B est maxzmale dans l’empile-
ment fi s’il existe un reprksentant de la classe tel que B soit la dernière marche de la liste.
Une p y r a m i d e de marches est un empilement de marches ayant un unique élémerit maximal.
Question 13. Soit G un chcrnin ct un ernpilcmcnt de lacets tels que la concaténation B. C
forme une pyramide. Montrer qu’il existe une unique marche M dont l’image par Efface
est formé du chemin C et d’un représentant a de la classe a.
4
Arbres couvrants et circuits euleriens aleatoires.
Achaque sommet y de G on associe un générateur aléatoire uniforme Arc(y) qui renvoie
un arc choisi uniformément parmi les arcs issus de y : Pr(Arc(y) = e) vaut l/d-(y) si e- = y
et O sinon. L’algorithme suivant produit un arbre couvrant de G et un empilement de lacets.
~~~ ~

algu Arbre ( G )
- V1=(n};A:=0;
- Pour z de 1 & n - 1 répkter
- M,=();Y:=X; (construction d’une marche
- tant que y 6 VJ répéter de z à un sommet de V, :
- e := Arc(y) ; - choix d’un arc issu de y,

- Mx:=Mx.e;y : = e + ; - avancée d’un pas.)

- (Cz,BX):=eff ace(Mx) ;
- vz+l:= v, u V(C,) ;
- ajouter les arcs de C, à A ;

- rcnvoycr A et l’empilement B = BI. -. B,-1.

Question 14. Montrer que les couples ( A ,B ) formés d’un arbre couvrant de racine n et d’un
empilement de lacets qui évitent le sommet n sont en bijection avec les exécutions pos-
sibles de l’algorithme A r b r e ( G ) .
Question 15. En déduire que deux arbres couvrants de G ont la même probabilité d’être
renvoyés par l’appel Arbre (G) .
Question 16. Soit G un graphe eulérien. Donner un algorithme probabiliste euler(G) qui
renvoie un circuit eulérien cboisi uniformérnent parmi tous les circuits eulériens sur G.

Application aux séquences aléatoires contraintes


Le problème suivant est une version simplifiée d’une question issue du traitement des
séquences génomiques. Étant donné un fragment s d’.4WT,on souhaite produire un échantillon
de séquences aléatoires x proches )> du fragment s pour en étudier les propriétés statistiques.
Une définition fréquente de séquences (< proches }> consiste à imposer la même distribution
des facteurs de longueurs q pour un q 2 2 fixé. L’objectif est de juger la pertinence d’un
{{ évènement D (par exemple, mon fragment contient i i n motif rkp6tk très long) : si le m6me

genre d’évènements se produit dans des séquences aléatoires proches, alors ça n’est sans doute
pas un évènement significatif.
Soit q 2 2 un entier et A un alphabet fini. À un mot w de longueur rn sur A, on associe
l’application Ow : AQ-+ N qui compte le nombre d’occurrences des facteurs de longueur q dans
le mot w.Pour simplifier on complète w cycliquement de façon à avoir m facteurs au total.
(En d’autres termes pour w = w1.. . w,, on promène une fenêtre de longueur q sur le mot
w1 . . . W , ~ ~. W
. . wq-l
~ et on compte les facteurs apparaissants.)
A4insipour y = 3 et w = TATATCG, les 7 facteurs de longueur 3 sont successivement T A T ,
ATA, T A T , ATC, T C G , CGT et GTA. D’oii en particulier O,,(TAT) = 2, O,(AAA) = O.
Question 17. Soit w un mot de longueur r n sur A et W l’ensemble des mots tels de même
q-composition que w ,c’est-&-dire, W = {w’ 1 Owr = &,}. Donner un algorithme de
génération aléatoire uniforme des mots de W .

You might also like