Sei sulla pagina 1di 34

ESERCIZI SU OPERAZIONI SUI

LINGUAGGI, LINGUAGGI REGOLARI,


AUTOMI A STATI FINITI E PUMPING
LEMMA PER I LINGUAGGI REGOLARI

Dipartimento di Informatica
Informatica e Comunicazione Digitale (Taranto)
Esercizi
• Esercizi sui seguenti argomenti

• Operazioni sui linguaggi

• Linguaggi regolari

• Automi a stati finiti

• Pumping Lemma per i linguaggi regolari

• Esercizio #1

• Esercizio #2

• Esercizio #3

• Esercizio #4

• Esercizio #5
Esercizio #1

Dimostrare formalmente che il seguente linguaggio

𝐿 = 𝑎𝑛 𝑏 𝑘 𝑐 𝑛 ≥ 𝑘 ≥ 0}

non è lineare destro


Esercizio #1 - Soluzione
• Parole che costituiscono il linguaggio 𝐿

• 𝑐

• 𝑎𝑐

• 𝑎2 𝑐

• 𝑎3 𝑐

• …

• 𝑎𝑏𝑐

• 𝑎2 𝑏𝑐

• 𝑎3 𝑏𝑐

• …
Esercizio #1 - Soluzione
• Supponiamo, per assurdo, che 𝐿 sia lineare destro
• Per il teorema di Kleene, ℒ3 ≡ ℒ𝐹𝑆𝐿 ≡ ℒ𝑅𝐸𝐺
• Quindi, se 𝐿 è lineare è anche regolare ed anche a stati finiti

• Quindi: ∃𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 𝐹𝑆𝐴 su 𝑋 = 𝑎, 𝑏, 𝑐 tale che


𝐿 = 𝑇(𝑀)
• Sia 𝑝 = |𝑄|, ossia 𝑝 è il numero di stati di 𝑀
• Per il Pumping lemma sui linguaggi regolari abbiamo
che ∀𝑧 ∈ 𝐿, 𝑧 > 𝑝
• 𝑧 = 𝑢𝑣𝑤
• |𝑢𝑣| ≤ 𝑝
• 𝑣≠𝜆
• ∀𝑘 ≥ 0: 𝑢𝑣 𝑘 𝑤 ∈ 𝑇(𝑀)
Esercizio #1 - Soluzione
• Consideriamo una parola in 𝐿
𝑧 = 𝑎𝑝 𝑏𝑝 𝑐
• Avremo che
• 𝑧 = 2𝑝 + 1 > 𝑝
• 𝑧 deve essere accettata da 𝑀
Esercizio #1 - Soluzione
• L’automa 𝑀 parte dallo stato 𝑞0 e legge una 𝑎 per
volta
• Dopo aver letto la prima 𝑎 si porta in 𝑞1 , dopo la
seconda 𝑎 in 𝑞2 ,…, dopo la 𝑛-sima 𝑎 si porta in
𝑞𝑝
Esercizio #1 - Soluzione
• Per riconoscere le prime 𝑝 𝑎, l’automa 𝑀 ha
bisogno di transitare in 𝑝 + 1 stati

𝑎
𝑞0 ՜ 𝑞1
𝑎
𝑝𝑎 𝑞1 ՜ 𝑞2

𝑎
𝑞𝑛−1 ՜ 𝑞𝑝

• Poiché 𝑀 ha solo 𝑝 stati si deve verificare un


ciclo
Esercizio #1 - Soluzione

𝑎(1)
𝑠𝑡𝑎𝑟𝑡 𝑞0 𝑞1 𝑞𝑖−1

𝑎 (𝑗−1) 𝑎(𝑖)

𝑎(𝑗+1) 𝑐
𝑞𝑗−1 𝑞𝑖 = 𝑞𝑗 𝑞𝑗+1 𝑞𝑝−1 𝑞𝐹

𝑎(𝑖+1)

𝑞𝑖+1

