Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 26/08/2015, 15:32

Nuovo esercizio:)
Sia Σ={a,b}. Costruite un automa nondeterministico che accetti il linguaggio costituito da tutte le stringhe sull'alfabeto Σ nelle quali il terzultimo e il penultimo simbolo sono uguali.
Esprimete questo linguaggio con un'espressione regolare.

L'espressione regolare a cui avevo pensato e' la seguente: (a+b)*(aa+bb)(a+b)
Riguardo all'NFA ho pensato a questa tabella delle transizioni che non e' ancora completa:
δab
->q_0{q_0,q_1}{q_0,q_2}
q_1q_3q_2
q_2q_1q_4
*q_3q_3/
*q_4/q_4

Il dubbio rimane sugli stati q_3 e q_4 in quanto non so come gestire il caso in cui arrivi l'ultimo simbolo in modo da accettare anche le stringhe che terminano con: '...aab' e '...bba'
4mac07
Starting Member
Starting Member
 
Messaggio: 6 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda onlyReferee » 26/08/2015, 18:28

Ciao :!:
Da $q_1$ non hai la necessità di andare a $q_2$ e viceversa (la parte precedente al terzultimo simbolo della stringa la puoi generare tutta con $q_0$). Da $q_2$ puoi andare direttamente in $q_3$ con $b$ (basta un solo stato che ci indica di aver ricevuto in input tutti i simboli della nostra stringa fino al penultimo). Per quanto detto nella frase precedente $q_3$ non può essere di accettazione. Infine da $q_3$ vai in $q_4$, stato finale, sia con $a$ che con $b$ (l'ultimo simbolo non ha vincoli).
Per aspera sic itur ad astra
onlyReferee
Advanced Member
Advanced Member
 
Messaggio: 927 di 2046
Iscritto il: 20/08/2013, 21:20
Località: Musile di Piave (VE)

Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 26/08/2015, 18:57

Grazie mille onlyRefree! Il tuo parere mi e' molto utile per capire meglio
4mac07
Starting Member
Starting Member
 
Messaggio: 7 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 28/08/2015, 17:07

onlyRefree come interpreti questa consegna?

Sia Σ={a,b}. Costruite un automa che accetti l'insieme delle stringhe contenenti due a separate da un numero di simboli multiplo di 4.
Esprimete questo linguaggio con un'espressione regolare.

E' giusto secondo te pensare che le due 'a' siano separate da un numero multiplo di 4 simboli 'b'.
'aaaaaaaabbbba' viene accettata
'babbabaaaaaaa' non accettata
In pratica le 'b' devono essere multiplo di 4, giusto?
4mac07
Starting Member
Starting Member
 
Messaggio: 8 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda onlyReferee » 28/08/2015, 20:49

Ciao :!:
No, i simboli tra le due $a$ (quella iniziale e quella finale) possono essere qualsiasi (sia $a$ che $b$) purché in quantità pari ad un multiplo di quattro. Pertanto l'automa dovrà riconoscere ad esempio le stringhe $a b b b b b b b ba$, $aaaaaa$, $a b a b b a b a a b b b b a$ e $a b b b b a a a a a$ ma non $aba$, $aaa$ e $a a b b a b a b a$.
Immagino ti sia richiesto di costruire un automa non deterministico.
Per aspera sic itur ad astra
onlyReferee
Advanced Member
Advanced Member
 
Messaggio: 928 di 2046
Iscritto il: 20/08/2013, 21:20
Località: Musile di Piave (VE)

Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 28/08/2015, 21:18

Non e' specificato ma probabilmente e' non deterministico, lo devo rifare in quanto ho interpretato male.
L'espressione regolare diventa (a+b)*a(aaaa+bbbb)*a(a+b)*?
4mac07
Starting Member
Starting Member
 
Messaggio: 9 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda onlyReferee » 28/08/2015, 21:35

No, questa espressione non è corretta. Innanzitutto hai una $a$ all'inizio ed una alla fine della stringa. Poi per creare la parte centrale della stringa devi avere una "base" composta da quattro espressioni consecutive in cui si può scegliere tra $a$ e $b$. Per avere multipli di quattro di questa base è sufficiente iterare la stessa.
Per aspera sic itur ad astra
onlyReferee
Advanced Member
Advanced Member
 
Messaggio: 929 di 2046
Iscritto il: 20/08/2013, 21:20
Località: Musile di Piave (VE)

Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 28/08/2015, 23:17

Non sono sicuro di aver capito...la parte centrale di prima non va bene? a(aaaa+bbbb)*a
riconosce stringhe del tipo '...a aaaa a...' , '...a bbbb a...'
4mac07
Starting Member
Starting Member
 
Messaggio: 10 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda 4mac07 » 30/08/2015, 16:35

onlyRefree in base alle tue dritte ho prodotto questa soluzione, forse si puo' semplificare ma intanto funziona sugli input che hai suggerito.
Inoltre mi sorge un dubbio, sul testo del problema dice "stringhe contenenti due a separate da un numero di simboli multiplo di 4", può anche accettare che tra due 'a' i siano 'abab' / 'baba' / 'abba' / 'aabb' ecc oppure devono per forza essere 4 simboli uguali come detto precedentemente?

http://i60.tinypic.com/9qitn5.png
4mac07
Starting Member
Starting Member
 
Messaggio: 11 di 30
Iscritto il: 23/08/2015, 18:05

Re: [Linguaggi Formali e Automi]

Messaggioda onlyReferee » 31/08/2015, 08:38

Ciao :!:
Perdona il ritardo nella risposta, sono stato via nel weekend. Comunque è corretto quanto hai descritto nel tuo ultimo post: quel gruppo centrale di simboli può essere composto sia da $a$ che da $b$.
Non so perché cliccando sull'url da te postato non vedo l'immagine...
Per aspera sic itur ad astra
onlyReferee
Advanced Member
Advanced Member
 
Messaggio: 930 di 2046
Iscritto il: 20/08/2013, 21:20
Località: Musile di Piave (VE)

PrecedenteProssimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite