39
Linguaggi Context-Sensitive e Linear Bounded Automata Gioele Ciaparrone Luca Vitale Automi, Linguaggi e Complessità A.A. 2015/16 Prof. Margherita Napoli Università degli Studi di Salerno 1

Linguaggi Context-Sensitive e Linear Bounded Automata

Embed Size (px)

Citation preview

Page 1: Linguaggi Context-Sensitive e Linear Bounded Automata

Linguaggi Context-Sensitive e Linear Bounded Automata

Gioele CiaparroneLuca Vitale

Automi, Linguaggi e Complessità – A.A. 2015/16Prof. Margherita NapoliUniversità degli Studi di Salerno

1

Page 2: Linguaggi Context-Sensitive e Linear Bounded Automata

Outline• Introduzione

• Equivalenza tra CSL e linguaggi riconosciuti da un LBA

• Relazioni dei CSL con le altre classi di linguaggi

• Proprietà decidibili e di chiusura dei CSL

2

Page 3: Linguaggi Context-Sensitive e Linear Bounded Automata

Outline• Introduzione

• Equivalenza tra CSL e linguaggi riconosciuti da un LBA

• Relazioni dei CSL con le altre classi di linguaggi

• Proprietà decidibili e di chiusura dei CSL

3

Page 4: Linguaggi Context-Sensitive e Linear Bounded Automata

Linguaggi Context-Sensitive• I linguaggi context-sensitive sono i linguaggi generati da una

grammatica context-sensitive (CSG)• Una CSG è una grammatica 𝐺 = 𝑉, 𝑇, 𝑃, 𝑆 , tale che le

produzioni 𝑃 sono del tipo 𝛼 → 𝛽, con 𝛼 ≤ 𝛽 , 𝛼, 𝛽 ∈𝑉 ∪ 𝑇 ∗

• Con questa definizione, i CSL non includono 𝜀• È possibile estendere la definizione permettendo l’inclusione di 𝜀

aggiungendo una nuova produzione 𝑆′ → 𝑆 | 𝜀, con 𝑆′ nuova variabile di start

• Si chiamano context-sensitive perché possono essere scritti nella seguente forma normale: 𝛼1𝐴𝛼2 → 𝛼1𝛽𝛼2, con 𝛽 ≠ 𝜀• La sostituzione di una variabile avviene in un "contesto" 4

Page 5: Linguaggi Context-Sensitive e Linear Bounded Automata

Esempio• 𝐿 𝐺 = 𝑎𝑛𝑏𝑛𝑐𝑛, 𝑛 ≥ 1

• 𝑆 → 𝑎𝑆𝐵𝐶 | 𝑎𝑏𝐶• 𝐶𝐵 → 𝐵𝐶• 𝑏𝐵 → 𝑏𝑏• 𝑏𝐶 → 𝑏𝑐• 𝑐𝐶 → 𝑐𝑐

• Esempio di derivazione: 𝑎𝑎𝑎𝑏𝑏𝑏𝑐𝑐𝑐• 𝑆 → 𝑎𝑆𝐵𝐶 → 𝑎𝑎𝑆𝐵𝐶𝐵𝐶 → 𝑎𝑎𝑎𝑏𝐶𝐵𝐶𝐵𝐶 → 𝑎𝑎𝑎𝑏𝐵𝐶𝐶𝐵𝐶 →𝑎𝑎𝑎𝑏𝐵𝐶𝐵𝐶𝐶 → 𝑎𝑎𝑎𝑏𝐵𝐵𝐶𝐶𝐶 → 𝑎𝑎𝑎𝑏𝑏𝐵𝐶𝐶𝐶 →𝑎𝑎𝑎𝑏𝑏𝑏𝐶𝐶𝐶 → 𝑎𝑎𝑎𝑏𝑏𝑏𝑐𝐶𝐶 → 𝑎𝑎𝑎𝑏𝑏𝑏𝑐𝑐𝐶 → 𝑎𝑎𝑎𝑏𝑏𝑏𝑐𝑐𝑐

5