Trace di 𝑀
Esercizio #1 - Soluzione
• Avremo che:
• 𝑧 si può scrivere come
𝑧 = 𝑢𝑣𝑤 = 𝑎ณ𝑖 𝑎
ถ 𝑗−𝑖 𝑎 𝑝−𝑗 𝑏 𝑝 𝑐
𝑢 𝑣 𝑤
• |𝑢𝑣| = |𝑎𝑖 𝑎 𝑗−𝑖 | ≤ 𝑝
• 𝑎 𝑗−𝑖 ≠ λ, 0 < 𝑗 − 𝑖 ≤ 𝑝
• Sia 𝑘 = 0, per il lemma abbiamo che la parola depompata
𝑢𝑣 𝑘 𝑤 ∈ 𝑇(𝑀)
𝑡 = 𝑢𝑣 0 𝑤 = 𝑎𝑝−(𝑗−𝑖) 𝑏 𝑝 𝑐 ∈ 𝑇(𝑀)
• Osservazione: 𝑢𝑣 0 𝑤 ∉ 𝐿, dato che #𝑎 𝑡 < #𝑏 𝑡
Esercizio #1 - Soluzione
• Abbiamo raggiunto una contraddizione
• 𝐿 non è regolare in quanto ∃𝑀 tale che 𝑇 𝑀 = 𝐿
• 𝐿 non è lineare destro
Esercizio #2

Dimostrare formalmente che il seguente linguaggio

𝐿 = 𝑎𝑛 𝑏𝑐 3𝑛 𝑛 > 0}

non è lineare destro


Esercizio #2 - Soluzione
• Parole che costituiscono il linguaggio 𝐿

• 𝑎𝑏𝑐 3

• 𝑎2 𝑏𝑐 6

• 𝑎3 𝑏𝑐 9

• 𝑎4 𝑏𝑐12

• …
Esercizio #2 - Soluzione
• Supponiamo, per assurdo, che 𝐿 sia lineare destro
• Per il teorema di Kleene, ℒ3 ≡ ℒ𝐹𝑆𝐿 ≡ ℒ𝑅𝐸𝐺
• Quindi, se 𝐿 è lineare è anche regolare ed anche a stati finiti

• Quindi: ∃𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 𝐹𝑆𝐴 su 𝑋 = 𝑎, 𝑏, 𝑐 tale che


𝐿 = 𝑇(𝑀)
• Sia 𝑝 = |𝑄|, ossia 𝑝 è il numero di stati di 𝑀
• Per il Pumping lemma sui linguaggi regolari abbiamo
che ∀𝑧 ∈ 𝐿, 𝑧 > 𝑝
• 𝑧 = 𝑢𝑣𝑤
• |𝑢𝑣| ≤ 𝑝
• 𝑣≠𝜆
• ∀𝑘 ≥ 0: 𝑢𝑣 𝑘 𝑤 ∈ 𝑇(𝑀)
Esercizio #2 - Soluzione
• Consideriamo una parola in 𝐿
𝑧 = 𝑎𝑝 𝑏𝑐 3𝑝
• Avremo che
• 𝑧 = 𝑝 + 3𝑝 > 𝑝
• 𝑧 deve essere accettata da 𝑀
Esercizio #2 - Soluzione
• L’automa 𝑀 parte dallo stato 𝑞0 e legge una 𝑎 per
volta
• Dopo aver letto la prima 𝑎 si porta in 𝑞1 , dopo la
seconda 𝑎 in 𝑞2 ,…, dopo la 𝑛-sima 𝑎 si porta in
𝑞𝑝
Esercizio #2 - Soluzione
• Per riconoscere le prime 𝑝 𝑎, l’automa 𝑀 ha
bisogno di transitare in 𝑝 + 1 stati

𝑎
𝑞0 ՜ 𝑞1
𝑎
𝑝𝑎 𝑞1 ՜ 𝑞2

𝑎
𝑞𝑛−1 ՜ 𝑞𝑝

• Poiché 𝑀 ha solo 𝑝 stati si deve verificare un


ciclo
Esercizio #2 - Soluzione

𝑎(1)
𝑠𝑡𝑎𝑟𝑡 𝑞0 𝑞1 𝑞𝑖−1

𝑎 (𝑗−1) 𝑎(𝑖)

𝑎(𝑗+1) 𝑐 (3𝑝)
𝑞𝑗−1 𝑞𝑖 = 𝑞𝑗 𝑞𝑗+1 𝑞𝑝−1 𝑞𝐹

𝑎(𝑖+1)

𝑞𝑖+1

