Question 1 : Pot pourri [4 points] Question 2 : Complexité (5 points

INF4705 Analyse et conception d’algorithme, Examen final, Automne 2007 1
Question 1 : Pot pourri [4 points]
Chaque r´eponse ne devrait prendre qu’une phrase ou deux.
a) [1 point] Quelle est la diff´erence essentielle entre les algorithmes voraces (gloutons) et
les algorithmes de fouille `a retour arri`ere (“backtracking”) ?
b) [1 point] Quelle est la diff´erence essentielle entre les algorithmes diviser-pour-r´egner et
les algorithmes de programmation dynamique ?
c) [1 point] Quelle est la diff´erence essentielle entre les algorithmes heuristiques et les
algorithmes approximatifs ?
d) [1 point] Quelle est la diff´erence essentielle entre les algorithmes d´eterministes et les
algorithmes probabilistes ?
Question 2 : Complexit´e (5 points)
a) [2 points] Expliquez la diff´erence entre les classes Pet N P.
b) [1 point] Qu’entend-on par “probl`eme N P-complet” ?
c) [2 points] Nommez trois (3) probl`emes N P-complets.
Question 3 : Programmation dynamique [6 points]
Faire de la monnaie. Rappelons ce probl`eme, que nous avons d´ej`a abord´e en classe : ´etant
donn´e ntypes de pi`eces de monnaie de valeur d1,...,dn, il s’agit de minimiser le nombre de
pi`eces utilis´ees pour totaliser un montant donn´e N.
Vous devez concevoir, analyser et appliquer un algorithme de programmation dynamique
pour celui-ci.
a) [2 points] efinissez d’abord un tableau pour votre algorithme et posez une r´ecurrence
pour calculer les valeurs aux cases de ce tableau.
b) [2 points] Appliquez votre algorithme `a l’exemplaire suivant et donnez le nombre mi-
nimum de pi`eces requises dans la solution : d1= 2, d2= 5, d3= 6, N = 10
c) [1 point] Expliquez comment retrouver les pi`eces de monnaie qui sont utilis´ees dans la
solution et donnez-les.
d) [1 point] Donnez le temps d’ex´ecution de votre algorithme en notation asymptotique.
Question 4 : Algorithmes de recherche locale (6 points)
Le probl`eme de tourn´ees de v´ehicules consiste `a r´epartir nclients parmi mehicules et
`a d´eterminer dans quel ordre chaque client sera visit´e par le v´ehicule d´esign´e, dans le but
de minimiser la somme des distances parcourues par les v´ehicules. Nous avons `a la fois un
probl`eme de partitionnement des clients en msous-ensembles (pour chacun des v´ehicules)
et un probl`eme de s´equencement des clients (voyageur de commerce) dans chacun de ces
sous-ensembles.
INF4705 Analyse et conception d’algorithme, Examen final, Automne 2007 2
On vous confie la tˆache de concevoir un algorithme m´etaheuristique bas´e sur les trajec-
toires, en particulier la recherche `a voisinage variable.
a) [2 points] Expliquez le fonctionnement de ce type d’algorithme.
c) [2 points] efinissez deux voisinages appropri´es pour votre algorithme.
d) [2 points] Quelle est la taille de chacun de ces voisinages, en notation asymptotique ?
Question 5 : Algorithmes approximatifs [4 points]
a) [1 point] Donnez la garantie sur la valeur Vd’une solution retourn´ee par un algorithme
approximatif c-absolu pour un probl`eme de maximisation ´etant donn´e que la valeur
d’une solution optimale est V.
b) [2 points] Le probl`eme de recouvrement minimum d’un graphe G= (N, A) par des
sommets consiste `a d´eterminer un plus petit sous-ensemble Cde Ntel que chaque
arˆete (u, v)Aa au moins un de uou vdans C(i.e. (u, v) est recouverte par C). Par
exemple {a, d}est un recouvrement minimum pour le graphe
({a, b, c, d, e},{(a, b),(a, d),(a, e),(b, d),(c, d)}).
Donnez et justifiez un algorithme approximatif ǫ-relatif pour le probl`eme de recouvre-
ment minimum si on vous donne un algorithme pour produire un couplage maximal
M(c’est-`a-dire auquel on ne peut plus ajouter d’arˆete).
c) [1 point] Quelle est la valeur de ǫpour votre algorithme ? Justifiez.
Question 6 : Algorithmes probabilistes [5 points]
Afin de r´esoudre un probl`eme de d´ecision, vous avez sous la main :
(A) un algorithme Monte Carlo 1
2-correct biais´e pour la r´eponse “oui” et qui prend 2 se-
condes `a chaque ex´ecution ;
(B) un algorithme Monte Carlo 3
4-correct biais´e pour la r´eponse “non” et qui prend 3
secondes `a chaque ex´ecution ;
a)[2 points] On vous demande de concevoir un algorithme Monte Carlo qui soit au moins
9
10 -correct et le plus rapide possible. Que proposez-vous et combien de temps prendra
votre algorithme ?
b)[2 points] En utilisant les algorithmes A et B au plus une fois chacun, concevez un
algorithme Las Vegas et donnez sa probabilit´e de succ`es.
c)[1 point] Quel est son temps d’ex´ecution esp´er´e pour un exemplaire auquel on devrait
r´epondre “oui” ?
INF4705 Analyse et conception d’algorithme, Examen final, Automne 2007 3
Question 7 : Algorithmes diviser-pour-r´egner [5 points]
Soit Tun tableau de nentiers distincts et possiblement n´egatifs, tri´es en ordre croissant.
1. [2 points] Concevez un algorithme diviser-pour-r´egner efficace pouvant d´eterminer
un index i(1 in) tel que T[i] = i, `a condition qu’il existe.
2. [1 point] Analysez la consommation en temps de calcul de votre algorithme.
3. [2 points] Justifiez son bon fonctionnement.
1 / 3 100%

Question 1 : Pot pourri [4 points] Question 2 : Complexité (5 points

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 !