Page 6: Linguaggi Context-Sensitive e Linear Bounded Automata

Esempi di CSL e usi pratici• 𝑎𝑛𝑏𝑛𝑐𝑛𝑑𝑛, 𝑛 ≥ 1• {𝑎𝑛𝑏2𝑛𝑎𝑛, 𝑛 ≥ 1}• {𝑢𝑢, 𝑢 ∈ Σ+}• 𝑎2𝑛, 𝑛 ≥ 1• {𝑎𝑛, 𝑛 𝑝𝑟𝑖𝑚𝑜}, {𝑎𝑛, 𝑛 𝑐𝑜𝑚𝑝𝑜𝑠𝑡𝑜}

• In pratica, alcuni aspetti di un linguaggio di programmazione richiedono una CSG per essere espressi• Es.: scoping – le variabili possono essere usate in "contesti" dove

sono state dichiarate• Inoltre tutti i linguaggi naturali sono un sottoinsieme dei

context-sensitive6

Page 7: Linguaggi Context-Sensitive e Linear Bounded Automata

Linear bounded automata• Un linear bounded automaton (LBA) è una TM non

deterministica che soddisfa le seguenti condizioni:• Il suo alfabeto di input include due simboli speciali, ¢ e $, usati

come marcatori di inizio e fine stringa sul nastro• Il LBA non ha mosse a sinistra di ¢ e a destra di $ e non può

sovrascriverli• Formalmente un LBA è una ottupla 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0,¢, $, 𝐹)

• 𝑄, Σ, Γ, 𝛿, 𝑞0 e 𝐹 sono definiti come per le TM• ¢, $ ∈ Σ

• 𝐿 𝑀 = 𝑤 𝑤 ∈ (Σ − {¢,$})∗ 𝑒 𝑞0¢𝑤$ ⊢𝑀∗ 𝛼𝑞𝛽, 𝑞 ∈ 𝐹}

• Il simbolo blank non è necessario, dato che la macchina non può oltrepassare ¢ e $ 7

Page 8: Linguaggi Context-Sensitive e Linear Bounded Automata

Outline• Introduzione

• Equivalenza tra CSL e linguaggi riconosciuti da un LBA

• Relazioni dei CSL con le altre classi di linguaggi

• Proprietà decidibili e di chiusura dei CSL

8

Page 9: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Un linguaggio 𝐿, privo di 𝜀, è context-sensitive se e solo se

esiste un LBA 𝑀 tale che 𝐿 = 𝐿(𝑀)

• (⇒): 𝐿 è un CSL e vogliamo dimostrare che è accettato da un LBA

• Sia 𝐺 = (𝑉, 𝑇, 𝑃, 𝑆) la CSG che genera 𝐿: 𝐿 = 𝐿(𝐺)• Costruiamo un LBA 𝑀 con due nastri

• È equivalente all'uso di un solo nastro con simboli che mantengono per ciascuna cella l'informazione di entrambi i nastri

• 𝑤 si trova inizialmente sul primo nastro, delimitata da ¢ e $• Sul secondo nastro manteniamo una forma sentenziale 𝛼 di G,

inizialmente S• Se 𝑤 = 𝜀, 𝑀 rifiuta 𝑤

9

Page 10: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-KurodaAltrimenti 𝑀 si comporta come segue:1. Seleziona nondeterministicamente una posizione 𝑖 in 𝛼,

con 1 ≤ 𝑖 ≤ |𝛼|• Parte dalla prima cella a sinistra e sceglie se muoversi a destra o

se fermarsi e passare al punto 22. Seleziona una transizione 𝛽 → 𝛾 ∈ 𝐺3. Se 𝛽 inizia nella posizione 𝑖 scelta, sostituisci 𝛽 con 𝛾

shiftando eventualmente il contenuto alla sua destra per fare spazio a 𝛾 (se |𝛾| > |𝛽|)

4. Confronta la nuova forma sentenziale ottenuta con 𝑤 (sul nastro 1)

• Se corrispondono, accetta 𝑤• Altrimenti, torna al passo 1

10

