Logica e filosofia della scienza 2015 2016 Logica 3 [modalità

Transcript

Logica e filosofia della scienza 2015 2016 Logica 3 [modalità
Logica
Algoritmi
Cognizione
Le nozioni di DECIDIBILITÀ e COMPUTABILITÀ
e i loro limiti
Formulazione della logica in termini di teorie formalizzate e di
dimostrazioni (all’interno di teorie formalizzate)
Soluzione effettiva di tutti i problemi logici?
NO!
Problema della Decisione
Dato un qualsiasi enunciato A della logica predicativa, è
possibile determinare se A è vero o falso?
Esiste cioè un algoritmo capace di decidere se, per un
qualsiasi enunciato A, quell’enunciato è vero o falso?
Il problema nascosto è: cos’è un algoritmo?
«Un algoritmo è un procedimento che risolve un determinato
problema attraverso un numero finito di passi elementari.»
(Wikipedia)
ALGORITMO
Concetti vaghi e indefiniti:
‘PROCEDIMENTO’, METODO’,.....
MACCHINA
DI TURING (MdT):
Concetto preciso
LOGICA
Decidibilità/Indecidibilità
Ricorsività
COMPUTABILITÀ
TEORIA DEGLI ALGORITMI
Linguaggio come strumento cognitivo
(‘Produzione’ linguistica come fenomeno computabile)
LINGUISTICA
I sistemi cognitivi umani
producono espressioni
linguistiche ‘adeguate’
al contesto e in tempi ‘corretti’
Chiarificazione della nozione di algoritmo
Definizione di un modello astratto di computazione
(Macchina di Turing [MdT])
Assunzione:
la MdT (modello astratto) include in realtà le caratteristiche
fondamentali di ogni possibile procedura di calcolo, cioè
di ogni possibile algoritmo.
I FONDAMENTI DELLA NOZIONE DI MdT
↓
Assunzione ‘qualitativa’ di Turing:
le condizioni più generali di un modello astratto di un
generico processo di calcolo sono proprio i vincoli ai
quali deve sottostare un qualsiasi generico agente
razionale che debba eseguire un calcolo.
Idea di fondo: questi vincoli sono legati ai limiti
percettivi e computazionali generali di sistemi cognitivi
Intuizione fondamentale alla base della MdT
Un agente razionale C dispone di una memoria e di
capacità percettive limitate.
Se assumiamo che lo spazio a disposizione di C per
eseguire il calcolo sia rappresentato da un nastro
unidimensionale potenzialmente infinito, quali sono le
possibili operazioni che C è in grado di eseguire?
1.
C può osservare delle caselle sul nastro e scrivere
sul nastro dei simboli tratti da un alfabeto finito;
2. C può ricordare risultati determinati da passi
precedenti del calcolo e utilizzare tale informazione nel
seguito del calcolo;
3. Ogni operazione elementare che C può eseguire è
determinata univocamente da ciò che C osserva e
ricorda (cioè dal contenuto delle caselle osservate e dal
contenuto degli stati interni).
Se con Turing assumiamo che le condizioni 1-3 siano le
condizioni che possiamo assumere per un generico
processo di calcolo, allora è possibile sostenere la
seguente tesi:
TESI DI CHURCH-TURING
Ogni processo di calcolo effettivo (cioè ogni ‘algoritmo’)
può essere realizzato mediante una macchina di Turing.
IMPORTANTE! LA TESI DI CHURCH-TURING NON È
UN TEOREMA MA ‘SOLO’ UNA TESI SULLA NATURA
DELLA CALCOLABILITÀ
Infatti nella formulazione della tesi di Church-Turing
«Ogni processo di calcolo effettivo (cioè ogni ‘algoritmo’)
può essere realizzato mediante una macchina di Turing»
si utilizza il concetto di algoritmo, che come abbiamo
visto, è in sé un concetto vago.
La tesi di Church-Turing non è dunque altro che la
formulazione esplicita della convinzione che la nozione
di MdT rappresenti in modo adeguato il concetto intuitivo
di calcolabilità, algoritmicità o risolvibilità mediante
procedura effettiva.
Ma come è fatta una MdT?
Una MdT è definita da:
–
–
–
–
–
un nastro
una testina
uno stato interno
un programma
uno stato iniziale
Il nastro
Il nastro è
* Infinito (cioè potenzialmente illimitato)
* suddiviso in celle
In una cella può essere contenuto un simbolo preso da
un alfabeto opportuno
Un alfabeto è semplicemente un insieme di simboli
Una cella deve contenere un simbolo che appartiene
all’alfabeto
Lo stato interno e la testina
La macchina è dotata di una testina di lettura/scrittura
La testina è in grado di leggere e scrivere il contenuto
della cella del nastro su cui si trova
La macchina ha uno stato interno
Uno stato è un elemento appartenente all’insieme degli
stati
Il programma di una MdT
Il comportamento della macchina è determinato da un
insieme di regole
Una regola ha la forma seguente:
(A, a, B, b, dir)
Una regola viene applicata se lo stato corrente della
macchina è A e il simbolo letto dalla testina è a
L’applicazione della regola scrive sul nastro b, cambia lo
stato in B ed eventualmente sposta la testina di una cella
a sinistra o a destra (dir)
Il funzionamento di una MdT
La macchina opera come segue:
Determina la regola da applicare in base allo stato interno
e al simbolo corrente (quello letto dalla testina)
Se esiste una tale regola cambia lo stato, scrive il simbolo
sulla cella corrente si sposta come indicato dalla regola
Se non esiste la regola l’esecuzione termina
In questo modello non può esistere più di una regola per uno
stato ed un simbolo corrente: la MdT è un sistema
deterministico
Torniamo al nostro
Problema della Decisione
Data un qualsiasi enunciato A di LP, è possibile
determinare se A è vero o falso? Esiste cioè un
algoritmo’
capace di decidere se, per un qualsiasi enunciato A di
LP, quell’enunciato è vero o falso?
Ora sappiamo cos’è un ‘algoritmo’: una MdT!
Vediamo allora il Problema della Decisione in termini di
MdT:
Data un qualsiasi enunciato A, esiste una MdT capace di
decidere se A è vero o falso?
Teorema di Turing (1936)
Non esiste alcuna MdT capace di risolvere
il problema della decisione!
Vediamo perché (in termini qualitativi).
Intuitivamente, possiamo indicare una MdT come un
algoritmo con input e output: l’input rappresenta il ‘dato in
ingresso’ della MdT, mentre l’output rappresenta il risultato
dell’applicazione della MdT all’input.
input
MdT
output
Possiamo cioè indicare una generica MdT usando i
simboli di variabile n e m, cioè:
MdTn
m
MdTn(m)
→ la n-esima MdT
→ possibile input per MdTn
→ output di MdTn per input m
Consideriamo ora la seguente domanda (Problema
della fermata): per m e n generici, la macchina di
Turing MdTn si fermerà per l’input m?
Intuitivamente
“MdTn si ferma
MdTn calcola
per l’input m”
l’output MdTn (m)
“MdTn non si ferma
per l’input m”
MdTn non calcola
l’output MdTn (m)
La domanda
"Per m e n generici, la macchina di Turing MdTn si
fermerà per l’input m?"
può avere però risposta soltanto se esiste un'altra
macchina di Turing, che calcola – dati n, m qualsiasi –
se MdTn si ferma per l'input m o no.
Si dimostra tuttavia che questo algoritmo non può
esistere: il problema della fermata ha soluzione
NEGATIVA. Ma se il problema della fermata non è
risolvibile, allora nemmeno il problema della decisione è
risolvibile: perché?
Formula A
↓
MdT
A è vera
[MdT si ferma
per l’input A]
A non è vera
[MdT non si
ferma per l’input A]
Riassumendo:
Problema della Decisione
RISOLVIBILE per LE
Esiste un algoritmo capace
di decidere ( ≈ tavole di verità)
NON RISOLVIBILE per LP
Non esiste un algoritmo
generale capace di decidere