Algorithme

De EduTech Wiki
Aller à la navigation Aller à la recherche

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Aspects théoriques de la pensée computationnelle
◀▬▬▶
à améliorer débutant
2022/10/12
Voir aussi
Catégorie: Aspects théoriques de la pensée computationnelle


Introduction

Cet article propose un survol du concept d'algorithme qui intègre plusieurs perspectives. La définition classique tirées des sciences informatiques nécessite d'être augmentée par des considérations issues des sciences sociales. Les algorithmes jouent en effet un rôle de plus en plus prépondérant dans différents aspects de la vie quotidienne, dans la technologie éducative, ainsi que dans la construction, la sélection, l'évaluation et le partage du savoir scientifique. De ce fait, l'article se propose d'abord de définir qu'est-ce qu'un algorithme en fonction de trois perspectives différentes, quoi que complémentaire: une définition technique/informatique, une définition issue du domaine de l'interaction personne-machine, et enfin une définition avec un ancrage sociale. Dans la deuxième partie de l'article, différentes typologies d'algorithmes seront abordés: la transformation de l'information, les systèmes experts, les algorithmes intelligents ou auto-génératif, et enfin les algorithmes hybrides.

Qu'est-ce qu'un algorithme

Définition technique/informatique

Dans la perspective technique/informatique, l'objectif d'un algorithme est de résoudre un problème.

Dans cette perspective, un algorithme est définit comme une suite d'opérations formalisées qui transforment un input ou une série d'input bien définis, dans un output ou séries d'output bien définis. Les caractéristiques suivantes sont souvent associées à un algorithme à complément de cette définition :

  • Finitude : l'algorithme doit aboutir à une solution, c'est-à-dire à un stade de sortie qui considère la suite d'opérations terminée
  • Réplicabilité : à parité d'inputs d'entrées et de conditions d'opération, l'algorithme doit aboutir à chaque fois aux mêmes outputs
  • Précision : la suite d'opérations doit être formalisée de manière non-ambiguë
  • Efficience : la suite d'opérations doit être exécutée dans un temps jugé adéquat en fonction de la complexité et des alternatives possibles

On perçoit dans cette conception d'un algorithme les aspects liés au traitement automatique de l'information qui était l'une des forces de propulsion de l'informatique. Le mot computer en anglais, d'ailleurs, se référait au départ à des personnes qui effectuaient des calcules à la main, en utilisant des techniques pour minimiser les erreurs (e.g. réporter les résultats intermédiaire sur une autre feuille). L'héritage numérique (dans le sens des calcules sur des unités numériques) des algorithmes a donc fait ainsi que la perspective soit au départ principalement mathématique et liée à des enjeux d’ingénierie: comment peut-on automatiser efficacement la solution de problèmes ?

La naissance de l'ordinateur - grâce notamment aux travaux de Alan Turing et Alonso Church, formalisés ensuite dans l'architecture des ordinateurs nommée d'après John Von Neumann - applique d'ailleurs la notion d'algorithme de manière récursive à la machine elle-même. En effet, un ordinateur en tant que machine universelle émerge de la possibilité d'exécuter un nombre potentiellement infini d'algorithmes sur la base d'un nombre fini d'opérations symboliques.

La notion technique d'algorithme est néanmoins limitée si on prend en compte l'utilisation qui est faite plus en général des dispositifs informatiques. Par exemple, le concept de finitude devient problématique si on prend en compte un jeu ou un réseau social dont la finalité est celle de continuer à l'utiliser. On peut bien entendu séparer l'exécution de l'algorithme spécifique (e.g. l'opération en elle-même) de l'utilisation répétée du même algorithme faite par l'utilisateur, mais cette distinction ne serait que formelle. Au même titre, la réplicabilité des algorithmes est également mise en question lorsqu'on prend en considération les algorithmes qui sont basés sur des éléments aléatoires, ou qui s'adaptent de manière progressive (voir le type d'algorithmes plus bas). De ce fait, la perspective suivante prend en compte plus largement l'interaction personne-machine.

Définition issue de l'interaction personne-machine

Définition sociale

Types d'algorithmes

Transformation de l'information

Systèmes expertes

Algorithmes intelligents ou auto-génératifs

Algorithmes hybrides

Conclusion