Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona.

Slides:



Advertisements
Presentazioni simili
INSOLUBILITA’ DEL X PROBLEMA DI HILBERT Tania Notarantonio Luglio 2002.
Advertisements

…da von Neumann al computer quantistico
Cosa sono? Come si risolvono?
I SISTEMI LINEARI.
Sistemi dinamici discreti e computabilità intrinseca
Macchine di Turing e ricorsività generale
I numeri naturali ….. Definizione e caratteristiche
Equazioni di primo grado
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Capitolo 8 Sistemi lineari.
Algoritmi e Programmazione
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
Deduzione naturale + Logica & Calcolabilità
= 2x – 3 x Definizione e caratteristiche
esponente del radicando
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Algoritmi e Dimostrazioni Stefano Berardi
MACCHINE DI TURING Le macchine di Turing sono dispositivi astratti per la manipolazione di simboli, ideati nel 1936 dal matematico e logico britannico.
Iterazione enumerativa (for)
Algoritmi Politecnico di Milano
Ricerca della Legge di Controllo
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Modelli simulativi per le Scienze Cognitive
Il Linguaggio Macchina
MACCHINE DI TURING e ALGORITMI
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
Biologia Computazionale - Algoritmi
Di Crosara Andrea. Ci proponiamo di trovare una strategia risolutiva per lequazione di secondo grado completa dove a, b, c, sono tutti diversi da 0. Utilizziamo.
Logica Matematica Seconda lezione.
Algoritmi e Programmazione strutturata
L’inventore del calcolatore odierno
Antonio Cisternino La Macchina di Turing.
CHI ERA ALAN TURING? Turing fece parte del team di matematici che, a partire dalla base di Bletchley Park, decodificarono i messaggi scritti dalle macchine.
Un esempio: Calcolo della potenza n-esima di un numero reale
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
EQUAZIONI DI PRIMO GRADO
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
Università degli studi di Lecce
CALCOLO LETTERALE Perché?
IO E LA MATEMATICA PROCEDURALE
Dall’analisi del problema alla definizione dell’algoritmo
Modelli computazionali e macchine astratte
La ricorsione.
Calcolo letterale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Algoritmi.
Macchine di Turing (1) Il modello di base ha un controllo finito, un nastro di input diviso in celle e una testa di lettura che esamina una cella alla.
Rappresentazione dell'informazione
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
La codifica dei numeri.
Automi temporizzati.
Conversione binario-ottale/esadecimale
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Problemi, algoritmi e programmazione
Forma normale delle equazioni di 2° grado Definizione. Un'equazione di secondo grado è in forma normale se si presenta nella forma Dove sono numeri.
Divisione tra un polinomio ed un binomio Regola di Ruffini
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Raccogliamo x al primo membro e 2 al secondo:
Le espressioni algebriche letterali
Criteri di divisibilità
DEFINIZIONE. I multipli di un numero sono costituiti dall’insieme dei prodotti ottenuti moltiplicando quel numero per la successione dei numeri naturali.
Giangiacomo GERLA (Salerno), Sistemi di riscrittura contro calcoli numerici EDUCARE ALLA RAZIONALITA’ In ricordo di Paolo Gentilini 9-11 June 2016, Sestri.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
Transcript della presentazione:

Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona

Esempio di funzione effettivamente calcolabile: dato un polinomio di grado n a coefficienti interi determinare il numero dei suoi zeri interi. Trovare, cioè, il numero di soluzioni intere dell’equazione Un procedimento meccanico ben determinato per risolvere il problema si ottiene osservando che una soluzione intera deve essere un divisore del termine noto.

Trovare le soluzioni intere dell’equazione lineare a coefficienti interi. c deve essere un multiplo di (a,b) si trovano con l’algoritmo euclideo del MCD due interi h, k tali che valga ** Una soluzione particolare dell’equazione. Tutte le soluzioni al variare di n Z ottenute aggiungendo le soluzioni dell’equazione omogenea associata ax+by=0.

Trovare le soluzioni intere delle terne pitagoriche cerchiamo le terne primitive Supponiamo a dispari, quindi la scomposizione è sempre possibile. Siano m,n coprimi. c,b sono di opposta parità; c-b, c+b coprimi. Dal confronto tra * e ** somma e differenza tra ° e °°

Per ciascuno di questi problemi abbiamo diversi algoritmi risolutivi. In matematica si desidera trovare algoritmi per classi di problemi sempre più ampie. Negli esempi citati la classe comune è: -Soluzioni intere di un’equazione a coefficienti interi.

