03-utomi--stti-finiti-0 Esercizi di Informtic Teoric Automi stti finiti Autom stti finiti (ASF) richimi utom stti finiti ASF = <Σ,K,δ,,F> dove Σ = {σ, σ 2,, σ n } è un lfeto (finito) di input K= {, q,, q m } è un insieme (finito e non vuoto) di stti èlo stto inizile F K è l insieme degli stti finli δ : K Σ K è l funzione (totle) di trnsizione si può rppresentre grficmente trmite un tell di trnsizione oundigrmm di stto 2
03-utomi--stti-finiti-0 Linguggio riconosciuto d un ASF richimi si definisce ricorsivmente l funzione di trnsizione estes lle stringhe δ : K Σ * K nel seguente modo: δ (q, ε) = q se Σ e w Σ * δ (q, w) = δ(δ(q, ),w) linguggio riconosciuto d A : L = {w Σ * : δ (, w) F } 3 Automi stti finiti deterministici esercizio descrivere il linguggio riconosciuto dl seguente ASF e trovre l corrispondente espressione regolre q,, 4 2
03-utomi--stti-finiti-0 Automi stti finiti deterministici esercizio 2 si consideri il seguente AFS: q, 2. mostrre le computzioni sulle stringhe e 2. dire qul è il linguggio riconosciuto dll utom 2.c descrivere il linguggio ttrverso un espressione regolre 5 Automi stti finiti deterministici esercizio 3 costruire un AFS che riconosce il linguggio dei numeri nturli pri in se 3, compres l string vuot; si modifichi poi l utom in modo che non ccetti l string vuot. esercizio 4 scrivere l tell di trnsizione per l utom dell esercizio 3 6 3
03-utomi--stti-finiti-0 Automi stti finiti deterministici esercizio 5 costruire gli AFS che riconoscono i seguenti linguggi 5. L ={w {,} * : w non contiene mi tre consecutive} 5. L 2 ={w {,} * : w contiene tre consecutive} 5.c L 3 ={w {,} * : w contiene lmeno tre } 7 Automi deterministici esercizio 6 costruire un ASF che riconosce il linguggio delle stringhe su {,} con un numero dispri di e un numero pri di esercizio 7 modificre l utom in modo che riconosc le stringhe con un numero dispri di o un numero pri di 8 4
03-utomi--stti-finiti-0 Automi non deterministici richimi utom stti finiti non deterministico ASFND=< Σ, K, δ N,, F > dove: Σ = {σ, σ 2,, σ n } è un lfeto (finito) di input K= {, q,, q m } è un insieme (finito e non vuoto) di stti èlo stto inizile F K è l insieme degli stti finli δ N : K Σ P(K) è l funzione (totle) di trnsizione 9 Linguggio riconosciuto d un ASFND richimi si definisce ricorsivmente l funzione di trnsizione estes lle stringhe δ N : K Σ * P(K) nel seguente modo: δ N (q, ε) = {q} se Σ e w Σ * δ N (q, w) = U δ N (p, w) p δ N (q,) linguggio riconosciuto d A : L = {w Σ * : δ N (, w) F } 0 5
03-utomi--stti-finiti-0 Automi non deterministici esercizio 8 costruire un ASFND che riconosce il linguggio descritto dll espressione regolre (+) * esercizio 9 costruire un ASF che riconosce lo stesso linguggio dell esercizio 8 Automi non deterministici esercizio 0 costruire un ASFND che riconosce il linguggio L = ()*()* esercizio mostrre l computzione sull string dell utom soluzione dell esercizio 0 2 6
03-utomi--stti-finiti-0 Automi non deterministici esercizio 2 quli stringhe tr,, ed sono riconosciute dl seguente ASFND? qule linguggio riconosce? q 0 q 3 Esercizi sugli utomi esercizio 3 costruire degli utomi stti finiti (deterministici o non deterministici) che riconoscono i seguenti linguggi: 3. L = (*)* 3. L = (**)* 3.c L = **( + ) 3.d L = (c)* 3.e stringhe su {,} terminnti con o con 3.f stringhe su {,} terminnti con un numero dispri di esercizio 4 dimostrre che per ogni linguggio regolre L che non contiene l string vuot ε esiste un ASFND con un solo stto finle che riconosce L 4 7
03-utomi--stti-finiti-0 richimi Algoritmo: ASFND ASF input: un ASFND < Σ, K, δ N,, F > ouput: un ASF < Σ, K, δ,q 0, F > costruzione: Σ = Σ K = contiene un superstto [q i...q j ] per ciscun elemento {q i,..,q j } di P(K) q 0 = [ ] F K è l insieme dei superstti che contengono lmeno uno stto di F δ ([q i...q j ], ) = [q h...q k ] dove {q h...q k } = δ N (q i,)... δ N (q j,) semplificzione: per costruire K si considerno solo superstti rggiungiili prtire dl superstto [ ] 5 ASFND ASF esercizio 5 costruire un ASF che riconosce lo stesso linguggio del seguente ASFND: δ N q {, } {q } { } { } {q } q esercizio 6 utilizzndo l lgoritmo ASFND ASF, costruire un ASF che riconosc lo stesso linguggio riconosciuto dll AFSND dell esercizio 0 6 8
03-utomi--stti-finiti-0 Algoritmo: ASFND grmmtic regolre richimi input: un ASFND < Σ, K, δ N,, F > (oppure un ASF < Σ, K, δ,, F > ) ouput: un grmmtic regolre <V T,V N,P, S> costruzione: V T = Σ V N contiene un non terminle A i per ogni stto q i K S = A 0 P contiene le seguenti produzioni q k δ N (q i,) (o se δ(q i,) = q k ), A i A k q k F, A k ε 7 ASFND grmmtic regolre esercizio 7 determinre un grmmtic regolre equivlente l seguente ASFND q 0 q 8 9
03-utomi--stti-finiti-0 ASFND grmmtic regolre esercizio 8 determinre un grmmtic regolre equivlente l seguente ASF q p q d 0, 2 0, 2 9 Algoritmo: grmmtic regolre ASFND richimi input: un grmmtic regolre G = <V T,V N,P, S> ouput: un ASFND <, K, δ N,, F > costruzione: trsformo G in G che non h produzioni elementri (A ) = V T K contiene uno stto q A per ogni A V N = q S F contiene uno stto q B per ogni ε-produzione B ε δ N (q B,) contiene q C per ogni B C 20 0
03-utomi--stti-finiti-0 Grmmtic regolre ASFND esercizio 9 9. determinre un ASFND equivlente ll seguente grmmtic regolre: V T = {,, c} V N = {S, A, C}, dove S è l ssiom produzioni () S A (2) S C (3) A A (4) A C (5) C cc (6) C c 9. descrivere il linguggio riconosciuto dll ASFND 2 soluzione esercizio L={ n : n 0} l espressione regolre corrispondente è * q,, 22
03-utomi--stti-finiti-0 soluzione esercizio 2 2. computzioni sulle stringhe e (nel seguito <q i s> indic un utom nello stto q i che deve ncor processre l string s) <,> <q,> <,> <,> <,ε> (non ccettnte) <,> <q,> <,> <q,> <,> <q,> <,ε> (ccettnte) 2. linguggio riconosciuto dll utom: stringhe su {,} tli che: numero di = numero di sottosequenze mssimli di sole o di sole di lunghezz l più 2 inizino per e finiscono per in ogni punto, l sequenz è silncit di l più due più l string vuot 2.c espressione regolre: (()*)* 23 soluzione esercizio 3 AFS che riconosce il linguggio dei numeri nturli in se 3, compres l string vuot q p = {0,, 2 } K = {q p, q p } F = {q p } = q p δ q p q d 0 2 q p q p q d q d q p q d q d 0, 2 0, 2 AFS che riconosce il linguggio dei numeri nturli pri in se 3, esclus l string vuot 0, 2 q p q d 0, 2 0, 2 24 2
03-utomi--stti-finiti-0 soluzione esercizio 5 5. ASF che riconosce L q 0 q, 5. ASF che riconosce L 2 q 0 q, 5.c ASF che riconosce L 3 q 0 q, 25 soluzione esercizio 6 logic costruttiv: si usno quttro stti con i seguenti significti = pri e pri, q = dispri e pri, = dispri e dispri, = pri e dispri ; si costruisce l funzione di trnsizione, osservndo che d ciscuno stto si può pssre direttmente solo stti dicenti; si decidono gli stti ccettnti sull se dell clssificzione ftt e delle stringhe che si vogliono riconoscere 26 3
03-utomi--stti-finiti-0 soluzione esercizio 8 δ N q {q } {, } { } q 27 esempio di computzione sull string <{ },> <{q },> <{, }, > <{,q }, > <{, }, > <{,q }, ε> lero delle trnsizioni per l string q q q stti l termine dell computzione 28 4
03-utomi--stti-finiti-0 soluzione esercizio 0 δ N q {q, } { } { } {q } q soluzione esercizio 2 L = ( * + * * ) = * (+ * ) 29 soluzione esercizio 4 considerimo un ASFND A che riconosce il linguggio se ε non pprtiene l linguggio lo stto inizile non è nche uno stto finle per ogni stto finle q i creimo un nuovo stto finle q if che h tutti gli rchi entrnti di q i il nuovo utom A riconosce lo stesso linguggio di A identifichimo tutti gli stti q if il nuovo utom A riconosce lo stesso linguggio di A ed A A h un solo stto finle 30 5
03-utomi--stti-finiti-0 soluzione esercizio 5 costruzione incrementle dell funzione di trnsizione δ dell ASF δ N q {, } {q } { } { } {q } δ([ ],) = [ ] δ([ ],) = [q ] δ([ ],) = [ ] δ([ ],) = [q ] δ([q ],) = [] δ([q ],) = [] δ([ ],) = [ q ] δ([ ],) = [q ] δ([q ],) = [ ] δ([q ],) = [ ] δ([ q ],) = [ q ] δ([ q ],) = [q ] δ([ ],) = [q ] δ([ ],) = [] δ([ ],) = [ ] δ([ ],) = [ ] 3 grfo dell ASF con funzione di trnsizione δ (per semplicità si scrive [q i... q j ]= [q i...j ] q 0 2 23 23 q 2 q, q 2 q, 32 6
03-utomi--stti-finiti-0 soluzione esercizio 7 V T ={,} V N ={A 0, A, A 2, A 3 } S = A 0 insieme P delle produzioni produzioni per A 0 : A 0 A 0 A 0 A 2 A 0 A produzioni per A : A ε produzioni per A 2 : A 2 A 3 A 2 A 2 produzioni per A 3 : A 3 A osservzione: l grmmtic può essere semplifict nel modo seguente A 0 A 0 A 2 A A 0 A 0 A 2 A 2 A 3 A 2 A 2 A 3 A 2 A 3 A A 3 33 soluzione esercizio 8 V T ={0,,2} V N ={A p, A d } S = A p q p q d insieme P delle produzioni 0, 2 0, 2 produzioni per A p : A p 0A p A p 2A p A p A d A p ε produzioni per A d : A d 0A d A d 2A d A d A p 34 7
03-utomi--stti-finiti-0 soluzione esercizio 9 9. Riscrivo l grmmtic S A C A A C C cc c q S q A S A C A A C C cc cf F ε q C c c q F 9. il linguggio riconosciuto è L = * c * c 35 8