The video owner has disabled playback on external websites.

This video is no longer available on YouTube.

This video cannot be played right now.

Watch on YouTube

KI-gestützte Lerntools freischalten

Registriere dich, um leistungsstarke Tools zu nutzen, die dir helfen, schneller aus jedem Video zu lernen.

Szenen-Erklärer Phrasen-Jäger Karteikarten-Review Nachsprechübung Sprachausgabe
Kostenlos registrieren
B1 Mittelstufe Französisch 27:18 Educational

Nos algorithmes pourraient-ils être BEAUCOUP plus rapides ? (P=NP ?)

ScienceEtonnante · 914,981 Aufrufe · Hinzugefügt vor 4 Tagen

Lernstatistiken

B1

GER-Niveau

5/10

Schwierigkeit

Untertitel (523 Segmente)

00:00

Bonjour à tous !

00:01

Aujourd'hui on va parler d'une énigme à un million de dollars.

00:04

Vous savez, un de ces sept problèmes de mathématiques

00:07

pour lesquels l'institut Clay a décidé d'offrir une récompense

00:10

à celui ou celle qui en trouverait une solution.

00:13

Le problème d'aujourd'hui est intéressant

00:14

car il est à la frontière entre les mathématiques et l'informatique

00:18

et il est parfois considéré comme le plus simple des sept.

00:21

Alors, le plus simple, pas forcément à résoudre mais du moins à expliquer,

00:25

car il concerne en quelque sorte la rapidité des algorithmes

00:29

qui sont utilisés par nos ordinateurs.

00:36

Commençons par un problème très simple,

00:38

imaginons que je vous donne une liste de nombres

00:41

et que je vous demande de trouver

00:43

le plus petit nombre de cette liste, son minimum.

00:46

Pas très compliqué, vous prenez un bout de papier

00:48

vous parcourez la liste et sur le papier vous gardez trace

00:51

du plus petit nombre que vous avez croisé pour l'instant,

00:57

vous mettez à jour si vous en trouvez un plus petit

01:02

et une fois arrivé à la fin de la liste,

01:05

eh bien vous avez la certitude d'avoir

01:07

sur votre bout de papier le minimum de cette liste.

01:11

Alors, l'air de rien, quand on fait ça on applique un algorithme

01:14

c'est à dire une procédure bien définie qui résout un problème donné

01:18

en prenant en entrée, ici : la liste de nombre,

01:21

et en fournissant une sortie : le plus petit nombre de cette liste.

01:25

Quand on met au point un algorithme pour effectuer une certaine tâche,

01:28

on va souvent s'intéresser à sa rapidité,

01:31

combien de temps va-t-il lui falloir pour réaliser le job ?

01:34

On pourrait la mesurer de différentes façons, par exemple avec un chronomètre,

01:37

mais ça va évidemment dépendre

01:39

de la puissance de la machine sur laquelle on le fait tourner.

01:42

Alors une autre façon de quantifier la rapidité d'un algorithme,

01:45

c'est de compter combien d'opérations élémentaires il doit effectuer.

01:49

Dans notre cas, on voit que pour chaque nombre de la liste,

01:51

il faut le lire pour le comparer au plus petit qu'on ait trouvé jusqu'ici,

01:56

on va dire que faire cette comparaison c'est une opération.

01:58

Alors évidemment s'il y a 10 nombres dans ma liste

02:01

je vais devoir faire 10 opérations,

02:03

100 nombres : 100 opérations

02:05

1000 nombres : 1000 opérations etc.

02:07

De façon générale, avec cet algorithme s'il y a N nombre dans la liste

02:10

il me faudra faire N opérations élémentaires pour l'appliquer.

02:14

Considérons maintenant un problème un peu différent,

02:17

il ne s'agit plus de trouver le plus petit nombre de la liste

02:20

mais de la classer par ordre croissant.

02:23

C'est plus compliqué mais on peut facilement imaginer un algorithme qui le fait.

02:26

Puisqu'on sait trouver le minimum d'une liste grâce à l'algorithme précédent,

02:31

on n'a qu'à le chercher et le sortir de la liste.

02:34

Et puis ensuite recommencer sur la liste restante,

02:36

trouver son minimum, le sortir, puis à nouveau etc.

02:42

C'est juste un peu plus long puisqu'il va falloir appliquer plein de fois

