# Matematico Automatico

Il Matematico Automatico (in inglese Automated Mathematician, abbreviato in AM) è stato uno dei primi sistemi di scoperta, ovvero intelligenze artificiali per la scoperta di concetti e leggi scientifiche, ad avere successo. Fu creato da Douglas Lenat tramite linguaggio di programmazione Lisp, e nel 1977 valse a Lenat il conferimento dell'IJCAI Computers and Thought Award.
Il Matematico Automatico funzionava tramite la generazione e la modifica di piccoli programmi in Lisp che erano poi interpretati come definizione di svariati concetti matematici; per esempio, un programma che testava l'uguaglianza tra le lunghezze di due liste era considerato rappresentare il concetto di uguaglianza numerica, mentre un programma che produceva una lista la cui lunghezza era il prodotto delle lunghezze di due altre liste era interpretato come rappresentazione del concetto di moltiplicazione. Il sistema possedeva euristiche elaborate per scegliere quali programmi estendere e modificare, basate sull'esperienza dei matematici al lavoro nella risoluzione di problemi.

## La controversia

Lenat affermava che il sistema era composto da centinaia di strutture dati chiamate "concetti", e da centinaia di "regole euristiche" e un semplice flusso di controllo: "Il Matematico Automatico seleziona ripetutamente il compito in cima all'agenda e prova a svolgerlo. Questa è tutta la struttura di controllo!". Ma le regole euristiche non erano sempre rappresentate da strutture dati separate; qualcuna doveva essere intrecciata con la logica del flusso di controllo. Alcune regole avevano precondizioni che dipendevano dalle operazioni precedenti, altrimenti non avrebbero potuto essere rappresentate nella struttura delle regole esplicite.
Inoltre, la versione pubblicata delle regole spesso impiega termini vaghi non ulteriormente definiti, come "Se due espressioni sono simili strutturalmente..." (Regola 218) oppure "...sostituisci il valore ottenuto con un altro (molto simile)..." (Regola 219).
Un'altra sorgente di informazioni è l'utente attraverso la Regola 2: "Se l'utente si è recentemente riferito a X, imposta la priorità su qualsiasi applicazione che coinvolga X." Quindi, sembra abbastanza probabile che molto del reale lavoro di scoperta si sia basato su procedure non spiegate.
Secondo Lenat, in una notte, il programma, che conosceva solo la definizione di "classe", "unione", "intersezione" e qualche regola logica per organizzare i concetti aveva "scoperto" i numeri naturali, l'addizione, la moltiplicazione, i numeri primi. Aveva anche inventato i concetti opposti di numeri primi, che erano sconosciuti allo stesso Lenat, nonché riscoperto la congettura di Goldbach. Critiche successive accusarono Lenat di interpretare l'output del Matematico Automatico in un modo troppo preciso. Nel suo scritto Perché Matematico Automatico ed Eurisko sembrano funzionare, Lenat ammise che qualsiasi sistema che generasse programmi in Lisp sufficientemente corti avrebbe generato quelli che potevano essere interpretati da un osservatore esterno come rappresentazione di sofisticati concetti matematici. Comunque, sosteneva che questa proprietà era interessante in se stessa e che una direzione promettente per ulteriore ricerca sarebbe stata cercare altri linguaggi in cui corte stringhe casuali avessero le caratteristiche per essere utili.

## Il successore

Quest'intuizione fu alla base del successore di Matematico Automatico, Eurisko, che tentava di generalizzare la ricerca di concetti matematici alla ricerca di utili strategie euristiche. Lo stesso Lenat, nel 1984, ha poi creato Cyc, un altro ambizioso programma con uno scopo simile.