You are on page 1of 2
Sup Galilee INFOL Algorithmique 20 novembre 2020, Durée ; 2 heures Notes de cours et de TD autorisées. Téléphones portables éteints et rangés. Exercice 1 Multiplication de polynomes On souhaite calculer le produit de deux polyndmes P et Q de méme degeé n = 2° — 1 (k entier naturel) et & coefficients entiers. 1, Lorsque P et Q sont de degré supérieur ou égal A 1 on pose m = 24? et on décide a’gerire P(X) = X™P, + Po ct Q(X) = XQ: + Qo, 0d Po, Pry Qo et Qs sont de degrés inférieurs ou égaux & m — 1. Verifier que PQ = X7"P,Qy + X™(Pi + Po)(Qi + Qo) — PiQa — PoQo) + PoQo. 2. A Paide de In formule précédente, écrire une fonction récursive Mult (P,Q,K) qui calcule le produit PQ de deux polyndmes de meme degré n = 2* — 1 (semblable A celle de Karatsuba vue en cours pour multiplier deux entiers). Justifier que sa complexité est la méme que celle de 'algorithme de Karatsuba. 3. Appliquer cette fonction pour calculer le produit de P(X) = —X944X? 42X41 par Q(X) = 3X3 — 2X? — X. On tracera larbre des appels en y indiquant les polynémes calculés (indice : 'arbre aura neuf feuilles et une hauteur égale a deux), Exercice 2 Programmation dynamique Une entreprise expédie a ses clients des aliments. Les commandes arrivent suffisamment A Yavance pour qu'il soit possible de planifier le poids total a expédier chaque semaine tion, Tentreprise a Je choix entre deux transporteurs. Le premier A, fait payer un prix proportionnel au poids (1 euro par kilogramme). Le deuxiéme, B, fait payer un prix fixe (10 euros par semaine) mais n’accepte que des contrats de 4 semaines exactement (renouvelables). Le transporteur choisi pour une semaine prend en charge tous [es envois de cette demiere. 1. On note C(n) te cofit minimal des envois pour les semaines 1 An. On note C(n) (respectivement Cp(n)) le coat minimal des envois pour les semaines 1 an en supposant que la semaine n soit la fin d'un contrat avec le transporteur A (respec tivement la fin d'un contrat avec le transporteur B). Exprimer a(n) puis Ca(n) en fonction de C(n ~ 1) et C(n—4), en posant O(n) = 0 sin <0. 2. En déduire une définition récursive de C(n), et donner V'algorithme récursif corres- Pondant & cette définition. Montrer que sa complexité est. au moins exponentielle, 3. En utilisant une approche par programmation dynamique, donner un algorithme polynomial (le justifier) pour calculer le coat, minimal, Appliquer cet algorithme sur instance p = (11,9, 9, 12, 12, 12, 11, 13, 10,8, 12,9), od py est le poids des aliments 4 expédier A la semaine 4 (i variant ici de 1 & 12). de t HP). 9 ee + yk Sy! SK ~~. ‘Scanné avec CamScanner Exercice 3 Complexité d'un algorithme Soit l'algorithme ci-dessous qui calcule le minimum d'un tableau 7’ non trié, de lon- gueur m et dont les éléments sont des entiers, tous distincts, compris entre 1 et n (avec n>m). Algorithme 1 Minimum(T : tableau d’entiers, m+ entier) : min & Til] Pour tout ide 2am faire si Tl] < min alors min © Tlil; finsi fin pour Retourner(rmin) 1. Exprimer la taille des données en fonction de n et m. 2. Donner les complexités au meilleur cas et au pire cas de l'algorithme en considérant comme opérations élémentaires les tests et les affectations, puis uniquement les affectations 3. On ne comptabilise & présent comme opérations élémentaires que les affectations (pas les tests) et on suppose que n'importe quel ordonnancement des entiers a la méme probabilité de survenir. Calculer la complexité moyenne de cet algorithme. Scanné avec CamScanner

You might also like