[PDF] Complexité Corrigé 12 mars 2012 Comme la





Previous PDF Next PDF



Complexité Corrigé

12 mars 2012 Comme la boucle s'exécute n fois le temps d'exécution du programme est alors en Θ(n). 2 Correction de l'exercice 1.2. Le programme étudié est ...



Exercice 1 : Complexité des algorithmes (8 points) DIU Enseigner l

4 juil. 2019 Déterminer ensuite par la méthode du Master Theorem



TD1.1 Analyse dalgorithmes calculs de coûts TD1.1 Analyse dalgorithmes calculs de coûts

comparer des algorithmes selon leur complexité; évaluer la qualité d'un algorithme selon sa complexité. Exercice 1 : Itérations emboîtées (30 min). Compter 



TD : Complexité des algorithmes

Quelles conséquences peut-on en tirer ? Page 2. PROPOSITION DE CORRIGE. Durée Exercice 2 Revoir poly transparents 33



SUJET + CORRIGE SUJET + CORRIGE

Exercice 2 : Algorithmes de rang. (14 points). Le probl`eme de la sélection complexité en O(n × (n − r)). Ainsi la complexité dans le pire des cas est en ...



Algorithmes et structures de données : TD 5 Corrigé

Exercice 5.1 Temps d'un algorithme T(n). Pour chacun des fonctions Ti(n) Déterminer la complexité asymptotique des deux algorithmes dans la notation Grand-O.



Travaux Dirigés Algorithmique no3 - Complexité fonctions usuelles

Pour montrer qu'un algorithme est correct on écrit une propriété P qui est conservée à chaque étape de boucle que l'on appelle invariant de boucle. Exercice 1.



TD 01 – Introduction à lalgorithmique (corrigé)

Exercice 1. Grand Saut Nous allons montrer que la complexité exacte est 3n − ⌊log n⌋ − 3 en exhibant un algorithme ayant cette complexité ainsi qu'en.



TD dalgorithmique avancée Corrigé du TD 2 : récursivité

5. Qu'elle est la complexité (en nombre d'additions) de cet algorithme? La complexité de l'algorithme Fib-Paire en 



Algorithme correction

https://pnp.mathematik.uni-stuttgart.de/igt/eiserm/enseignement/mae/mae-chap08.pdf



Complexité Corrigé

12 mars 2012 Comme la boucle s'exécute n fois le temps d'exécution du programme est alors en ?(n). 2 Correction de l'exercice 1.2. Le programme étudié est ...



TD : Complexité des algorithmes

Conclure en donnant la complexité temporelle pour chaque algorithme PROPOSITION DE CORRIGE ... Exercice 2 Revoir poly transparents 33



SUJET + CORRIGE

Dans cet exercice nous allons adapter des algorithmes de tri vus Rappel : La complexité



TD1.1 Analyse dalgorithmes calculs de coûts

évaluer la qualité d'un algorithme selon sa complexité. Exercice 1 : Itérations emboîtées (30 min). Compter le nombre d'opérations Schtroumpfer exécutées 



Algorithmes et structures de données : TD 5 Corrigé

Exercice 5.1 Temps d'un algorithme T(n). Pour chacun des fonctions Ti(n) suivant déterminer sa complexité asymptotique dans la.



Algorithmique I - Cours et Travaux Dirigés L3 Ecole Normale

Quelle est la complexité de l'algorithme ? 21. Page 22. Exercice 2.6.2. Plus grand et deuxi`eme plus grand de 



Calculs de complexité dalgorithmes

?Complexité des algorithmes ?Un algorithme à partir d'une donnée établit un résultat . ... Exercice. ?Chaque jour pour mon goûter



Algorithmique et complexité de calcul

Exercice : Faire la trace pour l'exemplaire (1753). Modifier cet algorithme pour avoir une seule boucle et en utilisant seulement des variables scalaires. Page 



Algorithme correction

https://pnp.mathematik.uni-stuttgart.de/igt/eiserm/enseignement/mae/mae-chap08.pdf



TD 01 – Introduction à lalgorithmique (corrigé)

