Informatica teorica Lez. n 7 – Macchine di Turing Macchine di Turing Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Argomenti della lezione Î Definizione della macchina di Turing Î Riconoscimento e accettazione di linguaggi Î Macchine a più nastri Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing La macchina di Turing è un automa che può leggere e scrivere su un nastro bidirezionale "potenzialmente" illimitato Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Dato lo stato della macchina e il carattere letto sul nastro, la macchina passa in un nuovo stato, scrive un carattere sul nastro, sposta la testina a destra o a sinistra Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Le macchine di Turing: Î forniscono una definizione formale del concetto di algoritmo Î accettano tutti (e soli) i linguaggi di tipo 0 Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Le macchine di Turing sono in grado di simulare ogni altro modello di calcolo ("tesi di Church-Turing") Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Modello di calcolo non “realistico” ma Î adatto a formalizzare il riconoscimento dei linguaggi formali Î utile per definire concetti di complessità computazionale Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing M = <Σ, b, K, q00, F, δ > Σ b K q00 F δ alfabeto del nastro carattere speciale, spazio (blank) insieme finito di stati stato iniziale insieme di stati finali funzione di transizione Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Funzione di transizione δ: K x Σbb → K x Σbb x {destra, sinistra, immobile} dove Σbb = Σ ∪ {b} Può essere rappresentata con una matrice o con un grafo di transizione Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing (Disegno 7.1) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Varianti (tutte computazionalmente equivalenti) Î macchine a più nastri Î macchine non deterministiche Î macchine con alfabeto limitato Î macchine con nastro seminfinito Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Configurazione di una macchina Stringa appartenente al linguaggio + (Σbb)*..K..(Σbb)+ che rappresenta: Î porzione finita del nastro che contiene i caratteri diversi da b Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Configurazione di una macchina Î posizione della testina Î stato corrente Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing disegno 7.2 Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing La conoscenza di una configurazione e della funzione di transizione consente di determinare la configurazione successiva Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Per convenzione all'inizio della computazione il nastro contiene l'input, il resto del nastro contiene b, la testina è posizionata sul primo carattere dell'input, la macchina è nello stato iniziale Configurazione iniziale: stringa del tipo: Prof. Giorgio Ausiello Università di Roma “La Sapienza” q00aabb Informatica teorica Lez. n 7 – Macchine di Turing Il calcolo termina quando la macchina entra in uno stato finale. La testina può essere in un punto qualunque del nastro Configurazione finale: stringa del tipo: aab qFFb Il calcolo termina anche se nessuna regola di transizione è applicabile Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Se la funzione di transizione fa passare dalla configurazione cii alla configurazione cjj scriviamo ci |— cj Una computazione è una sequenza eventualmente infinita di configurazioni <c11,c22,...,cii, ci+1 i+1,...> tali che: c11 |— c22 |— .... |— cii |— ci+1 i+1|—.... Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Una computazione finita c11 |— c22 |— .... |— cnn è massimale se non esiste una configurazione c tale che cnn |— c In tal caso cnn è una configurazione finale o una configurazione in cui la funzione di transizione non è definita Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Riconoscimento e accettazione di linguaggi Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing A differenza degli ASF e degli AP, che rispettivamente riconoscono i linguaggi di tipo 3 e di tipo 2, le macchine di Turing non sono sempre in grado di riconoscere un linguaggio di tipo 0 ma in alcuni casi possono solo ‘accettarlo’ Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Î Una macchina di Turing M riconosce un linguaggio L se per ogni x ∈ Σ* M è in grado di stabilire se x ∈ L o no Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Î Una macchina di Turing M accetta un linguaggio L se per tutte e sole le x ∈ L M è in grado di stabilire tale appartenenza, ma se x ∉ L M non garantisce un comportamento prestabilito Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Una computazione massimale <c00, c11,...., cnn> è accettante (responso positivo) se c00 è iniziale e cnn è finale Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Una computazione massimale <c00, c11,...., cnn> è rifiutante (responso negativo) se c00 è iniziale e cnn non è finale Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Una computazione infinita non corrisponde ad alcun responso Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing M=<Σ,b,K,q00,F,δ> riconosce (decide) un linguaggio L se per ogni x ∈ Σ* esiste q ∈ K tale che q00x |—* α q β + e con α ∈ (Σbb)* e β ∈ (Σbb)+ q ∈ F se e soltanto se x ∈ L Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Un linguaggio accettato da una macchina di Turing è detto decidibile (secondo Turing) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing M=<Σ,b,K,q00,F,δ> accetta un linguaggio L se per tutte e sole le x ∈ L esiste q ∈ F tale che q00x |—* α q β + con α ∈ (Σbb)* e β ∈ (Σbb)+ Un linguaggio accettato da una macchina di Turing è detto semidecidibile (secondo Turing) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Nelle lezioni successive mostreremo che: Î I linguaggi semidecidibili sono tutti e soli i linguaggi di tipo 0 Î La classe dei linguaggi decidibili è strettamente contenuta in quella dei linguaggi semidecidibili Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing MT che accetta 0nn1nn (n≥1) M=<{0,1},b,K,q00,{q44},δ> Configurazione iniziale: q000011 Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing La MT marca via via con un X gli 0 e con un Y i corrispondenti 1 e accetta se gli 0 e gli 1 sono in numero uguale, rifiuta se sono in numero diverso Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing (Disegno 7.3) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Macchine di Turing a più nastri (o multinastro, MTM) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Macchina di Turing a k nastri (k)> Mkk=<Σ,b,Z00,K,q00,F,δ(k) Σ b Z00 K q00 F alfabeto carattere speciale blank carattere speciale iniziale insieme finito di stati stato iniziale insieme di stati finali Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Macchina di Turing a k nastri (k)> Mkk=<Σ,b,Z00,K,q00,F,δ(k) δ(k) funzione di transizione δ(k) : K x (Σbb)kk → K x (Σbb)kk x {d,s,i}kk Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Configurazione: q#α11↓ β11#α22↓ β22#....#αkk↓ βkk q è lo stato; αiiβii è il contenuto del nastro i-esimo; ↓ indica la posizione della testina su ciascun nastro Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Configurazione iniziale: q00#↓ β11#↓ Z00#....#↓ Z00 Configurazione finale: q appartiene a F Transizioni e computazioni: analoghe alle normali MT Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing MTM ed MT hanno lo stesso potere computazionale: una MT può simulare una MTM e la simulazione ha un costo polinomiale Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Data una MTM (k)> a k nastri M=<Σ,b,K,q00,F,δ(k) esiste una MT che simula t passi di Mkk in O(t22) passi usando un alfabeto di cardinalità O((2|Σ|)kk) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Costruiamo una MT M'=<Σ',b,K',q0' 0',F',δ'> con nastro suddiviso in 2k tracce che simula M; le k tracce di posto pari di M' rappresentano i k nastri di M; sulle k tracce di posto dispari di M' con il marcatore "↓" indichiamo la posizione della testina sul corrispondente nastro di M Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Per ogni passo di M, M' deve eseguire un numero di passi proporzionale alla distanza (numero di caselle) tra i due marcatori più lontani quindi se M esegue t passi, M' ne può eseguire O(t22) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing Per ciò che riguarda la cardinalità dell'alfabeto di M’ dobbiamo codificare con un simbolo un vettore di 2k simboli corrispondenti al contenuto delle 2k tracce, quindi k-1 = |Σ’| = 2kk(|Σ|+1)(|Σ|+2)k-1 O((2|Σ|)kk) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing MTM che riconosce xcxRR con x ∈ {a,b} (disegno 7.4) Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing computazione con input bacab: q00 #↓ bacab q00 #b↓ acab #↓ Z00 #b↓ b |— |— q00 #ba↓ cab #ba↓ b |— q11 #bac↓ ab q11 #baca↓ b q11 #bacab↓ b q22 #bacab↓ b #b ↓ a # ↓ ba # ↓ bba # ↓ bba |— |— |— |— Prof. Giorgio Ausiello Università di Roma “La Sapienza” Informatica teorica Lez. n 7 – Macchine di Turing computazione con input acb: q00 # ↓ acb q00 # a↓ cb #↓ Z00 #a↓ b q11 # ac↓ b #↓ a Prof. Giorgio Ausiello Università di Roma “La Sapienza” |— |—