Il matematico David Hilbert elencò ventitré problemi di cui il decimo si può formulare così: -esiste un procedimento effettivo (algoritmo) per decidere se, comunque dato un polinomio con coefficienti interi, in un numero finito qualunque di variabili, esso ha radici intere?* * Si parla di “ procedura di decisione”. Nel caso di risposta negativa, si dice che il problema posto è indecidibile.

Per tentare di rispondere a domande di questo tipo dobbiamo prima di tutto tentare di dare una definizione rigorosa di calcolabilità effettiva ( di algoritmo).

La Macchina di Turing La Macchina di Turing 1 Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Macchina di Turing: Struttura (1) È un apparato costituito da: – un nastro monodimensionale, di lunghezza infinita, suddiviso in celle, ognuna delle quali può essere vuota oppure contenere un solo simbolo.

– una testina di lettura/scrittura dei simboli dalle/sulle celle La testina oltre a leggere/scrivere, si può spostare di una cella a sinistra, a destra, oppure può restare ferma.

– una testina di lettura/scrittura dei simboli dalle/sulle celle La testina oltre a leggere/scrivere, si può spostare di una cella a sinistra, a destra, oppure può restare ferma.

– una testina di lettura/scrittura dei simboli dalle/sulle celle La testina oltre a leggere/scrivere, si può spostare di una cella a sinistra, a destra, oppure può restare ferma.

Funzionamento (1) In ogni fase del calcolo, la testina è posizionata su una cella del nastro, contenente un simbolo s i Σ. La TM può svolgere una operazione atomica: – Leggere il simbolo contenuto della cella. – Scrivere un simbolo (eventualmente vuoto) nella cella. – Spostare la testina di un passo (a sinistra o a destra). – Lasciare la testina ferma.

Funzionamento (2) La successione degli eventi precedenti determina in ogni istante uno e un solo stato della TM (TM deterministica). – siano q 1, q 2, …, q n i possibili stati (finiti) di una TM. La configurazione di una TM in un dato istante è la coppia ordinata definita dallo stato corrente q i e dal simbolo s j puntato dalla testina C = sjsj qiqi nastro testina

Funzionamento (3) Ogni TM è programmata per eseguire uno specifico calcolo, cioè dispone delle istruzioni per eseguire quell’unico compito. Le istruzioni hanno la forma: sjsj qiqi Nello stato q i la testina legge Il simbolo s j nella cella puntata Passa allo stato q h scrive sulla cella il simbolos k e si sposta a sinistra, a destra, oppure rimane sulla cella sksk qhqh

Definizione Formale Una TM è una 7-pla TM= – Q insieme finito e non vuoto di stati – Σ alfabeto della macchina – Δ alfabeto di input – δ funzione di transizione δ : (Q x Σ) → (Q x Σ x{L, R, S}) (con L spostamento a sinistra, R a destra, S stop) – q 0 Q stato iniziale – B spazio vuoto (blank) = Σ \ Δ. –F Q insieme degli stati finali.

Esempio di macchina che TERMINA (T). La MDT SUCCESSORE riceve in input una sequenza 01001… che rappresenta un numero in base 2 e lo incrementa di1. -All’inizio la testina è posizionata sulla cifra più a sinistra; -si muove quindi verso destra finché non trova uno spazio bianco; -va a sinistra di un passo; -se trova la cifra 0 scrive 1 e si ferma; -se trova la cifra 1 scrive 0 e va a sinistra di un passo; -se trova lo spazio bianco B scrive 1 e si ferma.

Istruzioni 01B q0q0 q 0 0 Rq 0 1 Rq 1 B L q1q1 q 1 1 Sq 1 0 Lq 2 1 S q2q2 Esempio di macchina che TERMINA (T). La MDT SUCCESSORE Matrice funzionale B 11 BB q0q0

B11BB q0q0 SUCCESSORE

B11BB q0q0 SUCCESSORE

B11BB q0q0 SUCCESSORE

B11BB q1q1 SUCCESSORE

B10BB q1q1 SUCCESSORE

B10BB q1q1 SUCCESSORE

B00BB q1q1 SUCCESSORE

B00BB q1q1 SUCCESSORE

100BB q2q2 SUCCESSORE

