TD 6 : diviser pour régner (suite) Licence 3 Info et Math/Info
TD 6
Sous-tableau de somme maximale
Une compagnie minière veut exploiter un terrain divisé en blocs. On supposera pour
simplifier que le terrain est linéaire. Des analyses du sol ont permis de calculer exactement le
profit pouvant être réalisé par blocs. Le profit peut être positif ou négatif, un profit négatif
correspondant à une perte. Pour des raisons écologiques, la compagnie n’est autorisée qu’à
exploiter un ensemble de parcelles contiguës. Elle voudrait choisir un ensemble de blocs
contigus qui maximise son profit.
Cette situation se modélise par le problème du sous-tableau de somme maximale dans un
tableau d’entiers :
Recherche du sous-tableau de somme maximale
Entrée : Un tableau Tde nentiers de Z.
Sortie : Deux indices 0ij < n tels que Pk=j
k=iT[k]est maximale.
Par exemple, si T= [2,1,3,4,1,2,1,5,4], alors le sous-tableau qui maximise la
somme est 4,1,2,1et la somme est 6.
Exercice 1 Donner un algorithme brute-force (qui teste toutes les possibilités) pour ce
problème, dont le temps d’exécution asymptotique est θ(n3)(rappel : Pn
i=0 i2=n3
3+n2
2+n
6).
Exercice 2 Donner un algorithme de temps d’exécution asymptotique θ(n2), en vous basant
sur l’algorithme brute-force précédent : identifier les calculs redondants faits par l’algorithme
brute-force et trouver un moyen de ne pas les refaire.
Exercice 3 Donner une solution diviser-pour-régner en θ(n.log2n)pour ce problème.
Exercice 4 Donner un algorithme dans le cas bi-dimensionnel.
1
1 / 1 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 !