• Non ci sono risultati.

1Esempio DFA—Esempidiaccettazione AzzoliniRiccardo2020-10-05

N/A
N/A
Protected

Academic year: 2021

Condividi "1Esempio DFA—Esempidiaccettazione AzzoliniRiccardo2020-10-05"

Copied!
4
0
0

Testo completo

(1)

Azzolini Riccardo 2020-10-05

DFA — Esempi di accettazione

1 Esempio

Si consideri l’automa rappresentato dal seguente diagramma:

q0

start q1 q2

0

1

0 1

0, 1

Formalmente, questo è un automa A =⟨Q, Σ, δ, q0, F⟩ con:

• Q ={q0, q1, q2},

• Σ ={0, 1},

• δ rappresentata dalla tabella

δ 0 1

q0 q0 q1 q1 q2 q1

q2 q1 q1

• stato iniziale q0,

• F ={q1}.

La stringa 111 è accettata dall’automa A, perché esiste (ed è unica, essendo A un auto- ma deterministico) una sequenza di stati q0, q1, q1, q1 che verifica le tre condizioni della definizione di accettazione:

1. q0 è lo stato iniziale;

2. la sequenza di stati è coerente con la funzione di transizione, δ(q0, 1) = q1 δ(q1, 1) = q1 δ(q1, 1) = q1 o, scritto come sequenza di mosse,

→ q0 1

→ q1 1

→ q1 1

→ q1

1

(2)

3. q1 è uno stato finale.

Invece, la stringa 110 non è accettata: siccome A è deterministico, esiste un’unica sequen- za di stati che verifichi le condizioni 1 e 2 della definizione di accettazione, q0, q1, q1, q2, ma questa non soddisfa la condizione 3. Infatti, dati lo stato iniziale q0 e la stringa in input w = 110, si determina univocamente la sequenza di mosse

→ q0

1

→ q1

1

→ q1

0

→ q2

e q2 non è uno stato finale.

2 Automa che accetta solo la stringa vuota

Si consideri l’automa

q0

start q1

0, 1

0, 1

ovvero A =⟨Q, Σ, δ, q0, F⟩, con:

• Q ={q0, q1},

• Σ ={0, 1},

• δ rappresentata dalla tabella

δ 0 1

q0 q1 q1

q1 q1 q1

• stato iniziale q0,

• F ={q0}.

Esso accetta la stringa vuota ϵ, perché la sequenza di stati costituita dal solo q0 soddisfa le tre condizioni della definizione.

Invece, A non accetta qualunque stringa w = a1a2. . . an ∈ {0, 1} con |w| = n ≥ 1, perché allora la sola sequenza di mosse possibile è

→ q0 a1

−→ q1 a2

−→ q1· · ·−→ qan 1

che corrisponde alla sequenza di stati q0, q1, q1, . . . , q1: siccome q1 non è uno stato finale, la terza condizione della definizione di accettazione non è soddisfatta. Informalmente, il

2

(3)

primo simbolo a1 di w, sia esso 0 oppure 1, porta l’automa dallo stato q0 allo stato q1, dopodiché l’automa non ha modo di “uscire” dallo stato q1.

Si deduce quindi che il linguaggio accettato da A è L(A) = {ϵ}, ovvero il linguaggio formato dalla sola stringa vuota.

3 Automa che riconosce il linguaggio vuoto

Si consideri un automa A =⟨Q, Σ, δ, q0, F⟩

q0

start

0, 1

avente:

• Q ={q0},

• Σ ={0, 1},

• δ rappresentata dalla tabella

δ 0 1

q0 q0 q0

• stato iniziale q0,

• F =∅ (nessuno stato finale).

Questo automa:

• non accetta la stringa vuota ϵ, perché la sequenza di stati costituita dal solo q0, l’unica possibile per l’input ϵ, soddisfa le prime due condizioni della definizione, ma non la terza;

• non accetta una qualunque stringa w = a1a2. . . an ∈ {0, 1} con n ≥ 1, perché l’unica sequenza di mosse possibile per w,

→ q0 a1

−→ q0 a2

−→ q0· · ·−→ qan 0

dà luogo alla sequenza di stati q0, q0, q0, . . . , q0, che soddisfa le prime due condizioni della definizione ma non la terza.

Si deduce allora che questo automa riconosce il linguaggio vuoto, L(A) =∅, ovvero non accetta alcuna stringa.

3

(4)

4 Automa che accetta tutte le stringhe

Come ultimo esempio, si consideri un automa A =⟨Q, Σ, δ, q0, F⟩

q0

start

0, 1

caratterizzato da:

• Q ={q0},

• Σ ={0, 1},

• δ rappresentata dalla tabella

δ 0 1

q0 q0 q0

• stato iniziale q0,

• F ={q0} = Q.

Si osserva che questo automa è quasi identico al precedente: l’unica differenza è che qui il singolo stato q0 è finale. Ciò determina però un comportamento “opposto” rispetto all’esempio precedente:

• la stringa vuota ϵ è accettata perché la sequenza di stati costituita dal solo q0 soddisfa le tre condizioni della definizione;

• una stringa w = a1. . . an∈ {0, 1} con n≥ 1 determina la sequenza di mosse

→ q0 a1

−→ q0 a2

−→ q0· · ·−→ qan 0

ovvero la sequenza di stati q0, q0, q0, . . . , q0, che soddisfa le tre condizioni della definizione.

Il linguaggio riconosciuto da A è dunque quello che comprende tutte le possibili stringhe sull’alfabeto: L(A) ={0, 1} = Σ.

4

Riferimenti

Documenti correlati

Se questa è troppo bassa, il segnale digitale ottenuto dalla conversione può diventare un alias del segnale originale, cioè un segnale di fatto completamente diverso, che assume

• Calcolare la lunghezza media dei film di ciascun regista 1 usciti in ciascuno degli anni 2000, 2001 e 2002, e la lunghezza media complessiva per ciascun anno (su tutti i registi).

• Un ultimo svantaggio, anche se questo non dipende dal modello dei dati, è che, al momento, non esiste un linguaggio di interrogazione standard (neanche de-facto) per JSON.

La tecnica che lo permette è chiamata reificazione: si rappresenta uno statement attra- verso una risorsa, e si associa a essa un URI, che può essere usato per fare riferimento a

RDF Schema (RDFS) fissa il significato di alcune risorse (“classe”, ecc.) e proprie- tà/predicati (“appartenenza” di un’istanza a una classe, “inclusione” di una classe

recupera tutte le triple con il predicato uni:phone tra quelle che hanno come soggetto valori legati a ?lecturer, e lega gli oggetti alla variabile ?number.. Come indicato

Rimuovendo parzialmente o completamente questi vincoli, si ottiene un modello dei dati ancora più generale, talvolta indicato con il termine knowledge graph (ma, in realtà, tale

Un matching tra un bgp (basic graph pattern, cioè l’interrogazione) e un property graph (cioè il database) è un’operazione di mapping / sostituzione dalle variabili a delle costanti