Page 11: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Se a un certo punto della computazione, la forma sentenziale

è più lunga del nastro, 𝑀 si ferma senza accettare• Poiché in una CSG la lunghezza di una forma sentenziale non può

mai diminuire, se superiamo la lunghezza di 𝑤, la sequenza di derivazioni calcolata non può generare 𝑤

• Quindi 𝑀 accetta 𝑤 se e solo se esiste una derivazione 𝑆 ⇒𝐺

∗ 𝑤

11

Page 12: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• (⇐): Se abbiamo un LBA 𝑀 = 𝑄, Σ, Γ, 𝛿, 𝑞0, ¢, $, 𝐹 con 𝐿 =𝐿(𝑀), allora 𝐿 − {𝜀} è un CSL

• Sia 𝐺 = 𝑉, Σ, 𝑃, 𝐴1 una CSG, dove 𝑉 = ((Σ − {¢, $}) × (Γ∗ ∪𝑄 ⋅ Γ∗)) ∪ 𝐴1, 𝐴2

• 𝐺 genererà nondeterministicamente due copie della rappresentazione di una parola 𝑤 ∈ Σ∗ e simulerà 𝑀 su una delle due• Se 𝑀 accetta, 𝐺 genererà la stringa di terminali 𝑤• Altrimenti, 𝐺 non riuscirà mai ad arrivare a una stringa terminale

12

Page 13: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• 𝑃 contiene quindi le seguenti produzioni:

• Generazione parola:1. 𝐴1 → 𝑎, 𝑞0¢𝑎]𝐴2 [𝑎, 𝑞0¢𝑎$], ∀𝑎 ∈ Σ − {¢, $}2. 𝐴2 → 𝑎, 𝑎 𝐴2 | [𝑎, 𝑎$], ∀𝑎 ∈ Σ − ¢, $

• Simulazione di 𝑀:3. 𝑎, 𝑞𝑋 𝑏, 𝑍 → 𝑎, 𝑌 𝑏, 𝑝𝑍 , ∀𝑎, 𝑏 ∈ Σ − ¢, $ , ∀𝑞 ∈ 𝑄,

∀𝑋, 𝑌, 𝑍 ∈ Γ − {¢, $}: 𝛿(𝑞, 𝑋) ∋ (𝑝, 𝑌, 𝑅)4. 𝑎, 𝑍 𝑏, 𝑞𝑋 → 𝑎, 𝑝𝑍 𝑏, 𝑌 , ∀𝑎, 𝑏 ∈ Σ − ¢, $ , ∀𝑞 ∈

𝑄, ∀𝑋, 𝑌, 𝑍 ∈ Γ − {¢, $}: 𝛿(𝑞, 𝑋) ∋ (𝑝, 𝑌, 𝐿)5. I casi in cui il "nastro" contiene ¢ o $ sono stati omessi per

semplicità, ma sono analoghi ai punti 3 e 413

Page 14: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Raggiungimento stato finale e generazione stringa terminale:

6. 𝑎, 𝛼𝑞𝛽 → 𝑎, ∀𝑞 ∈ 𝐹, ∀𝑎 ∈ Σ − ¢, $ e 𝛼, 𝛽 possono includere ¢, $ o un simbolo del nastro secondo le varie combinazioni possibili

7. 𝑎, 𝛼 𝑏 → 𝑎𝑏 e 𝑏 𝑎, 𝛼 → 𝑏𝑎, ∀𝑎, 𝑏 ∈ Σ − {¢, $} e per ogni 𝛼possibile (un simbolo del nastro ed eventualmente ¢ e/o $)

• Le produzioni mostrate sono chiaramente context-sensitive e sono in numero finito

14

Page 15: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Una volta costruita la grammatica, ci resta da dimostrare che 𝐿′ = 𝐿 𝑀 − {𝜀} = 𝐿(𝐺)

• Proviamo prima che 𝐿′ ⊆ 𝐿 𝐺• Innanzitutto proviamo per induzione sul numero di mosse di

