INF4705 Final1 H2009 QS
INF4705 Final1 H2009 QS
INF4705 Final1 H2009 QS
Réponse: En démontrant qu’un problème est N P complet, il établit que ce problème est
aussi difficile que tout un ensemble de problèmes déjà très étudiés et réputés difficiles.
Cela sert à justifier son incapacité à concevoir un algorithme exact efficace (polyno-
mial) pour ce problème et motive l’utilisation d’approches heuristiques, approximatives,
pseudo-polynomiales ou même probabilistes.
Réponse:
Démarrer avec une certaine solution s = he1 , . . . , en i ;
tant que ∃ c ∈ {1, . . . , n}, e ∈ {1, . . . , m} \ {ec }
tels que f (he1 , . . . , ec−1 , e, ec+1 , . . . , en i) < f (s) faire
s ← he1 , . . . , ec−1 , e, ec+1 , . . . , en i ;
retourner s ;
c) [2 points] Si vous utilisez simplement cette méthode de descente, vous atteindrez un mi-
nimum local. Décrivez deux stratégies employées par les métaheuristiques pour tenter
d’échapper à un minimum local.
Réponse:
recherche avec tabou : on se déplace toujours vers le meilleur voisin (même s’il est
plus mauvais) mais on interdit le retour à une solution déjà visitée pendant un certain
nombre d’itérations.
recuit simulé : on choisit un voisin au hasard et on se déplace vers lui même s’il dégrade
la qualité de la solution (mais avec une faible probabilité).
recherche à voisinage variable : plusieurs types de voisinages sont utilisés ; lorsqu’on
atteint un minimum local dans un, on passe à un autre voisinage.
X
j
sij = M − j + i − ℓh .
h=i
Si les mots i à j ne tiennent pas sur la ligne, sij sera négatif : convenons plutôt que dans ce
cas sij = ∞. On souhaite minimiser la somme, sur toutes les lignes, des carrés des nombres
de caractères d’espacement supplémentaires à la fin de chaque ligne. Par exemple, si le
texte tient sur 3 lignes et que les nombres de caractères d’espacement supplémentaires pour
chacune des lignes sont 2, 4 et 1, la somme des carrés sera 22 + 42 + 12 = 21. Définissons un
tableau E de dimension n × n dont une entrée E[j, k] représente la plus petite somme des
carrés des nombres de caractères d’espacement supplémentaires pour imprimer les j premiers
mots sur k lignes.
a) [1 point] Donnez une formule pour calculer E[j, k] à partir d’autres cases du tableau.
(Indice : utilisez sij .)
Réponse: C’est la première valeur qui ne soit pas l’infini sur la dernière ligne du
tableau, en partant de la gauche. (Ou encore, la plus petite valeur de la dernière ligne.)
c) [1 point] Donnez le temps d’exécution de votre algorithme en notation asymptotique.
Réponse: Θ(n3 )
Nous placerons ses sommets aux points d’intersection d’une grille (comme celle dans votre
cahier d’examen). Nous cherchons à produire une représentation étagée selon la profondeur
des sommets, ce qui déterminera la coordonnée en y de ceux-ci : la racine A sur la première
ligne, ses enfants B et C sur la deuxième ligne, leurs enfants D, E et F sur la troisième,
etc. Nous voulons aussi que les arêtes du dessin ne s’intersectent pas : il suffit pour cela de
s’assurer que si un sommet u est placé à la gauche d’un sommet v sur la même ligne, alors
les enfants de u sont aussi placés à la gauche des enfants de v.
a) [2 points] Voici une façon facile d’obtenir un tel dessin. Dessinez l’arbre précédent sur
une grille en utilisant comme coordonnée en x le rang de chaque sommet dans un
parcours en-ordre. (Je rappelle que la coordonnée en y correspondra à la profondeur
du sommet dans l’arbre.)
Réponse:
b) [3 points] Le résultat de (a) n’est pas très esthétique. Tout en conservant une représentation
étagée sur une grille sans croisement d’arêtes, donnez un algorithme diviser-pour-régner
qui produira un dessin de l’arbre de plus petite largeur que celui obtenu en (a) et sur-
tout où chaque parent est centré (en x) par rapport à ses deux enfants (lorsqu’il en a
deux). Dessinez votre résultat pour l’arbre donné.
Réponse:
INF4705 Analyse et conception d’algorithme, Corrigé du final différé, Hiver 2009 5 de 5
c) [2 points] Faites l’analyse en pire cas du temps de calcul pris par votre algorithme.
Refaites cette analyse sous l’hypothèse qu’on vous donne un arbre binaire complet (et
donc équilibré).