Intrigués par le message d’erreur de leur calculatrice, Annick et Yannick décident de consulter le célèbre robot Johnny-5 qui, après sa brillante carrière cinématographique, est devenu directeur d’une école de langues pour les machines.
Yannick
En travaillant mon devoir de maths hier, j’ai appuyé sur une mauvaise touche de ma calculatrice et elle m’a répondu « ERREUR ».
Annick
Il m’est arrivé la même chose la semaine dernière. La mienne m’a répondu « ERR » lorsque, pour m’amuser, je lui ai demandé de calculer 13 ÷ 0. Comment cette machine fait-elle pour savoir que nous nous sommes trompés?
Yannick
Cette machine et toutes les autres, mon vidéo et mon four à micro-ondes me retournent aussi des messages d’erreur à l’occasion. Si nous allions rencontrer Johnny-5, le nouveau directeur de l’école de langues des machines.
Annick
Bonne idée!
Malgré un emploi du temps chargé comme directeur d’école, Johnny-5 accueille les deux amis et répond à leurs questions.
Annick
Bonjour monsieur 5, nous venons vous rencontrer pour apprendre comment les machines font pour nous comprendre.
Johnny-5
D’abord, vous devez savoir que les machines sont moins intelligentes qu’on le pense. Bien que certaines d’entre elles aient déjà mené l’homme sur la Lune, elles sont toutes limitées. Cela dit, elles nous comprennent de la même façon que nous nous comprenons: à l’aide d’un langage.
Yannick
Comment faites-vous pour montrer à parler aux machines?
Johnny-5
Il est possible de représenter le langage que chaque machine comprend grâce aux automates. Vous savez, pour calculer des aires et des périmètres, on fait de la géométrie. En physique, on représente les forces grâce aux vecteurs. Lorsqu’on s’intéresse à des phénomènes où il est question de variation, on fait appel au calcul différentiel. Et bien les automates, eux, permettent de manipuler mathématiquement le langage des machines.
Automates
La définition habituelle d’automate est très technique. On peut avoir une bonne intuition du concept en imaginant que le schéma ci-contre est une sorte de photographie d’un automate.
Il existe plusieurs sortes d’automates, tout comme il existe plusieurs sortes de machines. Certains automates permettent de représenter le temps écoulé entre les actions, alors que certains autres indiquent la probabilité qu’une action soit exécutée. Nous ne présentons pas ces automates dans cet article, mais il est facile de s’imaginer qu’il peut être utile d’avoir de l’information sur le temps écoulé ou sur la probabilité qu’une action se produise.
Les automates sont fréquemment utilisés en informatique pour représenter le comportement des systèmes informatiques ou des logiciels. Alan Turing (1912-1954) est un de ceux qui ont contribué à développer cette représentation des machines. Il a aussi développé d’autres outils mathématiques plus puissants pour des contextes plus complexes que celui des distributrices de jus. Il a démontré d’étonnants résultats mathématiques concernant ces automates.
Yannick
Pouvez-vous donner un exemple?
Johnny-5
Prenons une machine distributrice. On va toutefois prendre une machine un peu bizarre, je vous expliquerai pourquoi un peu plus loin. Cette machine n’accepte que les pièces de un dollar et elle donne le choix entre du jus de pomme ou du jus d’orange.
Il en coûte un dollar pour un jus et elle ne remet pas la monnaie. Si quelqu’un insère deux pièces par mégarde, il n’a droit qu’à un seul jus. On représente alors le langage qu’elle comprend par le schéma suivant.
Annick
Attends Johnny… je peux t’appeler Johnny?
Johnny-5
Bien sûr!
Annick
Que représentent les flèches et pourquoi y a-t-il des cercles doubles?
Johnny-5
Les cercles sont appelés des états. Les cercles doubles représentent le fait que la machine produit un résultat. Dans ce cas-ci, il s’agit des états où la machine distribue un jus. On les appelle les états accepteurs. Les flèches entre les états représentent les transitions possibles entre les différents états.
Yannick
Pourquoi y a-t-il une flèche qui ne provient d’aucun état et qui arrive à l’état 1?
Johnny-5
C’est pour indiquer l’état initial, l’état dans lequel se trouve la machine au moment où elle attend l’argent.
Yannick
Et pourquoi y a-t-il une flèche qui commence à l’état 2 et qui retourne à l’état 2?
Annick
Je sais, je sais! C’est pour représenter le fait que la machine ne retourne pas la monnaie. Si je mets deux pièces de un dollar, la deuxième pièce est perdue puisqu’il n’y a aucune flèche qui permette de me retourner la monnaie. Si jamais je suis vraiment dans la lune et que je mets six pièces de un dollar, la machine ne me rendra pas mon argent.
Syntaxe/sémantique
C’est grâce aux automates que les machines de tous genres (distributrices, fours à micro-ondes, calculatrices, etc.) arrivent à nous comprendre. Si on demande à une machine d’effectuer quelque chose qui ne respecte pas son automate, elle nous renvoie un message d’erreur. Notez cependant la chose suivante: les automates n’expliquent pas de quelle façon les machines fonctionnent, ils représentent uniquement ce que les machines comprennent. Par exemple, l’automate d’une calculatrice qui admet les quatre opérations élémentaires (+, -, ×, ÷) indique les calculs possibles qui peuvent être effectués, mais cela ne nous donne aucune indication sur la façon dont ce calcul est effectué. En effet, si vous entrez « 4 × 71 = », l’automate nous apprend que la calculatrice comprend cette expression, mais l’automate n’indique absolument pas de quelle façon la calculatrice fait pour trouver la réponse!
C’est la différence entre la syntaxe et la sémantique. Le fait que l’expression « 4 × 71 = » soit compréhensible par une calculatrice relève de la syntaxe, tandis que le fait que la réponse à ce calcul soit « 284 » relève de la sémantique. Les automates sont donc des outils mathématiques syntaxiques.
Johnny-5
Très bien Annick, c’est exact. J’ai une question pour toi, Yannick, pour vérifier si tu as bien compris. La machine passe par quels états si tu mets deux pièces de un dollar et que tu choisis ensuite un jus d’orange?
Yannick
D’abord la machine est à l’état initial, l’état 1. Je mets une première pièce de un dollar, alors la machine passe à l’état 2. Ensuite, par mégarde, j’insère une deuxième pièce de un dollar. La machine revient donc à l’état 2 et rien ne se passe. Je choisis ensuite le jus d’orange, la machine passe à l’état 4 et me donne mon jus.
Johnny-5
C’est très bien. Après avoir distribué la canette de jus, elle a terminé son travail. Si quelqu’un se présente pour insérer de l’argent à nouveau, le processus reprendra à l’état initial.
Annick
Que se passe-t-il si j’appuie sur « pomme », mais que je n’ai pas inséré d’argent?
Johnny-5
Au départ, la machine est à l’état 1. À partir de cet état, les actions « pomme » et « orange » ne sont pas possibles. Si tu essaies quand même de faire une de ces deux actions, la machine répondra « ERREUR ».
Annick
Chaque fois que quelqu’un fait quelque chose qui n’est pas accepté par l’automate, la machine répond « ERREUR »?
Johnny-5
Exactement. Elle répond « ERREUR » ou alors « ERREUR, VOUS DEVEZ PAYER », cela dépend des machines et de la façon dont elles ont été construites.
Yannick
Pourquoi dit-on que c’est un langage compris par cette machine?
Johnny-5
C’est une façon imagée de voir les automates. Si on pense aux actions comme à des mots, les suites d’actions peuvent alors être vues comme des phrases. Un automate permet de décrire toutes les phrases qu’une machine comprend, donc le langage qu’elle parle!
Annick se rappelle alors du problème qui a piqué leur curiosité et essaie de comprendre.
Annick
Est-ce que c’est la même chose pour une calculatrice?
Johnny-5
C’est exactement le même principe, mais ça dépend de quelle calculatrice tu parles…
Annick
Je ne comprends pas.
Johnny-5
Tu vas voir. Commençons par une calculatrice très simple sur laquelle il n’y a que les quatre opérations de base: +, -, ×, ÷. Imaginez à quoi peut ressembler l’automate qui représente une telle machine.
Yannick
Ça doit être extrêmement compliqué!
Annick
C’est bien vrai. Il y a énormément de nombres possibles qui peuvent être écrits. Ces nombres n’ont pas nécessairement la même quantité de chiffres, on peut faire quatre opérations. Ça doit être géant!
Johnny-5
C’est juste, mais on peut quand même en avoir une petite idée. D’après vous, sur un tel automate, quelle est la dernière action possible avant d’atteindre un état accepteur?
Les deux amis sont bien embêtés…
Johnny-5
À quel moment la calculatrice retourne-t-elle une réponse ?
Yannick
Ça y est, j’ai compris! Lorsqu’on appuie sur la touche « = », c’est à ce moment que la calculatrice retourne une réponse. Pour atteindre un état accepteur dans ce gigantesque automate, il faut donc passer par une flèche identifiée par « = ».
Johnny-5
Excellent. Pouvez-vous me donner une autre indication sur l’allure de l’automate?
Annick
Habituellement, on commence par écrire un nombre. La première transition est donc un chiffre entre 1 et 9.
Johnny-5
Exact. Essayons de voir plus loin encore. On a vu tantôt avec la machine distributrice qu’il n’était pas possible d’appuyer sur « pomme » ou « orange » avant d’avoir inséré de l’argent dans la machine. Qu’est-ce qui peut mener à « ERREUR » avec une calculatrice?
Yannick
Si on écrit « + = », ça ne veut rien dire et ma calculatrice répond « ERREUR »: je l’ai déjà essayé!
Annick
Tu as raison, mais rappelle-toi le problème qui nous a amené ici. Si on écrit par exemple « 13 ÷ 0 », la calculatrice retourne « ERREUR ».
Johnny-5
Il est donc difficile de dessiner tout l’automate, mais il est facile de s’imaginer qu’il n’y a aucune transition dans l’automate qui permette d’écrire « += »,« +÷ »,etc. De plus, il n’y a aucune transition qui permette d’écrire « ÷ 0 ».
Yannick
On peut aussi dire qu’il y a probablement plusieurs flèches qui se suivent et qui permettent d’écrire tous les nombres: « 99102 », « 105542 », « 5016291111114 », etc.
Annick
Pas tous les nombres, puisque les calculatrices ont un petit écran qui limitent la grandeur des nombres qui peuvent être écrits.
Johnny-5
Vous avez bien compris. Comme vous pouvez le constater, l’automate est extrêmement gros, mais il n’est pas si compliqué. D’ailleurs, si vous pensez à notre machine distributrice du début, il aurait fallu un très grand automate pour représenter une machine plus traditionnelle qui accepte plusieurs pièces de monnaie différentes, qui remet la monnaie et qui offre plus de possibilités que seulement deux jus.
Il n’en demeure pas moins que les automates sont souvent utilisés par les informaticiens, et ce, même pour les systèmes très complexes. Il y a plusieurs façons de travailler avec les grands automates.
Mais revenons à notre calculatrice. Vous m’avez demandé si une calculatrice peut être représentée par un automate, et je vous ai répondu que ça dépendait de votre calculatrice. Je vais maintenant vous expliquer pourquoi.
De nos jours, presque toutes les calculatrices permettent d’écrire des expressions avec des parenthèses « ( » et « ) ». Qu’est-ce qu’on doit faire quand on écrit une expression avec des parenthèses?
Yannick
On doit toujours refermer les parenthèses. Notre professeur de mathématiques n’arrête pas de nous le répéter. Par exemple, l’expres- sion suivante est incorrecte « 5 × ( 4 + 3 » parce que la parenthèse n’a pas été fermée.
Annick
Oui, ou alors la suivante est mal écrite « 5 × ( 4 – 3 ) ) » parce qu’il y a une parenthèse « ) » de trop.
Johnny-5
Très bien, en termes plus scientifiques, on dit que les parenthèses doivent être bien équilibrées. Comment la calculatrice fait-elle pour vérifier si les parenthèses sont bien équilibrées?
Yannick
C’est facile, on en parle depuis tout à l’heure, à l’aide d’un automate.
Johnny-5
Je vais vous étonner: non!
Annick
Pourquoi non?
Johnny-5
Imaginez-vous donc que c’est impossible.
Yannick
Comment impossible! À nous trois, je suis certain qu’on peut arriver à dessiner un tel automate.
Johnny-5
Attention, ce que je veux dire, c’est que peu importe l’automate que tu dessineras, il ne sera jamais capable de vérifier si les parenthèses sont bien équilibrées dans une expression quelconque. Il n’existe AUCUN automate qui soit capable de le faire.
Yannick
Je suis bouche bée.
Annick
Pourquoi en est-il calculatrices font-elles alors pour vérifier si les parenthèses sont bien équilibrées?
Yannick
Et si un problème apparemment aussi simple ne peut pas être représenté par un automate, comment peut-on représenter les problèmes que nous soumettons aujourd’hui à nos ordinateurs personnels?
Johnny-5
Une question à la fois! La raison pour laquelle un automate ne peut pas modéliser le problème des parenthèses bien équilibrées est un peu compliquée. Revenez donc me voir lorsque vous serez en semaine de relâche : on aura amplement le temps d’en discuter. Comment fait-on alors pour représenter un tel problème ? Il faut utiliser un outil un peu plus puissant qui s’appelle un automate à piles. Cet automate ressemble à ceux que nous avons vus, mais il peut, de plus, compter un certain nombre de choses, comme le nombre de parenthèses présentes dans une expression par exemple.
Finalement, pour répondre à ta question Yannick, non seulement les automates ne sont pas assez puissants pour modéliser les problèmes traités par nos ordinateurs personnels, mais les automates à piles ne le sont pas non plus. Il faut faire appel à ce que nous appelons les machines de Turing pour y arriver. Ces outils mathématiques sont beaucoup plus complexes et permettent de représenter pour ainsi dire tout ce qu’un ordinateur peut comprendre.
Voilà! J’espère que j’ai répondu à vos questions.
Annick et Yannick
Merci Johnny, tu nous as énormément éclairés sur le sujet. Nous reviendrons certainement te voir prochainement.
Alan Turing
(1912-1954)
Alan Turing est né à Paddington, un quartier de Londres en Angleterre. Dès son jeune âge, il montrait un intérêt marqué pour les nombres et les puzzles. Il a commencé ses études universitaires en mathématiques au King’s College à Cambridge. Il a poursuivi au doctorat à l’Université de Princeton (États-Unis) où il a obtenu son diplôme en 1938.
Turing était fasciné par l’idée de construire une machine qui pourrait penser comme un humain. Il souhaitait entre autres construire un appareil qui pourrait résoudre de gros problèmes mathématiques à notre place. Il est considéré comme le père de l’informatique parce que les automates qu’il a étudiés permettent de bien comprendre l’ordinateur moderne. De plus, il a construit plusieurs machines qui sont les ancêtres des premiers ordinateurs.
Pour en s\(\alpha\)voirplus !
BROOKSHEAR, J.G. Formal languages, automata and complexity. The Benjamin Publishing Company Inc., 1989.
SALOMAA, A. Introduction à l’informatique théorique: calculabilité et complexité, A. Colin, Paris, 1989.