M che se 𝑞0¢𝑎1𝑎2 ⋯𝑎𝑛$ ⊢𝑀∗ ¢𝑋1𝑋2 ⋯𝑋𝑟−1𝑞𝑋𝑟 ⋯𝑋𝑛 $, allora

𝑎1, 𝑞0¢𝑎1 𝑎2, 𝑎2 ⋯ [𝑎𝑛, 𝑎𝑛$] ⇒𝐺∗

𝑎1, ¢𝑋1 𝑎2, 𝑋2 ⋯ 𝑎𝑟−1, 𝑋𝑟−1 𝑎𝑟, 𝑞𝑋𝑟 ⋯ [𝑎𝑛, 𝑋𝑛$], dove 𝑎𝑖 ∈ Σ, 𝑋𝑖 ∈ Γ, 𝑞 ∈ 𝑄

• Per zero mosse è banale• Supponiamo che sia vero per 𝑘 − 1 mosse e dimostriamo che

è vero per 𝑘 mosse 15

Page 16: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Possiamo scomporre le 𝑘 mosse nelle prime 𝑘 − 1 più

un'ulteriore mossa• 𝑞0¢𝑎1𝑎2 ⋯𝑎𝑛$ ⊢𝑀

𝑘−1 ¢𝑋1𝑋2 ⋯𝑋𝑟−1𝑞𝑋𝑟 ⋯𝑋𝑛 $⊢𝑀 ¢𝑌1𝑌2 ⋯𝑌𝑡−1𝑝𝑌𝑡 ⋯𝑌𝑛 $

• Scriviamo Y anziché X per gestire sia lo spostamento a destra che quello a sinistra e possiamo generalizzare anche gli indici

• Per ipotesi induttiva sappiamo che 𝑎1, 𝑞0¢𝑎1 𝑎2, 𝑎2 ⋯ [𝑎𝑛, 𝑎𝑛$] ⇒𝐺

𝑎1, ¢𝑋1 𝑎2, 𝑋2 ⋯ 𝑎𝑟−1, 𝑋𝑟−1 𝑎𝑟, 𝑞𝑋𝑟 ⋯ [𝑎𝑛, 𝑋𝑛$]• Ma applicando le regole di tipo 3, 4 e 5 della grammatica,

abbiamo anche che 𝑎1, ¢𝑋1 𝑎2, 𝑋2 ⋯ 𝑎𝑟−1, 𝑋𝑟−1 𝑎𝑟, 𝑞𝑋𝑟 ⋯ 𝑎𝑛, 𝑋𝑛$ ⇒𝐺𝑎1, ¢𝑌1 𝑎2, 𝑌2 ⋯ 𝑎𝑡−1, 𝑌𝑡−1 𝑎𝑡, 𝑝𝑌𝑡 ⋯ 𝑎𝑛, 𝑌𝑛$

16

Page 17: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Quindi, sia 𝑤 = 𝑎1𝑎2⋯𝑎𝑛 ∈ 𝐿′, allora esiste una

computazione 𝑞0¢𝑎1𝑎2 ⋯𝑎𝑛$ ⊢𝑀∗ ¢𝑋1𝑋2 ⋯𝑋𝑟−1𝑞𝑋𝑟 ⋯𝑋𝑛 $

in cui 𝑞 ∈ 𝐹• Notiamo che 𝐴1 ⇒𝐺

∗ 𝑎1, 𝑞0¢𝑎1 𝑎2, 𝑎2 ⋯ [𝑎𝑛, 𝑎𝑛$]applicando le regole 1 e 2 di G

• Per quello che abbiamo appena dimostrato, abbiamo che 𝑎1, 𝑞0¢𝑎1 𝑎2, 𝑎2 ⋯ [𝑎𝑛, 𝑎𝑛$] ⇒𝐺

𝑎1, ¢𝑋1 𝑎2, 𝑋2 ⋯ 𝑎𝑟−1, 𝑋𝑟−1 𝑎𝑟, 𝑞𝑋𝑟 ⋯ [𝑎𝑛, 𝑋𝑛$], dove 𝑞 ∈ 𝐹

