ROB3 – Algorithmique ann´ee 2014–2015
ROB3 – Algorithmique – Interrogation n1
Dur´ee : 2 heures – barˆeme indicatif
Exercice 1 (4 pts)
Dans cet exercice, on consid`ere l’algorithme alg ci-dessous :
Q 1.1 Indiquer ce que fait l’algorithme alg.
Pr´ecision : La r´eponse attendue ne consiste pas `a d´ecrire le d´eroulement de l’algorithme.
1/20
Q 1.2 Identifier et prouver l’invariant de boucle qui permet de conclure `a la validit´e de l’algorithme par rapport
`a la sp´ecification indiqu´ee dans la r´eponse pr´ec´edente.
2/20
ROB3 – Algorithmique page 2
Q 1.3 Quelle est la complexit´e de l’algorithme alg ?
1/20
Exercice 2 (4 pts)
Dans cet exercice, on consid`ere l’algorithme Riddle ci-dessous :
Q 2.1 Indiquer ce que fait l’algorithme Riddle.
1/20
ROB3 – Algorithmique page 3
Q 2.2 Prouver la validit´e de l’algorithme (on ne demande pas de prouver la terminaison).
2/20
Q 2.3 Indiquer la relation de r´ecurrence `a r´esoudre pour calculer le nombre c(n) de fois que la comparaison
temp A[n1]” est r´ealis´ee par l’algorithme en fonction de n. En d´eduire la complexit´e de l’algorithme.
1/20
ROB3 – Algorithmique page 4
Exercice 3 (4 pts)
Le but de cet exercice est de r´ealiser un produit de deux matrices carr´ees Xet Yde dimension n×nen utilisant
l’approche diviser pour r´egner. Un produit de matrices est particuli`erement facile `a diviser en sous-probl`emes
car il peut ˆetre r´ealis´e par blocs. Pour voir ce que cela signifie, partitionnons Xen quatre blocs n/2×n/2, ainsi
que Y:
Le produit XY peut ˆetre r´ealis´e par blocs de la fa¸con suivante :
Q 3.1 On suppose que l’addition de deux scalaires se fait en Θ(1). Quelle est la complexit´e (en fonction de n)
de l’op´eration de fusion des r´eponses aux sous-probl`emes ?
1/20
Q 3.2 Soit T(n) le nombre d’additions de scalaires `a effectuer pour r´ealiser un produit de matrices carr´ees n×n.
Ecrire l’´equation de r´ecurrence v´erifi´ee par T(n). En d´eduire la complexit´e de la m´ethode en fonction de n.
1.5/20
On suppose d´esormais qu’on divise le probl`eme en r´ealisant les calculs suivants :
o`u
ROB3 – Algorithmique page 5
Q 3.3 On v´erifie facilement que la complexit´e de l’op´eration de fusion reste inchang´ee. Ecrire l’´equation de
r´ecurrence v´erifi´ee par T(n) pour cette nouvelle m´ethode de produit matriciel. En d´eduire la complexit´e.
1.5/20
Exercice 4 (5 pts)
On consid`ere dans cet exercice un tableau T= [1 . . . n]unimodal dont les ´el´ements sont tous distincts. Un tableau
est dit unimodal si ses ´el´ements commencent par croˆıtre jusqu’`a atteindre un maximum, puis d´ecroissent. C’est
par exemple le cas du tableau suivant :
1 4 9 14 16 18 10 3 2
On vise `a d´eterminer l’´el´ement maximal de Ten utilisant un algorithme r´ecursif TernarySearch(T, i, j), dont
l’appel initial est TernarySearch(T, 1, n). Le cas d’arrˆet est lorsque ji+ 1 3 (autrement dit, le sous-
tableau consid´er´e ne comporte pas plus de 3 cases), auquel cas on retourne le max (d´etermin´e en temps constant)
de T[i..j]. Dans les autres cas, on r´ealise un appel r´ecursif sur un sous-tableau. Le choix du sous-tableau se fait
en consultant les valeurs T[m1] et T[m2], o`u m1=i+b(ji+ 1)/3cet m2=j− b(ji+ 1)/3c.
Q 4.1 Indiquer l’appel r´ecursif `a r´ealiser dans chacun des deux cas suivants (justifier la r´eponse) :
i)T[m1]> T [m2],
ii)T[m1]< T [m2].
2/20
1 / 7 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 !