• Aucun résultat trouvé

a) Quel est le temps de parcours de l’algorithme na¨ıf pour ce probl`eme? b) Supposons que la suite est stock´ee dans un tableauade taillen

N/A
N/A
Protected

Academic year: 2022

Partager "a) Quel est le temps de parcours de l’algorithme na¨ıf pour ce probl`eme? b) Supposons que la suite est stock´ee dans un tableauade taillen"

Copied!
2
0
0

Texte intégral

(1)

Algorithmique - Semestre d’Automne 2011/2012

ECOLE POLYTECHNIQUE F´´ ED ´ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication

S´erie d’exercices 6 31 Oct. 2011

1. Multiplication de plusieurs matrices

Supposons que nous avons 4 matrices aux formats suivants:

Matrice Format A1 5×10 A2 10×3 A3 3×12 A4 12×5

Utiliser un algorithme de programmation dynamique appropri´e vu en cours pour calculer la disposition de parenth`eses de l’expressionA1· · ·A4 qui minimise le nombre de multiplications n´ecessaires.

2. Algorithmes

Consid´erons le probl`eme suivant: ´etant donn´e une suite tri´ee (croissante) d’´el´ements de N et un nombre x ∈ N, d´eterminer s’il existe dans la suite deux ´el´ements distincts dont la somme vaut x.

Par exemple pour l’input (1,2,2,3,3,10,11), 6

l’output serait vrai, alors que pour l’input (1,1,1,2,5,6,6,7), 4

l’output seraitfaux.

a) Quel est le temps de parcours de l’algorithme na¨ıf pour ce probl`eme?

b) Supposons que la suite est stock´ee dans un tableauade taillen. Donner (en pseudo code) un algorithme qui r´esout ce probl`eme en temps O(n).

3. Sac `a dos 0/1

a) Trouver une solution optimale (i.e. objets et valeur optimale) au probl`eme du sac `a dos 0/1 suivant:

W = 20,

objet A B C D E

valeur 22 15 8 15 15

poids 11 7 6 7 3

b) La solution optimale dans le probl`eme ci-dessus est-elle unique? Si ce n’est pas le cas, donner toutes les solutions optimales. Peut-on adapter l’algorithme du point a) pour trouver toutes les solutions optimales? Comment faire?

c) Montrer que si on a un probl`eme de sac `a dos avec n objets, alors il peut y avoir au plus 2n solutions optimales.

d) Montrer que pour toutnpair, il y a un choix deW, desvi et des wi tel qu’il y a au moins 2n/2 solutions optimales.

1

(2)

Algorithmique - Semestre d’Automne 2011/2012

4. La suite de Fibonacci

Le but de cet exercice est de d´evelopper un algorithme rapide pour calculer la suite de Fibonacci en utilisant des techniques vues dans le cours et aux exercises.

Rappel: La suite de Fibonacci est d´efinie par la r´ecursion suivante:

F1 = 1, F2= 1, Fn =Fn−1+Fn−2 ∀n≥2.

a) Consid´erer l’algorithme standard pour calculer la suite de Fibonacci:

Call: Fib(n)

Input: n: L’indice de l’´el´ement de la suite `a calculer.

Output: La valeur deFn. a1 ←1

a2 ←1

whilen≥3 do a3←a2+a1

a1←a2

a2←a3

n←n−1 return a2

Calculer l’ordre du temps de parcours de cet algorithme (en fonction de n) en supposant que l’addition de deux nombres `aN bits se fait enO(N). (Indication: Utiliser directement le fait que Fn≈ϕn.)

b) Consid´erer la suite vectorielle suivante:

~a0=

1

1

, ~an=

0 1

1 1

~an−1 ∀n≥1.

(i) Montrer que pour tout n∈N, on a

~an=

Fn+1

Fn+2

.

(ii) Donner une formule ferm´ee pour la suite (~an).

c) En utilisant la suite vectorielle ci-dessus en combinaison avec des algorithmes rapides pour calculer des puissances de nombres d´eduire un algorithme rapide pour calculer un ´el´ement de la suite de Fibonacci. Calculer l’ordre du temps de parcours de cet algorithme (en fonc- tion den) en supposant qu’une multiplication d’un nombre deN bits couteO(Nlog(N)).

d) Est-il possible de trouver un algorithme qui calcule la suite de Fibonacci eno(n)? Justifiez votre r´eponse.

2

Références

Documents relatifs

b) Modifier l’algorithme de Dijkstra pour qu’il fournisse pour chaque sommet v le plus court chemin du sommet de d´epart s ` a v et l’ensemble des sommets qui font partie de

a) Si on augmente le poids de chaque arˆete de G par une constante c, est-ce que l’arbre T reste minimal? Justifiez votre r´eponse.. b) Si on diminue le poids de l’une des arˆetes de

, k m litt´eraux, determiner si cette formule est satisfaisable (C’est le probl`eme SAT). Quelle est la taille de l’input pour ce probl`eme ?. e) Montrer que ce probl`eme est

L’output attendu est donc un nombre naturel (et pour tout nombre naturel x il existe un input pour lequel x est l’output), l’ensemble des outputs possibles est donc l’ensemble de

Soit x le nombre de 1’s au dessus de la diagonale et y le nombre de 1’s en dessous de la diagonale (donc x + y = nd). Or si n et d sont impairs alors nd sera aussi impair. On en

b) Supposons que nous avons un graphe avec deux c´el´ebrit´es (que nous appelons les sommets i et j). j ne peut donc pas ˆetre une c´el´ebrit´e et nous avons une contradiction.

Nous le comparons ` a a[2] (4), il est plus petit, donc nous continuons, nous le comparons ` a a[0] (2), il est encore plus petit et nous savons donc qu’il doit ˆetre le

Et on divise notre suite en deux sous-suites: la premi`ere consiste en tous les ´el´ements ` a gauche du pivot (ils sont tous plus petits que lui par construction), et la