• Ma applicando la regola 6, sostituiamo 𝑎𝑟, 𝑞𝑋𝑟 con 𝑎𝑟• Dopodiché possiamo applicare le regole 7 per sostituire tutte

le altre variabili con i terminali corrispondenti• Abbiamo quindi che 𝐴1 ⇒𝐺

∗ 𝑤 e quindi 𝑤 ∈ 𝐿(𝐺)17

Page 18: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Landweber-Kuroda• Ci resta da dimostrare che 𝐿(𝐺) ⊆ 𝐿′

• È possibile utilizzare una dimostrazione per induzione simile a quella vista in precedenza

• Notiamo poi che 𝐺 può generare una stringa di terminali solamente sostituendo variabili che contengono uno stato finale di 𝑀

• Quindi per ogni stringa 𝑤 generata da 𝐺 esiste una corrispondente computazione di 𝑀 che accetta 𝑤

18

Page 19: Linguaggi Context-Sensitive e Linear Bounded Automata

Outline• Introduzione

• Equivalenza tra CSL e linguaggi riconosciuti da un LBA

• Relazioni dei CSL con le altre classi di linguaggi

• Proprietà decidibili e di chiusura dei CSL

19

Page 20: Linguaggi Context-Sensitive e Linear Bounded Automata

Relazione tra CFL e CSL• Possiamo facilmente dimostrare che i linguaggi context-free

sono un sottoinsieme proprio dei linguaggi context-sensitive (se ignoriamo la stringa vuota)

• Data una CFG 𝐺 è possibile trasformarla in una CFG 𝐺′ senza 𝜀-produzioni, tale che 𝐿 𝐺 = 𝐿(𝐺′)• Quindi ogni produzione di 𝐺′ è del tipo 𝛼 → 𝛽 in cui |𝛼| ≤ |𝛽| e

dunque 𝐺′ è anche una CSG• Abbiamo quindi che tutti i CFL sono anche CSL• Sappiamo poi che il linguaggio 𝐿 = 𝑎𝑛𝑏𝑛𝑐𝑛, 𝑛 ≥ 1 è

context-sensitive, ma non context-free• Quindi i CFL sono un sottoinsieme proprio dei CSL

20

Page 21: Linguaggi Context-Sensitive e Linear Bounded Automata

Relazione tra CSL e decidibili• Possiamo dimostrare inoltre che i linguaggi context-sensitive

sono un sottoinsieme proprio dei linguaggi ricorsivi (decidibili)• Dimostriamo innanzitutto che ogni CSL è decidibile• Data una CSG 𝐺 = (𝑉, 𝑇, 𝑃, 𝑆) e una parola 𝑤 ∈ Σ∗, con 𝑤 =𝑛, possiamo testare se 𝑤 ∈ 𝐺

• Costruiamo un grafo i cui vertici sono tutte le possibile parole su (𝑉 ∪ 𝑇)∗ di lunghezza minore o uguale a 𝑛

• Aggiungiamo un arco da 𝛼 a 𝛽 se 𝛼 ⇒𝐺 𝛽• Quindi i percorsi nel grafo corrispondono a delle derivazioni in 𝐺

• Controlliamo quindi se esiste un percorso da 𝑆 a 𝑤 nel grafo• Se il percorso esiste, accetta 𝑤, altrimenti rifiuta 𝑤 21

Page 22: Linguaggi Context-Sensitive e Linear Bounded Automata

Relazione tra CSL e decidibili• Dimostriamo ora che esiste almeno un linguaggio decidibile

che non è context-sensitive

• Partiamo dimostrando una proprietà più generale• Lemma: Sia 𝑀1,𝑀2,𝑀3,… un'enumerazione di un certo

insieme di TM che si fermano su tutti gli input. Allora esiste qualche linguaggio ricorsivo che non è riconosciuto da nessuna delle macchine enumerate.

• Sia 𝐿 = {𝑤|𝑤 ∈ 0,1 ∗, 𝑤 ∉ 𝐿 𝑀𝑖e 𝑖 è l′intero rappresentato da w}

