44
Les cours-conférences du Collège Belgique à Liège Pierre Wolper, membre de l'Académie royale de Belgique, Doyen de la Faculté de Sciences appliquées de l'ULg Mardi 19 avril La pensée algorithmique

La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Embed Size (px)

Citation preview

Page 1: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les cours-conférences du Collège Belgique à Liège

Pierre Wolper, membre de l'Académie royale de Belgique, Doyen de la Faculté de Sciences appliquées de l'ULg

Mardi 19 avril

La pensée algorithmique

Page 2: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

En partenariat avec :

Liege Creative, une initiative de :

Page 3: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Le Collège Belgique est soutenu par :

Avec le soutien de la Présidence du Gouvernement wallon

Page 4: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

La  pensée  algorithmique

Pierre Wolper Université de Liège

1

Page 5: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

La  pensée  algorithmique  Computational  (algorithmic)  

thinking •  Raisonner et aborder les

problèmes en termes de traitement de l’information •  Le traitement de l’information

peut être réalisé o par un système physique simple o par un système biologique o par un système informatique (ordinateur)

2

Page 6: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Traitement  de  l’information

Capteurs Information Traiter    Mémoriser

Information  Prédiction  Action

3

Pour être traitée, l’information doit être représentée physiquement : •  de l’encre sur du papier, •  l’état d’un système mécanique, •  l’état d’un système neuronal, •  l’état d’un système électronique.

Page 7: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Un  système  simple  de  traitement  de  l’information

4

Page 8: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Un  système  de  traitement  de  l’information  bien  connu

•  Capture de l’information : sens

•  Traitement : système

nerveux •  Actions : muscles

5

Page 9: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Pensée  algorithmique  et  informatique

•  La pensée algorithmique est l’ensemble des approches et méthodes qui permettent de formuler et résoudre un problème sous une forme exploitable par un système de traitement de l’information.

•  L’informatique (ordinateurs, programmation)

permet la concrétisation de méthodes issues de la pensée algorithmique.

6

Page 10: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Recontre  entre  deux  systèmes  de  traitement  de  

l’information

7

Page 11: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Représenter  l’information •  Les systèmes informatiques

représentent l’information sous la forme d’une séquence de symboles (binaires).

110000111010111100101011011111000

•  Cette représentation est universelle : o Nombres, textes, images, son, vidéo, … o  Il n’y a pas de limite à la précision possible !

Exemple: L’âge le l’univers en secondes 11000001010110110011111111000111111001101001000000000000000 8

Page 12: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

La  représentation  d’une  image

9

Chaque  pixel  est  représenté  par  l’intensité  des  3  couleurs  fondamentales

Page 13: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Traiter  l’information •  Si l’information est représentée par une

séquence de symboles (binaires), •  La traiter revient à comparer, mémoriser,

modifier des symboles. •  Mais, comment décrire les opérations à

effectuer? •  Cela peut se faire à l’aide d’un formalisme

très simple: la machine de Turing. •  La thèse de Turing affirme que ce

formalisme est suffisant. 10

Page 14: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Une  machine  de  Turing

11

Page 15: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

De  la  théorie  à  la  pratique •  Même si tout traitement de l’information peut être

décrit par une machine de Turing, ce formalisme n’est pas adapté à décrire des traitements complexes.

•  Il faut des méthodes pour organiser et structurer l’information représentée.

•  Il faut des méthodes pour exprimer simplement le traitement à appliquer.

•  Il faut des méthodes pour concevoir les traitements de l’information et veiller à leur efficacité.

•  Il faut apprendre à penser algorithmiquement.

12

Page 16: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Organiser  et  structurer  l’information

Un exemple: le dictionnaire •  Une entrée dans un dictionnaire est un mot

suivi de sa définition et autres informations. •  Il faut pourvoir trouver rapidement

l’information concernant un mot. •  Pour cela les mots sont triés par ordre

alphabétique. •  Pour faciliter la recherche les premier et

dernier mots de chaque page sont repris en haut de la page.

13

Page 17: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Comment  chercher  ? •  Feuilleter le dictionnaire page par page depuis le

début: trop lent ! •  Estimer où ouvrir le dictionnaire avant de

commencer à chercher (A au début, Z à la fin, I au milieu): mieux.

•  Une aide: un onglet pour chaque lettre. •  Une aide plus efficace: un index. •  L’index reprendra le premier mot de chaque page

