Press "Enter" to skip to content

5.1. Un algorithme = une intelligence artificielle ?

Les médias identifient souvent algorithmes et intelligence artificielle. Nous voulons ici souligner le fait que ces deux notions sont disjointes: un algorithme, ce n’est pas forcément de l’intelligence artificielle. Et il y a d’autres questions en intelligence artificielle que les questions algorithmiques.

L’essentiel ici est de définir ce qu’est un algorithme. Ce qui est finalement assez simple: il s’agit de décomposer la résolution d’un problème en une séquence d’instructions simples, qui permet, lorsqu’on applique cette séquence à un ensemble d’entrées, d’obtenir le résultat visé.

Pour montrer qu’un algorithme n’a pas besoin d’un ordinateur, il suffit de parler d’un algorithme que tout un chacun a déjà pu mettre en œuvre: une recette de cuisine. Une recette est une séquence d’instructions simples (éplucher tel aliment, mélanger, cuire, etc.) qui, lorsqu’on l’applique aux entrées (les aliments nécessaires), produit (normalement) le plat souhaité.

Pour un programme informatique, c’est exactement la même chose : les entrées ce sont les données*, et on doit décomposer le problème en ins- tructions simples que comprend la machine (et qui se résument habituellement à aller chercher une donnée, à la modifier, et à la sauvegarder ou à l’afficher).

Toute fonction, tout programme d’un ordinateur ou d’un robot correspondent donc à un algorithme. Mais certains de ces algorithmes n’ont rien à voir avec la cognition, avec la résolution de problème, et donc rien à voir avec l’intelligence artificielle. Pensez par exemple à l’ensemble des programmes qui permettent à votre ordinateur de jouer un morceau de musique.

Pour exécuter un programme d’intelligence artificielle (ce que certains résument par “une intelligence artificielle”) sur une machine, il faut l’écrire dans un code informatique, et il faut donc un algorithme. Le problème algorithmique fait donc partie des étapes par lesquelles il faut passer. Mais ce n’est pas la seule étape.

Il y en a bien d’autres qui sont souvent bien plus compliquées,comme :

  • trouver comment modéliser le problème (en faire une abstraction sur laquelle on pourra travailler), ce qui nécessite en général des connais- sances* ;
  • trouver comment le résoudre ;
  • étudier si on peut effectivement trouver un algorithme permettant d’obtenir une réponse en un temps raisonnable (problème de complexité algorithmique*), ce qui est loin d’être toujours le cas;
  • éventuellement trouver comment approximer la réponse.