• Notiamo che 𝐿 è decidibile poiché, data una stringa 𝑤 è possibile generare 𝑀𝑖 e verificare se 𝑤 ∈ 𝑀𝑖

22

Page 23: Linguaggi Context-Sensitive e Linear Bounded Automata

Relazione tra CSL e decidibili• Tuttavia, nessuna TM nell'enumerazione data accetta 𝐿:

• Supponiamo che 𝐿 = 𝐿(𝑀𝑗) per qualche 𝑗 e sia 𝑥 la rappresentazione binaria di 𝑗

• Se 𝑥 ∈ 𝐿 ⇒ 𝑥 ∉ 𝐿(𝑀𝑗) ⇒ 𝑥 ∉ 𝐿 e siamo giunti a una contraddizione

• Se 𝑥 ∉ 𝐿 ⇒ 𝑥 ∈ 𝐿(𝑀𝑗) ⇒ 𝑥 ∈ 𝐿 e abbiamo comunque una contraddizione

• Quindi 𝐿 è ricorsivo, ma non appartiene ai linguaggi riconosciuti dalle TM dell’enumerazione ∎

23

Page 24: Linguaggi Context-Sensitive e Linear Bounded Automata

Relazione tra CSL e decidibili• Per dimostrare ora che esiste almeno un linguaggio ricorsivo

non context-sensitive, ci resta da provare che esiste un'enumerazione di TM che riconosce tutti i CSL

• Data una codifica binaria 𝑗 di una CSG 𝐺, sia 𝑀𝑗 la TM che riconosce 𝐿(𝐺) usando l'algoritmo del grafo visto in precedenza

• Tutte le 𝑀𝑗 si fermano per qualsiasi input• Abbiamo quindi ottenuto un'enumerazione delle MT che

riconoscono tutti i CSL• Per il lemma precedente, esiste quindi un linguaggio ricorsivo

che non è riconosciuto da nessuna delle macchine nell'enumerazione• Quindi esiste un linguaggio ricorsivo non context-sensitive ∎

24

Page 25: Linguaggi Context-Sensitive e Linear Bounded Automata

Gerarchia dei linguaggi studiati

25Finite languages

REGULAR

DCFL

CFL

CSL

Recursive

Recursively enumerable

Page 26: Linguaggi Context-Sensitive e Linear Bounded Automata

Outline• Introduzione

• Equivalenza tra CSL e linguaggi riconosciuti da un LBA

• Relazioni dei CSL con le altre classi di linguaggi

• Proprietà decidibili e di chiusura dei CSL

26

Page 27: Linguaggi Context-Sensitive e Linear Bounded Automata

Proprietà decidibili di un CSL• Tutte le proprietà che non sono decidibili per i CFL sono

indecidibili anche per i CSL• Determinare se una CSG è ambigua• Verificare se due CSL sono disgiunti• Determinare se un CSL è uguale a Σ+

• Determinare se due CSL sono uguali o se uno è incluso nell'altro• Determinare se un CSL è regolare o se un dato linguaggio regolare

è incluso in un CSL• Inoltre, a differenza dei CFL, è indecidibile anche verificare se

un CSL è vuoto• Il problema di appartenenza di una parola 𝑤 a un CSL è

decidibile ed è PSPACE-completo 27

Page 28: Linguaggi Context-Sensitive e Linear Bounded Automata

Proprietà di chiusura dei CSL• I CSL sono chiusi rispetto a:

• Unione• Intersezione• Complemento• Concatenazione• Chiusura positiva

28

Page 29: Linguaggi Context-Sensitive e Linear Bounded Automata

Chiusura rispetto all'unione• Dati due CSL 𝐿1 e 𝐿2, consideriamo le due grammatiche che li

generano, rispettivamente 𝐺1 = (𝑉1, 𝑇1, 𝑃1, 𝑆1) e 𝐺2 =(𝑉2, 𝑇2, 𝑃2, 𝑆2)• Per semplicità, consideriamo 𝑉1 ∩ 𝑉2 = ∅

