Calcolabilit` e Complessit`                                  a             a                                     Andrea As...
Content  A:Calcolabilit`                a     Numerabilit` e diagonalizzazione                   a     Ricorsione Primitiv...
Obiettivi del corso   Fornire una introduzione alla teoria della calcolabilit` e della complessit`, al                    ...
Approfondimenti bibliografici   Calcolabilit`               a          S. Barry Cooper, Computability Theory, Chapman & Hal...
Numerabilit` e diagonalizzazione - Lezioni 1 e 2           a          Enumerare, contare, calcolare          Quali insiemi...
Numerabilit`           a   Un insieme A si dice numerabile se esiste una funzione suriettiva f dall’insieme   dei numeri n...
Aggiungere un elemento   Lemma   Sia A numerabile. Allora {∗} ⊕ A ` ancora numerabile.                                    ...
Aggiungere una quantit` numerabile di elementi                      a   Lemma   L’unione di due insiemi numerabili A e B `...
Muoversi tra due infiniti: dovetailing   Cerchiamo una funzione biunivoca da N × N in N .   Un modo alternativo di descrive...
Codifica delle coppie del piano   La somma delle componenti i ed j per i punti su di una stessa diagonale `e   costante e p...
Corollari   Lemma   Il prodotto cartesiano di due insiemi numerabili ` numerabile.                                        ...
Sequenze ordinate, stringhe, linguaggi   Lemma   Se A numerabile, anche        i∈N   Ai ` numerabile.                     ...
Il teorema di Cantor   Cantor   Dato un insieme arbitrario A, non pu` esistere una funzione suriettiva da A in            ...
Il paradosso di Russel   Russel   Sia U = {x|x ∈ x}. Allora                                      U∈U⇔U∈U   Principio di co...
Il problema della definibilit`                            a   Le funzioni definibili da N in N sono una quantit` numerabile....
Il paradosso di Berry   Berry   “Sia n il pi` piccolo intero positivo non definibile con meno di 100 caratteri”.           ...
Ricorsione primitiva - Lezioni 3, 4, 5          funzioni ricorsive          ricorsione primitiva          somme e prodotti...
Ricorsione   La definizione di una funzione f si dice ricorsiva se il valore di f su alcuni   argomenti dipende dal valore ...
Ricorsione primitiva - funzioni iniziali   Le seguenti funzioni sono funzioni iniziali del linguaggio primitivo ricorsivo ...
Ricorsione primitiva - schemi composizionali          Composizione          Se h : N n → N e g1 , g2 , . . . , gn : N k → ...
un esempio                                 codice                                              esecuzione                 ...
Abusi notazionali (inlining)                           f1 (x) = x                           f2 (x) = x + 1                ...
Alcune funzioni primitive ricorsive                    Moltiplicazione                                           Predecess...
Somme e prodotti limitati                                                σf (0, x) = f (0, x)            σf (z, x) ≡      ...
Predicati primitivi ricorsivi   Un predicato P ` primitivo ricorsivo se e solo se lo ` la sua funzione                    ...
Applicazioni                                               Divisibilit`                                                   ...
Minimizzazione limitata   Per minimizzazione (µ-ricorsione) si intende la ricerca del minimo intero   positivo µy P(y ) ch...
Coppie e proiezioni   Le funzioni di codifica e decodifica delle coppie sono primitive ricorsive:                           ...
Fibonacci   La seguente definizione non ` primitiva ricorsiva:                              e                             ...
Ricorsione multipla                                           ˆ   Si dice storia di f (y , x) la funzione f (y , x) cos` d...
Ricorsione di coda   Una funzione si dice in forma ricorsiva di coda se la chiamata ricorsiva `                           ...
Ricorsione di coda - dimostrazione   Data la funzione primitiva ricorsiva f si consideri la funzione ricorsiva di coda f’ ...
Ricorsione di coda e iterazione   L’interesse delle funzioni ricorsive di coda consiste nel fatto che possono essere   ric...
Schema di iterazione   Le considerazioni precedenti suggeriscono che sia possibile indebolire lo schema   di ricorsione pr...
Iterazione + coppie   Teorema   Iterazione + Coppie = Ricorsione Primitiva.   Consideriamno per semplicit` il caso di una ...
Funzionali di ricorsione e iterazione   Una funzione definita mediante uno schema ricorsivo primitivo o iterativo `        ...
La funzione di Ackermann                            ack(0, 0, y )        =     y                        ack(0, x + 1, y ) ...
Istanze della funzione di Ackermann   Consideriamo le istanze parziali                                      ackz,y x = ack...
Crescita della funzione di Ackermann   Esplicitando i primi livelli della funzione abbiamo:                           ack(...
Iterare un iteratore   Posto                                      next f = Ite 1 f   abbiamo                              ...
Iterare un iteratore   Posto                                      next f = Ite 1 f   abbiamo                              ...
Un linguaggio di ordine superiore: Il sistema T di G¨del                                                    o   TIPI: B, N...
Regole di tipizzazione per T (costanti)                    0        :    N                    S        :    N →N          ...
Regole di tipizzazione per T (termini strutturati)   Predicato di buona tipizzazione                                      ...
Regole di riduzione per T                    (Fst)            (Fst < M, N >) → M                    (Snd)            (Snd ...
Gerarchie di Linguaggi Totali                                        Sistema F                                Funzioni dim...
Il problema dell’Interprete   Sia data una enumerazione effettiva (e.g. lessicografica) Pn dei programmi del   linguaggio L,...
Incompletezza algoritmica dei Formalismi Totali   Supponiamo che esista u tale che I (n, m) = ϕu (n, m) = ϕn (m).   Consid...
Le Macchine di Turing e la Tesi di Church - Lezioni 6, 7          Costrutti computazionali potenzialmente divergenti      ...
Alcuni importanti costrutti potenzialmente divergenti          goto          cicli while          minimizzazione (µ-ricors...
Sulla auto-applicazione   L’auto applicazione induce divergenza. Posto                                            f x =x x...
Modelli di calcolo          (Term) rewriting systems (Thue 1914, Post 1920)          Combinatory Logic (Sch¨nfinkel, Curry ...
La tesi di Church   Church   Le funzioni calcolabili sono esattamente quelle intuitivamente calcolabili medi-   ante una p...
La Macchina di Turing                      b     b      b      0      0       1      1      0      b     b                ...
La Macchina di Turing: definizione formale   Una Macchina di Turing (one-tape, deterministica) ` una tupla                 ...
Convenzioni di input-output   input           si suppone che il nastro sia inizializzato con la stringa di input (un      ...
Configurazioni istantanee   Una configurazione ` una descrizione dello stato della computazione ad un dato                  ...
Computazioni                   ∗  La relazione         denota la chiusura transitiva e riflessiva della relazione .  Una fu...
L’essenza della Macchina di Turing   Agente di calcolo con potenzialit` finite, che procede per passi discreti.            ...
La Macchina di Turing Universale   Esiste una MdT Universale che prende in input la sequenza di quintuple di una   macchin...
Numerazioni di G¨del - Lezione 8                o          Numerazioni accettabili          Propriet` utm e smn           ...
Numerazioni accettabili   Sia data una enumerazione ϕk delle funzioni parziali calcolabili a k argomenti.                 ...
Riducibilit` di enumerazioni           a   Siano date due funzioni di enumerazione ϕ, ψ : N → A.      1. ψ ` riducibile a ...
Il teorema di equivalenza di Roger   Roger   Tutte le enumerazioni accettabili di funzioni parziali ricorsive sono equival...
Dimostrazione del teorema di Roger   Sia u l’indice di un interprete per ϕ.          ψ ≤ ϕ ⇔ ψ soddisfa la propriet` utm: ...
Il predicato T di Kleene   Il predicato T di Kleene   Esiste un predicato T (i, n, k, t) tale che      1. ϕi (n) = k ⇔ ∃t ...
La forma normale di Kleene   Il predicato T di Kleene fornisce una visione pi` fine della nozione di interprete,           ...
Funzioni non calcolabili - Lezione 9          Notazione          Terminazione          Totalit`                 a         ...
Un po’ di notazione   Sia ϕi una enumerazione accettabile delle funzioni parziali calcolabili.   Useremo la notazione ϕi (...
Il problema della terminazione   Il test di terminazione ` cosi definito:                           e                      ...
Il problema della totalit`                         a                                                    1       se ϕi e to...
Il problema della equivalenza estensionale di programmi                                                         1     se ϕ...
Tre funzioni simili                                                 1     se ∃n, ϕi (n) ↓                             g (i...
La funzione g   Consideriamo la solita funzione calcolabile h:                                                     0    se...
La funzione g                                                  1    se ∃n, ϕi (n) ↓                             g (i)     ...
La funzione g                                        minimo n, ϕi (n) ↓          se ∃n, ϕi (n) ↓                    g (i) ...
Insiemi ricorsivi e r.e. - Lezioni 10,11          Insiemi ricorsivi          Insiemi ricorsivamente enumerabili (r.e)     ...
Insiemi ricorsivi   Un insieme si dice ricorsivo (o decidibile) se la sua funzione caratteristica `                       ...
Proriet` di chiusura degli insiemi ricorsivi       a   Lemma   Gli insiemi ricorsivi sono chiusi rispetto alle operazioni ...
Insiemi ricorsivamente enumerabili   Un insieme si dice ricorsivamente enumerabile (r.e.) se ` vuoto oppure ` il          ...
Enumerabilit` crescente            a   Lemma   Un insieme A ` ricorsivo se e solo se pu` essere enumerato in modo crescent...
Teorema di complementazione   Teorema   Un insieme A ` ricorsivo se e solo se sia A che A sono r.e.                e   ⇒ o...
Caratterizzazioni equivalenti degli insiemi r.e.   Teorema   Sia A un insieme di numeri naturali. Le seguenti affermazioni ...
Semidecidibilit`               a                    A decidibile                                          A semidecidibile...
Enumerazione degli insiemi r.e.   Possiamo definire una enumerazione W : N → RE dell’insieme RE di tutti gli   insiemi r.e....
Il teorema di proiezione   Teorema di proiezione   Un insieme A ` r.e. se e solo se esiste un insieme B ricorsivo tale che...
Propriet` di chiusura degli insiemi r.e.        a   Teorema   Gli insiemi r.e. sono chiusi rispetto a unione e intersezion...
Propriet` di chiusura rispetto a funzioni        a   Teorema   Siano A, B ⊆ N e f : N → N      1. se A ` ricorsivo e f ` t...
Unioni e interesezioni infinite   Lemma   1) una unione r.e. di insiemi r.e. ` ancora r.e.                                 ...
I teoremi di Rice e Rice-Shapiro - Lezioni 12,13          Insiemi estensionali          Il teorema di Rice          Il teo...
Insiemi estensionali   Un insieme (propriet´) A ⊆ N si dice estensionale (w.r.t ϕ) se per ogni i, j                       ...
Il teorema di Rice   Rice 1953   Una propriet` estensionale di programmi ` decidibile se e solo se ` banale.              ...
Definizione di h   Consideriamo la funzione                                  φh(x) (y ) = φx (x); φa (y )   dove “;” denota...
Uso del teorema di Rice          Uso diretto, per dimostrare che determinate propriet` (essendo                           ...
Monotonia e compattezza   Sia A un insieme estensionale (rispetto a ϕ) di numeri naturali          A ` detto monotono se p...
Rice-Shapiro (monotonia)   Rice-Shapiro (monotonia)   Ogni insieme estensionale A ricorsivamente enumerabile ´ monotono.  ...
Rice-Shapiro (compattezza)   Rice-Shapiro (compattezza)   Ogni insieme estensionale A ricorsivamente enumerabile ´ compatt...
Applicazioni di Rice-Shapiro   I teoremi di Rice-Shapiro permettono di dimostrare facilmente che determinati   insiemi est...
Il teorema del punto fisso di Kleene - Lezione 14          primo teorema di ricorsione          secondo teorema di ricorsio...
Il teorema del punto fisso di Kleene   Teorema del punto fisso (Kleene)   Per ogni funzione totale calcolabile f esiste m ta...
Il secondo teorema di ricorsione   Secondo Teorema di ricorsione di Kleene   Per ogni funzione binaria totale calcolabile ...
Applicazioni del teorema del punto fisso   L’uso del teorema del punto fisso per simulare ricorsione ` particolarmente      ...
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Calcolabilita' e Complessita
Upcoming SlideShare
Loading in …5
×

Calcolabilita' e Complessita

919
-1

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
919
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Calcolabilita' e Complessita

  1. 1. Calcolabilit` e Complessit` a a Andrea Asperti Department of Computer Science, University of Bologna Mura Anteo Zamboni 7, 40127, Bologna, ITALY asperti@cs.unibo.itAndrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 1
  2. 2. Content A:Calcolabilit` a Numerabilit` e diagonalizzazione a Ricorsione Primitiva Le Macchine di Turing e la Tesi di Church Enumerazioni accettabili Funzioni non calcolabili Insiemi ricorsivi e ricorsivamente enumerabili I teoremi di Rice e Rice-Shapiro Il teorema del punto fisso di Kleene Riducibilit` a Calcolabilit` e completezza a La gerarchia aritmetica Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 2
  3. 3. Obiettivi del corso Fornire una introduzione alla teoria della calcolabilit` e della complessit`, al a a fine di chiarire i seguenti concetti: Capire quali problemi possono essere risolti in modo algoritimico Studiare e confrontate diversi meccanismi e costrutti computazionali Fornire una definizione precisa della nozioni di calcolabilit` e di decidibilit` a a Fornire metodi e strumenti per capire se un problema ` o meno decidibile e Comprendere le implicazioni logiche (Teorema di Incompletezza di G¨del) o Fornire una nozione di costo computazionale Classificare i problemi in base alla loro efficienza Studiare la relazione tra calcolo deterministico e nondeterministico Studiare la relazione tra risorse differenti (tempo e spazio) Discutere i principali problemi aperti di teoria della complessit´ a Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 3
  4. 4. Approfondimenti bibliografici Calcolabilit` a S. Barry Cooper, Computability Theory, Chapman & Hall, 2004. N. J. Cutland. Computability: An Introduction to Recursive Function Theory. Cambridge University Press, Cambridge, UK, 1986. P. G. Odifreddi. Classical Recursion Theory: the Theory of Functions and Sets of Natural Numbers, volume 125 of Studies in Logic and the Foundations of Mathematics. Elsevier, 1997. H. Rogers. Theory of Recursive Functions and Effective Computability. MIT press, 1987. Complessit` a Ding-Zhu Du and Ker-I Ko, Theory of Computational Complexity, John Wiley & Sons, 2000 Christos H. Papadimitriou, Computational Complexity, Addison Wesley, 1994 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 4
  5. 5. Numerabilit` e diagonalizzazione - Lezioni 1 e 2 a Enumerare, contare, calcolare Quali insiemi sono enumerabili? Dovetailing Alfabeti, stringhe, linguaggi Diagonalizzazione - Teorema di Cantor Diagonalizzazione e paradossi (Russel, Berry) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 5
  6. 6. Numerabilit` a Un insieme A si dice numerabile se esiste una funzione suriettiva f dall’insieme dei numeri naturali N in A. f ` detta funzione di enumerazione. e N ` numerabile e Ogni sottoinsieme di un insieme numerabile ` ancora numerabile. e Che possiamo dire dei soprainsiemi di N ? Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 6
  7. 7. Aggiungere un elemento Lemma Sia A numerabile. Allora {∗} ⊕ A ` ancora numerabile. e Sia f : N → A la funzione di enumerazione di A. definiamo g : N → {∗} ⊕ A nel modo seguente: g (0) = ∗ g (x) = g (x + 1) = f (x) Chiaramente g ` suriettiva. e Corollario: Sia A numerabile e D finito. Allora D ⊕ A ` ancora numerabile. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 7
  8. 8. Aggiungere una quantit` numerabile di elementi a Lemma L’unione di due insiemi numerabili A e B ` ancora numerabile. e Siano f e g le due funzioni di enumerazione di A e B. A ⊕ B ` allora e enumerato dalla seguente funzione h: h(2x) = f (x) h(x) = h(2x + 1) = g (x) Corollario: Un unione finita di insiemi numerabili ` numerabile. e Corollario: Se D ` finito e A ` numerabile allora D × A ` numerabile. e e e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 8
  9. 9. Muoversi tra due infiniti: dovetailing Cerchiamo una funzione biunivoca da N × N in N . Un modo alternativo di descrivere il problema consiste nella definizione di una politica di visita delle coppie i, j del piano in modo tale che ogni coppia venga ispezionata una ed una sola volta al passo k. k ` la codifica della coppia i, j . e 0 1 2 3 4 ··· i 0 0 1 3 6 10 1 2 4 7 11 2 5 8 12 3 9 13 4 14 . . . j Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 9
  10. 10. Codifica delle coppie del piano La somma delle componenti i ed j per i punti su di una stessa diagonale `e costante e pari al numero di diagonali gi` interamente percorse. Il numero di a punti del piano gi` visitati in queste diagonali ` a e i+j (i + j)(i + j + 1) k= 2 k=0 Per visitare l’elemento < i, j > dovr` ancora percorrere j passi lungo l’ultima o diagonale, per cui i+j (i + j)2 + i + 3j i, j = j + k= 2 k=0 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 10
  11. 11. Corollari Lemma Il prodotto cartesiano di due insiemi numerabili ` numerabile. e Lemma L’unione di un insieme numerabile di insiemi numerabili ` ancora numerabile. e Sia A un insieme numerabile e sia f la sua funzione di enumerazione. {Ba |a ∈ A} una collezione di insiemi numerabili, ciascuno enumerato da una funzione ga . La funzione h : N × N → a∈A Ba definita da h(n, m) = gf (n) (m) ` suriettiva. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 11
  12. 12. Sequenze ordinate, stringhe, linguaggi Lemma Se A numerabile, anche i∈N Ai ` numerabile. e Osservazione: Nel caso in cui A sia finito, l’insieme i∈N Ai non ` altro che e l’insieme di tutte le stringhe definibili sull’alfabeto A. Dunque ogni linguaggio, inteso come sottoinsime di stringhe definite su di un dato alfabeto, ` sempre e numerabile. Corollario: L’insieme delle parti finite di un insieme numerabile ` numerabile. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 12
  13. 13. Il teorema di Cantor Cantor Dato un insieme arbitrario A, non pu` esistere una funzione suriettiva da A in o P(A). Supponiamo che esista una funzione suriettiva g : A → P(A). Consideriamo il seguente insieme: ∆ = {a ∈ A | a ∈ g (a)} ∆ ⊆ A e siccome abbiamo supposto che g sia suriettiva deve esistere δ tale che g (δ) = ∆. Abbiamo allora: δ∈∆ ⇔ δ ∈ g (δ) per definizione di ∆ ⇔ δ∈∆ per definizione di δ Siccome questo ` assurdo, g non pu` essere suriettiva. e o Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 13
  14. 14. Il paradosso di Russel Russel Sia U = {x|x ∈ x}. Allora U∈U⇔U∈U Principio di comprensione P(t) ⇔ t ∈ {x|P(x)} Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 14
  15. 15. Il problema della definibilit` a Le funzioni definibili da N in N sono una quantit` numerabile. Fissiamo un a qualche enumerazione fi . Definiamo una funzione g nel modo seguente: g (x) = fx (x) + 1 g ` ben definita, dunque dovrebbe comparire nel nostro elenco di funzioni e definibili. Supponiamo che g = fk . Abbiamo allora: fk (k) = g (k) = fk (k) + 1 La nozione di definibilit` ` dunque sempre relativa (dipendente dal linguaggio) ae e incompleta; comunque essa venga fissata esistono “buone definizioni” definite che sfuggono alla definizione adottata. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 15
  16. 16. Il paradosso di Berry Berry “Sia n il pi` piccolo intero positivo non definibile con meno di 100 caratteri”. u i numeri definibili con meno di 100 caratteri sono una quantit` finita, a dunque esistono (inifiniti) numeri che soddisfano la propriet` suddetta, e a tra questi deve ne deve esistere uno minino. tale numero ` dunque univocamente determinato dalla definizione di e Berry. ma la definizione di Berry ` piu breve di 100 caratteri: contraddizione. e La “definizione” di Berry non ` ben posta (la nozione di definibilit` non ` ben e a e definita). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 16
  17. 17. Ricorsione primitiva - Lezioni 3, 4, 5 funzioni ricorsive ricorsione primitiva somme e prodotti limitati predicati ricorsivi minimizzazione limitata ricorsione multipla ricorsione primitiva vs. iterazione la funzione di Ackermann ricorsione di ordine superiore incompletezza algoritmica dei formalismi totali Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 17
  18. 18. Ricorsione La definizione di una funzione f si dice ricorsiva se il valore di f su alcuni argomenti dipende dal valore di f su altri argomenti, solitamente pi` “semplici” u rispetto ad una opportuna metrica da definire.  fibo(0) = 1 fatt(0) = 1  fibo(1) = 1 fatt(n + 1) = (n + 1) ∗ fatt(n)  fibo(n + 2) = fibo(n) + fibo(n + 1)  Fattoriale Fibonacci Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 18
  19. 19. Ricorsione primitiva - funzioni iniziali Le seguenti funzioni sono funzioni iniziali del linguaggio primitivo ricorsivo L: 1. le funzioni costanti k cm (x1 , x2 , . . . , xk ) = m con m ∈ N 2. le proiezioni (identit` generalizzate) a πik (x1 , x2 , . . . , xk ) = xi per qualche 1 ≤ i ≤ k 3. la funzione successore s(x) = x + 1 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 19
  20. 20. Ricorsione primitiva - schemi composizionali Composizione Se h : N n → N e g1 , g2 , . . . , gn : N k → N appartengono ad L, anche la seguente funzione f : N k → N ∈ L: f (x) = h (g1 (x), g2 (x), . . . , gn (x)) con x = (x1 , x2 , . . . , xk ) Ricorsione primitiva Se g : N k → N , h : N k+2 → N ∈ L, anche la seguente funzione f : N k+1 → N ∈ L: f (0, x) = g (x) f : f (y + 1, x) = h (y , f (y , x), x) con x = (x1 , x2 , . . . , xk ) Una funzione f ` primitiva ricorsiva se e solo se esiste una sequenza di funzioni e f1 , f2 , . . . , fn = f tale che ogni fi o ` una funzione base oppure ` ottenuta da e e funzioni fj con j < i mediante composizione o ricorsione primitiva. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 20
  21. 21. un esempio codice esecuzione f (2) = f6 (2) = f5 (f1 (2), f1 (2)) f1 (x) = x = f5 (f1 (2), 2) = f5 (2, 2) f2 (x) = x + 1 = f4 (1, f5 (1, 2), 2) f3 (x, y , z) = y = f4 (1, f4 (0, f5 (0, 2), 2), 2) = f4 (1, f4 (0, f1 (2), 2), 2) f4 (x, y , z) = f2 (f3 (x, y , z)) = f4 (1, f4 (0, 2, 2), 2) f5 (0, x) = f1 (x) = f4 (1, f2 (f3 (0, 2, 2)), 2) f5 (y , x) = = f4 (1, f2 (2), 2) f5 (y + 1, x) = f4 (y , f5 (y , x), x) = f4 (1, 3, 2) f ≡ f6 (x) = f5 (f1 (x), f1 (x)) = f2 (f3 (1, 3, 2)) = f2 (3) =4 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 21
  22. 22. Abusi notazionali (inlining) f1 (x) = x f2 (x) = x + 1 f3 (x, y , z) = y f4 (x, y , z) = f2 (f3 (x, y , z)) = y + 1 f5 (0, x) = f1 (x) = x f5 (y , x) = f5 (y + 1, x) = f5 (y , x) + 1 f ≡ f6 (x) = f5 (f1 (x), f1 (x)) = f5 (x, x) Abuseremo la notazione per ragioni di leggibilit` a Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 22
  23. 23. Alcune funzioni primitive ricorsive Moltiplicazione Predecessore mult(0, x) =0 pred(0) =0 mult(y + 1, x) = add(x, mult(y , x)) pred(y + 1) = y Zero Fattoriale zero(0) =1 fatt(0) =1 zero(y + 1) = 0 fatt(y + 1) = mult(s(y ), fatt(y )) Sottrazione Confronto sub(0, m) =m eq(n, m) = zero(add(sub(n, m), sub(m, n))) sub(n + 1, m) = pred(sub(n, m)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 23
  24. 24. Somme e prodotti limitati σf (0, x) = f (0, x) σf (z, x) ≡ f (y , x) : y ≤z σf (z + 1, x) = σf (z, x) + f (z + 1, x) πf (0, x) = f (0, x) πf (z, x) ≡ f (y , x) : y ≤z πf (z + 1, x) = πf (z, x) ∗ f (z + 1, x) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 24
  25. 25. Predicati primitivi ricorsivi Un predicato P ` primitivo ricorsivo se e solo se lo ` la sua funzione e e caratteristica cP . Es: zero e eq. Lemma I predicati primitivi ricorsivi sono chiusi rispetto ai connettivi logici. c¬P (x) = 1 − cP (x) ≡ sub(cP (x), 1) cP∧Q (x) = cP (x) ∗ cQ (x) ≡ mult(cP (x), cQ (x)) Lemma I predicati primitivi ricorsivi sono chiusi rispetto alla quantificazione limitata. Ovvero, se P(z, x) ` un predicato primitivo ricorsivo lo sono anche ∀z≤y P(z, x) e e ∃z≤y P(z, x). c∀z≤y P(z,x) ≡ cP (z, x) z≤y Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 25
  26. 26. Applicazioni Divisibilit` a divide(x, y ) ⇐⇒ ∃n≤y eq(mult(n, x), y ) Primalit` a prime(x) ⇐⇒ x ≥ 2 ∧ ∀y ≤x (divide(y , x) ⇒ y = 1 ∨ y = x) Posso calcolare l’n-esimo numero primo? Pr (0) = 2 Pr (n + 1) = min{p|prime(p) ∧ (p > Pr (n))} Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 26
  27. 27. Minimizzazione limitata Per minimizzazione (µ-ricorsione) si intende la ricerca del minimo intero positivo µy P(y ) che soddifa il predicato P. La minimizzazione si dice limitata se viene fornito un bound alla ricerca. Lemma Le funzioni primitive ricorsive sono chiuse rispetto alla minimizzazione limitata. Dobbiamo dimostrare che se R(y , x) ` un predicato primitivo ricorsivo, allora lo e ` anche µy <z R(y , x). e Consideriamo il predicato primitivo ricorsivo h(y , x) = ∀w ≤y ¬R(w , x) Supponiamo che y0 = µy <z R(y , x). Allora per ogni valore di y < y0 la funzione h(y , x) assume valore 1 e per ogni valore y0 ≤ y < z la funzione h(y , x) assume valore 0. Dunque, y0 ` pari al numero di interi inferiori a z per cui h(y , x) assume valore e 1, ovvero: µy <z R(y , x) = y0 = Σy <z ∀w ≤y ¬R(w , x) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 27
  28. 28. Coppie e proiezioni Le funzioni di codifica e decodifica delle coppie sono primitive ricorsive: i+j (i + j)2 + i + 3j < i, j >= j + k= 2 k=0 fst(p) = µx≤p ∃y ≤p < x, y >= p snd(p) = µy ≤p ∃x≤p < x, y >= p Mediante l’uso di coppie posso restituire in output agglomerati di risultati, cosa che permette di simulare la ricorsione multipla. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 28
  29. 29. Fibonacci La seguente definizione non ` primitiva ricorsiva: e  fibo(0) = 1  fibo(1) = 1  fibo(n + 2) = fibo(n) + fibo(n + 1)  Idea: definire una funzione ausiliaria fibo’ che, su input x restituisca in output la coppia dei valori < fibo(x), fibo(x + 1) >: fibo’(0) = < 1, 1 > fibo’(x + 1) = < fibo(x + 1), fibo(x + 2) > = < snd(fibo’(x)), fst(fibo’(x)) + snd(fibo’(x)) > La funzione fibo’ ` primitiva ricorsiva, e dunque lo ` anche fibonacci: e e fibo(n) = fst(fibo’(n)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 29
  30. 30. Ricorsione multipla ˆ Si dice storia di f (y , x) la funzione f (y , x) cos` definita: ı ˆ f (y , x) = < f (0, x), f (1, x), . . . , f (y , x) >y +1 ≡ << f (0, x), f (1, x) >, . . . >, f (y , x) >2 >2 . . . >2 y La storia di f permette di definire il seguente schema di ricorsione multipla: f (0, x) = g (x) f (y + 1, x) ˆ = h(y , f (y , x), x) Problema: f ` primitiva ricorsiva? e Si, infatti la storia di f ` esprimibile mediante ricorsione primitiva: e ˆ f (0, x) = f (0, x) = g (x) ˆ(y + 1, x) =< f (y , x), f (y + 1, x) >=< f (y , x), h(y , f (y , x), x) > f ˆ ˆ ˆ Si noti che la definizione precedente non dipende da f ma solo da g e h. Infine: ˆ f (0, x) = f (0, x)) ˆ f (y + 1, x) = snd(f (y + 1, x)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 30
  31. 31. Ricorsione di coda Una funzione si dice in forma ricorsiva di coda se la chiamata ricorsiva ` e l’ultima operazione eseguita dalla funzione chiamante. Teorema Ogni funzione primitiva ricorsiva pu` essere espressa in forma ricorsiva (non o necessariamente primitiva) di coda. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 31
  32. 32. Ricorsione di coda - dimostrazione Data la funzione primitiva ricorsiva f si consideri la funzione ricorsiva di coda f’ f (0, x) = g (x) f (0, x, i, acc) = acc f (y + 1, x) = h (y , f (y , x), x) f (y + 1, x, i, acc) = f (y , x, i + 1, h(i, acc, x)) Dimostriamo per induzione su y che, per ogni i f (y , x, i, f (i, x)) = f (i + y , x) Se y = 0, f (0, x, i, f (i, x)) = f (i, x) = f (i + 0, x) Nel caso y + 1, abbiamo f (y + 1, x, i, f (i, x)) = f (y , x, i + 1, h(i, f (i, x), x)) = f (y , x, i + 1, f (i + 1, x)) = f (i + 1 + y , x) per ipotesi induttiva = f (i + y + 1, x) In particolare, f (y , x) = f (y , x, 0, g (x)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 32
  33. 33. Ricorsione di coda e iterazione L’interesse delle funzioni ricorsive di coda consiste nel fatto che possono essere ricondotte banalmente a meccanismi di tipo iterativo. Ad esempio, la precedente funzione f pu` essere calcolata dal seguente o algoritmo ricorsivo: f(y,x1,...,xn):= begin var acc = g(x1,...,xn); for i := 0 to y acc := h(i,acc,x1,...,xn) return acc end ` E possibile dimostrare il seguente risultato: Teorema Le funzioni primitive ricorsive sono tutte e solo quelle for-calcolabili, cio` es- e primibili in un qualunque linguaggio imperativo utilizzando come unici costrutti di controllo di flusso l’if-then-else, il for e la chiamata di funzione non ricorsiva Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 33
  34. 34. Schema di iterazione Le considerazioni precedenti suggeriscono che sia possibile indebolire lo schema di ricorsione primitiva, riducendolo alla mera possibilit` di iterare una a determinata funzione h: f (0, x) = g (x) f (y + 1, x) = h(f (y , x)) Si noti che h non dipende n` da y n` da x. e e In particolare: f (y , x) = hy (g (x)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 34
  35. 35. Iterazione + coppie Teorema Iterazione + Coppie = Ricorsione Primitiva. Consideriamno per semplicit` il caso di una funzione primitiva ricorsiva f con vettore di a argomenti x vuoto: f (0) = a f (y + 1) = h(y , f (y )) Si consideri la funzione ausiliaria f (y ) =< y , f (y ) > e si osservi che f (y + 1) = < y + 1, f (y + 1) > = < y + 1, h(y , f (y )) > = < fst(f (y )) + 1, h(fst(f (y )), snd(f (y ))) > Posto next(p) =< fst(p) + 1, h(fst(p), snd(p)) > la funzione f pu` essere definita iterando next nel modo seguente: o f (0) =< 0, a > f (y + 1) = next(f (y )) Infine, f (y ) = snd(f (y )). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 35
  36. 36. Funzionali di ricorsione e iterazione Una funzione definita mediante uno schema ricorsivo primitivo o iterativo ` e univocamente determinata dalle sue componenti g e h. Questo suggerisce la seguente notazione compatta f (0, x) = g (x) f = Rec g h per f = f (y + 1, x) = h(y , f (y , x), x) f (0, x) = g (x) f = Ite g h per f = f (y + 1, x) = h(f (y , x)) Rec e Ite sono esempi significativi di funzionali, ovvero funzioni di ordine superiore che operaro su altre funzioni. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 36
  37. 37. La funzione di Ackermann ack(0, 0, y ) = y ack(0, x + 1, y ) = ack(0, x, y ) + 1 ack(1, 0, y ) = 0 ack(z + 2, 0, y ) = 1 ack(z + 1, x + 1, y ) = ack(z, ack(z + 1, x, y ), y ) Funzione di Ackermann La funzione di Ackermann ` ben definita, implementabile, e terminante; e tuttavia non ` esprimibile nel formalismo primitivo ricorsivo. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 37
  38. 38. Istanze della funzione di Ackermann Consideriamo le istanze parziali ackz,y x = ack(z, x, y ) In base alle prime due equazioni ack0,y (x) = x + y In base all’ultima equazione abbiamo inoltre che ackz+1,y (x) = ackz,y (ackz+1,y (x − 1)) = ackz,y (ackz,y (ackz+1,y (x − 2))) = ackz,y (ackz,y (. . . ackz,y (ackz+1,y (0)) . . . )) x volte Dunque il risultato di ackz+1,y (x) si ottiene iterando x volte la funzione del livello sottostante ackz,y a partire dal valore base ackz+1,y (0). Le equazione 3 e 4 fissano rispettivamente tale valore base a 0 per z = 1 e a 1 per z ≥ 2. Dunque ack1,y = Ite 0 ack0,y ackz+2,y = Ite 1 ackz+1,y Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 38
  39. 39. Crescita della funzione di Ackermann Esplicitando i primi livelli della funzione abbiamo: ack(0, x, y ) = x +y ack(1, x, y ) = x ∗y ack(2, x, y ) = yx .y .. ack(3, x, y ) = yy x volte La funzione di Ackermann cresce dunque molto velocemente; ad esempio ack(3, x, y ) = 327 > 1014 La complessit` della funzione di Ackermann trascende il potere espressivo del a linguaggio primitivo ricorsivo. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 39
  40. 40. Iterare un iteratore Posto next f = Ite 1 f abbiamo ackz+2,y = next ackz+1,y e in generale (∗) ackz+1,y = Ite ack1,y next z Se per calcolare Ackermann ` sufficiente iterare, perch` non ` primitiva e e e ricorsiva? Perch` (*) richiede di iterare un funzionale (funzione di ordine superiore). e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 40
  41. 41. Iterare un iteratore Posto next f = Ite 1 f abbiamo ackz+2,y = next ackz+1,y e in generale (∗) ackz+1,y = Ite ack1,y next z Se per calcolare Ackermann ` sufficiente iterare, perch` non ` primitiva e e e ricorsiva? Perch` (*) richiede di iterare un funzionale (funzione di ordine superiore). e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 41
  42. 42. Un linguaggio di ordine superiore: Il sistema T di G¨del o TIPI: B, N , T1 × T2 , T1 → T2 TERMINI: variabili : x, y , z, . . . ; costanti : 0, S, True, False, Fst, Snd, If, Rec. coppie < M, N > applicazione (M N) astrazione λx : T .M Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 42
  43. 43. Regole di tipizzazione per T (costanti) 0 : N S : N →N True : B False : B Fst : T1 × T2 → T1 Snd : T1 × T2 → T2 If : T →T →B→T Rec : T → (N → T → T ) → N → T Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 43
  44. 44. Regole di tipizzazione per T (termini strutturati) Predicato di buona tipizzazione Γ M:T leggi: il termine M ha tipo T nel contesto Γ. Il contesto ` un insieme di dichiarazioni di tipo della forma x : Tx . e Ogni variabile libera in M deve essere dichiarata nel contesto. Γ M : T1 Γ N : T2 coppia Γ < M, N > : T1 × T2 Γ M : T1 → T2 Γ N : T1 applicazione Γ (M N) : T2 Γ, x : T1 M : T2 astrazione Γ λx : T1 .M : T1 → T2 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 44
  45. 45. Regole di riduzione per T (Fst) (Fst < M, N >) → M (Snd) (Snd < M, N >) → N (β) (λx : T .M N) → M[N/x] (If true) (If M N true) → M (If false) (If M N false) → N (Rec O) (Rec M N O) → M (Rec S) (Rec M N (S P)) → (N P (Rec M N P)) Remark: il tipo ` invariante per riduzione (subject reduction). e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 45
  46. 46. Gerarchie di Linguaggi Totali Sistema F Funzioni dimostrabilmente totali nell’aritmetica del second’ordine Sistema T Funzioni dimostrabilmente totali nell’aritmetica del prim’ordine Primitive Ricorsive Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 46
  47. 47. Il problema dell’Interprete Sia data una enumerazione effettiva (e.g. lessicografica) Pn dei programmi del linguaggio L, e sia ϕn la funzione calcolata dal programma Pn . Un interprete per L ` una funzione che preso in input l’indice n di un e programma ed un input m simula il comportamento di Pn su tale input, cio` e una funzione I tale che I (n, m) = ϕn (m) Se la numerazione dei programmi ` effettiva, I ` intuitivamente calcolabile. e e Ci chiediamo se l’interprete per L pu` essere scritto in L, cio` se esiste u tale o e che I = ϕu . Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 47
  48. 48. Incompletezza algoritmica dei Formalismi Totali Supponiamo che esista u tale che I (n, m) = ϕu (n, m) = ϕn (m). Consideriamo la funzione f (x) = ϕu (x, x) + 1 = ϕx (x) + 1 Se il linguaggio L ` chiuso per composizione f ∈ L, e dunque deve esistere un e programma i tale che ϕi = f . Ma allora ϕi (i) = f (i) = ϕi (i) + 1 che ` assurdo. e Teorema Nessun formalismo totale ` in grado di esprimere il proprio interprete. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 48
  49. 49. Le Macchine di Turing e la Tesi di Church - Lezioni 6, 7 Costrutti computazionali potenzialmente divergenti La tesi di Church Le Macchine di Turing La Macchina universale Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 49
  50. 50. Alcuni importanti costrutti potenzialmente divergenti goto cicli while minimizzazione (µ-ricorsione illimitata) ricorsione generale costrutti autoreferenziali (auto-applicazione, auto-interpretazione) ... I linguaggi parziali ammettono tipicamente la definizione del loro proprio interprete. Abbiamo una gerarchia infinita di linguaggi parziali con potere espressivo crescente? Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 50
  51. 51. Sulla auto-applicazione L’auto applicazione induce divergenza. Posto f x =x x la computazione di f f non termina. L’auto applicazione permette di simulare la ricorsione. Supponiamo di voler definire una funzione ricorsiva f tale che f x = M[f , x] Consideriamo la funzione ausiliaria h y x = M[y y , x] dove le occorrenze di f in M sono state rimpiazzate dalla auto applicazione y y . Posto f = h h abbiamo f x = h h x = M[h h, x] = M[f , x] Remark: L’auto applicazione ` il tipico esempio di costrutto mal tipato. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 51
  52. 52. Modelli di calcolo (Term) rewriting systems (Thue 1914, Post 1920) Combinatory Logic (Sch¨nfinkel, Curry 1924) o Funzioni definite da equazioni ricorsive (Herbrand 1931, G¨del 1934, o Kleene 1936) λ-calcolo (Church 1936) Turing machines (Turing 1936) Funzioni µ-ricorsive (Kleene 1938) Markov algorithms (Markov 1954) Register machines (Shepherdson, Sturgis 1963) ... Tutti questi modelli (e molti altri) sono computazionalmente equivalenti. Le funzioni esprimibili in questi modelli sono dette funzioni calcolabili. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 52
  53. 53. La tesi di Church Church Le funzioni calcolabili sono esattamente quelle intuitivamente calcolabili medi- ante una procedura effettiva di calcolo. ”Tarski has stressed in his lecture (and I think justly) the great importance of the concept of general recursiveness (or Turing’s computability). It seems to me that this importance is largely due to the fact that with this concept one has for the first time succeeded in giving an absolute notion to an interesting epistemological notion, i.e., one not depending on the formalism chosen.” (G¨del 1946) o Remark: La tesi di Church non pu` essere dimostrata. o Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 53
  54. 54. La Macchina di Turing b b b 0 0 1 1 0 b b q Hardware un nastro di memoria illimitato, diviso in celle di dimensione fissata. Ogni cella pu` contenere un carattere di un alfabeto dato, compreso un o carattere b (bianco) di inizializzaizone. una testina di lettura mobile. un automa a stati finiti. Operazioni elementari leggere e scrivere il carattere individuato dalla testina spostare la testina di una posizione verso destra o verso sinistra modificare lo stato interno dell’automa Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 54
  55. 55. La Macchina di Turing: definizione formale Una Macchina di Turing (one-tape, deterministica) ` una tupla e Q, Γ, b, Σ, δ, q0 , F dove Q ` un insieme finito di stati e Γ ` l’alfabeto finito del nastro e b ∈ Γ ` il carattere bianco e Σ ⊆ Γ {b} ` l’insieme dei caratteri di input/output e q0 ∈ Q ` lo stato iniziale e F ⊆ Q ` l’insieme degli stati finali (o di accettazione) e δ : Q F × Γ → Q × Γ × {L, R} ` la funzione di transizione. e L (left) e R (right) denotano le possibili mosse della testina. Remark: la funzione di transizione ha un grafo finito. Ogni elemento del grafo ` una quintupla (q, a, q , a , M) tale che δ(q, a) = (q , a , M). L’insieme finito e delle quintuple pu´ essere visto come l’insieme delle istruzioni della macchina o (programma), e la determina univocamente. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 55
  56. 56. Convenzioni di input-output input si suppone che il nastro sia inizializzato con la stringa di input (un carattere per ogni cella) la testina ` posizionata sul primo carattere dell’input. e tutte le altre celle del nastro sono inizializzate col carattere speciale b. output nel momento in cui la macchina si arresta l’output ` la pi` lunga stringa e u di caratteri in Γ (in particolare, senza b) alla destra della testina Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 56
  57. 57. Configurazioni istantanee Una configurazione ` una descrizione dello stato della computazione ad un dato e istante della computazione. Questa ` definita come una tripla e σ, q, τ dove q ` lo stato dell’automa e σ e τ sono due stringhe di caratteri che e descrivono la porzione non (definitivamente) bianca del nastro alla sinistra e alla destra della testina. Il carattere in lettura ` il primo carattere di τ . e La computazione avviene per passi discreti: una transizione tra due configurazioni ` una relazione governata dalla funzione di transizione. e σ, q, aτ σa , q , τ se δ(q, a) = (q , a , R) σc, q, aτ σ, q , ca τ se δ(q, a) = (q , a , L) Nelle regole precedenti si suppone che il nastro possa essere esteso “on demand” con caratteri bianchi qualora se ne abbia necessit`.a Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 57
  58. 58. Computazioni ∗ La relazione denota la chiusura transitiva e riflessiva della relazione . Una funzione f : Σ∗ → Σ∗ ` calcolata da una macchina di Turing M se per e ogni α esiste qf ∈ F tale che ∗ , q0 , α σ, qf , τ e f (α) ` il pi` lungo prefisso di τ appartenente a Σ∗ e u Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 58
  59. 59. L’essenza della Macchina di Turing Agente di calcolo con potenzialit` finite, che procede per passi discreti. a Ad ogni passo posso prendere visione di una porzione finita dello spazio (discretizzato) circostante (compreso un eventuale stato interno) modificare una porzione finita di tale spazio, spostarmi di una distanza finita in tale spazio Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 59
  60. 60. La Macchina di Turing Universale Esiste una MdT Universale che prende in input la sequenza di quintuple di una macchina M, un input m e simula il comportamento di M su input m. divido il nastro in una parte superiore ed una inferiore. La parte superiore ` utilizzata per memorizzare le e quintuple della MdT da simulare M, quella inferiore ` il nastro di lavoro, su cui viene inizialmente copiato il e dato di input m; lo stato interno comprende tre “registri” speciali Q, A e S utilizzati per memorizzare rispettivamente lo M stato della macchina M, il carattere di lettura/scrittura e lo shift (R/L) della testina; inizialmente Q = q0 , letto il carattere a sul nastro inferiore, rimpiazzo a con un carattere speciale per ricordare la posizione della testina e memorizzo a nel registro A; procedo dunque a cercare nella parte superiore del nastro una quintupla relativa ai valori correnti di Q e A; quando la trovo, rimpiazzo i contenuti dei registri con il valore del nuovo stato q , del carattere da scrivere a e della mossa da eseguire s; se q ´ finale la computazione si arresta; e torno quindi a cercare il carattere sul nastro iferiore, lo rimpiazzo con il contentenuto di A, eseguo la mossa S e ricomincio il ciclo; Se leggo l’insieme delle quintuple come la codifica numerica (indice) di M, la MdT Universale ` un interprete nel senso precedentemente esposto. e La Macchina Universale permette di eseguire tutti i programmi con un unico hardware: ` a tutti gli effetti l’antesignano del moderno elaboratore elettronico. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 60
  61. 61. Numerazioni di G¨del - Lezione 8 o Numerazioni accettabili Propriet` utm e smn a Riducibilit` di enumerazioni a Il teorema di equivalenza di Roger Il predicato T di Kleene Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 61
  62. 62. Numerazioni accettabili Sia data una enumerazione ϕk delle funzioni parziali calcolabili a k argomenti. i Se la numerazione ` effettiva, ci aspettiamo che esista un interprete: e Propriet` utm (Universal Turing Machine) a Esiste un indice u tale che per ogni x, y ϕu (x, y ) = ϕx (y ) Inoltre ci aspettiamo che esista un modo effettivo per determinare i codici dei programmi ottenuti per valutazione parziale di programmi dati: Propriet` smn a Per ogni funzione parziale calcolabile f m+n esiste una funzione totale calcolabile m sn tale che, per ogni xm , yn ϕsn (xm ) (yn ) = f (xm , yn ) m Una enumerazione che gode delle propriet` utm e smn ` detta accettabile. a e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 62
  63. 63. Riducibilit` di enumerazioni a Siano date due funzioni di enumerazione ϕ, ψ : N → A. 1. ψ ` riducibile a ϕ (in simboli: ψ ≤ ϕ) se esiste una funzione totale e calcolabile f tale che, per ogni numero naturale n, ψn = ϕf (n) 2. ψ ` equivalente a ϕ (in simboli: ψ ≡ ϕ) se ψ ≤ ϕ e ϕ ≤ ψ. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 63
  64. 64. Il teorema di equivalenza di Roger Roger Tutte le enumerazioni accettabili di funzioni parziali ricorsive sono equivalenti tra loro. In particolare ` possibile dimostrare che, supposto ϕ accettabile, e ψ ≤ ϕ ⇔ ψ soddisfa la propriet` utm a ϕ ≤ ψ ⇔ ψ soddisfa la propriet` smn a smn ϕ _ψ < ψ≅ϕ ψ_ϕ < utm Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 64
  65. 65. Dimostrazione del teorema di Roger Sia u l’indice di un interprete per ϕ. ψ ≤ ϕ ⇔ ψ soddisfa la propriet` utm: a ⇒ Se esiste f t.c. tale che ψn = ϕf (n) , allora la funzione ϕu (f (n), m) ´ calcolabile e deve essere enumerata da ψ. e L’indice di tale funzione soddisfa utm. ⇐ Preso u tale che ψu (x, y ) = ψx (y ), per smn esiste s t.c. tale che ϕs(x) (y ) = ψu (x, y ) = ψx (y ). ϕ ≤ ψ ⇔ ψ soddisfa la propriet` smn a ⇒ Sia f t.c. tale che ϕn = ψf (n) . Data una funzione calcolabile g (n, m) esiste s t.c. tale che ϕs(n) (m) = g (n, m); allora f ◦ s soddisfa smn per ψ. ⇐ Si consideri la funzione t.c. ϕu (x, y ) = ϕx (y ); la funzione s tale che ψs(x) (y ) = ϕu (x, y ) riduce ϕ a ψ. Fissare una particolare enumerazione non ` pi` rilevante e u che fissare un sistema di riferimento sul piano cartesiano. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 65
  66. 66. Il predicato T di Kleene Il predicato T di Kleene Esiste un predicato T (i, n, k, t) tale che 1. ϕi (n) = k ⇔ ∃t ≥ k, T (i, n, k, t) 2. la funzione caratteristica di T ` calcolabile e T ` il predicato (intuitivamente calcolabile) che afferma che la computazione e del programma di indice i su input n termina con risorse fissate (e.g. tempo o spazio) t e fornisce come risultato k. Si suppone che le risorse necessarie a produrre k siano almeno pari a k (fissando opportunamente l’unita di misura). Si osservi che anche la funzione caratteristica del predicato T 3 (i, n, t) = ∃k, T (i, n, k, t) ≡ ∃k ≤ t, T (i, n, k, t) ` ancora calcolabile, ovvero e ` E possibile decidere se una computazione si arresta in un tempo dato Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 66
  67. 67. La forma normale di Kleene Il predicato T di Kleene fornisce una visione pi` fine della nozione di interprete, u in cui si evidenzia la nozione di costo computazionale. In particolare Teorema della forma normale di Kleene Per ogni i, n ϕi (n) = fst(µ k,t T (i, n, k, t)) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 67
  68. 68. Funzioni non calcolabili - Lezione 9 Notazione Terminazione Totalit` a Equivalenza Tre funzioni “simili” Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 68
  69. 69. Un po’ di notazione Sia ϕi una enumerazione accettabile delle funzioni parziali calcolabili. Useremo la notazione ϕi (n) ↓ per indicare che la funzione ` definita (converge) e per input n, e ϕi (n) ↑ quando ` indefinita (o diverge) per tale input. e Definiamo dominio (dom) di ϕi il suo insieme di convergenza, ossia dom(ϕi ) = {n|ϕi (n) ↓} Il codominio (cod) di ϕi ` l’insieme dei possibili output: e cod(ϕi ) = {m|∃n, ϕi (n) = m} Le funzioni parziali sono ordinate parzialmente rispetto all’inclusione insiemistica dei loro grafi: ϕi ⊆ ϕj ⇔ ∀n ∈ dom(ϕi ), ϕi (n) = ϕj (n) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 69
  70. 70. Il problema della terminazione Il test di terminazione ` cosi definito: e 1 se ϕi (x) ↓ h(i, x) = 0 se ϕi (x) ↑ Consideriamo ora la funzione f , definita come segue: 1 se h(x, x) = 0 ⇔ ϕx (x) ↑ f (x) = ↑ se h(x, x) = 1 ⇔ ϕx (x) ↓ Se h ` calcolabile lo ` anche f . Dovrebbe dunque esistere m tale che f = ϕm . e e Supposto f = ϕm , ci chiediamo quanto vale ϕm (m): 1 se h(m, m) = 0 ⇔ ϕm (m) ↑ ϕm (m) = ↑ se h(m, m) = 1 ⇔ ϕm (m) ↓ il che ` assurdo. Questo dimostra che e il test di terminazione non ` una funzione calcolabile! e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 70
  71. 71. Il problema della totalit` a 1 se ϕi e totale ` total(i) = 0 altrimenti Consideriamo una funzione ausiliaria definita nel modo seguente: 0 se ϕx (x) ↓ f (x, y ) = ↑ altrimenti La funzione f ` calcolabile. e Per il teorema s.m.n. esiste h totale calcolabile tale che 0 se ϕx (x) ↓ ϕh(x) (y ) = f (x, y ) = ↑ altrimenti Avremmo allora 1 se ϕx (x) ↓ total(h(x)) = 0 se ϕx (x) ↑ Sappiamo che total ◦ h non ` calcolabile, e dunque non lo ` neppure total. e e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 71
  72. 72. Il problema della equivalenza estensionale di programmi 1 se ϕi ≈ ϕj eq(i, j) = 0 altrimenti Consideriamo la funzione costante 0, e sia m un indice per essa. Consideriamo la funzione h della sezione precedente: 0 se ϕx (x) ↓ ϕh(x) (y ) = ↑ se ϕx (x) ↑ Poniamo 1 se ϕx (x) ↓ f (x) = eq(h(x), m) = 0 altrimenti f non ` calcolabile e dunque neppure eq. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 72
  73. 73. Tre funzioni simili 1 se ∃n, ϕi (n) ↓ g (i) ≡ 0 altrimenti 1 se ∃n, ϕi (n) ↓ g (i) ≡ ↑ altrimenti minimo n, ϕi (n) ↓ se ∃n, ϕi (n) ↓ g (i) ≡ ↑ altrimenti Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 73
  74. 74. La funzione g Consideriamo la solita funzione calcolabile h: 0 se ϕx (x) ↓ ϕh(x) (y ) = ↑ se ϕx (x) ↑ 1 se ϕx (x) ↓ f (x) = g (h(x)) = 0 altrimenti f non ` calcolabile e dunque neppure g . e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 74
  75. 75. La funzione g 1 se ∃n, ϕi (n) ↓ g (i) ≡ ↑ altrimenti Accortezza: muoversi con una tecnica di dovetaling tra i due infiniti dei possibili valori di input e del tempo di esecuzione. Sia t(i, n, s) la funzione caratteristica del predicato (ternario) T di kleene. g (i) = µ n, s .t(i, n, s) = 1; return 1 Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 75
  76. 76. La funzione g minimo n, ϕi (n) ↓ se ∃n, ϕi (n) ↓ g (i) ≡ ↑ altrimenti Consideriamo la seguente funzione h totale calcolabile 0 se y > 0 ∨ ϕi (i) ↓ ϕh(i) (y ) = f (i, y ) = ↑ altrimenti ϕh(i) (0) ↓ se e solo se ϕi (i) ↓. Inoltre ϕh(i) (1) ↓. Dunque 0 ϕi (i) ↓ g (h(i)) ≡ 1 altrimenti Se g fosse calcolabile risolveremmo il problema della terminazione diagonale. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 76
  77. 77. Insiemi ricorsivi e r.e. - Lezioni 10,11 Insiemi ricorsivi Insiemi ricorsivamente enumerabili (r.e) Enumerabilit` crescente a Caratterizzazioni equivalenti Il Teorema di proiezione Propriet` di chiusura a Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 77
  78. 78. Insiemi ricorsivi Un insieme si dice ricorsivo (o decidibile) se la sua funzione caratteristica ` e calcolabile. Esempi 1. l’insieme vuoto e l’insieme N di tutti i numeri naturali 2. ogni insieme finito 3. l’insieme dei numeri pari 4. l’insieme dei numeri primi 5. tutti gl insiemi definiti da predicati primitivi ricorsivi Non ogni insieme ` ricorsivo e (contro) Esempio: K = {x|ϕx (x) ↓} Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 78
  79. 79. Proriet` di chiusura degli insiemi ricorsivi a Lemma Gli insiemi ricorsivi sono chiusi rispetto alle operazioni di unione, intersezione e complementazione. Siano A e B insiemi ricorsivi, e siano ca e cB le loro funzioni caratteristiche. Allora: cA (n) = 1 − cA (n) cA∧B (n) = min{cA (n), cB (n)} cA∨B (n) = max{cA (n), cB (n)} Gli insiemi ricorsivi, ordinati rispetto alla relazione di inclusione insiemistica, formano quindi un reticolo booleano (Algebra di Boole). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 79
  80. 80. Insiemi ricorsivamente enumerabili Un insieme si dice ricorsivamente enumerabile (r.e.) se ` vuoto oppure ` il e e codominio di una funzione totale calcolabile (detta funzione di enumerazione). Lemma Ogni insieme ricorsivo ` anche r.e. e Sia A ricorsivo e sia cA la sua funzione caratteristica. Il caso in cui A ` finito ` banale. e e Supponiamo A infinito: f (0) = µy , cA (y ) = 1 f (x + 1) = µy , cA (y ) = 1 ∧ y > f (x) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 80
  81. 81. Enumerabilit` crescente a Lemma Un insieme A ` ricorsivo se e solo se pu` essere enumerato in modo crescente. a o ⇒ si veda la prova del lemma precedente ⇐ Se A ` finito l’asserto ` ovvio. Possiamo dunque suppore A infinito; sia f la e e funzione di enumerazione. Definiamo la seguente funzione: cA (x) = f (µy f (y ) ≥ x) = x (scandisco tutti i dati enumerati da f finch´ non ne trovo uno non inferiore e all’input x: a questo punto arresto la ricerca e verifico se il dato coincide con l’input cercato). Il fatto (non ovvio) che cA ` totale ` una conseguenza del fatto che A ` infinito e e e e dunque cod(f ) contiene valori arbitrariamente grandi (superiori ad ogni x). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 81
  82. 82. Teorema di complementazione Teorema Un insieme A ` ricorsivo se e solo se sia A che A sono r.e. e ⇒ ovvio. ⇐: Supponiamo che A e A siano rispettivamente enumerati da f e g . Poniamo h(2x) = f (x) h(2x + 1) = g (x) h ` suriettiva su N. Sia pari(n) la funzione caratteristica dell’insieme dei e numeri pari. cA (n) = pari(µy (h(y ) = n) cA ` calcolabile e totale. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 82
  83. 83. Caratterizzazioni equivalenti degli insiemi r.e. Teorema Sia A un insieme di numeri naturali. Le seguenti affermazioni sono equivalenti: 1. A = ∅ ∨ ∃f : A = cod(f ), f totale calcolabile 2. ∃g : A = dom(g ), g parziale calcolabile 3. ∃h : A = cod(h), h parziale calcolabile 1 ⇒ 2 Il caso A = ∅ ` ovvio. Sia A = cod(f ) per f tot. calc., poniamo e g (x) = µy (f (y ) = x) Chiaramente g ` calcolabile e g (x) ↓ se e solo se x ∈ cod(f ). e 2 ⇒ 3 Sia A = dom(g ); basta considerare h(x) = x + 0 ∗ g (x) 3 ⇒ 1 Sia A = cod(h), per h parziale calcolabile. Il caso A = ∅ ` triviale. Posto a ∈ A e h = ϕi consideriamo e k se T (i, x, k, s) = 1 f ( x, k, s ) = a altrimenti dove T ` il predicato di kleene. f ` totale e calcolabile e cod(f ) = A. e e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 83
  84. 84. Semidecidibilit` a A decidibile A semidecidibile 1 se x ∈ A ↓ se x ∈ A f (x) = f (x) = 0 se x ∈ A ↑ se x ∈ A per f calcolabile Esistono insiemi semidecidibili (r.e) ma non decidibili (ricorsivi): Teorema L’insieme K = {x|ϕx (x) ↓} ` r.e. e La funzione k(x) = ϕx (x) ` calcolabile e K = dom(k). e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 84
  85. 85. Enumerazione degli insiemi r.e. Possiamo definire una enumerazione W : N → RE dell’insieme RE di tutti gli insiemi r.e. ponendo Wi = dom(ϕi ) Si noti che K = {x|ϕx (x) ↓} = {x|x ∈ dom(ϕx )} = {x|x ∈ Wx } Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 85
  86. 86. Il teorema di proiezione Teorema di proiezione Un insieme A ` r.e. se e solo se esiste un insieme B ricorsivo tale che e A = {m|∃n, n, m ∈ B} ⇐ Sia cB la funzione caratterisitca di B. Allora A = dom(f ) dove f (m) = µn, cB ( n, m ) = 1 ⇒ Sia A = dom(ϕi ). Dunque m ∈ A se e solo se ϕi (m) ↓, se e solo se ∃n, T (i, n, m), dove T ` il predicato ternario di Kleene. e Basta dunque porre B = { n, m |T (i, n, m)} Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 86
  87. 87. Propriet` di chiusura degli insiemi r.e. a Teorema Gli insiemi r.e. sono chiusi rispetto a unione e intersezione, ma non rispetto alla complementazione. unione Sia A = cod(f ) e B = cod(g ) con f’ e g’ parziali calc. A ∨ B = cod(h ) dove h (2x) = f (x) h (2x + 1) = g (x) intersezione Sia A = dom(f ) e B = dom(g ) per f , g parziali calc. A ∧ B = dom(h) per h(x) = f (x) ∗ g (x). complementazione K non ` r.e. (altrimenti K sarebbe ricorsivo). e Corollario Esistono insiemi che non sono n` ricorsivi n` ricorsivamente e e enumerabili (e.g. K ). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 87
  88. 88. Propriet` di chiusura rispetto a funzioni a Teorema Siano A, B ⊆ N e f : N → N 1. se A ` ricorsivo e f ` totale calcolabile, allora f −1 (A) ` ricorsivo e e e 2. se A ` r.e. e f ` calcolabile, allora f −1 (A) ` r.e e e e 3. se A ` r.e. e f ` calcolabile, allora f (A) ` r.e e e e 1. cf −1 (A) = cA ◦ f 2. se A = dom(g ), allora f − 1(A) = dom(g ◦ f ) 3. se A = cod(g ), allora f (A) = cod(f ◦ g ) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 88
  89. 89. Unioni e interesezioni infinite Lemma 1) una unione r.e. di insiemi r.e. ` ancora r.e. e 2) una interesezione r.e. di insiemi r.e. non ` necessarimente r.e. e 1) per ogni x Wi ` r.e. e 2) esiste x Wi non ` r.e. e i∈Wx i∈Wx 1) Per dovetailing. 2) Per smn esiste h totale calcolabile tale che Wh(i) = {x|¬T (x, x, i)} dove T ` il predicato di Kleene. Si dimostra facilmente che e Wh(i) = K i∈N Poich` e i∈N Wh(i) = i∈cod(h) Wi l’asserto ` dimostrato. e Remark: gli insiemi Wh(i) sono ricorsivi e h pu´ essere scelta monotona crescente, o quindi una intersezione ricorsiva di insiemi ricorsivi non ` in generale r.e. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 89
  90. 90. I teoremi di Rice e Rice-Shapiro - Lezioni 12,13 Insiemi estensionali Il teorema di Rice Il teorema di Rice-Shapiro (monotonia) Il teorema di Rice-Shapiro (compattezza) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 90
  91. 91. Insiemi estensionali Un insieme (propriet´) A ⊆ N si dice estensionale (w.r.t ϕ) se per ogni i, j a i ∈ A ∧ ϕi ≡ ϕj ⇒ j ∈ A Ovvero, se cA ` la funzione caratteristica di A, e ϕi ≡ ϕj ⇒ cA (i) = cA (j) Una propriet` estensionale di (indici di) programmi ` una propriet` relativa alla a e a funzione calcolata (estensione) e non alla forma o al modo (intensione) in cui questa viene calcolata. P(i) estensionale P(i) intensionale ϕi ` totale e ∀n∃k, T (i, n, k, i 2 ) ϕi ≡ f ϕi ≡ f ∧ i ≤ 100 5 ∈ cod(ϕi ) i ∈ cod(ϕi ) dom(ϕi ) ` finito e |dom(ϕi )| > i ϕi (0) ↑ ϕi (i) ↑ ∃n, ϕi (n) ↓ ∧ϕi (n + 1) ↓ ϕi ≡ ϕi+1 Remark: Il complementare di un insieme estensionale ` estensionale e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 91
  92. 92. Il teorema di Rice Rice 1953 Una propriet` estensionale di programmi ` decidibile se e solo se ` banale. a e e Sia c la funzione caratteristica del predicato. Sia m un indice per la funzione ovunque divergente, e sia a tale c(a) = c(m). Cerco h calcolabile tale che φa if x ∈ K φh(x) ≈ φm if x ∈ K Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 92
  93. 93. Definizione di h Consideriamo la funzione φh(x) (y ) = φx (x); φa (y ) dove “;” denota la composizione sequenziale. Per la popriet` smn h ` totale e calcolabile. a e ` E banale verificare che φa if x ∈ K φh(x) ≈ φm if x ∈ K Dunque, utilizzando l’ipotesi di estensionalit´, avremmo a c(a) if x ∈ K c(h(x)) = c(m) if x ∈ K che permetterebbe di decidere l’appartenenza a K . Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 93
  94. 94. Uso del teorema di Rice Uso diretto, per dimostrare che determinate propriet` (essendo a estensionali) non sono decidibili. Uso indiretto, per dimostrare che determinate propriet` estensionali non a sono neppure semidecidibili (basta dimostrare che il complementare ` r.e.) e Esempio: A = { i |ϕi (0) ↓} A non ` banale, e dunque, per Rice, non pu` essere ricorsivo (uso diretto); e o d’altra parte A ` r.e., dunque e A = { i |ϕi (0) ↑} non ` neppure r.e. altrimenti sia A che A sarebbero ricorsivi, contraddicendo il e risultato di Rice (uso indiretto). Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 94
  95. 95. Monotonia e compattezza Sia A un insieme estensionale (rispetto a ϕ) di numeri naturali A ` detto monotono se per ogni i e j e i ∈ A ∧ ϕi ⊆ ϕj → j ∈ A A ` detto compatto se per ogni i ∈ A esiste j ∈ A tale che e 1. il grafo di ϕj ` finito e 2. ϕj ⊆ ϕi insieme monotonia compattezza { i |ϕi (0) ↓} si si { i |ϕi ` totale} e si no { i |cod(ϕi ) ` finito} e no si { i |dom(ϕi ) e dom(ϕi ) sono infiniti} no no Remark: se A e A sono entrambi monotoni allora sono banali. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 95
  96. 96. Rice-Shapiro (monotonia) Rice-Shapiro (monotonia) Ogni insieme estensionale A ricorsivamente enumerabile ´ monotono. e Supponiamo che esistano due indici i e j tali che i ∈ A, j ∈ A and ϕi ≤ ϕj . Consideriamo la funzione ϕf (x) (y ) = ϕi (y )|(ϕx (x); ϕj (y )) dove “|” denota la composizione parallela (l’output ` quello del primo thread e ` terminante). E facile vedere che φj if x ∈ K φf (x) ≈ φi if x ∈ K (nel caso x ∈ K uso l’ipotesi ϕi ≤ ϕj ). Dunque f (x) ∈ A ⇔ x ∈ K e K sarebbe r.e., il che ´ assurdo. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 96
  97. 97. Rice-Shapiro (compattezza) Rice-Shapiro (compattezza) Ogni insieme estensionale A ricorsivamente enumerabile ´ compatto. e Sia A un insieme estensionale ricorsivamente enumerabile. Supponiamo che i ∈ A e che per ogni j tale che ϕj ⊆ ϕi e ϕj ` finito si abbia j ∈ A. e Consideriamo la funzione f totale calcolabile definita come segue (per smn) ↑ if ϕx (x) ↓ in meno di y passi ϕf (x) (y ) = ϕi (y ) otherwise Se x ∈ K allora ϕf (x) ≈ ϕi e dunque f (x) ∈ A. Se x ∈ K allora la computazione di ϕx (x) terminer` in un numero finito t di a passi, e la funzione ϕf (x) converger` solo per valori di input y ≤ t. a Dunque f (x) ` un indice per una sottofunzione finita di ϕi , e per ipotesi e f (x) ∈ A. In conclusione f (x) ∈ A ⇔ x ∈ K e K sarebbe r.e., il che ´ assurdo. e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 97
  98. 98. Applicazioni di Rice-Shapiro I teoremi di Rice-Shapiro permettono di dimostrare facilmente che determinati insiemi estensionali non sono r.e. Ad esempio: { i |ϕi ` totale} non ` r.e. in quanto non ` compatto e e e { i |cod(ϕi ) ` finito} non ` r.e. in quanto non ` monotono e e e Warning: Esistono insiemi estensionali monotoni e compatti ma non r.e., ad esempio { i |dom(ϕi ) ∩ K = ∅}. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 98
  99. 99. Il teorema del punto fisso di Kleene - Lezione 14 primo teorema di ricorsione secondo teorema di ricorsione applicazioni Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 99
  100. 100. Il teorema del punto fisso di Kleene Teorema del punto fisso (Kleene) Per ogni funzione totale calcolabile f esiste m tale che ϕf (m) ≈ ϕm Per smn esiste h totale e calcolabile tale che ϕh(x) (y ) = g (x, y ) = ϕf (ϕx (x)) (y ) Sia p un indice per h e poniamo m = ϕp (p) = h(p) (che ` sicuramente definito e in quanto h ` totale). Allora, per ogni y e ϕm (y ) = ϕh(p) (y ) = g (p, y ) = ϕf (ϕp (p)) (y ) = ϕf (m) (y ) L’interprete permette di simulare la ricorsione! Supponiamo di voler definire una funzione ricorsiva f tale che f x = M[f , x] Per smn esiste g totale calcolabile tale che ϕg (i) (x) = M[ϕi , x]. Allora f = ϕm dove m ´ il punto fisso di g . e Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 100
  101. 101. Il secondo teorema di ricorsione Secondo Teorema di ricorsione di Kleene Per ogni funzione binaria totale calcolabile f esiste una funzione calcolabile s tale che, per ogni y ϕf (s(y ),y ) ≈ ϕs(y ) Per smn esistono r , h totali e calcolabili tale che ϕϕr (y ) (x) (z) = ϕh(x,y ) (z) = g (x, y , z) = ϕf (ϕx (x),y ) (z) Posto s(y ) = ϕr (y ) (r (y )) abbiamo, per ogni z ϕs(y ) (z) = ϕϕr (y ) (r (y )) (z) = ϕh(r (y ),y ) (z) = ϕf (ϕr (y ) (r (y )),y ) (z) = ϕf (s(y ),y ) (z) Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 101
  102. 102. Applicazioni del teorema del punto fisso L’uso del teorema del punto fisso per simulare ricorsione ` particolarmente e pulito, in quanto la funzione g ` estensionale, nel senso che e ϕi ≡ ϕj ⇒ ϕg (i) ≡ ϕg (j) Tuttavia il teorema ` vero per qualunque trasformazione effettiva. e Ad esempio: in ogni enumerazione accettabile di programmi esistono sicuramente due programmi consecutivi con comportamenti identici, ovvero esiste i tale che ϕi+1 ≡ ϕi Dimostrazione: si prenda il punto fisso del successore. Esiste un programma che “stampa se stesso”, cio` esiste i tale che e ϕi (0) = i Dimostrazione: Per smn esiste h tale che ϕh(x) (y ) = x; se ne prenda un punto fisso. Andrea Asperti Universit` di Bologna - Dipartimento di Scienze dell’Informazione a 102
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×