# Principaux projets et réalisations en intelligence artificielle

Cette liste indique les principaux projets et réalisations marquants dans le domaine de l’intelligence artificielle. La quasi-totalité de ces travaux ont été accomplis aux États-Unis, et il est à noter que nombre d’entre eux ont été financés par l’armée américaine. L’un des principaux financeurs de ces travaux fut la DARPA (Defense Advanced Research Projects Agency), célèbre pour avoir initié le réseau Arpanet, qui a donné naissance à Internet.
La liste est organisée par ordre chronologique.

## Logic Theorist (Théoricien de la logique) (1956)

Ce programme informatique est considéré comme le premier relevant de l’intelligence artificielle. Il a été développé par Allen Newell et Herbert Simon, avec l’assistance de Cliff Shaw. Logic Theorist est un programme de démonstration de théorèmes, fondé sur une recherche sélective. Une hypothèse de base donnée, peut subir toute une gamme de manipulations élémentaires conformes aux lois de la logique. Le résultat obtenu peut passer à son tour par une série de manipulations. La répétition de cette procédure crée une structure arborescente, sous forme « d’arbre de recherche ». L’exploration de celui-ci permet d’aboutir au résultat recherché, après un nombre indéfini d’opérations. Le problème à surmonter est de trouver le chemin qui mène de l’hypothèse de base au résultat recherché. Logic Theorist comportait une liste de règles empiriques appropriées, les heuristiques, qui permettaient de sélectionner laquelle des branches de l’arbre de recherche était la plus susceptible de mener au but. Une fois programmé sur une machine de la RAND, Logic Theorist démontra 38 des 52 premiers théorèmes du 2e chapitre des « Principia mathematica » de Bertrand Russell et Alfred North Whitehead. Le théorème 2.85 faisait même l’objet d’une démonstration plus élégante que celle des auteurs, au grand contentement de Russell. Pour marquer la portée de ce dernier résultat, Allen Newell et Herbert Simon décidèrent de publier cette démonstration dans le « Journal of symbolic logic », en faisant cosigner cette publication par Logic Theorist. Lors de la conférence de Dartmouth de 1956, considérée comme la rencontre fondatrice de l’intelligence artificielle en tant que discipline scientifique, Logic Theorist fut le seul programme opérationnel présenté. Il est par ailleurs considéré comme le lointain précurseur des logiciels de traitement formel des équations.

## IPL (Langage de traitement de l’information) (1956)

Dans le cadre de la réalisation de Logic Theorist, le résultat le plus important pour le développement de l’intelligence artificielle, a été l’invention d’un langage de programmation spécifique nommé IPL. Ce langage fut le premier à employer la technique de programmation dite de traitement des listes. Les auteurs de Logic Theorist pensaient que les langages existant à l’époque, comme le FORTRAN, n’étaient pas appropriés pour un tel projet. En effet, ceux-ci exigeaient que les ensembles de nombres et de symboles manipulés soient définis au préalable. Au contraire, les auteurs de Logic Theorist estimaient que la pensée est fondée d’une part sur la création, la modification et la destruction de structures de symboles en interaction, et d’autre part sur le caractère associatif de la mémoire humaine. La technique de traitement de liste est une tentative pour bénéficier de ces deux caractéristiques. Les idées d’Allen Newell et de Herbert Simon inspirèrent John McCarthy lorsque celui-ci inventa son propre langage d’IA : le LISP.

## GPS (Système général de résolution de problèmes) (1957)

Partant du constat que les humains ne raisonnent pas comme Logic Theorist, Allen Newell et Herbert Simon s’inspirèrent d’expériences de psychologie sur les méthodes de résolution de problèmes par des humains, pour créer GPS. Celui-ci avait l’originalité d’être fondé sur une organisation et un ensemble de règles heuristiques ne renfermant aucune référence à une tâche particulière, d’où le qualificatif de Système général de résolution de problèmes. GPS employait l’analyse fins/moyens, qui fonctionnait comme un principe de rétroaction, détectant puis réduisant les différences entre un état de faits et le but recherché. Cette méthode de résolution était couplée à la capacité à décomposer un problème en plusieurs sous-problèmes. GPS fut employé pour résoudre des casse-têtes, des intégrations symboliques, et des décryptages de codes secrets.

