Conventions communes.
G= (V, E) est un graphe non-oriene, |V|=n, |E|=m.
D= (V, A) est un graphe orient´e, |V|=n, |A|=m.
La repr´esentation d’un graphe est supos´ee ˆetre en ordre alphab´etique ou num´erique (par le nom du
sommet ou de l’arˆete) quand il y a un choix.
1. (5 points) Est-il possible qu’un algorithme dont le temps d’ex´ecution en pire cas est dans Θ(n2) fonc-
tionne plus lentement, sur chaque exemplaire, qu’un autre algorithme dont le temps en pire cas est dans
O(n3)?
2. (15 points) Prouvez que pour toutes constantes a, b R>0on a que Θ(logan) = Θ(logbn).
3. (10 points) esolve exactement la r´ecurrence
t(n) = 3t(n1) 2t(n2) + 3n
t(0) = 1
t(1) = 8
t(2) = 18
4. (10 points) Soit
T(n) = 4T(n
2)T(n
4) + n2
lorsque nest une puissance de 2. Prouvez que T(n)O(n2|n est une puissance de 2).
5. (15 points) Dans quelles conditions peut-on conclure que la fonctions T(n) de la question 4 est dans
Θ(n2)? Que peut-il arriver si ces conditions ne sont pas v´erif´ı´ees?
6. (10 points) Prouvez que lg n6∈ Θ(n).
7. (10 points) Prouvez que tout algorithme de recherche par comparaison de cl´e d’une cl´e dans un fichier
de ncl´es n´ecessite au moins dlg necomparaisons dans le pire cas. C’est `a dire, prouvez que la recherche
par comparaison est dans Ω(lg n).
8. (12 points) La matrice suivante d´ecrit un graphe orient´e. Montrer, en la modifiant dans le deuxi`eme
tabelau vide (le premier vous servira pour des calculs interm´ediaires si n´ecessaire) son ´etat apr`es les
premi`eres DEUX it´erations de l’algorithme qui calcule la fermeture transitive r´eflexive du graphe.
0100000
0010000
0001100
0000100
0000011
0001000
0000000
1
ANSWER
9. (12 points) On a vu, `a maintes reprises, que la complexit´e de Quicksort est dans O(n2) dans le pire
cas mais dans O(nlg n) en moyenne (on tri, bien sur, ncl´es). Proposer un algorithme de Sherwood pour
am´eliorer Quickosrt. Est-ce que votre m´ethode garanti que la complexit´e soit dans O(nlg n)? Si oui,
justifiez, si non, dites pourquoi vous pensez qu’elle est pr´ef´erable au Quicksort ordinaire.
10. (6 points) Soit ti:i= 0,1, . . . , 7 un emsemble de tˆaches `a ex´ecuter. Chacune n´ecessite un temps unitaire
et la tˆache tidoit ˆetre compl´et´ee au plus tard au moments dipour apporter un gain gi, tel qu’indiqu´e
dans le tableau ci-dessous.
0 1 2 3 4 5 6 7
g 20 13 23 22 15 25 6 10
d 3 4 2 2 4 3 7 4
Quel est l’ordre d’ex´ecution de ces tˆaches qui maximise le gain et quel est le gain obtenu?
Ordre: Gain:
11. (16 points)Soit G= (V, E) un graphe pond´er´e par c:ER. Pour chacun des algorithmes suivants
dites s’il marche corectement sur Gou pas. Justifiez vos dires.
(a) Kruskal (ACM)
(b) Dijkstra (distances d’une source)
(c) Prim (ACM)
(d) Floyd (toutes distances)
(a) Etant donn´e npersonnes dans une file d’attente dont la i-`eme demande un temps tide service,
d´efinisser pr´ecis´ement ce que l’on entend par ”minimisation de l’attente”.
(b) Prouver que l’algorithme glouton (d´ecrivez-le bri`evement) r´esoud le probl`eme correctement.
12. (10 points)
(a) Prouvez que 2n
nΩ(22n
n2)
(b) En sachant que le nombre de Catalan (nombre de mani`eres de ”bien parenth´eser” npaires de
parenth`eses, o`u le nombre n’ordres de multiplications dans lesquels on peut calculer le produit
M1. . . Mnde nmatrices) est T(n) = 1
n(2n2
n1), prouvez que T(n)Ω(4n
n2).
13. (10 points) Soit R0l’ensemble des r´eels non n´egatifs. Dans chacun des cas suivants, donnez une
fonction f:NR0et une fonction g:NR0v´erifiant la condition. Si de telles fonctions
n’existent pas, expliquez pourquoi. (Notez que repr´esente l’ensemble vide.)
2
(a) O(f)Ω(g) =
(b) O(f)Ω(g) =
(c) O(f)Ω(g) = O(f)
(d) O(f)Ω(g) = Θ(n2).
(e) O(f)Ω(g) = O(f)
(f) O(f(n)) = O(g(n)|lorsque nest puissance de 2)
14. (9 points) Soit Sun tableau de npetits entiers (donc manipulables `a coˆut unitaire). Consid´erez la
fonction suivante:
fonction OUACHE(S[1..n])
si n4alors retourner (S[1])
sinon
m← bn/5c
pour i1jusqu’`a bn/2cfaire S[i]S[i] + S[2i]
retourner (OUACHE(S[1..m]))
(a) (5 pts) Donnez une r´ecurrence caract´erisant le temps d’ex´ecution en pire cas T(n) de la fonction
OUACHE.
(b) (2 pts) Donnez sans preuve une fonction simple f(n) telle que T(n)Θ(f(n)).
(c) (2 pts) Si l’instruction
m← bn/5c
´etait remplac´ee par l’instruction
m← bn/2c,
quel serait le temps d’ex´ecution de la fonction OUACHE?
15. (20 points)
(a) (3 pts) Qu’est-ce qui distingue le mod`ele PRAM CREW de la PRAM CRCW commune?
(b) (7 pts) Le probl`eme du rang dans une liste est celui o`u l’on vous donne une liste et vous devez
calculer pour chaque item la distance entre cet item et le dernier item de la liste.
Donnez en d´etail un algorithme PRAM EREW fonctionnant en temps O(log n) et utilisant npro-
cesseurs pour r´esoudre le probl`eme du rang dans une liste.
N.B. Bien sˆur, les nprocesseurs sont associ´es aux nitems de la liste dans un ordre arbitraire.
(c) (7 pts) Consid´erez le probl`eme suivant. ´
Etant donn´ee une liste de n´el´ements, il s’agit de d´eterminer
le dn/2ei`eme ´el´ement de la liste et de placer cet item dans la variable MILIEU. Supposez que chaque
item de la liste est repr´esene par une composante SUCCESSEUR et une composante VALEUR.
En vous servant au besoin de votre algorithme de la partie (b), donnez un algorithme PRAM CRCW
r´esolvant ce nouveau probl`eme. Vous pouvez choisir le nombre de processeurs, mais votre algorithme
doit fonctionner en temps O(log n).
N.B. Bien sˆur, comme dans le cas pr´ec´edent, aucun processeur ne connaˆıt nau d´epart.
(d) (3 pts) Dites si votre algorithme est efficace au point de vue travail et justifiez.
16. (points) Soit Gun graphe non-oriene et soit uun sommet distingu´e de G.
(a) D´ecrivez un algorithme efficace pour trouver les distances de tous les sommets de u(rappel: la
distance d(u, v)entre les sommets uet vet la longueur d’un plus court chemin entre uet v).
3
(b) Donnez et justifiez la complexit´e do votre algorithme en faisant attenttion `a la repr´esentation de G.
17. (points) Donner un algorithme capable de trier topologiquement les sommets d’un graphe orient´e Det
de reconnaˆıtre si un tel tri n’est pas possible. Prouvez que l’algorithme est correcte et donnez et justifiez
sa complexit´e en terme de net de m.
18. (points) Quelle est la diff´erence entre diviser-pour-r`egner et programmation dynamique?
19. (points) Soit {a, b, c, d, e, }un ensemble de cl´es et soit pa= 0.5, pb= 0.1, pc= 0.15, pd= 0.2, pe= 0.05
les probabilit´es de recherche des cl´es a, b, c, d, e, respectivement. Remplissez le tableau ci-dessou en
suivant l’algorithme vu en cours pour optimiser la longueur moyenne de recherche de ces cl´es et dessinez
l’arborescence de recherche optimale associ´ee .
20. (points) Marquez chacun des ´enonc´es suivants V(vrai) ou F(faux) dans le carr´e pr´evu `a sa droite.
(a) Un algorithme dans la complexit´e est dans O(nlg n) est toujours meilleurs qu’un algorithme dans
la complexit´e est dans O(2n)
(b) Si uest un points d’articulation d’un graphe Galors Gua exactement deux composantes connexes.
(c) Un algorithme Las Vegas donne toujours la bonne r´eponse.
(d) L’algorithme de Floyd est toujours meilleur que l’algorithme de Dijktra r´ep´et´e.
(e) Le principe d’optimalit´e dit que si Sest une solution optimale `a un probl`eme de taille nalors une
solution optimale pour ce probl`eme de taille 2npeut ˆetre obtenue `a partir de S.
(f) Si Gest repr´esent´e par une liste d’adjacence alors l’algorithme de Warshall fonctionne en O(n2).
(g) Un algorithme Monte Carlo donne souvent une r´eponse approximative.
(h) Un graphe orient´e est fortement connexe si et seulement si le graphe soujacent (obtenu en oubliant
les direction des arcs) est deux-connexe.
21. (points) Soit Pun probl`eme bien caract´eris´e.
(a) (points) Prouvez, qu’il existe un algorithme de Las Vegas pour r´soudre Psi et seulement si il en
existe un de Monte Carlo.
(b) (points) Une direction dans la d´emonstration de la partie pr´ec´edente n’a pas besoin de supposer que
le probl`eme Psoit bien caract´eris´e. Laquelle et pourquoi?
22. (points) Le tableau suivant sert `a calculer la fermeture transitive r´eflexive d’un graphe oriene. Rem-
plisser la case suivante.
23. (points) Les deux tableaux ci-dessous ont ´et´e remplis par l’algorithme qui cherche a minimiser le nombre
de multiplications scalaire dans une multiplication chaˆın´ee d’un certain nombre de matrices (multiplication
habituelle de matrices). Quel est ce nombre minimum et quel est l’ordre de multiplications qui permet
de l’atteindre? Cet ordre, est-il unique?
24. (points) Sous l’hypoth`ese de l’arithm´etique dans un domaine D`a coˆut unitaire et de l’existence dans
Dd’une racine de l’unit´e appropri´ee, nous avons d´evelopp´e en cours un algorithme capable de multiplier
deux polynˆomes de degr´e n`a coefficients dans Den un temps dans Θ(nlog n) lorsque les deux polynˆomes
nous sont donn´es par leurs coefficients respectifs. Appelons cet algorithme MUL(a(x), b(x)).
4
(a) Esquissez un algorithme efficace qui calcule les coefficients du polynˆome c(x) = a(x)b(x) lorsqu’on
nous donne, au lieu des coefficients de a(x) et de b(x), des valeurs a1, a2, . . . , anDet b1, b2, . . . , bn
Dtelles que
a(x) = (xa1)(xa2). . . (xan)
et
b(x) = (xb1)(xb2). . . (xbn).
Votre algorithme doit fonctionner en un temps qui n’est pas dans Ω(n2).
(b) Donnez le temps d’ex´ecution de votre algorithme, en justifiant vos dires.
Indice: Employez la technique diviser-pour-r´egner, en utilisant au besoin l’algorithme MUL sans vous
soucier de son fonctionnement.
25. (2 points) Qu’est ce que c’est que le pari de Pascal?
26. Provez vrai ou faux: Si on fait la FEP sur un graphe oriene en num´erotant les sommets en pr´e-ordre
alors les sommets du graphe seront num´erot´es en ordre topologique.
27. Faites l’analyse de l’algorithme propos´e pour trouver les composantes fortement connexes d’en graphe
orient´e G(i.e. combien de temps, combien d’espace) si Gansommets et aarˆetes. Que peut-on dire si
on sait que
aΘ(n)
aΘ(n2) ?
28. (10 points) emontrez que le coefficient binomial 2n
nO(4n).10 pts
29. (20 points) Supposons que l’on ait un algorithme (par exemple celui sugg´er´e dans le livre et en cours) 20 pts
qui trouve la m´ediane d’un fichier Fde ncl´es distinctes en temps lin´eaire. Proposez un algorithme qui
trouve le k-i`eme plus petit ´el´ement de Fen temps lin´eaire. Justifiez votre r´eponse.
30. (15 points) Imaginez que vous ˆetes d´emonstrateur en IFT 2121 et qu’un ´etudiant pr´etend pouvoir trier
ncl´es distinctes en un temps dans O(n). Voici son argument:
En utilisant l’algorithme expliqu´e au cours et dans le livre, on peut trouver la m´ediane d’un fichier de n
cl´es en temps lin´eaire. On peut donc modifier QUICKSORT de fa¸con suivante:
MEDSORT (F)
si Fcontient plus d’une cl´e alors faire
Trouver la m´ediane de F.
Partitionner F, avec la m´ediane comme pivot, en deux parties, Get D.
MEDSORT (G), MEDSORT (D).
Puisque la m´ediane tombe ”au milieu” du fichier, les partie Get Dont, chacune, bn
2ccl´es. Ceci donne,
pour le nombre de comparaisons faites pour trier F, la r´ecurrence
t(n)Θ(n)+2t(bn
2c)
En posant k=dlg neet m= 2kon obtient
t(n)cm + 2t(m
2)c(
k
X
i=0
m2i)+2kcm(2 2k)+2kcm(2 1
m) + m
5
1 / 19 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !