Automi e Linguaggi Regolari Alberto Cuesta Cañada
Introduzione Lo scopo della informatica e diventare possibile la communicazione tra luomo e i computer. Prima dobbiamo trovare un linguaggio commune, o meggio, costruirlo.
Linguaggi Definizioni: Σ= Insieme di letteri X= a 1 …a i |a j є Σ = parola (finita) X*=Tutte le parole generate per Σ
Linguaggi Un linguaggio e un insieme di parole (puo essere infinito) da un alfabeto finito. Si genera con grammatiche con struttura di frase.
Phrase Structure Grammars G={V, Σ, P, S} Grosso modo una grammatica sono lettere e regole per costrurre parole. L(G) e il linguaggio composto per tutte le parole generate per G. P=(V- Σ) + x V*
Context Sensitive Grammars Le produzione hanno la forma: uAvuwv dove u,v є V * (forse λ) A є (V- Σ) w є V*, w λ L csf =(a n b n c n )
Context Sensitive Grammars Grosso modo, un non-terminale determinato puo essere cambiato per una cattena di lettere determinata in un certo contesto.
Context Sensitive Grammars E dimostrabile che queste grammatiche possono essere transformate in altri equivalente: uv u є (V- Σ) +, v є (V- Σ) * Aa A є (V- Σ), a є Σ
Context Free Grammars Le produzione hanno la forma: Ax dove x є (V ) * (forse λ) A є (V- Σ) L cfg =(a n b n )
Context Free Grammars E dimostrabile che queste grammatiche possono essere transformate in altra equivalente del modo: Axv dove x,v є V (forse λ) A є (V- Σ) Questo serve per produrre alberi binari
Context Free Grammars Definizione: Una parola e in forma canonica se tutte le sue derivazione sono nell stesso senso (destra o sinistra) SSa| λ S S S a S a a
Linear Context Free Grammars Una grammatica di cui tutte le forme possibili sono canoniche a destra (sinistra) se dice che e lineale a destra (sinistra). E dimostrabile che queste grammatiche sono equivalenti alle grammatiche regolari. L=(a i b j )
Grammars Phrase Structure Grammars Context Sensitive Grammars Context Free Grammars Linear Context Free Grammars
Automi Un automa e una 5-tupla {Q, Σ, δ, q 0, F} Q=Stati. Σ=Alfabeto. δ =Transizioni. q 0 =Stato Iniziale. F=Stati Finali a a a b λ b
LCF Grammars e Automi E dimostrabile la correspondenza tra Linguaggi Regolari e Automi Finiti. L=(a+b)* λ λ λ λλ λλ λλ λ a b
Operazioni con Automi: AF λ AFN Si puo trovare un automa finito non determinista per ogni automa finito con transizioni vuoti: λ λ λ λλ λλ λλ λ a b
Operazioni con Automi: AF λ AFN Prendiamo uno stato e troviamo la sua λ- clousure. 0 0,1,2,3,5,8, λ λ λ λλ λλ λλ λ a b
Operazioni con Automi: AF λ AFN λ λ a b λ Prendiamo un altro stato diverso e ripetiamo: 4 7,0
Ripetiamo: 6 6,4 Operazioni con Automi: AF λ AFN 46 a b λ 6 a,b Il metodo finisce quando non ce nessuna transizione vuota
Operazioni con Automi: AF N AFD Si puo trovare un automa finito determinista per ogni automa finito non determinista: a b b b b a a a
Operazioni con Automi: AF N AFD 012 1V3 21,4V 3V4,5 1,4V,5V,3 4,5V,5V VV V,3VV,4,5 V,5V VVV ,4 3 V V,3 4,5 V,5 a a a a a a a,b a b b b b b b b V,4,5 b a Stato a b
Operazioni con Automi: AF D AFD Minimo E molto utile lavorare con automi minimi: a a a a a a a,b a b b b b b b b 8 b a
Operazioni con Automi: AF D AFD Minimo 5,6,8 є F B1={1,2,3,4,7,9}, B2={5,6,8} B1={0,1,2} B2={3,7} B3={4,9} B4={5,8} B5={6} B B2 4 B1 7 B2 9 B1 B25 B1 6 8B2B1 Statoab
Operazioni con Automi: AF D AFD Minimo B1={0} B2={1} B3={2} B4={3,7} B5={4} B6={9} B7={5,8} B8={6} Statoab B10 1B3B2 2B3 B23B3B4 7B3B4 B34B5B3 9 B45B5B3 8B5B3 B56B3
Operazioni con Automi: AF D AFD Minimo El algoritmo finisce qui, abbiamo tolto due stati dell originale. BloccoStatoab B10B2B3 B21B6B4 B32B5B6 B43B6B7 7B6B7 B54B8B4 B69 B75B8B6 8B8B6 B86B6 B1 a b B2 B3B5B8 B4B7 B6 b bb aa a a,b a a b
Pushdown Automata Un automa pushdown ha due nastri, uno con il input, e altro che funziona come uno stack. Questi automi sono correspondenti con le Context Free Grammars. Automa nell stato Q a Z
Linear Bounded Automata Un Linear Bounded Automa ha un solo nastro finito, in cui puo leggere e scrivere Questi automi sono correspondenti con le Context Sensitive Grammars. Automa nell stato Q a
Turing Machines Una Machina di Turing e una Linear Bounded Machine che lavora su un nastro di input infinito. Queste machine sono correspondenti con le Phrase Structure Grammars. Automa nell stato Q a
Conclusione Phrase Structure Grammars Context Sensitive Grammars Context Free Grammars Linear Context Free Grammars Automi Finiti Pushdown Automi Linear Bounded Automi Machine di Turing