## Sad Sam (1957)

Créé par Robert K. Lindsay, Sad Sam provient de l’étude de l’apprentissage verbal. Ce programme était capable de définir des liens de parenté entre des personnes citées dans des phrases formulées en langage courant, en construisant peu à peu l’équivalent d’un arbre généalogique interne. Sad Sam était donc capable de relier une nouvelle information à d’autres faits déjà enregistrés, pour en tirer des conclusions qui n’avaient pas été apprises. À ce titre, certains chercheurs ont estimé que Sad Sam présentait les premières ébauches de compréhension au sens humain du terme.

## LISP (LISt Processing ou traitement de listes) (1958)

En s’inspirant du langage IPL, John McCarthy inventa au Massachusetts Institute of Technology (MIT) le LISP, qui devint le langage universel de l’IA. En effet, les qualités du LISP en matière de gestion de mémoire et de représentation lui permirent de supplanter ses concurrents comme l’IPL ou le COMIT. Toutefois, dans les conditions de l’informatique des années 1960, où la taille des mémoires était faible, l’encombrement en espace mémoire des langages de traitements de listes a freiné leur adoption. De plus, les premiers LISPs étaient interprétés et non compilés, donc trop lents. Le LISP ne devint attractif qu’à partir de 1970, lorsque la compilation efficace de programmes Lisp devint possible (voir MacLISP).

## Perceptron (1958)

Le Perceptron fut le premier modèle opérationnel de réseau de neurones. Il fut créé par Frank Rosenblatt sous forme d’une simulation tournant sur un IBM 704, à partir des travaux de McCulloch et Pitts sur la notion de neurones formels interconnectés en 1943, et de Hebb sur l’importance du couplage synaptique dans les processus d’apprentissage en 1949. Le Perceptron est inspiré du système visuel, et il se montre capable d’apprentissage en modifiant ses connexions synaptiques. Le Perceptron comprend trois éléments principaux :
* une couche d’unités sensorielles, ou « rétine », fournissant des réponses modulées en fonction de l’intensité du stimulus,
* une couche de cellules d’association, constituant la couche de neurones formels proprement dits, selon la définition de McCulloch et Pitts.
* une couche de cellules de décisions, qui représentent la réponse de sortie du Perceptron.
    Grâce à une procédure inventée par Frank Rosenblatt, l’apprentissage du Perceptron se fait par correction d’erreur, en modifiant les coefficients de poids des signaux entre les cellules. En 1969, Marvin Lee Minsky et Seymour Papert publièrent un ouvrage intitulé Perceptrons, qui démontrait certaines limitations de ces modèles. En particulier, le Perceptron ne peut pas effectuer l’opération binaire de parité (OU exclusif ou XOR). L’autorité de ces auteurs, ainsi que le décès accidentel de Frank Rosenblatt, entraîna un quasi-arrêt des recherches dans ce domaine pendant près de 15 ans, jusqu’à l’apparition des réseaux de neurones multicouche (on parle aussi parfois de Perceptron multicouche).
Les demandes d’identification, renforcées par le terrorisme, assurent un marché immense à cette technique.

## GTP (Système de démonstration de théorèmes géométriques) (1959)

Ce programme a été financé par IBM et conçu par Herbert Gelernter. GTP fonctionnait de manière rétrograde à partir du théorème à démontrer, pour remonter par des raisonnements intermédiaires à des théorèmes ou des axiomes connus. Lors de cette phase, le programme s’aidait d’une figure géométrique décrite à partir des coordonnées de ses points. Pour élaguer l’arbre de recherche, GTP cherchait uniquement à démontrer les propriétés qui semblaient vérifiées sur le schéma, comme le font inconsciemment les humains. GTP était ainsi capable de faire des démonstrations nécessitant jusqu’à 10 étapes. Plus important, il fut le premier programme capable de faire référence à un modèle, dans la mesure où la figure géométrique était utilisée comme une représentation interne. À la suite de la notoriété de GTP et d’autres programmes d’IA, IBM décida d’arrêter ces études d’une part en raison de la pression des actionnaires et du service marketing, qui s’alarmaient d’une image trop inquiétante des ordinateurs dans l’esprit du grand public. GTP garde une belle performance à son actif : il découvrit la première démonstration géométrique considérée comme plus élégante que celles des manuels scolaires de son époque. Au problème « Dans un triangle, l’angle B est égal à l’angle C. Démontrez que le côté AB est égal au côté BC », il apporta une démonstration non pas en considérant les deux sous-triangles découpés par la hauteur, mais par : « Considérons les triangles ABC et ACB : ces deux triangles sont semblables et possèdent des côtés correspondants BC et CB égaux. Ils sont donc égaux et AB est en conséquence égal à BC ». La démonstration a surpris par son approche non intuitive.