02:45

l'algorithme de recherche du plus petit nombre d'une liste.

02:48

On peut calculer que pour faire ça avec 10 nombres dans la liste

02:51

il me faudra au total une cinquantaine d'opérations élémentaires,

02:55

avec 100 nombres il faudra 5 000 opérations

02:59

et avec 1 000 nombres, environ 500 000.

03:03

Vous voyez que la situation de cet algorithme de tri

03:05

est assez différente de celle de l'algorithme de recherche d'un minimum,

03:08

le nombre d'opérations nécessaires

03:10

augmente beaucoup plus quand la taille de la liste augmente.

03:13

Si N est la taille de la liste, le nombre d'opérations nécessaires pour la trier

03:17

avec cet algorithme est en gros (N au carré) /2 et ça change beaucoup de choses,

03:22

vous voyez que si je multiplie la taille de la liste par 10,

03:25

trouver le minimum prendra 10 fois plus de temps,

03:28

mais en faire le tri prendra 100 fois plus de temps.

03:32

Quand on veut traiter beaucoup de données avec un ordinateur,

03:35

cette différence va se faire sentir.

03:37

Cette question du nombre d'opérations nécessaire

03:40

on se la pose évidemment chaque fois que l'on imagine

03:42

un nouvel algorithme pour résoudre un problème donné.

03:45

On essaye d'estimer comment le nombre d'opérations

03:47

va croître quand on augmente la taille du problème

03:49

c'est-à-dire la taille des données en entrée.

03:51

On note toujours traditionnellement N cette taille,

03:54

pour la recherche de minimum, le nombre d'opérations est proportionnelle à N,

03:58

pour la méthode de tri que je vous ai présentée, il est proportionnel à N au carré .

04:03

Cette notion là c'est ce qu'on appelle la "complexité" de l'algorithme.

04:07

Alors attention hein, car ce terme de complexité peut être un peu trompeur.

04:11

La complexité ça ne mesure pas

04:12

à quel point l'algorithme est difficile à comprendre ou à programmer

04:16

mais de quelle façon le temps de calcul

04:18

va augmenter quand on augmente la taille du problème.

04:20

Pour ma recherche de minimum, la complexité est proportionnelle à N, la taille de la liste,

04:25

on dit que la complexité est linéaire.

04:27

Pour mon algorithme de tri elle est proportionnelle à N²,

04:31

on parle de complexité quadratique,

04:33

Comme vous pouvez vous en douter, ces questions de complexité

04:35

sont très importantes pour toutes les applications pratiques

04:38

où on a besoin d'algorithmes, que l'on parle de gestion de données,

04:41

de graphisme, de calcul scientifique, de jeux vidéo.

04:44

Heureusement grâce à l'inventivité des chercheurs,

04:46

on découvre régulièrement des algorithmes

04:48

de plus en plus rapides pour résoudre un problème donné.

04:51

Reprenons le problème du tri d'une liste de nombres,

04:55

la méthode que je vous ai présentée, qu'on peut appeler l'algorithme naïf,

04:58

vous sentez peut-être qu'elle n'est pas forcément hyper maligne,

05:01

on parcourt la liste pour trouver le plus petit élément,

05:03

puis ont la re-parcourt pour trouver le 2ème plus petit, puis à nouveau etc,

05:09

On est amené à refaire plusieurs fois quasiment la même chose.

05:12

Intuitivement on se dit qu'il doit y avoir moyen de gagner du temps

05:15

en exploitant mieux l'information.

05:16

Eh bien oui, c'est possible, on connaît aujourd'hui

05:19

plusieurs algorithmes de tri dont la complexité n'est pas proportionnelle à N²

05:24

mais à N fois logarithme de N : N x log (N)

Vollständige Untertitel im Videoplayer verfügbar

Mit Übungen trainieren

Erstelle Vokabel-, Grammatik- und Verständnisübungen aus diesem Video

Vokabeln & Grammatik Verständnisquiz IELTS-Prüfung Schreib-Übung
Registrieren zum Üben
Noch keine Kommentare. Sei der Erste, der seine Gedanken teilt!

Registriere dich, um alle Features freizuschalten

Verfolge deinen Fortschritt, speichere Vokabeln und übe mit Übungen

Kostenlos Sprachen lernen