Esempio di macchina che NON TERMINA (NT). La MDT CONTATORE riceve in input il simbolo 0 che rappresenta il numero 0 e lo incrementa di1; quindi incrementa di 1 quest’ultimo e così via scrivendo i numeri naturali in base 2. -All’inizio la testina è posizionata sulla cella che contiene 0; -*si muove quindi verso destra finché non trova uno spazio bianco; -va a sinistra di un passo; -se trova la cifra 0 scrive 1 e ripete da *; -se trova la cifra 1 scrive 0 e va a sinistra di un passo; -se trova lo spazio bianco B scrive 1 e ripete da *. 01B q0q0 q 0 0 Rq 0 1 Rq 1 B L q1q1 q 1 1 Rq 1 0 Lq 0 1 R Matrice funzionale

B0BBB q0q0 CONTATORE B

B0BBB q1q1 CONTATORE B

B0BBB q1q1 CONTATORE B

B1BBB q0q0 CONTATORE B

B1BBB q1q1 CONTATORE B

B0BBB q1q1 CONTATORE B

10BBB q0q0 CONTATORE B

10BBB q0q0 CONTATORE B

10BBB q1q1 CONTATORE B

11BBB q1q1 CONTATORE B

11BBB q1q1 CONTATORE B

10BBB q1q1 CONTATORE B

00BBB q1q1 SUCCESSORE B

00BBB q0q0 CONTATORE 1

00BBB q0q0 CONTATORE 1

00BBB q0q0 CONTATORE 1

00BBB q1q1 CONTATORE 1

01BBB q1q1 CONTATORE 1

01BBB q1q1 CONTATORE 1

STOP

Tesi di Turing Nel 1936 Turing propone la seguente ipotesi di lavoro, nota come Tesi di Turing. Una Logical Computing Machine (Turing Machine) può eseguire qualunque calcolo puramente meccanico; se esiste una procedura effettiva per ottenere il valore di una funzione matematica, allora tale funzione è calcolata da una TM. Ogni algoritmo può essere espresso da un’opportuna TM. Tutto ciò che è calcolabile lo è attraverso una TM.

Gödelizzazione (1) Problema: è possibile trattare una TM1 mediante una TM2? – Le TM elaborano ( ricevono in input) codifiche di numeri naturali. – Se riuscissimo a codificare in numeri naturali il comportamento di una TM1, allora si potrebbe definire una TM2 che elabora la prima.

Gödelizzazione (2) Per codificare una TM è necessario codificare opportunamente: – gli stati (finiti); – i simboli dell’alfabeto di input (finiti); – gli spostamenti della testina (finiti); – il blank.

Gödelizzazione (3) Sia una TM provvista: – degli stati q 0, q 1, q 2, …, q n – dell‘alfabeto di input con simboli s 1, s 2, …, s m – del simbolo di blank s 0 (B) – degli spostamenti L, R, S. Associamo ad ogni elemento un numero dispari nel modo seguente: L R S s 0 q 0 s 1 q 1 s 2 q 2 s 3 q 3 … ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ …

Gödelizzazione di una Istruzione Ogni istruzione I può quindi essere associata al numero naturale g(I) (numero di Gödel) I g(I) L’istruzione I= è associata a g(I)=

Gödelizzazione della TM SUCCESSORE. La TM SUCCESSORE è provvista – degli stati q 0, q 1, q 2 – dell‘alfabeto di input con simboli 0,1 – del simbolo di blank B – degli spostamenti L, R, S Associamo ad ogni elemento un numero dispari nel modo seguente L R S B q 0 0 q 1 1 q 2 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

L R S B q 0 0 q 1 1 q 2 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Codificazione delle istruzioni della MdT SUCCESSORE I 1 I 2 I 3 I 4 I 5 I 6 g(I 1 ) = 2 9 ∙3 11 ∙ 5 9 ∙ 7 11 ∙ 11 3 g(I 2 ) = 2 9 ∙3 15 ∙ 5 9 ∙ 7 15 ∙ 11 3 g(I 3 ) = 2 9 ∙3 7 ∙ 5 13 ∙ 7 7 ∙ 11 1 * * g(I 3 ) = g(I 4 ) = 2 13 ∙3 11 ∙ 5 17 ∙ 7 15 ∙ 11 5 g(I 5 ) = 2 13 ∙3 15 ∙ 5 13 ∙ 7 11 ∙ 11 1 g(I 6 ) = 2 13 ∙3 7 ∙ 5 17 ∙ 7 15 ∙ 11 5

Gödelizzazione di una TM Dal momento che una TM è identificata dall’insieme (finito) delle sue istruzioni, allora è possibile associare a ogni TM uno specifico numero di Gödel g(TM), ottenuto nel modo seguente: – Sia n il numero di istruzioni della TM – Si moltiplichino le n potenze aventi come base i primi n numeri primi, e come esponenti, nell’ordine, i numeri di Gödel delle n istruzioni della TM. g(I 1 ) g(I 2 ) g(I 3 ) g(I n ) g( TM) =2 ∙ 3 ∙ 5 ∙ …… ∙ p n