## SAINT (Intégrateur symbolique automatique) (1961)

James Slagle appliqua la méthodologie de Logic Theorist au domaine de l’intégration symbolique, en la transposant ainsi de la logique à l’algèbre, grâce à la mise au point de procédures d’exploration des arbres ET/OU. Confronté à des sujets d’examens posés aux étudiants du MIT de 1re année, SAINT parvint à résoudre 84 problèmes sur 86. Ce programme a été perfectionné par Joel Moses en 1966 sous le nom de SIN (Symbolic INtégration), avant de donner naissance en 1969 à MACSYMA, qui a inspiré nombre de logiciels de traitement formel des équations aujourd’hui employés (dont un descendant en ligne droite toujours en développement : Maxima, ou encore Mathematica).

## ANALOGY (1963)

Tom Evans a créé ce programme en se fondant sur l’idée que le cerveau humain, devant une situation donnée, ne raisonne pas selon les voies de la logique, mais en essayant de trouver des ressemblances avec des problèmes déjà rencontrés. Il a tenté de simuler l’aptitude à chercher des ressemblances avec ce logiciel capable de trouver des analogies entre des figures géométriques employées dans les tests d’intelligence.

## STUDENT (1964)

Daniel Bobrow a inventé ce programme, capable de faire une analyse syntaxique de textes simples, pour résoudre des problèmes algébriques du type « trouvez l’âge du capitaine ».

## SIR (Recherche d’information sémantique) (1964)

Ce programme de Bertram Raphael pouvait interpréter des dialogues simples, en cherchant des analogies avec des modèles de phrases. Cette technique lui permettait de déduire des relations entre les personnes ou les objets cités dans ces phrases, en posant des questions à un opérateur. Toutefois, les capacités de SIR, comme celles de STUDENT étaient très limitées. Les informations traitées concernaient un domaine très restreint, et les programmes butaient rapidement sur des ambigüités.

## Shakey (1969)

Créé dans le laboratoire du Stanford Rechearch Institute, Shakey fut le premier robot ayant fait l’objet de publicité dans le grand public, à la suite d’un reportage très sensationnaliste de la revue Life, qui l’avait baptisé la première personne électronique. Shakey était également censé pouvoir circuler sur la lune pendant plusieurs mois sans recevoir une seule directive de la terre ! Shakey était un cube monté sur roues, équipé d’un bras, d’une caméra vidéo, d’un télémètre et d’antennes de liaison radio. Il se déplaçait dans un micromonde constitué de 7 pièces reliées par 8 portes, contenant des boîtes carrées. Celles-ci étaient contournées, déplacées ou empilées en fonction des instructions que le robot recevait par un clavier. Shakey avait une procédure de contrôle nommée STRIPS, qui était un perfectionnement du General problem Solver, et qui constituait sa principale innovation. Le projet Shakey avait pour objectif de créer un robot capable d’enchaîner une série d’actions : circuler dans une pièce pour trouver un bloc, le déplacer au sommet d’une plate-forme après avoir poussé un plan incliné contre elle, et ainsi de suite. En fait, Shakey devint seulement capable de réaliser ces actions de façon indépendante, avec une forte probabilité d’échec. Constatant que les objectifs du projet étaient hors de portée, la DARPA mit fin au financement de ces travaux.

## PLANNER (1969)