Trace di 𝑀
Esercizio #2 - Soluzione
• Avremo che:
• 𝑧 si può scrivere come
𝑧 = 𝑢𝑣𝑤 = 𝑎ณ𝑖 𝑎
ถ 𝑗−𝑖 𝑎 𝑝−𝑗 𝑏𝑐 3𝑝
𝑢 𝑣 𝑤
• |𝑢𝑣| = |𝑎𝑖 𝑎 𝑗−𝑖 | ≤ 𝑝
• 𝑣 ≠ λ, infatti 𝑎 𝑗−𝑖 ≠ λ, 0 < 𝑗 − 𝑖 ≤ 𝑝

• Sia 𝑘 > 0, per il lemma abbiamo che la parola pompata


𝑢𝑣 𝑘 𝑤 ∈ 𝑇(𝑀)
𝑡 = 𝑢𝑣 𝑘 𝑤 = 𝑎𝑝+𝑘(𝑗−𝑖) 𝑏𝑐 3𝑝 ∈ 𝑇(𝑀)
• Osservazione: 𝑢𝑣 𝑘 𝑤 ∉ 𝐿, dato che #𝑐 𝑡 ≠ 3#𝑎 𝑡
Esercizio #2 - Soluzione
• Abbiamo raggiunto una contraddizione
• 𝐿 non è regolare in quanto ∃𝑀 tale che 𝑇 𝑀 = 𝐿
• 𝐿 non è lineare destro
Esercizio #3
Sia 𝐿1 il linguaggio formale su 𝑋 = {𝑎, 𝑏}
denotato dall’espressione regolare 𝑎 + 𝑏 ∗ .

Sia 𝐿2 il linguaggio formale su 𝑋 = {𝑎, 𝑏}


denotato dall’espressione regolare 𝑎𝑏.

• Determinare una grammatica lineare destra che

genera 𝐿 = 𝐿1 ∙ 𝐿2
Esercizio #3 - Soluzione
• 𝑅1 = 𝑎 + 𝑏 ∗
• Troviamo ora 𝑆(𝑅1 ), ossia il linguaggio regolare
corrispondente all’espressione regolare 𝑅1
∗ ∗ ∗
𝑆 𝑎+𝑏 = 𝑆 𝑎+𝑏 = 𝑆 𝑎 ∪𝑆 𝑏 =
= 𝑎 ∪ 𝑏 ∗ = 𝑎, 𝑏 ∗
Esercizio #3 - Soluzione
• 𝑅2 = 𝑎𝑏
• Troviamo ora 𝑆(𝑅2 ), ossia il linguaggio regolare
corrispondente all’espressione regolare 𝑅2
𝑆 𝑎𝑏 = 𝑆 𝑎 ∙ 𝑆 𝑏 = {𝑎𝑏}
Esercizio #3 - Soluzione
• Determinare una grammatica lineare destra che
genera 𝐿 = 𝐿1 ∙ 𝐿2
• Sia 𝐺1 grammatica generativa 𝐺1 = (𝑋1 , 𝑉1 , 𝑆1 , 𝑃1 ) t.c.
𝐿1 = 𝐿 𝐺1
• 𝑋1 = 𝑎, 𝑏
• 𝑉 = 𝑆1
• 𝑆1 assioma
• 𝑃1 = 𝑆1 ՜ λ 𝑎𝑆1 |𝑏𝑆1}
Esercizio #3 - Soluzione
• Determinare una grammatica lineare destra che
genera 𝐿 = 𝐿1 ∙ 𝐿2
• Sia 𝐺2 grammatica generativa 𝐺2 = (𝑋2 , 𝑉2 , 𝑆2 , 𝑃2 ) t.c.
𝐿2 = 𝐿 𝐺2
• 𝑋2 = 𝑎, 𝑏
• 𝑉 = 𝑆2
• 𝑆2 assioma
• 𝑃2 = {𝑆2 ՜ 𝑎𝐴, 𝐴 ՜ 𝑏}
Esercizio #3 - Soluzione
• Determinare una grammatica lineare destra che
genera 𝐿 = 𝐿1 ∙ 𝐿2
• 𝑃1 = 𝑆1 ՜ λ 𝑎𝑆1 |𝑏𝑆1 }
• 𝑃2 = {𝑆2 ՜ 𝑎𝐴, 𝐴 ՜ 𝑏}