Gödelizzazione di una TM L’insieme infinito di tutte le MT è decidibile tramite il numero di Gödel g(TM). Dato n N, esiste un algoritmo finito ( MT) per decidere se esso è la codificazione di una MT. In altre parole, i codici di tutte le MT possono essere ordinati in un elenco infinito. L’insieme di tutte le MT è un insieme enumerabile ( ricorsivamente enumerabile).

Gödelizzazione di SUCCESSORE. – Il numero di istruzioni è 6. – Si moltiplicano le 6 potenze aventi come base i primi 6 numeri primi, e come esponenti, nell’ordine, i numeri di Gödel delle 6 istruzioni di SUCCESSORE. g(I 1 ) g(I 2 ) g(I 3 ) g(I 4 ) g(I 5 ) g(I 6 ) g( SUCCESSORE) =2 ∙ 3 ∙ 5 ∙ 7 ∙ 11 ∙ 6

Macchina di Turing Universale (1) È possibile definire una particolare TM (la UTM) capace di simulare il comportamento di qualsiasi altra macchina di Turing M.

Macchina di Turing Universale (1) La UTM è una TM che riceve in input: – la codifica di M = g(M) – l‘input di M che denotiamo con la lettera I. Per ogni M e per ogni I – La UTM decodifica le quintuple di M ( le istruzioni di M); – le applica a I (input di M) ottenendo così lo stesso output di M con input I.

Macchina di Turing Universale (2) La UTM è in grado di simulare qualsiasi TM Una TM è una macchina specifica per l’esecuzione di un unico algoritmo La UTM è un’evoluzione della TM in quanto è programmabile: con essa si può eseguire qualsiasi TM e, quindi, qualsiasi algoritmo La UTM rappresenta il passo dalla semplice computabilità alla programmazione.

G(MT) = I = O =10010 UMT I, G(MdT) Input MT O = Output

Il problema della Fermata (1) Stabilire se per ogni MT M e per ogni input I l’esecuzione di M con input I - termina oppure - prosegue all’infinito. Il problema è indecidibile: – Non esiste alcun ALGORITMO (UTM) che, prendendo in INPUT una generica MT e un suo generico input I, produca in OUTPUT un valore che stabilisce se l’esecuzione di M su I termina o continua all’infinito.

Il problema della Fermata (2) Supponiamo per assurdo che il problema della fermata sia decidibile Allora (tesi di Church) esiste una TM Halt che riceve in input la codifica g(M) di una generica TM M e un suo generico input I. Halt produce in output – 1 se il calcolo di M con input I termina (T) – 0 se il calcolo di M con input I non termina (NT)

G(M) = I = T HALT Input M 1 Output NT 0

Il problema della Fermata (3) Ma se esiste Halt come quella definita allora è possibile definire un’altra TM Halt1 che riceve in input g(M) e produce in output – 1 se il calcolo di M con input g(M) termina – 0 se il calcolo di M con input g(M) non termina Infatti Halt1 è un caso particolare di Halt – Non ha più in input la coppia, ma il solo elemento g(M)

M G(M) = T HALT 1 Input 1 Output NT 0

Il problema della Fermata (4) Ma se esiste Halt1 come quella definita allora è possibile definire un’altra TM CONF che riceve in input la codifica di una TM g(M) e – produce in output 0, se Halt1con input g(M) è 0, cioè CONF termina con output 0 se M con input g(M) non termina. CONF(g(M)) = 0 se g(M) = NT; – genera un calcolo che non termina se Halt1 con input g(M) è 1, cioè CONF non termina se M con input g(M) termina. CONF(g(M)) = NT se g(M) =T.

M G(M) = T HALT 1 Input 1 Output NT 0 CONF 0 NT

M G(M) = T CONF Input NT Output NT 0

Il problema della Fermata (5) CONF è una macchina assurda. Se applicata a se stessa, cioè eseguita con input uguale alla sua stessa codifica g(Conf) – CONF termina (con output 0) se e solo se CONF non termina; – CONF non termina se e solo se CONF termina.

CONF G(CONF) = T CONF Input NT Output NT 0

MACCHINAinputoutput M ITNT HALT 10 HALT1G(M)10 CONFG(M)NT0 CONFG(CONF)NT0