Ce langage de programmation fut inventé par Carl Hewitt à partir de LISP, selon une approche antagoniste du GPS et de ses méthodes de résolution de problèmes fondées sur la logique et les procédures uniformes de démonstration de théorèmes. PLANNER permettait en quelques instructions de fixer des buts à un programme (chercher un cube rouge placé sous une pyramide), des plans et des assertions de façon automatique, sans avoir besoin de programmer des itérations et des marches arrières comme avec LISP. Mais PLANNER présentait l’inconvénient de ne pas faire de distinction entre les connaissances contenues dans ces procédures, et l’exploitation de ces connaissances par ces mêmes procédures. Les programmes étaient donc un mélange inextricable de connaissances et de procédures. Ce manque de structuration a été critiqué et a conduit à l’abandon des langages de type PLANNER. Marvin Lee Minsky estime toutefois que l’intelligence naturelle est organisée selon des principes similaires à PLANNER, avec des agents indépendants hiérarchisés, selon sa théorie de la société de l’esprit.

## SHRDLU et les micro-mondes (1969)

Le nom de SHRDLU est devenu un mythe de l’intelligence artificielle. Programmé avec le langage PLANNER, ce logiciel était la modélisation d’un micro-monde de blocs et de pyramides de couleurs diverses, avec une boîte pour les ranger. Un bras virtuel permettait à un utilisateur de manipuler ces objets. L’opérateur pouvait donner des ordres et poser des questions, alors que SHRDLU répondait en décrivant l’emplacement des objets, et les motifs des manipulations effectuées. SHRDLU affichait également sur un écran une image de son micro-monde. Terry Winograd avait nommé son programme en référence au magazine MAD, qui l’employait pour désigner des monstres (ETAOIN SHRDLU est la configuration de la première ligne d'une linotype anglo-américaine, pour une française : « élaoin sdrètu »; il ne s'agit pas des lettres les plus employées en anglais, comme cela est parfois indiqué). Le fait que l’utilisateur et SHRDLU échangeaient des informations constructives, et que ce dernier pouvait expliciter ses motivations, fit une forte impression. Les partisans des micro-mondes espéraient pouvoir enrichir et complexifier progressivement les mondes simulés pour les rapprocher de la réalité, ou bien fusionner plusieurs micro-mondes pour les étendre. Cette approche fut un échec, car il est vite apparu qu’il n’est pas possible d’aller vers un monde plus proche du réel sans prise en compte du « sens commun » dans le programme. Eugène Charniak prit pour exemple en 1972 le cas d’une tirelire-cochonnet pour enfants. Un programme de type micro-monde ne peut pas se contenter d’une définition tirée d’un dictionnaire. Il faut avoir une description de la taille, de la forme, des couleurs et du poids de l’objet, tout en sachant que ces paramètres peuvent fortement varier. La notion d’argent implique de définir ce que sont l’économie et l’épargne. L’utilisation de cet objet simple se révèle complexe à décrire : mettre de l’argent, secouer le cochonnet pour en interpréter le bruit, retirer l’argent en mettant le cochonnet à l’envers et en employant un couteau, voire utiliser le cochonnet comme une figurine animée. La complexité du savoir à mettre en œuvre est très éloignée de la simplification propre aux micro-mondes.

## Prolog (1977)

Le langage « PROgrammation en LOGique » est un moteur d’inférence conçu initialement par A. Colmerauer et P. Roussel pour l’interprétation du langage naturel, mais il est couramment utilisé pour des problèmes d’intelligence artificielle. Prolog est un langage déclaratif, cela signifie que plutôt que d’être constitué de la solution à un problème, un programme consiste en une base de faits d’une part, et d’un ensemble de relations logiques d’autre part. Pour exécuter le programme, il faut poser une question, et Prolog donne la réponse calculée en appliquant les règles sur la base de faits.
Prolog s’adaptait si bien à la réalisation d’applications de combinatoires telles que celles requises par les agences de voyages, par exemple, qu’il fit dire à Philippe Kahn : « Qu’on ne parle plus désormais d’intelligence artificielle ! C’était un nom du passé pour un domaine de recherche. Nous sommes aujourd’hui à l’époque des réalisations, et on va réaliser maintenant des applications professionnelles programmées en PROLOG comme on en programmait hier en COBOL ». L’avenir lui donna tort sur le court terme.