Algoritmi, Calcolabilità, Tesi di Church ed applicazione della logica all'informatica
1. Università degli Studi di Camerino – Corso di Laurea Specialistica in Informatica
(Classe 23S) – Anno Accademico 2008/2009
Seminario sul corso di “Logica Matematica II”
Docente: Prof. Toffalori Carlo
Dott. Ficcadenti Stefano
2. Sommario
PARTE 1. ALGORITMI E CALCOLABILITA’. LA TESI DI CHURCH.
• Frege e Hilbert
• Macchina di Turing
• Tesi di Church
• Risultati fondamentali della calcolabilità
PARTE 2. APPLICAZIONI DELLA LOGICA ALL’INFORMATICA.
• Linguaggi e Programmi
• Il problema della certificazione
• Logica e Programmazione logica
• Complessità e calcolabilità polinomiale
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
3. • Frege: “Bergriffsschrift” 1879, assimila il procedimento dimostrativo a un
calcolo, le cui regole sono in un numero finito e tutte esplicite a priori, e la
correttezza dei risultati prescinde dal contenuto delle formule. (calcolo
deduttivo)
Frege e Hilbert
• Hilbert: “Entscheidungsproblem” problema (fondamentale) di decisione,
risolto quando si conosca una procedura per decidere la validità o la
soddisfacibilità di una data espressione logica, mediante un numero finito
di operazioni.
Come definire una procedura meccanica ?
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
4. Macchina di Turing T:
• A insieme finito, detto alfabeto, i cui elementi sono chiamati simboli
• S insieme finito i cui elementi sono chiamati stati di T (0 stato
iniziale di T)
• Un nastro costituito da una fila di caselle, finita ma estendibile in
entrambe le direzioni
Macchina di Turing
entrambe le direzioni
• Un pennino ottico che può leggere e scrivere su una casella alla
volta sul nastro seguendo il programma di T
Ogni istruzione è una quintupla del tipo
[a,s,a’,D,s’]
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
5. Una funzione f:N→N è Turing-computabile se esiste una
macchina di Turing T che avendo in input n simboli nonblank
Turing - computabile
consecutivi, posta in stato 0 col pennino ottico sul primo di tali
simboli, si ferma dopo un numero finito di passi, lasciando
scritti sul nastro f(n) simboli nonblank consecutivi.
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
6. DEFINIZIONE 1. Sia c un numero e g(x,y) una funzione. Sia f data da:
1. f(0) = c;
2. f(n+1) = g(n,f(n))
Allora f è ottenuta per ricorsione primitiva a partire da c e dalla
funzione g.
DEFINIZIONE 2. Sia g(x,y):NxN→N una funzione Turing calcolabile, sia
Ricorsione primitiva e minimalizzazione
DEFINIZIONE 2. Sia g(x,y):NxN→N una funzione Turing calcolabile, sia
ZER(x) l’insieme dei numeri y tali che g(x,y)=0. Si supponga che per
ogni x, ZER(x) sia non vuoto. Allora per minimizzazione di g si ottiene
la funzione f:N→N tale che
f(x)=minimo elemento di ZER(x)
(Kleene 1938) funzioni parziali ricorsive, abrogando la condizione che
ZER(x) non sia vuoto.
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
7. La composizione, la ricorsione e la minimizzazione sono le
operazioni necessarie e sufficienti per ottenere le funzioni
Turing-computabili.
Tesi di Church
TESI
Per ogni funzione f effettivamente computabile c’è una macchina
di Turing che calcola f.
RISULTATO: Equivalenza tra funzioni parziali ricorsive e funzioni
Turing-computabili
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
8. La macchina U, avendo in input un arbitrario
programma X di macchina di Turing e numero y,
Macchina di Turing Universale
programma X di macchina di Turing e numero y,
simula il calcolo X su input y e produce in output
il valore X(y)
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
9. “Non esiste una macchina di Turing H, che avendo in input una
coppia ordinata (X, y) ove X è un elenco di quintuple ed y è un
numero, H si ferma se e solo se la macchina X si ferma avendo in
input y”
Problema della fermata
Turing
Problema della Fermata -> Problema di decisione
Eintscheidungsproblem è insolubile
(indecidibilità della logica dei predicati)
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
10. • Turing Programmazione (1936)
• Fortran, Cobol (1950)
• Pascal (linguaggi modulari)
Linguaggi e Programmi
NUOVA DISCIPLINA
Verifica della correttezza dei programmi (certificazione),
necessaria la verifica in maniera formale tramite la
logica dei predicati
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
11. CERTIFICAZIONE DI UNA MACCHINA DI TURING T
1. scrivere un enunciato E che dice che fissato un input e fissata
l’inizializzazione di T, dopo un certo numero di passi T si ferma su
un certo input;
2. dimostrare E, utilizzando le definizioni della Turing-computabilità
, assieme a tutti gli strumenti matematici disponibili; l’induzione,
Certificazione
, assieme a tutti gli strumenti matematici disponibili; l’induzione,
la teoria dei numeri, l’analisi combinatoria.
TeoremaDimostrazione -> ProgrammaCertificazione
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
12. Programmazione Logica: scrivere un programma per il
calcolo di f significa assiomatizzare f.
Es. R mdT preventivamente istruita con le regole del calculus
ratiocinato che si incaricherà di calcolare f(x), procederà per
deduzioni successive al modo di una dimostrazione matematica.
Logica e programmazione logica
deduzioni successive al modo di una dimostrazione matematica.
Oss. (dettatura di f e di x e la lettura del risultato f(x))
Proporzionalmente all’efficienza che chiediamo alle macchine, esse ci
chiedono di stringare al massimo il nostro modo di fare matematica
(abolendo invenzioni simboliche, immagini geometriche, figure
Retoriche...)
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
13. Le macchine di Turing hanno ancora un ruolo insostituibile
nella teoria e nella didattica della calcolabilità, in quanto
adottate per misurare i costi dei calcoli.
Lettera di Gödel a von Neumann (1956)
Complessità
Lettera di Gödel a von Neumann (1956)
“Considera una macchina di Turing T che avendo in input una
formula F della logica dei predicati e un numero x, decide se F
possegga una dimostrazione di lunghezza ≤x.”
Gödel chiede una stima della crescita della funzione passi(x) al
crescere di x
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
14. Passi(x) ≤ qualche polinomio in x se e solo se la
soddisfacibilità di formule nella logica proposizionale è
decidibile con un numero di passi polinomiale (uno dei
problemi fondamentali e insoluti dell’informatica).
Teoria della Complessità
- Problema della soddisfacibilità
- Problema dell’intersecabilità
- Problema dei francobolli
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
15. DEFINIZIONE:
Un problema Q è decidibile in tempo polinomiale, se
c’è un polinomio r e una macchina di Turing T con
queste proprietà:
avendo qualsiasi input x di lunghezza n, T riesce a
Problema Facile – Classe P
avendo qualsiasi input x di lunghezza n, T riesce a
decidere se x è soluzione di Q entro al più r(n) passi.
Facile = Classe P
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
16. Struttura generale di questi problemi ( es. soddisfacibilità e
francobolli ):
I. Indovinare magicamente un’assegnazione o un’affrancatura
II. Banalmente controllare che tale assegnazione o affrancatura
è soluzione del problema
Problemi Difficili
Es. Congettura di Fermat (Euler)
I.
II. si controlla la validità di questa fattorizzazione con un calcolatore o con
carta e penna.
Classe NP (polinomiale nondeterministico)
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica
6700417641429496729721
5
2
x==+
17. Cook dimostrò nel 1971 che il problema di soddisfacibilità ha un
ruolo emblematico in questa classe: ogni problema in NP è
velocemente riducibile al problema della soddisfacibilità.
Problema della soddisfacibilità
CONCLUSIONE
Chi scoprisse un algoritmo veloce per questo problema risolve in
tempo polinomiale tutti i problemi in NP, ridimensionando
l’importanza della fase inventiva (I) e rispondendo positivamente alla
domanda fatta da Gödel nella lettera a von Neumann
Seminario sul Corso di “Logica Matematica II“ Logica & Informatica