Docente:
Giuseppe Scollo
Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10
un'algebra di Kleene è un semianello dotato di una ulteriore operazione unaria, la chiusura di Kleene, che gode le seguenti proprietà:
= x
≤ y ⇔ x + y = y
≤ x*
≤ x*
≤ y → x*⋅y ≤ y
≤ x → x⋅y* ≤ x
da questi assiomi discende, fra altre, la proprietà di chiusura dell'operazione unaria:
= x*
la sintassi delle espressioni regolari è quella dei termini di un'algebra di Kleene, ma con alcune convenzioni notazionali:
ε designa il neutro del monoide moltiplicativo
("1" negli assiomi precedenti)
∅ designa il neutro del monoide additivo
si ha così la notazione vista per l'algebra delle stringhe,
estesa con gli operatori
∅, +, *,
con le regole di precedenza già indicate, sovvertibili mediante
l'uso di parentesi
la semantica di un'espressione regolare è data da
un linguaggio sull'alfabeto costituito
dai suoi simboli di costante (esclusi i simboli
∅, ε,
che designano linguaggi e non sono elementi dell'alfabeto)
per rendere esatta questa definizione dobbiamo definire l'interpretazione che i suddetti operatori hanno nell'algebra di Kleene dei linguaggi regolari
le operazioni sui linguaggi, su un alfabeto Σ, viste in una lezione precedente, offrono
una naturale interpretazione agli operatori dell'algebra di Kleene
Σ, ha inoltre i singoletti dei simboli di
Σ quali
costanti, oltre all'insieme vuoto e all'insieme {ε } quali elementi neutri, risp., delle operazioni binarie
di unione e di concatenazione di insiemi di stringhe
uno stesso linguaggio può essere specificato da diverse espressioni regolari, che sono pertanto equivalenti
esempio: il linguaggio delle stringhe binarie a bit alterni, cioè nelle quali i bit in posizioni consecutive sono sempre diversi, può essere descritto dalla seguente espressione regolare:
o, equivalentemente, dalla seguente espressione regolare:
ε)(01)*(0+ε)
N.B. si noti la seguente equivalenza, deducibile dagli
assiomi di algebra di Kleene:
∅ * = ε
espressioni regolari e automi a stati finiti definiscono la stessa classe di linguaggi, ovvero la classe dei linguaggi regolari, che coincide con la classe dei linguaggi di tipo 3 nella gerarchia di Chomsky
ε-NFA
mostriamo allora l'equivalenza di espressioni regolari e FSA esibendo:
ε-NFA che accetta il
linguaggio da essa definito
N.B. l'asimmetria in questa scelta obbedisce a un criterio di semplicità della dimostrazione
si ha una dimostrazione per induzione sul numero di stati, ma è alquanto intricata (seppur interessante proprio per questo)
una alternativa più pratica è la costruzione dell'espressione regolare per progressiva eliminazione di stati del DFA
la struttura della costruzione è la seguente:
≠q0,
a un solo stato altrimenti
eliminazione di uno stato in un FSA esteso
estensione delle etichette di archi fra stati adiacenti:
R'ij =
Rij + Pi S*Qj
FSA esteso, ridotto a due stati
espressione regolare equivalente: (R + SU*T)*SU*
FSA esteso, ridotto a uno stato
espressione regolare equivalente: R*
la costruzione di un ε-NFA che accetta il linguaggio di una data
espressione regolare E procede per
induzione sulla struttura di E,
rispettando un invariante che vale per qualsiasi ε-NFA così costruito:
base dell'induzione: siffatti automi per le
espressioni regolari ε, ∅, a,
rispettivamente:
passo induttivo:
composizione di siffatti automi per gli argomenti degli operatori
+, _ _, *: