Vous êtes sur la page 1sur 2

UHBC - Dept d'informatique 2010/2011

Master Ingénierie des Logiciels


Algorithmique Avancée et Complexité Durée:1h30'
_________________________________________________________
Examen

Exercice 1 : (5 pts)
1. Écrire un algorithme de type diviser-pour-régner qui résout ce problème.
2. Analyser sa complexité.
3. Comparer-la avec celle de l’algorithme naïf pour le calcul du nombre d'occurrences.

Exercice 2: (4 pts)
Considérez l’arbre de jeu suivant. La racine est un noeud max.

1. Appliquez l’algorithme minimax sur cet arbre.


2. Appliquez l’algorithme α-β sur cet arbre en le parcourant de gauche à droite.

Exercice 3 : (5 pts)
Soit le graphe suivant, la valeur portée sur chaque arc correspond au coût de passage d'une extrémité de l'arc à
l'autre. On souhaite calculer le plus court chemin de A à J.

On a de plus la fonction heuristique h qui estime le coût pour atteindre J depuis chaque sommet. h est donnée par
le tableau ci dessous.

Question : Appliquez l'algorithme A* avec la fonction h sur ce graphe (précisez à chaque étape de l'algorithme le
contenu de la liste Ouvert et la liste Fermé).
Exercice 4 : Le sac à dos du cambrioleur (6 pts)
Un voleur dévalisant un magasin trouve n objets. L’objet numéro i vaut v[i ] Dinars et pèse w[i ] kg. Le voleur
veut que son butin ait la plus grande valeur (en Dinars) possible mais ne peut pas emporter plus de W kg dans son
sac à dos.
1. Le résultat est-il optimal en choisissant l’objet le plus cher parmi ceux qui peuvent tenir dans le sac, puis le plus
cher parmi ceux qui peuvent encore tenir . . . Expliquez par un exemple.
2. Écrivez un algorithme glouton qui résout ce problème.

Vous aimerez peut-être aussi