Automi e Linguaggi Regolari Alberto Cuesta Cañada.

29
Automi e Linguaggi Regolari Alberto Cuesta Cañada

Transcript of Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Page 1: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Automi e Linguaggi Regolari

Alberto Cuesta Cañada

Page 2: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Introduzione

• Lo scopo della informatica e diventare possibile la communicazione tra l’uomo e i computer.

• Prima dobbiamo trovare un linguaggio commune, o meggio, costruirlo.

Page 3: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Linguaggi

• Definizioni:

• Σ= Insieme di letteri

• X= a1…ai |aj є Σ = parola (finita)

• X*=Tutte le parole generate per Σ

Page 4: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Linguaggi

• Un linguaggio e un insieme di parole (puo essere infinito) da un alfabeto finito.

• Si genera con grammatiche con struttura di frase.

Page 5: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

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*

Page 6: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Sensitive Grammars

• Le produzione hanno la forma:

• uAv→uwv dove

u,v є V * (forse λ)A є (V- Σ)

w є V*, w≠ λ

• Lcsf=(anbncn)

Page 7: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Sensitive Grammars

• Grosso modo, un non-terminale determinato puo essere cambiato per una cattena di lettere determinata in un certo contesto.

Page 8: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Sensitive Grammars

• E dimostrabile che queste grammatiche possono essere transformate in altri equivalente:

• u→v u є (V- Σ)+, v є (V- Σ) * • A→a A є (V- Σ), a є Σ

Page 9: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Free Grammars

• Le produzione hanno la forma:

• A→x dove

x є (V) * (forse λ)A є (V- Σ)

• Lcfg=(anbn)

Page 10: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Free Grammars

• E dimostrabile che queste grammatiche possono essere transformate in altra equivalente del modo:

• A→xv dove

x,v є V (forse λ)A є (V- Σ)

• Questo serve per produrre alberi binari

Page 11: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Context Free Grammars

• Definizione: Una parola ‘e in forma canonica se tutte le sue derivazione sono nell stesso senso (destra o sinistra)

• S→Sa| λ S

S

S

a

S

a

a

Page 12: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

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=(aibj)

Page 13: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Grammars

Phrase Structure Grammars

Context Sensitive Grammars

Context Free Grammars

Linear Context Free Grammars

Page 14: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Automi

• Un automa e’ una 5-tupla {Q, Σ, δ, q0, F}

• Q=Stati.

• Σ=Alfabeto.

• δ =Transizioni.

• q0 =Stato Iniziale.

• F=Stati Finali.

0

1

2

3

a

a

a

b

λ

b

Page 15: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

LCF Grammars e Automi

• E’ dimostrabile la correspondenza tra Linguaggi Regolari e Automi Finiti.

• L=(a+b)*

0 1 2

3 4

5 6

7 8 9λ

λ

λ

λ λ

λ λ

λλλ

a

b

Page 16: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFλ →AFN

• Si puo trovare un automa finito non determinista per ogni automa finito con transizioni vuoti:

0 1 2

3 4

5 6

7 8 9λ

λ

λ

λ λ

λ λ

λλλ

a

b

Page 17: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFλ →AFN

• Prendiamo uno stato e troviamo la sua λ-clousure.• 0 → 0,1,2,3,5,8,9

0 1 2

3 4

5 6

7 8 9λ

λ

λ

λ λ

λ λ

λλλ

a

b

Page 18: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFλ →AFN

0

4

6

λa

b

λ

• Prendiamo un altro stato diverso e ripetiamo:• 4 → 7,0

Page 19: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

• Ripetiamo:• 6 → 6,4

Operazioni con Automi: AFλ →AFN

4 6

a

b

λ

6

a,b

Il metodo finisce quando non c’e’ nessuna transizione vuota

Page 20: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFN →AFD

• Si puo trovare un automa finito determinista per ogni automa finito non determinista:

0

1

2

a

b

3

4

5

b

b

b

a

a a

Page 21: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFN →AFD

0 1 2

1 V 3

2 1,4 V

3 V 4,5

1,4 V,5 V,3

4,5 V,5 V

V,5 V V

V,3 V V,4,5

V,4,5 V,5 V

V V V

0

1

21,4

3

V

V,3

4,5

V,5

aa

a

a

a

aa,b

a

a,b

b

b

bb

b

b

b

V,4,5b a

Stato a b

Page 22: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFD →AFD Minimo

• E’ molto utile lavorare con automi minimi:

0

1

2

4

3

9

7

5

6

aa

a

a

a

aa,b

a

a,b

b

b

bb

b

b

b

8b a

Page 23: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFD →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}

B1 0 B1 B1

1 B1 B1

2 B1 B1

3 B1 B2

4 B2 B1

7 B1 B2

9 B2 B1

B2 5 B2 B1

6 B1 B1

8 B2 B1

Stato a b

Page 24: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFD →AFD Minimo

B1’={0}

B2’={1}

B3’={2}

B4’={3,7}

B5’={4}

B6’={9}

B7’={5,8}

B8’={6}

Stato a b

B1 0 B1 B1

1 B3 B2

2 B3 B3

B2 3 B3 B4

7 B3 B4

B3 4 B5 B3

9 B3 B3

B4 5 B5 B3

8 B5 B3

B5 6 B3 B3

Page 25: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

Operazioni con Automi: AFD →AFD Minimo

El algoritmo finisce qui, abbiamo tolto due stati dell’ originale.

Blocco Stato a b

B1 0 B2 B3

B2 1 B6 B4

B3 2 B5 B6

B4 3 B6 B7

7 B6 B7

B5 4 B8 B4

B6 9 B6 B6

B7 5 B8 B6

8 B8 B6

B8 6 B6 B6

B1

a

b

B2

B3 B5 B8

B4 B7

B6

b

b b

a a

aa,b

a,b

a a b

Page 26: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

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

Page 27: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

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

Page 28: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

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

Page 29: Automi e Linguaggi Regolari Alberto Cuesta Cañada.

ConclusionePhrase

Structure Grammars

Context Sensitive

Grammars

Context Free Grammars

Linear Context Free Grammars

Automi Finiti

Pushdown Automi

Linear Bounded Automi

Machine di Turing