3-complexite-4pp

  • Uploaded by: aissam
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 3-complexite-4pp as PDF for free.

More details

  • Words: 1,081
  • Pages: 4
Loading documents preview...
Algorithmes et complexité

Complexité

Combien de temps mon algorithme mettra-t-il pour résoudre un problème donné ?

Pour résoudre une instance de taille n fixée.

Combien d’espace mémoire faut-il prévoir ?

Complexité d’un algorithme en temps = nombre d’instructions exécutées (ordre de grandeur)

Problème et instance

= fonction de n

Problème général : tester si un nombre est premier

en supposant que les instructions prennent un temps constant

Problème particulier (instance) : tester si 494059397730 est premier Complexité en espace Une instance est caractérisée par sa taille

= nombre de cellules mémoire utilisées (ordre de grandeur)

Il y a différentes manières de définir la taille

= fonction de n

p.ex. taille(494059397730) = 494059397730 (linéaire) ou taille(494059397730) = 12 chiffres (logarithmique)

G. Falquet, CUI, Université de Genève

1 de 14

G. Falquet, CUI, Université de Genève

Exemple: résolution d’une équation

2 de 14

Exemple pn

Trouver x tels que ax + b = 0 (a différent de 0) Avec a et b inférieurs à MAX {

1. 2. 3. 4. 5.

x←–b/a } Nombre d’opérations arithmétiques effectuées : 2 Complexité en temps : constante

r ← 1; s ← 0; tant que (s ≠ n) { r ← r * p; s ← s + 1; }

// nombre d’itérations = n

T(n) = k

Temps effectif : dépend de la machine

G. Falquet, CUI, Université de Genève

3 de 14

G. Falquet, CUI, Université de Genève

4 de 14

Nombre d’opérations exécutées 1. 2. 3. 4. 5.

r ← 1; s ← 0; tant que (s ≠ n) { r ← r * p; s ← s + 1;

Exemple pn bien amélioré

1 fois 1 fois n + 1 fois n fois n fois

Observation : p2n = (pn)2 p2n+1 = (pn)2 . p1

en tout : 2 + (n+1) + 2n opérations = 3 + 3n opérations

p26 = (p 13)2

1 multiplication

où p13 = (p6)2 . p

2 multiplications

6

Si n est grand 3n >> 3 T(n) = environ k * 3n

Le temps croît linéairement en fonction de n, indépendament de p.

3 2

où p = (p )

1 multiplication

où p3 = (p)2 . p

2 multiplications

EN TOUT

6 multiplications (à la place de 25)

Nombre d’étapes : log 2(n) À chaque étape 1 ou 2 multiplications ==> T(n) ≤ 2 . log 2(n)

G. Falquet, CUI, Université de Genève

5 de 14

G. Falquet, CUI, Université de Genève

Algorithme (récursif)

6 de 14

Cas de complexité

On définit une fonction récursive

À cause des instructions si et tant que Un algorithme ne suite pas toujours le même chemin pour résoudre un problème.

fonction puissance(p, n) { si ( n = 0 ) retourne 1 sinon { y ← puissance(p, n/2) y←y*y si ( n mod 2 = 1) y ← y * p retourne y } }

=> Pour deux problèmes de taille n il peut exécuter des nombres différents d’opérations. => La complexité n’est pas constante pour un problème de taille n Exemple intuitif Pour un "processeur" humain, il est plus facile de trier la liste (2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) que la liste (34, 1, 101, 3, 8, 221, 14, 71, 6, 106, 93, 2, 88)

Complexité : T(n) proportionnel à 2log2(n) Amélioration pour n = 1024 3x1024 / 2log2(1024) = 3072 / 20 = 153.6 fois plus rapide G. Falquet, CUI, Université de Genève

7 de 14

G. Falquet, CUI, Université de Genève

8 de 14

Définition des cas de complexité

Impact pratique

Pour un algorithme donné et un problème de taille n on distingue

Mesurer si les ressources dont on dispose sont suffisante pour résoudre les problèmes auxquels on veut s’attaquer;

Le meilleur des cas

Calculer la taille maximum des problèmes qu’on peut attaquer étant donné les ressources dont on dispose.

les données qui font que la complexité est minimale – pour certains algo de tri: liste déjà dans l’ordre – résoudre une équation dont tous les coefficients sont nuls Le pire des cas

Algorithme

Complexité en temps

nombre maximum d’opération que peut faire l’algorithme — pour certains algo de tri: liste dans l’ordre inverse ou liste déjà triée Le cas moyen le nombre moyen d’opérations calculé sur tous les problèmes de taille n difficile à définir

G. Falquet, CUI, Université de Genève

9 de 14

Taille maximum du problème que l’on peut résoudre en 1 seconde

1 minute

1 heure

A1

n

1’000’000

60’000’000

3’600’000’000

A2

n log(n)

62746

2’801’420

133’378’000

A3

n2

1000

7745

60’000

A4

n3

100

391

1’532

A5

2n

19

25

31

G. Falquet, CUI, Université de Genève

Impact sur l’interface utilisateur

10 de 14

Ordres de grandeur

Le temps de calcul peut changer radicalement l’usage de la machine

Difficile de calculer exactement le nombre d’instructions qui seront exécutées On s’intéresse à l’ordre de grandeur de ce nombre en fonction de n.

Ex. vérifier l’orthographe d’un mot

Notation O( f )

si T < 0.1 sec : vér ification possible "en direct" pendant qu’on tape le texte

g(x) ∈ O( f )

si T > 0.1 sec : la vérification devient une opération à effectuer séparément

s’il existe un n 0 et un c tels que

g (x) ≤ c f(x)

Ex. calcul d’une image en 3D

dès que

si T < 0.1 sec : animation (jeu vidéo)

n ≥ n 0.

si T < 1 sec : travail interactif sur une image (création d’images 3D, dessin) But : utiliser des fonctions f simples telles que

si T plus grand : calcul différé (films d’animation réalistes calculés avec des "fermes de processeurs")

G. Falquet, CUI, Université de Genève

1, n , n2, n 3, …, nk, 2n , log( n).

11 de 14

G. Falquet, CUI, Université de Genève

12 de 14

Graphiquement

3x 2 g ∈ O (x )

Quelques ordres de grandeur

2

2 4 g(x) = 1.2x + cos(x ) - log(x+1) + ...

constante

k ∈ O(1)

linéaire

ax + b ∈ O( x)

quadratique

ax 2 + bx + c ∈ O( x2)

… polynômial

∀p n0 ∀a

G. Falquet, CUI, Université de Genève

13 de 14

G. Falquet, CUI, Université de Genève

a kxk + ak–1xk–1 + … + a 1x + a0 ∈ O( xk) xq ∈ O(2x)

polynome < exponentielle]

2x ∉ O(xp)

exponentielle toujours > polynôme

log(n ) ∈ O(n )

logarithme < linéaire

ax ∉ O(log(n))

linéaire toujours > logarithme

14 de 14

More Documents from "aissam"

3-complexite-4pp
March 2021 0