• Creiamo una nuova grammatica 𝐺 = (𝑉, 𝑇, 𝑃, 𝑆)• 𝑉 = 𝑉1 ∪ 𝑉2 ∪ {𝑆}• 𝑇 = 𝑇1 ∪ 𝑇2• 𝑃 = 𝑃1 ∪ 𝑃2 ∪ {𝑆 → 𝑆1|𝑆2}

• Banalmente 𝐺 è context-sensitive e genera il linguaggio 𝐿1 ∪𝐿2

29

Page 30: Linguaggi Context-Sensitive e Linear Bounded Automata

Chiusura rispetto al complemento• La chiusura dei CSL rispetto al complemento è stata derivata

dall'applicazione di un teorema più generale• Il teorema di Immerman–Szelepcsényi afferma che 𝑁𝑆𝑃𝐴𝐶𝐸 𝑠 𝑛 = 𝑐𝑜 − 𝑁𝑆𝑃𝐴𝐶𝐸 𝑠 𝑛 , ∀𝑠(𝑛) ≥ log(𝑛)

• In particolare, poiché la classe dei linguaggi accettati da un LBA coincide con la classe 𝑁𝑆𝑃𝐴𝐶𝐸(𝑛), poiché per il teorema precedente 𝑁𝑆𝑃𝐴𝐶𝐸 𝑛 = 𝑐𝑜 − 𝑁𝑆𝑃𝐴𝐶𝐸(𝑛), dato un linguaggio 𝐿 accettato da un LBA, anche ത𝐿 sarà accettato da un LBA

• Quindi dato un CSL anche il suo complemento è un CSL

• Diamo ora un'idea della prova del teorema di Immerman–Szelepcsényi

30

Page 31: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Immerman–Szelepcsényi

• Vogliamo dimostrare che data una funzione 𝑠(𝑛) ≥ log(𝑛), 𝑁𝑆𝑃𝐴𝐶𝐸 𝑠 𝑛 = 𝑐𝑜 − 𝑁𝑆𝑃𝐴𝐶𝐸(𝑠 𝑛 )

• Sia 𝑀 una TM non deterministica che usa spazio 𝑠(𝑛)

• Creeremo una TM 𝑁 non deterministica che usa spazio 𝑠(𝑛) e accetta ogni input 𝑥 se e solo se 𝑀 rifiuta 𝑥

• Sia 𝑠 = 𝑠( 𝑥 ), il numero massimo di configurazioni di 𝑀 è limitato superiormente da 𝑐𝑠 = 𝑡, per qualche costante 𝑐

31

Page 32: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Immerman–Szelepcsényi

• Sia 𝐼 la configurazione iniziale di 𝑀(𝑥) e sia 𝑚 il numero di configurazioni raggiungibili da 𝐼

• Per il momento supponiamo di conoscere 𝑚 e mostriamo come 𝑁(𝑥) può sapere se 𝑀(𝑥) accetta o rifiuta in spazio 𝑂(𝑠)

Let r=0For all nonaccepting configurations C of M(x)

Try to guess a computation path from I to C

If found let r=r+1If r=m then accept else reject

32

Page 33: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Immerman–Szelepcsényi

• Per calcolare 𝑚 usiamo un'idea detta inductive counting

• Definiamo 𝑚𝑖 il numero di configurazioni raggiungibili da 𝐼 in al più 𝑖 passi

• Partiamo da 𝑚0 = 1 (in 0 passi possiamo raggiungere solo 𝐼) e calcoliamo iterativamente 𝑚𝑖+1 utilizzando solamente 𝑚𝑖

• Notiamo che 𝑚𝑡 = 𝑚

33

Page 34: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Immerman–Szelepcsényi

Let mi+1=0For all configurations C

Let b=0, r=0For all configurations D

Guess a path from I to D in at most isteps

If foundLet r = r+1If D=C or D goes to C in 1 step

Let b=1If r < mi halt and rejectLet mi+1 = mi+1+b

34

Page 35: Linguaggi Context-Sensitive e Linear Bounded Automata

Teorema di Immerman–Szelepcsényi

• Utilizziamo un numero costante di variabili e di configurazioniper ogni iterazione

