top of page

Saison 1 (2/3) - L’ordinateur : 30 000 fois plus rapide qu’en 1946, mais toujours aussi stupide

  • Macada
  • 16 juil.
  • 7 min de lecture

Dernière mise à jour : 4 sept.

Explorer les possibilités réelles de production des IA, c’est très vaste, alors, idée ! existe-il un goulot d’étranglement qui limite leurs capacités, et dont il serait plus facile d’appréhender le fonctionnement exact ?

La réponse est : oui ! Ce sont des machines qui exécutent les programmes. L’IA ne peut donc pas faire plus que ce que peut faire un ordinateur.

C’est pourquoi, cette première saison de « L’ordinateur, l’IA et le cerveau » se focalise sur la notion d’ordinateur.

Il y a 3 noix :

 - l’introduction de la saison qui cerne les questions à se poser :  S1.1 Peut-on définir un ordinateur comme une 2CV ?

- la définition théorique d’une machine (ci-dessous) : S1.2 L’ordinateur : une machine à écrire dans tous ses états



S1.2 : L'ordinateur : une machine à écrire dans tous ses états



Grenouille philosophe:  L'ordinateur : Quel est-il ? Va-t-il quelque part ? Dans quel état gère-t-il ?
Grenouille philosophe: L'ordinateur : Quel est-il ? Va-t-il quelque part ? Dans quel état gère-t-il ?

Un ordinateur est une machine physique qui matérialise une machine virtuelle que l’on appelle un « modèle de calculabilité ».


Noisette : Si, quand on prononce le mot « calcul », vous avez des additions et autres opérations avec des nombres dans la tête, c’est normal (le calcul arithmétique est souvent le seul type de calcul qu’on appelle ainsi à l’école) Mais, il y a plein d’autres trucs à partir desquels on effectue des opérations de calcul. On peut faire des calculs sur les mots (ex. : découper un mot en préfixe, racine, terminaison de conjugaison, etc.), additionner les couleurs (le jaune et le bleu donnent du vert, etc),... , ou encore raisonner logiquement (ex. l'opération de négation logique se définit très généralement par "ce qui n'est pas vrai est faux et ce qui n'est pas faux est vrai".). Bref, quand vous entendez « calcul » ou « calcul formel » (c’est un pléonasme, en fait), plutôt que des nombres, essayez d’avoir à l’esprit tous les types d’infos et d’opérations dessus que le super calculateur qu’est votre ordinateur est capable de traiter : du texte, des images, des sons, des commandes/instructions, etc.



Tous les types d'infos "calculables" sont (d)écrits avec des lettres (= des caractères).  Le codage binaire, c'est écrire avec un alphabet à 2 lettres représentées par un rond et un bâton ou par "a" et "b". On décode la signification d'un "mot" (= suite de caractères) et on "l'opère" selon son type d'info.
Tous les types d'infos "calculables" sont (d)écrits avec des lettres (= des caractères). Le codage binaire, c'est écrire avec un alphabet à 2 lettres représentées par un rond et un bâton ou par "a" et "b". On décode la signification d'un "mot" (= suite de caractères) et on "l'opère" selon son type d'info.

Et la définition précise d’ordinateur, promise dans l’épisode 1, est la suivante :


Une machine est un ordinateur si, au moins théoriquement, elle atteint la même puissance de calcul qu’un modèle de calculabilité - c’est-à-dire qu’elle peut exécuter tous les algorithmes exécutables par un modèle de calculabilité.


Il existe plusieurs modèles de calculabilité mais ils sont tous équivalents : ce que peut faire l’un, chacun des autres peut le faire, et vice versa.

Noisette : Et ces super calculateurs sont au plafond : on ne peut pas en inventer mathématiquement de plus puissants (cf. un futur article tentant de vous expliquer les limites de puissance et pourquoi elles sont infranchissables, même en théorie).


Le premier modèle de calculabilité est établi par le logicien Alonzo Church (1903-1995, Etats-Unis), et date de 1930.

Il définit quelles sont les fonctions mathématiques - tout type d'info confondu - qu’il est possible de calculer et, parmi elles quelles sont celles qui produiront à coup sûr un résultat.

Car, oui, il y a des problèmes qui ne peuvent pas être être résolu par un calcul. Par exemple: étant donné une personne, est-elle sympa ou pas ? Ou aussi : quel est le dixième élément de l’ensemble des nombres réels ?

Et également des problèmes pour lesquels un calcul existe mais qui risque, dans certains cas, de ne jamais aboutir. Ce qui peut être assez gênant... Pensez à votre ordinateur quand il mouline dans la semoule : est-ce parce que le programme s’est planté ou bien parce qu’il n’a pas terminé les calculs ? (cf. le même futur article sur les limitations du calcul et donc des ordinateurs)


Noisette : Le lambda-calcul (c’est le petit nom du modèle de calculabilité de Church) est le fondement théorique des langages de programmation dits « fonctionnels ». Comme, par exemple, le langage Python, qui est très à la mode chez les informaticiens, ces temps derniers.


Mais, ce n’est pas le modèle de calculabilité à partir duquel sont construits nos ordinateurs (même si des ordinateurs fonctionnels ont été réalisés en recherche, mais sans suite en production commerciale).


Le plus connu, parce que quasi toutes les architectures physiques des machines s’en inspirent, est la « machine de Turing ».

Elle est définie par Alan Turing en 1936.


Et voici cette machine virtuelle :



Schéma d'une  machine de Turing
Schéma d'une machine de Turing

Elle est constituée (cf. schéma):


- d’une mémoire infinie conceptualisée par un « ruban » (celui des anciennes machines à écrire), sur lequel sont écrits les données, généralement traduites en mots n’utilisant que 2 caractères : le rond et le bâton (0 et 1, quoi.) ; ou « a » et « b » (c’est kif kif pour une machine).


- d’une « tête de lecture/écriture » qui pointe un caractère du ruban, et qui peut lire ce caractère, écrire à sa place un autre caractère, et se déplacer au caractère suivant ou précédent. En d’autres termes, les calculs/opérations de base d’une Machine de Turing sont lire/écrire/se déplacer de 1 caractère, à la fois.


- d’un « registre d’états » , une liste d’étapes possibles de calcul où est pointée celle qui est en cours - « l’état » actuel de la machine.

Supposons par exemple, un registre de deux états : e_calcul et e_fin, initialisé au départ à e_calcul avec la tête de lecture au niveau du caractère le plus à gauche


- d’un programme décrit par une liste de règles - dit « table de transitions » -, qui guide la tête de lecture/écriture selon l’état en cours dans le registre d’états.

Par exemple, lié à notre registre à 2 états, supposons les règles :

« quand tu es dans l’état e_calcul, que tu lis « 0 », alors écris « 1 », déplace-toi à gauche, reste dans l’état e_calcul »

« quand tu es dans l’état e_calcul, que tu lis « 1 », alors écris « 0 », déplace-toi à gauche, reste dans l’état e_calcul »

« quand tu es dans l’état e_calcul, que tu lis « caractère vide », alors ne te déplace pas, mets-toi dans l’état e_fin »

Question : que fait ce programme quand sur le ruban il y a écrit : 0 1 0 1 1 1 0 1 0 1 1 1 0 0 ?

(solution en bas de page)


Je vous ai dit plus haut qu’une machine peut faire du calcul arithmétique, syntaxique, logique, etc. Et cela signifie que toutes les opérations de calcul, quelque soit le type des données, peuvent être traduites/(d)écrites avec les opérations lire un caractère, écrire un caractère, se déplacer sur le ruban. On peut faire un programme/une table de transitions qui additionne, qui effectue des déductions logique… ou qui produit une image IA. Cela demande beaucoup plus d’états que pour l’exemple donné, et donc de règles de transition (voire énormément plus, mais la machine ne peut pas s’ennuyer, alors pas de souci). Mais rien d’autre.


Incroyable tout ce qu’une machine qui sait juste reconnaître et écrire des caractères peut faire, non ?! (et incroyable tout ce que notre cerveau imagine à partir de juste des calculs, non ? ;-))


