(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 G−ua 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 orient´e. 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