Académique Documents
Professionnel Documents
Culture Documents
Exercice 2
Vous vous trouvez devant un paysan devant se rendre en ville pour vendre. Ce paysan dispose d‟un
ensemble de marchandises qu‟il aimerait emporter avec lui afin de vendre et résoudre ses problèmes.
Chaque marchandise a un poids et a une valeur. Sachant que ce paysan ne peut pas transporter avec lui
plus d‟un certain poids (25Kg par exemple), il aimerait également avoir le plus grand gain possible.
(a) Transformer le problème de ce paysan en un problème algorithmique connu et donner sa définition
formelle.
(b) Donner deux versions de ce problème, et décrire chacune d‟elles.
(c) Pour chacune des versions (question précédentes), donner un algorithme glouton pour la résoudre.
Exercice 3
Dans un gymnase doivent se dérouler une série d‟épreuves. Les épreuves ne sont pas seulement
caractérisées par leurs durées : chaque épreuve est caractérisée par une date de début di et une date de
fin fi. On souhaite “caser” le plus possible d‟épreuves, deux épreuves ne pouvant avoir lieu en même
temps (leurs intervalles de temps doivent être disjoints).
Glouton 1. On trie les épreuves par durée croissante, on choisit la plus courte, puis la plus courte parmi
celles qui lui sont compatibles, puis . . . Ce choix mène-t-il au déroulement d‟un nombre d‟épreuves
maximal ?
Glouton 2. On trie les événements par dates de commencement croissantes et on gloutonne : on choisit
l‟événement commençant le plus tôt, puis le plus tôt parmi les événements compatibles. Ce choix
mène-t-il au déroulement d‟un nombre d‟épreuves maximal ?
Glouton 3. On trie cette fois les événements par nombre d‟intersections croissant : on choisit d‟abord
celui qui intersecte le moins d‟événements, puis. . . Ce choix mène-t-il au déroulement d‟un nombre
d‟épreuves maximal ?
Glouton 4. On trie les événements par dates de fin croissantes et on gloutonne : on choisit l‟épreuve se
terminant au plus tôt, puis l‟épreuve se terminant au plus tôt parmi celles qui sont compatibles à la
première. . . Ce choix mène-t-il au déroulement d‟un nombre d‟épreuves maximal ?
Exercice 5
Étant donné un ensemble de n nombres, répartissez les en 2 sous-ensembles tels que la somme des
éléments du premier soit égal à la somme des éléments du second.
1. Proposez des algorithmes gloutons pour résoudre ce problème.
2. Appliquez les aux ensembles suivants : {2; 10; 3; 8; 5; 7; 9; 5; 3; 2} et {771; 121; 281; 854;
885; 734; 486; 1003; 83; 62}
1. Pour le codage à longueur à fixe, l‟arbre ne peut pas être construit. Il suffit de trouver une
configuration binaire pour chaque caractère. Ecrire un algorithme qui prend en entrée une
chaine de caractères et met en sortie le codage (Huffman) des caractères de cette chaine. Quels
sont les codes des caractères de CH ?
2. Pour le codage à longueur variable, il faut construire l‟arbre de Huffman par une technique
gloutonne.
a. Ecrire une procédure qui prend en entrée une chaine de caractères, et construit l‟arbre de
Huffman pour le codage de ses caractères. Appliquer cet algorithme pour construire
l‟arbre de codage de la chaine CH.
NB : utiliser les opérations écrites pour la file de priorité
b. Ecrire une procédure qui prend en entrée un arbre de Huffman, et affiche le code de
chaque caractère. Donner le code de chaque caractère de CH.
c. Donner la formule permettant de calculer la taille de l‟espace occupé par le code de
Huffman d‟une chaine de caractères
d. Le codage de Huffman est préfixe, écrire l‟algorithme qui permet faire l‟inverse du codage
(à partir du code binaire de Huffman de la chaine et du code de chaque caractère)
Comparer les deux approches (à longueur fixe et à longueur variable) en temps de construction du
code et en espace mémoire.