Vorrei qualche spiegazione sulla cosiddetta “tesi di Church” per quanto riguarda algoritmi ed informatica e perché è importante.

La domanda potrebbe richiedere una risposta molto lunga, viste le molte
interpretazioni e applicazioni di questa teoria. Ma per fortuna a noi
interessa la sua applicazioni solo in informatica, per cui si può iniziare
col dire che la tesi di Church in realtà viene quasi sempre nascosta dietro
un’altra tesi, quella di Turing che chiunque si occupi di informatica
conosce o dovrebbe conoscere, anche solo per sentito dire, se non la tesi
almeno il test di Turing.

La prima versione di questa tesi potrebbe sembrare banale:

“I problemi matematici possono essere risolti solo da operazioni matematiche”

In effetti è chiaro che un problema matematico non possa essere risolto
con nozioni di medicina, o speculazioni filosofiche (anche se… 🙂 ).
A parte questo commento poco costruttivo, possiamo analizzare la tesi
in modo più attento, e giungere ad una conclusione ben più interessante.
Infatti se tutti i problemi matematici possono essere risolti con operazioni
matematiche, e se avessimo a disposizione una macchina in grado di risolvere
problemi matematici, le cose cambiano.

Prima dell’avvento di questa macchina (e anche dopo 🙂 ), gli stessi
problemi venivano risolti da esseri umani, che inevitabilmente eseguivano
operazioni matematiche, per cui almeno in parte la macchina e l’uomo svolgevano
le stesse operazioni. A questo punto interviene Turing che riprendendo
questa semplice tesi, aggiunge (Tesi di Church-Turing):

Ciò che può essere calcolato da un essere umano può essere calcolato
anche da una macchina

A cui si possono unire le seguenti affermazioni collegate alla prima:

Ciò che può essere calcolato da una macchina è calcolabile cicli
di operazioni e/o con funzioni ricorsive o parzialmente ricorsive.

Ciò che puo’ essere calcolato da un essere umano è calcolabile
con cicli e/o funzioni ricorsive oparzialmente ricorsive.

E’ importante sottolineare che la tesi di Church-Turing non è dimostrabile
come un teorema matematico, è semplicemente un’ipotesi sui procedimenti
usati dal cervello umano per risolvere i problemi.

Come ultima citazione (lo prometto) riporto la versione di Hardy che
trovo abbastanza divertente:

In fondo tutti i matematici sono isomorfi (nel senso che compiono
più o meno le stesse operazioni)

Da cui deriva la tesi Church-Turing versione isomorfismo:

Supponiamo che esista un metodo che un essere senziente possa seguire
per risolvere un problema e che permetta di ottenere un risultato in ogni
caso e in un tempo finito. Allora esiste un qualche programma che da esattamente
le stesse risposte del metodo dell’essere senziente.

e non si ferma quì:

Inoltre il processo mentale ed il programma sono isomorfi, nel
senso che a un qualche livello, vi è una corrispondenza tra i passi che
vengono compiuti nella macchina e nel cervello.

Credo che a questo punto sia chiara l’importanza di questa tesi. Tanto
per iniziare ci suggerisce che se riusciamo a risolvere un problema (noi
esseri senzienti), esisterà un programma elaborato da una macchina, che
lo potrebbe risolvere al posto nostro. Ma soprattuto fa sorgere il dubbio
se sia possibile estendere il ragionamento non solo ai problemi matematici,
ma anche a tutti gli altri e quindi se sia possibile realizzare una macchina
pensante.

Vorrei sottolineare che non ho messo la parola pensante tra virgolette,
perché in effetti una macchina pensante già esiste e siamo noi stessi.
Probabilmente mi si potrebbe accusare di avere una visione meccanicista
della vita, in cui non trova posto il sovrannaturale (in cui molti credono),
o la religione con tutti i suoi annessi e connessi (l’anima, gli angeli,
Dio, …), ma questo è un discorso che esula dall’argomento.

Prima di terminare non posso evitare una breve citazione del più famoso
test di Turing, pensato per poter stabilire se ci si trova davanti una
reale macchina pensante e quindi se si è giunti alla realizzazione del
sogno di una delle branche più affascinanti della scienza dell’informazione.

Nel test si devono avere tre stanze comunicanti tra loro solamente con
un dispositivo che permetta uno scambio verbale senza vedere l’interlocutore
o ascoltare la sua voce, insomma senza sapere nulla dell’altro se non
il contenuto dei suoi messaggi. In una delle stanze ci sarà una sorta
di giudice e nelle altre due (isolate tra di loro) un essere umano e l’ipotetica
macchina pensante.

Se dopo un certo numero di scambi di messaggi il giudice, non riesca
a decidere o peggio si sbagli nel dire quale sia la macchina e quale l’uomo,
ci si troverà difronte alla prima macchina intelligente.

Forse non sarà un test sicuro al cento per cento, anche considerando
che in passato ci si è andati vicino con un programma passato alla storia
con il nome di Eliza, e che a differenza di quello che pensava Turing
non poteva certamente definirsi intelligente. Comunque la ricerca continua
e probabilmente non si riusciranno a vedere risultati interessanti per
molti anni.

L’ultima cosa che vorrei aggiungere è che questo tipo di approccio, in
realtà non è l’unico, e forse il più promettente si stà rivelando quello
delle reti neurali che sostituiscono la sequenza di operazioni previste
dalla macchina di Turing, con una rete neurale artificiale, in cui la
vera elaborazione non si trova un una singola entità computante, ma nella
cooperazione di piccole e semplici macchine (neuroni), che in numero molto
elevato lavorano contemporaneamente svolgendo solo una piccolissima frazione
del tutto. Alcuni risultati di questo approccio sono le memorie associative
di Hebb, e il Perceptron con cui si riescono a riconoscere delle forme
e quindi una sorta di senso della vista artificiale