TD 01 – Introduction à l'algorithmique (corrigé). Exercice 1. Grand Saut La complexité en O(log2(n)) qui est indiquée nous aiguille vers une dichotomie.



Exercice 1 : Complexité des algorithmes (8 points)

Exercice 1 : Complexité des algorithmes (8 points) Question 1 1: On considère le code suivant comportant deux « tant que » imbriqués On cherche à mesurer la complexité de cette imbrication en fonction de n Pour cela on utilise la variable compteur qui est incrémentée à chaque passage dans le « tant que » interne def procedure(n) :



Travaux Pratiques Méthodes Numériques

Exercice 1 : Complexité des algorithmes On considère la fonction suivante réalisant la fusion de deux listes triées passées en paramètres La fonction retourne la liste fusionnée elle-même triée def fusion(liste1liste2) : 1 i1i2 = 00 2 resultat = [] 3 while i1 < len(liste1) and i2 < len(liste2) : 4 if liste1[i1] < liste2[i2] :



TD : Complexité des algorithmes - LIMSI

PROPOSITION DE CORRIGE Durée prévue : une séance Exercice 1 a) tableau à deux dimensions algo : somme := 0 pour cptL := 1 à n faire {pour chaque ligne} pour cptC := 1 à n faire {pour chaque colonne} somme := somme + tab[cptL cptC] 1 complexité spatiale : n * n 2 complexité temporelle : n* n sommes b) tableau à une dimension



TD11 Analyse d'algorithmes calculs de coûts - GitLab

comparer des algorithmes selon leur complexité; évaluer la qualité d'un algorithme selon sa complexité Exercice 1 : Itérations emboîtées (30 min) Compter le nombre d'opérations Schtroumpfer exécutées par chacun des algorithmes suivants 1 (1) pour i = 1 à n faire (2) pour j = 1 à n faire (3) Schtroumpfer() 2 (1) pour i = 1 à n faire



Complexité Corrigé

3 Correction de l’exercice 1 3 Cet exercice ressemble beaucoup à l’exercice 1 2 avec une di?érence fondamentale dans la boucle interne En e?et dans l’exercice 1 2 la boucle interne réalise un nombre constant d’opé-rationsalorsquedansleprésentexercicelenombred’opérationsdépenddescaractéristiquesdes

Quelle est la complexité des algorithmes?

Nous les présentons dans l’ordre de complexité croissante des algorithmes. Dans le cas de la méthode de dichotomie, la seule information utilisée est le signe de la fonction f aux extrémités de sous-intervalles, tandis que pour les autres algorithmes on prend aussi en compte les valeurs de la fonction et/ou de ses dérivées. I.2.

Quelle est l’existence d’un algorithme de résolution de complexité polynomiale?

La question de l’existence d’un algorithme de résolution de complexité polynomiale nous amène à définir des classes de complexité : intuitivement on aimerait avoir une classe des programmes que l’on peut résoudre en temps polynomial, une classe de problème plus compliqués, et un moyen de déterminer à quelle classe appartient un problème.

Quelle est la théorie de la complexité?

La théorie de la complexité a commencé en adaptant les méthodes de la calculabilité au cas du temps de calcul borné. Par exemple, on retrouve de nombreux ingrédients issus de la calculabilité dans la démonstration du théorème 3-AK de Ladner datant de 1975.

Qu'est-ce que la classe de complexité P?

Définition 14 (Classe de complexité P).La classe de complexité P est l’ensemble des problèmes concrets de décision qui sont résolubles en temps polynomial. Pour quoi s’embêter avec des codages plutôt que de définir directement la complexité d’un problème abstrait?

Complexité

Corrigé

Fabrice Rossi

12 mars 2012

1 Correction de l"exercice 1.1

On considère donc le programme suivant :1i = 0

2j = 0

