24 nov 2017 · En Python, il est possible de déterminer le temps de calcul d'un algorithme grâce aux instructions suivantes : from time import clock t1 = clock()
Previous PDF | Next PDF |
[PDF] Calculs de complexité
Complexité : Tmaximum(n) = O(n) def maximum(L): m=L[0] for i in range(1,len(L )): if L[i]>m: m=L[i] return m Exemple Python Le nombre d'apparitions d'un élé-
[PDF] Complexité et preuves dalgorithmes
11 mai 2020 · le temps de calcul nécessaire, directement lié au nombre d'opérations qu' effectue On parle respectivement de complexité temporelle et de complexité spatiale Et effectivement, 2−1075 est déclaré nul par Python 5
[PDF] Chapitre 2 Complexité algorithmique - langage python
22 oct 2014 · Des exemples de calculs de complexité Le module timeit 5 Différentes nuances de complexité Programmation en Python–2`eme année MP3
[PDF] Notion de complexité algorithmique
ment la quantité de mémoire requise) et le temps de calcul à prévoir langage de programmation tel que Python pour illustrer un cours d'algorithmique car ce
[PDF] TD : La complexité temporelle Exemple 1 : Fibonacci - Pascal
24 nov 2017 · En Python, il est possible de déterminer le temps de calcul d'un algorithme grâce aux instructions suivantes : from time import clock t1 = clock()
[PDF] Calcul de complexité - CPGE du Lycée Montesquieu
Dans la suite, on note T(P) la complexité dans le pire cas d'un bloc d'instructions P II 1 Complexité d'une instruction simple On s'intéresse ici à la complexité d'
[PDF] Complexité algorithmique - Aurélien Poiret
3 5 - Optimisation du produit matriciel sous Python Dans le calcul de complexité interviendra de temps en temps la fonction logarithme de base a On
[PDF] Rappels de complexité et programmation orientée objet en Python
À ces fins, on aura donc recours à une approximation de ce temps de calcul en fonction de la taille des données, représentée par la notation O(·) Définition 1 Une
[PDF] Complexité : un exemple pour le lycée
Complexité au lycée Programme python Python def triangle (p) : L=[ ] Comparer les temps de calcul expérimentalement et expliquer FICHIER SAGE GA, JG
[PDF] Complexité - Algo Prog Objet Python
Andrea G B Tettamanzi, 2018 4 Complexité • Tous les algorithmes ne sont pas équivalents • On les différencie selon au moins 2 critères : – Temps de calcul
[PDF] l'alcool utilisé comme antiseptique local peut être
[PDF] production primaire nette
[PDF] productivité nette de l'écosystème
[PDF] productivité primaire définition simple
[PDF] production primaire et secondaire
[PDF] productivité nette de l écosystème
[PDF] taux d'évolution calcul
[PDF] taux d'endettement entreprise
[PDF] numero ine sur internet
[PDF] numero ine eleve college
[PDF] affectation lycee secteur
[PDF] inscription lycée hors secteur
[PDF] nombre de mole formule
[PDF] nombre de mole d'un gaz
TD: La complexit´e temporelle
2 heures
R´edig´e par Pascal Delahaye
24 novembre 2017
Exemple 1 : Fibonacci
La suite de fibonnacci est d´efinie par : (un) telle que?u0= 0 u1= 1et pour toutn?N?:un+2=un+1+un.
Pour calculer le termeun, nous disposons des 2 algorithmes suivants : def u1(n) : | def u2(n) :S1, S2 = 0, 1 | if n == 0 : return 0
for i in range(2,n+1): | elif n == 1 : return 1 S1, S2 = S2, S1 + S2 | else : : return u2(n-1) + u2(n-2) return S2 | # Ceci est un algorithme r´ecursif #Nous allons ´evaluer le temps de calcul de chacun des algorithmes de calcul pr´ec´edents de fa¸con exp´erimentale et
th´eorique.1) Etude exp´erimentale
En Python, il est possible de d´eterminer le temps de calcul d"un algorithme grˆace aux instructions suivantes :
from time import clock t1 = clock() ... instructions du programme dont on veut ´evaluer la dur´ee ... t2 = clock() print(t2-t1)1. Concevoir deux fonctionstp1(n)ettp2(n)donnant le temps d"ex´ecution des instructionsu1(n)etu2(n).
2. En d´eduire deux fonctionsgraphe1(N,p)etgraphe2(N,p)permettant de repr´esenter le temps d"ex´ecution de
chacune des deux fonctionsu1etu2pournallant de 0 `a N par pas dep?N?. Lancer alors les instructionsgraphe1(100,1)etgraphe2(35,3). 1 MPSI - 2017/2018 La complexit´e temporelle http://pascal.delahaye1.free.fr/3. R´epondez alors aux questions suivantes :
Courbes de complexit´e des deux algorithmes
(a) Quel est le programme le plus rapide?(b) Quelle conjecture peut-on faire sur la nature de la complexit´e de chacun des deux algorithmes?
(c) Comment interpr´eter : i. les valeurs qui semblent aberrantes? ii. les diff´erences obtenues lorsqu"on lance deux fois la mˆeme instruction? iii. les discontinuit´es qui apparaissent ´eventuellement?2) Etude th´eorique
Donner sous la forme d"un "grand O" la complexit´e des deux algorithmes pr´ec´edents.On consid`erera :
1. La taille de la donn´ee :n
2. L"op´eration significative : l"addition
Cette ´etude th´eorique vient-elle confirmer les conjectures pr´ec´edentes?Exemple 2 : Polynˆomes
SoitP?R[X] etα?R. Les deux algorithmes suivants proposent deux m´ethodes de calcul deP(α). Nous repr´esenterons un polynˆomePpar la liste de ses coefficients : P=a0+a1X+···+anXnest alors rep´esent´e en machine par :P= [a0,...,an]1. Echauffement
Construire une fonctionsomme(P,Q)qui renvoie la somme de deux polynˆomes.2. Calcul na¨ıf
La premi`ere id´ee pour le calcul deP(α) est tout simplement de calculerP(α) =n? k=0a kαk`a l"aide d"une boucle FOR. 2 MPSI - 2017/2018 La complexit´e temporelle http://pascal.delahaye1.free.fr/3. L"algorithme de Horner
Cet autre algorithme propose de calculerP(α) en proc´edant de la fa¸con suivante :Siα?K, l"id´ee de l"algorithme d"H¨orner est de d´eterminerP(α) en effectuant les calculs suivants :
1.S=an(initialisation)
2.S=S×α+an-1=an.α+an-1(i=1)
3.S=S×α+an-1= (an×α+an-1)×α+an-2=an.α2+an-1.α+an-2(i=2)
4. ...etc ...
Apr`es la i`eme it´eration on obtient l"expression :S=anαi+an-1αi-1+···+an-i En poursuivant ainsi jusqu"`ai=n, on obtient la valeur deP(α). L"algorithme se pr´esente alors de la fa¸con suivante : Arguments : P : liste des coefficients du polyn^ome alpha : flottant Variables locales : S : flottant stockant les valeurs successives du calcul n : entier repr´esentant le degr´e du polyn^omeInitialisation :
* n <- degr´e du polynome p ATTENTION au sens de n !! * S <- p[n] Boucle : Pour i allant de 1 `a n faire : S <- S * alpha + p[n - i]Fin : retourner S
Travail
Etude exp´erimentale :
1. Construire une fonctionCALC(P,alpha)calculantP(α) selon la m´ethode na¨ıve.
2. Construire une fonctionHORNER(P,alpha)calculantP(α) avec l"algorithme de Horner.
3. En utilisant la fonctionclock()de Python, d´eterminer deux fonctionstp1(P,alpha)ettp2(P,alpha)qui
renvoient le temps de calcul deP(α) par chacune des deux fonctions pr´ec´edentes.Vous appliquerez ces deux fonctions en prenant pour arguments un polynˆome de degr´e variable etα= 1000!
(oui, je sais : c"est tr`es grand!)4. Construire une proc´eduregraphe(N,alpha)qui affiche le graphe donnant l"´evolution des temps d"execution des
deux algorithmes pr´ec´edents en fonction du degr´en?[[1,N]] de la fonction polynˆomiale.
Vous prendrez pour polynˆomesrange(1,n)o`unpourra varier de 1 `a N=30 et de nouveauα= 1000!.Commenter les r´esultats obtenus.
Etude th´eorique :
A l"aide des deux courbes observ´ees exp´erimentalement, conjecturer la complexit´e des deux algorithmes.
Valider votre conjecture `a l"aide d"une ´etude th´eorique de complexit´e. 3 MPSI - 2017/2018 La complexit´e temporelle http://pascal.delahaye1.free.fr/ Comparaison exp´erimentale de la complexit´e de diff´erents algorithmes