La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona."— Transcript della presentazione:

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

2 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.

3 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.

4 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 °°

5 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.

6 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.

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

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

9 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.

10 – 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.

11 – 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.

12 – 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.

13 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.

14 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

15 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

16 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.

17 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.

18 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

19 B11BB q0q0 SUCCESSORE

20 B11BB q0q0 SUCCESSORE

21 B11BB q0q0 SUCCESSORE

22 B11BB q1q1 SUCCESSORE

23 B10BB q1q1 SUCCESSORE

24 B10BB q1q1 SUCCESSORE

25 B00BB q1q1 SUCCESSORE

26 B00BB q1q1 SUCCESSORE

27 100BB q2q2 SUCCESSORE

28

29 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

30 B0BBB q0q0 CONTATORE B

31 B0BBB q1q1 CONTATORE B

32 B0BBB q1q1 CONTATORE B

33 B1BBB q0q0 CONTATORE B

34 B1BBB q1q1 CONTATORE B

35 B0BBB q1q1 CONTATORE B

36 10BBB q0q0 CONTATORE B

37 10BBB q0q0 CONTATORE B

38 10BBB q1q1 CONTATORE B

39 11BBB q1q1 CONTATORE B

40 11BBB q1q1 CONTATORE B

41 10BBB q1q1 CONTATORE B

42 00BBB q1q1 SUCCESSORE B

43 00BBB q0q0 CONTATORE 1

44 00BBB q0q0 CONTATORE 1

45 00BBB q0q0 CONTATORE 1

46 00BBB q1q1 CONTATORE 1

47 01BBB q1q1 CONTATORE 1

48 01BBB q1q1 CONTATORE 1

49 STOP

50 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.

51 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.

52 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.

53 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 … ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 3 5 7 9 11 13 15 17 19 21 …

54 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)=2 13 3 19 5 17 7 11 11 1

55 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 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 3 5 7 9 11 13 15 17

56 L R S B q 0 0 q 1 1 q 2 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 3 5 7 9 11 13 15 17 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 ) =1.509.541.073.469.000.000.000 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

57 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

58 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).

59 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

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

61 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.

62 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.

63 G(MT) = 100011.. I = 0100.. O =10010 UMT I, G(MdT) Input MT O = 10010 Output

64 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.

65 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)

66 G(M) = 100011.. I = 0100.. T HALT Input M 1 Output NT 0

67 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)

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

69 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.

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

71 M G(M) = 100011.. T CONF Input NT Output NT 0

72 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.

73 CONF G(CONF) = 100011.. T CONF Input NT Output NT 0

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


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

Presentazioni simili


Annunci Google