Et on peut reformuler la définition d’ordinateur ainsi :

Un ordinateur est une machine physique qui a la même puissance de représentation qu’une Machine de Turing et la même puissance de calcul.


Le calculateur reconnu comme le premier ordinateur jamais construit est l’ENIAC (IBM et US army) dans sa version de 1946.


Et depuis :

TOUS les ordinateurs - y compris les quantiques - ont EXACTEMENT la même puissance de représentation et de calcul que le premier ordinateur.


Et là, vous vous exclamez : « Hein ! quoi ! mais les ordinateurs d’aujourd’hui sont bien plus puissants que ceux d’hier ! »

Ben non, pas en puissance de représentation : on ne peut toujours pas représenter autre chose que des informations qu’on peut (d)écrire avec des suites de caractères.

Ni non plus en puissance de calcul : tout ce qui est programmable dans un ordinateur actuel l’était aussi - en théorie -dans l’ENIAC.


C’est ce « en théorie » qui fait la différence entre les machines virtuelles et les physiques. Les physiques sont construites pour être utilisées en pratique.

Par des humains. 


Or, le temps et les pannes n’existent pas pour les machines, mais pour les humains, si !  (3ème et dernier épisode de « L’ordinateur : 30 000 fois plus rapide qu’en 1946, mais toujours aussi stupide ») 


-----------

***Solution du programme de la machine de Turing ci-dessus : ce programme remplace les ronds par les bâtons et inversement. La solution est : 1 0 1 0 0 0 1 0 1 0 0 0 1 1

Noisette : notez que si vous vous êtes prêté à l’exercice, beaucoup d’entre vous n’ont certainement pas imité la machine pas à pas jusqu’au bout. Soit ils ont abandonné avant la fin, soit ils ont compris ce qu’elle faisait, et ils ont terminé sans elle d’établir la solution. Parce que faire la machine et calculer, c’est vraiment fastidieux pour un cerveau humain. Notre cerveau n’est pas fait pour ça, ni surtout comme ça : nous avons d’autres moyens cognitifs pour résoudre les problèmes - la compréhension de l’objectif du programme, en l’occurrence -, totalement hors de portée d’une machine. (cf. un futur article sur le cerveau et sa puissance, bien au-delà de celle des ordinateurs.)


————————

Références et crédits

Contribution de :  Macada (autrice et scientifique. Pour en savoir plus : comme elle est aussi rédac' chef des Noix, sa présentation se trouve :  ICI )

Images : Macada

Références dans le texte (ou les images) :

« Qui suis-je ? Où vais-je ? Dans quel état j’erre ? », non attribué officiellement (perso, c’est Gotlib, ma ref. ;-) ), XXe siècle

Pour les références (aux) scientifiques (Church, Turing, modèle de calculabilité, etc) : une flopée de cours et articles d’universitaires trouvables sur le Net (ceux de Macada ne sont pas branchés). À noter que Wikipédia est souvent mathématiquement correct, mais généralement peu pédagogique.




Commentaires


bottom of page