• Alla fine di ogni iterazione 𝑖 manteniamo solamente il valore di 𝑚𝑖 calcolato

• Lo spazio totale occupato è quindi 𝑂(𝑠)

• La TM 𝑁, quindi, su input 𝑥:• Esegue l'algoritmo per calcolare 𝑚• Esegue l'algoritmo che utilizza 𝑚 per calcolare se la TM 𝑀 accetta

o meno 𝑥 e prende la decisione opposta• 𝑁 usa spazio 𝑂(𝑠) e quindi abbiamo dimostrato che il

complemento di qualsiasi linguaggio riconosciuto in spazio𝑂(𝑠) può essere anche esso riconosciuto in spazio 𝑂(𝑠)

35

Page 36: Linguaggi Context-Sensitive e Linear Bounded Automata

Chiusura rispetto all'intersezione• Usando le leggi di De Morgan, possiamo ottenere

l'intersezione di due insiemi utilizzando una combinazione di unione e complemento:• 𝐴 ∩ 𝐵 = ҧ𝐴 ∪ ത𝐵

• Quindi, dati due CSL 𝐿1 e 𝐿2, possiamo costruire 𝐿1 ∩ 𝐿2utilizzando unione e complemento

• Poiché la classe dei linguaggi context-sensitive è chiusa rispetto all'unione e al complemento, abbiamo che anche l'intersezione di due CSL produce un altro CSL

36

Page 37: Linguaggi Context-Sensitive e Linear Bounded Automata

Chiusura rispetto alla Kleene plus• Dato un CSL 𝐿 vogliamo dimostrare che anche 𝐿+ è un CSL• Consideriamo un LBA 𝑀 tale che 𝐿 = 𝐿(𝑀)• Costruiamo ora un nuovo LBA 𝑀′, tale che 𝐿 𝑀′ = 𝐿+

• Su input 𝑤, 𝑀′ partiziona nondeterministicamente 𝑤 in più sottostringhe 𝑤𝑖 tali che 𝑤 = 𝑤1𝑤2⋯𝑤𝑡; se 𝑤 = 𝜀 rifiuta

• Per farlo, marca inizio e fine di ciascuna sottostringa 𝑤𝑖

• Poi 𝑀′ simula 𝑀 su ogni 𝑤𝑖 e se tutte le simulazioni accettano, accetta 𝑤

• Per come abbiamo costruito 𝑀′ abbiamo che 𝐿 𝑀′ = 𝐿+poiché:• se 𝑤 ∈ 𝐿+, M′ troverà una partizione per cui tutti i 𝑤𝑖 sono

accettati da 𝑀• se 𝑤 ∉ 𝐿+, non esisteranno partizioni accettate da 𝑀′

37

Page 38: Linguaggi Context-Sensitive e Linear Bounded Automata

Chiusura rispetto alla concatenazione

• La chiusura rispetto alla concatenazione dei CSL può essere verificata in modo analogo all'algoritmo appena visto

• Dati due CSL 𝐿1 e 𝐿2, consideriamo gli LBA 𝑀1,𝑀2 tali che 𝐿 𝑀1 = 𝐿1 e 𝐿 𝑀2 = 𝐿2

• Costruiamo un nuovo LBA 𝑀 che riconoscerà 𝐿1𝐿2• Analogamente al caso precedente, 𝑀 marcherà

nondeterministicamente il punto in cui dividere la stringa in input 𝑤 in 𝑤1𝑤2

• Simulerà quindi 𝑀1 su 𝑤1 e 𝑀2 su 𝑤2 e accetterà solo se entrambi accetteranno

• Quindi 𝑀 accetterà 𝑤 se e solo se è possibile scrivere 𝑤 =𝑤1𝑤2 tale che 𝑤1 ∈ 𝐿1 e 𝑤2 ∈ 𝐿2, ovvero 𝐿 𝑀 = 𝐿1𝐿2 38

Page 39: Linguaggi Context-Sensitive e Linear Bounded Automata

GRAZIE PER L'ATTENZIONE!

39