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