et le numéro de page correspondant: Pour une dictionnaire de 2000 pages, l’index ne fait que 20 pages.

14

Page 18: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Comment  chercher  (suite)  ? •  Si l’index est trop gros: on crée un index de l’index:

1 page ! •  Comment retrouver la page à partir de son

numéro : calculer où ouvrir le dictionnaire. •  Exemple: si le dictionnaire a une épaisseur de 10 cm

et comporte 2000 pages, la page 764 se trouve à 3,82 cm du haut du livre

15

Page 19: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

L’index  un  outil  puissant •  Le principe présenté est exactement celui utilisé en

algorithmique pour permettre la recherche rapide d’informations.

•  Un dictionnaire courant comporte 60.000 mots, mais que faire si on a 60.000.000, 60.000.000.000 ou même 60.000.000.000.000 d’informations à indexer?

•  On crée un index, un index de l’index, un index de l’index de l’index, …

•  Chaque niveau réduit la taille de l’index d’un facteur 100 è 7 niveau suffisent pour 60.000 milliards d’éléments !

•  Ainsi fut indexée toute l’information du monde (60.000 milliards de pages web) !

16

Page 20: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Exprimer  simplement  le  traitement  à  appliquer

•  C’est le domaine des langages et environnements de programmation.

•  Mais, il faut surtout travailler en utilisant des niveaux d’abstractions : o Travailler à différents niveaux de détail

suivant les besoins, o Pouvoir travailler à un niveau sans connaître

les niveaux inférieurs, o Se doter d’opérations de plus en plus

puissantes permettant de simplifier le travail.

17

Page 21: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

L’abstraction:  un  exemple Créer une animation vidéo

18

Page 22: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Niveaux  d’abstrations •  30 secondes de vidéo = 30 × 25 images = 30 × 25 ×

1.000.000 = 750.000.000 de pixels. •  Préciser la couleur et l’intensité de 750.000.000 de

pixels: ??? •  Abstraction : dessiner des lignes des courbes,

colorier des surfaces, leur donner une texture, un dégradé ; le calcul des pixels est automatisé.

•  Abstraction : dessiner une image composée d’objets représentés par leur forme 3D, la couleur et les caractéristiques de leur surface ; le calcul de l’image de chaque objet est automatisé.

•  Abstraction : voir certains objets comme mobiles et permettre de décrire leurs mouvements : le calcul des images successives montrant le mouvement est automatisé.

19

Page 23: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Concevoir  des  solutions  algorithmiques

Un mécanisme puissant la récursion •  Le principe est simple: concevoir la

solution pour un cas de grande taille, en supposant o que l’on peut résoudre les cas de

taille inférieure, o que l’on dispose de la solution pour

les cas de taille minimale.

20

Page 24: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

La  récursion  :  un  exemple Les tours de Hanoï

21

                                                                                 A                                                                              B                                                                        C

Page 25: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les  tours  de  Hanoï  :    Une  solution  récursive

•  Si la tour comporte 1 disque, la solution est immédiate.

•  Si la tour comporte n disques et que je peux résoudre le problème pour une tour de n-1 disques o Je déplace les n-1 disques supérieurs de A

vers B, o Je déplace le dernier disque de A vers C, o Je déplace les n-1 disques de B vers C :

récursion!

22

Page 26: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les  tours  de  Hanoï  :    la  solution

•  Des méthodes ont été mise au point pour directement mettre en œuvre les algorithmes récursifs.

•  Le résultat paraît presque magique.

23

Page 27: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Une  autre  technique  magique:  l’apprentissage

24

Homme ou arbre ?

Page 28: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Apprentissage  

25

Homme ou arbre

Page 29: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

L’  apprentissage  (Supervisé)

Classification d’images •  Une image est un tableau de pixels. •  On définit une fonction paramétrée des

pixels, par exemple

•  En utilisant des images pour lesquelles la

classification est connue, on ajuste les paramètres de façon à séparer les classes.

26

αij p(i, j)ij∑

Page 30: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

27

Page 31: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Classification  d’images •  Pour les images cette approche simple ne

fonctionne pas. •  Il est nécessaire d’extraire des

« caractéristiques » de l’image pour réduire la dimension des données et se focaliser sur ce qui est important.

•  Définir et extraire des « caractéristiques » est difficile.

28