3while(i < n) {

4if( i % 2 == 0) {

5j = j + 1

6} else {

7j = j / 2

9i = i + 1

10} Le programme est constitué d"une phase d"initialisation (lignes 1 et 2), puis d"une boucle. On

détermine d"abord le nombre d"exécution de la boucle. On remarque que la boucle s"exécute à

chaque fois quei < n. Or,iest initialisé à 0 (ligne 1) et chaque exécution (tour) de la boucle

incrémenteide 1 (ligne 9). La boucle s"exécute donc pour les valeurs dei0, 1, etc. jusqu"àn-1,

soit doncnfois. On constate ensuite que le corps de la boucle (lignes 4 à 9), contient un nombre d"instruction qui ne dépend ni de la valeur deini de celle dej. En effet, les deux lignes 5 et 7 contiennent chacune deux instructions (un calcul et une affectation). Les autres lignes (4 et 9) sont toujours exécutées. De ce fait, le temps d"exécution du corps de la boucle est donc un(1). Comme la boucle s"exécutenfois, le temps d"exécution du programme est alors en(n).

2 Correction de l"exercice 1.2

Le programme étudié est le suivant :1x = 0

2for(int i = 1 ; i < tab.length-1 ; i++) {

3for(int j = 0 ; j < 3 ; j++) {

4x = x + tab[i - 1 + j] * (j+1)

L"analyse commence comme toujours par la boucle la plus interne, ici celle de lignes 3 à 5. La

quantité d"opérations réalisé dans un tour de la boucle (ligne 4 essentiellement) ne dépend ni des

valeurs des variablesietj, ni de la taille du tableautab(ou de son contenu). On a en effet : - une affectationx=; - trois additions et une soustractionj+1,i-1+jetx+; - un accès à une case du tableautab; - une multiplication*(j+1); - une incrémentationi++; - une comparaisonj < 3. Globalement, un tour de cette boucle réalise donc(1)opérations. De plus, la boucle s"exécute exactement trois fois pourjprenant les valeurs 0, 1 et 2. Donc le nombre d"opérations réalisées par la boucle complète est un(1).

On constate ensuite que l"exécution complète de la boucle des lignes 3 à 5 constitue l"essentiel

de l"exécution d"un tour de la boucle des lignes 2 à 5 (la boucle externe). Un tour de cette boucle

prend donc(1)opérations. Enfin, cette boucle externe s"exécute pour les valeurs deiallant de

1 àtab.length-2, bornes incluses. On a donctab.length-2exécutions du corps de la boucle,

soit un nombre total d"opérations en(tab.length-2)(1), c"est-à-dire(tab.length).

3 Correction de l"exercice 1.3

Cet exercice ressemble beaucoup à l"exercice 1.2, avec une différence fondamentale dans la

boucle interne. En effet, dans l"exercice 1.2, la boucle interne réalise un nombre constant d"opé-

rations alors que dans le présent exercice, le nombre d"opérations dépend des caractéristiques des

données. Le programme est en effet le suivant :1x = 0

2for(int i = 0 ; i <= tab.length - filter.length ; i++) {

3for(int j = 0 ; j < filter.length ; j++) {

4x = x + tab[i + j] * filter[j]

Comme dans l"exercice précédent, une exécution de la boucle interne (lignes 3 à 5) réalise(1)opé-

rations. Mais cette boucle est exécutéefilter.lengthfois (pourjallant de 0 àfilter.length-1).

Donc le nombre d"opérations de la boucle interne complète est en(filter.length). La boucle externe (lignes 2 à 5) s"exécute elletab.length - filter.length+1fois. Si on note n=tab.lengthetp=filter.length, on a donc un coût total en(np)(p)et donc en ((np)p)(en s"appuyant sur le fait que le corps de la boucle externe consiste essentiellement en l"exécution complète de la boucle interne).

4 Correction de l"exercice 3.1

On étudie la recherche dichotomique dans un tableau trié :search

1search(x,tab) {

2if(tab.length == 0) {

3return -1

4} else if(tab.length == 1) {

5if(tab[0] == x) {

6return 0

7} else {

8return -1

10} else {

11pos = tab.length/2

12if(tab[pos] == x) {

13return pos

14} else if(tab[pos] < x) {

15subpos = search(x,tab[(pos + 1):(tab.length - 1)])

16if(subpos >= 0) {

17return subpos + pos + 1

18} else {

19return -1

20}

21} else {

22subpos = search(x,tab[0:(pos - 1)])

23if(subpos >= 0) {

24return subpos

25} else {

26return -1

27}
28}
29}

On noten=tab.lengthetT(n)le nombre d"opérations réalisé dans le cas le pire par un appel à

la fonctionsearchavec comme paramètre un tableau de longueurn. La fonction étant récursive, on cherche à établir une relation de récurrence surT(n).

4.1 Casn= 0

Ce cas est facile à traiter car il correspond simplement aux lignes 2 et 3 du programme. Ces lignes effectuent un nombre constant d"opérations (deux exactement, la comparaison et la transmission du résultat). On a donc

T(0) = (1):

4.2 Casn= 1

Ce cas est aussi assez facile à traiter. Il correspond au test de la ligne 2, puis aux lignes 4 à 9.

On constate que le nombre d"opérations réalisées est de nouveau constant car chaque cas du test

(lignes 6 et 7) conduisent au même travail, à savoir renvoyer une valeur numérique. On a donc de

nouveau

T(1) = (1):

4.3 Casn >1

C"est la partie délicate de l"analyse qui correspond aux lignes 11 à 28 (après avoir réalisé

les tests en ligne 2 et 4). On fait ici une analyse dans le cas le pire car le nombre d"opérations

réalisées dépend fortement de la position dexdans le tableau. En particulier, si cette position est

tab.length/2, on réalise un nombre constant d"opérations seulement. Mais ce n"est bien entendu pas le cas le pire qui correspond au deux autres situations. On traite d"abord le castab[pos] < x, soit les lignes 14 à 20. Le programme commence par construire le sous-tableautab[(pos + 1):(tab.length - 1)]. Notons pour l"instantV(p)

le nombre d"opérations nécessaires à la construction d"un sous-tableau de longueurp. Dans le cas

présent, le sous-tableau est de longueur(n1)(bn=2c+1)+1, oùbn=2cdésigne la partie entière

den=2. La longueur du sous-tableau est donc den bn=2c 1. L"appel àsearchengendre ainsi

un nombre d"opérations deT(n bn=2c 1). Après l"exécution de l"appel récursif, le programme

passe aux lignes 16 à 20, ce qui engendre(1)opérations dans le cas le pire (on est bien dans une

analyse dans le cas le pire puisqu"on a une ligne 17 qui engendre plus d"opérations que la ligne 19

du cas contraire). Finalement, le nombre d"opérations pour le castab[pos] < xest donc de

T(n bn=2c 1) +V(n bn=2c 1) + (1):

Le castab[pos] > xse traite de la même façon, mais en considérant le tableautab[0:(pos -

1)]de taillebn=2c, ce qui conduit à un nombre d"opérations de

T(bn=2c) +V(bn=2c) + (1):

On peut affiner ces calculs en tenant compte de la parité den: n= 2k: on a alorsbn=2c=ket donc dans le premier cas

T(k1) +V(k1) + (1)

opérations, et dans le deuxième cas

T(k) +V(k) + (1)

opérations. Si on fait l"hypothèse naturelle queTetVsont des fonctions croissantes, l"analysequotesdbs_dbs2.pdfusesText_4
[PDF] examen algorithmique 1ere année

[PDF] examen d'algorithmique

[PDF] examen principe de gestion 1ére année

[PDF] examen principe de gestion ihec

[PDF] principe de gestion 2

[PDF] comptabilité générale exercices corrigés maroc

[PDF] examen comptabilité générale s1 corrigé pdf

[PDF] examen de comptabilité générale

[PDF] examen comptabilité générale s1 pdf maroc

[PDF] cours de comptabilité générale s1 pdf

[PDF] examen comptabilité générale corrigé

[PDF] examen de comptabilité générale s2 corrigé

[PDF] exercices corrigés sur le décodage d adresses

[PDF] examen algorithmique récursivité

[PDF] examen algorithmique avancée corrigé