Devoir maison d’algorithmique
L3 Informatique – ENS Cachan
Thomas Chatain
`a rendre au plus tard le 2 novembre 2015
Premi`ere partie
On consid`ere le tri d’ensembles de mots du type des mots de langue naturelle :
les mots n’ont pas tous la mˆeme longueur et on consid`ere l’ordre alphab´etique,
comme dans le dictionnaire. Cependant un mot est ici n’importe quelle suite
finie de lettres, les lettres ´etant choisies dans l’alphabet {a,...,z}. Un mot M
est repr´esene sous forme d’un tableau de lettres. On acc`ede en tant constant `a
la taille |M|du mot et `a la ielettre M[i].
Question 1
D´efinir formellement l’ordre alphab´etique, puis ´ecrire un algorithme it´eratif
et un algorithme r´ecursif qui comparent deux mots et retournent <,>ou =.
Prouver leur terminaison et leur correction (preuves de Hoare). Donner leur
complexit´e en temps et en espace.
Question 2
Quelle est la complexit´e en temps d’une proc´edure de tri fusion d’un ta-
bleau de nmots qui utilise l’une des fonctions de comparaison de la question
pr´ec´edente ? On suppose que les acc`es au tableau se font en temps constant,
ainsi que les op´erations arithm´etiques sur les entiers (pour manipuler les indices
des tableaux).
Question 3
On suppose dans cette question que tous les mots ont au moins deux lettres.
De plus, dans un dictionnaire fran¸cais ou dans un texte en fran¸cais, les mots
commen¸cant par la lettre aou csont beaucoup plus fr´equents que les mots
commen¸cant par kou w.
Donner un minorant du nombre de comparaisons de lettres effectu´ees en
moyenne par l’un des algorithmes de la question 1 lorsqu’il est appliqu´e sur
deux mots tir´es al´eatoirement et de mani`ere ind´ependante, sachant que chaque
choix retourne avec probabilit´e paun mot commen¸cant par la lettre a, avec
probabilit´e pbun mot commen¸cant par la lettre b. . .
1
Question 4
On tente une nouvelle proc´edure pour trier un tableau de nmots. Donner un
algorithme qui permute ce tableau de telle sorte que tous les mots commen¸cant
par la lettre ase retrouvent plac´es en tˆete (mais pas forc´ement dans l’ordre),
suivis par tous les mots commen¸cant par b, puis tous les mots commen¸cant
par c. . . L’algorithme doit avoir une complexit´e en temps lin´eaire en net doit
travailler en place.
Question 5
En r´ep´etant le principe de l’algorithme de la question pr´ec´edente, proposer
un algorithme pour trier un tableau de mots. Quelle est sa complexit´e en temps
et en espace ?
Discuter l’efficacit´e de cet algorithme en comparasion avec celui de la ques-
tion 2.
Peut-on utiliser cet algorithme pour trier un tableau d’entiers machine coes
chacun sur 32 bits ? Qu’en pensez-vous ?
Deuxi`eme partie
Question 6
On consid`ere une matrice `a mlignes et ncolonnes `a coefficients entiers. Le jeu
consiste `a se d´eplacer depuis la case en haut `a gauche vers la case en bas `a droite.
`
A chaque pas, on ne peut aller que vers la droite ou vers le bas. `
A l’arriv´ee, on
remporte un nombre de points ´egal `a la somme des coefficients des cases visit´ees,
plus un point par changement de direction. Proposer un algorithme efficace pour
calculer le meilleur chemin et le nombre de points qu’il rapporte.
Question 7
On s’attend `a ce qu’une case change de valeur. On souhaite quand mˆeme
faire le calcul avec les valeurs initiales, mais pouvoir recalculer rapidement le
nombre de points apr`es la modification. Proposer
une adaptation de l’algorithme pr´ec´edent pour qu’il conserve des infor-
mations utiles, et
un algorithme qui prend en entr´ee la matrice initiale, les coordonn´ees de
la case modifi´ee, sa nouvelle valeur et les informations conserv´ees apr`es
le premier calcul, et recalcule le nombre de points en temps O(d2) si la
case modifi´ee est `a moins de dpas du d´epart ou de l’arriv´ee.
Question 8
On souhaite faire un voyage en voiture. Le r´eservoir plein nous permet de
parcourir exactement nkilom`etres. Les stations-service sur la route se trouvent
aux positions a1, a2, . . . , ak, avec 0 ai+1 ainet a1= 0. Montrer comment
minimiser le nombre d’arrˆets. D´emontrer la correction de votre algorithme.
2
1 / 2 100%
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 !