• 𝐺 = (𝑋, 𝑉 − 𝑆 , 𝑆1 , 𝑃)
• 𝑋 = 𝑎, 𝑏
• 𝑉 = {𝑆1 , 𝑆2 , 𝐴}
• 𝑆1 assioma
• 𝑃 = {𝑆1 ՜ 𝑎𝑆1 𝑏𝑆1 𝑎𝑆2 |𝑏𝑆2 |𝑎𝐴, 𝑆2 ՜ 𝑎𝐴, 𝐴 ՜ 𝑏}
Esercizio #4
Progettare, commentando opportunamente, l’automa a

stati finiti riconoscitore per il linguaggio delle stringhe

binarie contenenti almeno una volta la sottostringa 00


Esercizio #4 - Soluzione
• 𝐿 ∈ ℒ𝐹𝑆𝐿 dato che ∃𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 𝐹𝑆𝐴 t.c. 𝐿 =
𝑇(𝑀)
• 𝑋 = 0,1 alfabeto di ingresso
• 𝑄 = 𝑞0 , 𝑞1 , 𝑞2 insieme degli stati
• 𝐹 = {𝑞2 }
Esercizio #4 - Soluzione
• 𝐿 ∈ ℒ𝐹𝑆𝐿 dato che ∃𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 𝐹𝑆𝐴 t.c. 𝐿 =
𝑇(𝑀)
• 𝛿: 𝑄 × 𝑋 ՜ 𝑄 funzione di transizione t.c.

𝛿 𝑞0 𝑞1 𝑞2
0 𝑞1 𝑞1 𝑞2
1 𝑞0 𝑞0 𝑞2
Esercizio #5
Sia data la seguente grammatica lineare destra 𝐺 =

(𝑋, 𝑉, 𝑆, 𝑃)

𝑋 = 𝑎, 𝑏 , 𝑉 = 𝑆, 𝐴, 𝑏 , 𝑆

𝑃 = {𝑆 ՜ 𝑎|𝑎𝐴 𝑎𝐵, 𝐴 ՜ 𝑎𝐵 𝑏𝐴, 𝐵 ՜ 𝑏|𝑏𝐵}

• Costruire il diagramma di transizione di un automa a

stati finiti 𝑀 che riconosce 𝐿(𝐺)


Esercizio #5 - Soluzione
• Data la grammatica 𝐺 = (𝑋, 𝑉, 𝑆, 𝑃) lineare destra,
l’automa 𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 t.c. 𝐿 = 𝑇(𝑀) viene costruito
come segue:
• 𝑋 = 𝑎, 𝑏 alfabeto di ingresso
• 𝑄 = 𝑉 ∪ 𝑞 = {𝑆, 𝐴, 𝐵} ∪ 𝑞 , 𝑞 ∉ 𝑉 insieme degli stati
• 𝑞0 = 𝑆
• 𝐹 = 𝑞 ∪ 𝐵 𝐵 ՜ λ ∈ 𝑃 = {𝑞}
Esercizio #5 - Soluzione
• Data la grammatica 𝐺 = (𝑋, 𝑉, 𝑆, 𝑃) lineare destra,
l’automa 𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 t.c. 𝐿 = 𝑇(𝑀) viene costruito
come segue:
• 𝛿: 𝑄 × 𝑋 ՜ 2𝑄 t.c.
• ∀𝐴 ՜ 𝑏𝐶 ∈ 𝑃, allora 𝐶 ∈ 𝛿(𝐴, 𝑏)
• ∀𝐴 ՜ 𝑏 ∈ 𝑃, allora 𝑞 ∈ 𝛿(𝐴, 𝑏)

𝛿 𝑆 𝐴 𝐵 𝑞
𝑎 {𝐴, 𝐵, 𝑞} {𝐵} − −
𝑏 − {𝐴} {𝐵, 𝑞} −
Esercizio #5 - Soluzione
• Data la grammatica 𝐺 = (𝑋, 𝑉, 𝑆, 𝑃) lineare destra,
l’automa 𝑀 = 𝑄, 𝛿, 𝑞0 , 𝐹 t.c. 𝐿 = 𝑇(𝑀) viene costruito
come segue:
• Diagramma degli stati
• S = q0
Credits
• Si ringrazia il Tutor 2018-2019: Francesco Paolo Caforio

Potrebbero piacerti anche