Avancée de rupture: l’apprentissage profond

Page 32: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

L’apprentissage  profond  (deep  learning)

•  Étager l’apprentissage:

29

•  Il est aussi possible d’apprendre les « caractéristiques » !

Page 33: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Applications  de  l’apprentissage

•  Reconnaître la parole, la musique, du texte.

•  Classer des images, reconnaître des visages.

•  Jeu de GO. •  Vision, robotique, véhicules

autonomes, drones.

30

Page 34: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Une  victoire  de  la  machine

31

Page 35: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Penser  algorithmiquement

Penser algorithmiquement, c’est •  Penser en termes de données organisées et

structurées, •  Penser en termes d’abstractions, •  Penser en termes de méthodes systématiques

exprimées clairement, •  Penser en termes des mécanismes puissants de

création de solutions algorithmiques, e.g. récursion, apprentissage.

C’est aussi tenir compte de l’efficacité et de la taille des solutions.

32

Page 36: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les  limites  –  en  théorie Tout problème n’a pas de solution algorithmique! •  Problème : classer en deux catégories des

séquences de symboles (binaires). o Exemple: nombres divisibles par 3 ou non.

•  La limite existe uniquement si on ne met pas de borne à la longueur des séquences considérées.

•  Elle vient simplement du fait qu’il y a plus de catégories que de descriptions finies (algorithmiques).

33

Page 37: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les  limites  en  pratique •  Pour une taille bornée des données, tout

problème a une solution algorithmique. •  Mais,

o La solution peut être absurdement grande: une table de classification pour des séquences de 200 bits comporterait plus d’entrées que la terre ne comprend d’atomes.

o La solution peut être inefficace au point d’être inexploitable.

34

Page 38: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Des  solutions  algorithmiques  inefficaces •  Comment trouver le parcours minimum pour

visiter n endroits? Essayer toutes les possibilités! o  Il y en a un nombre fini, o  Mais ce nombre croît trop vite!

•  Au départ j’ai n choix •  A l’étape suivante (n − 1), •  Ensuite (n-2)…. •  Les choix se multiplient: au total

n ✕ (n − 1) ✕(n − 2) ✕ … ✕ 2 ✕ 1 •  Pour n = 20 déjà des milliards de milliards de

possibilités. Il faut un algorithme plus efficace ! 35

Page 39: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Pensée  algorithmique  et  science

•  La science tente de comprendre le monde qui nous entoure pour l’expliquer et le prédire.

•  Pour cela elle utilise des modèles, souvent mathématiques.

•  L’algorithmique et l’informatique permettent de mieux exploiter les modèles mathématiques.

•  Mais un modèle peut aussi directement s’exprimer en termes de données et d’algorithmes.

•  Un excellent exemple est la génétique moderne.

36

Page 40: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Pensée  algorithmique  et  technologie

•  L’impact le plus visible sont tous les dispositifs de conservation, traitement et transmission de l’information.

•  La combinaison de senseurs, de traitement avancé de l’information, de communication et d’actuateurs permet toutes sortes d’innovations : o  contrôle électronique d’un moteur, o  réseaux électrique intelligent, o  internet des objets.

•  Comme en science, l’exploitation des données et des algorithmes permet de modéliser ce qui ne l’était pas : o  publicité ciblée, o  évaluation du risque d’un crédit. 37

Page 41: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Pensée  algorithmique  et  société

•  La pensée algorithmique ouvre des nouvelles voies de solution (choix des écoles).

•  Elle doit faire partie de notre culture et est indispensable pour comprendre le monde dans lequel nous vivons.

•  Elle doit être enseignée dans nos écoles. •  Les technologies qu’elle permet ouvre

d’innombrables opportunités, mais suscitent aussi des craintes.

38

Page 42: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Les  robots  vont-­‐‑ils  nous  remplacer  ?   Quel est leur avis?

39

Page 43: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

Des  possibilités  plus  intéressantes

40

Page 44: La pensée algorithmique par Pierre Wolper | Liege Creative, 19.04.16

En  conclusion •  La pensée algorithmique et les systèmes

informatiques sont une révolution pour nos sociétés.

•  Nous devons la connaître et la maîtriser. •  Les adaptations en matière d’organisation

de la société et du type des emplois seront considérables.

•  Nous devons nous y préparer. •  Les possibilités d’amélioration de notre vie

sont gigantesques. 41