[Teoria] Costruire DFA attraverso un'espressione regolare

Messaggioda Cicchi27 » 29/10/2020, 13:30

Salve, sto svolgendo alcuni esercizi su DFA e espressioni regolari. In particolare utilizzando l'algoritmo di Berry e Sethi per costruire l'automa . Il testo dell'esercizio: " Costruire un automa a stati finiti deterministico per il linguaggio sull’ alfabeto{a, b, c, d, e}in cui compaiono almeno due vocali".
Prima ho provato a capire come dovrebbe questa DFA "intuitivamente"; dopo ho provato a scrivere l'espressione:
(b+c+d)*(a+e)(b+c+d)*(a+e)(a+b+c+d+e)*.
Però se dovessi utilizzare l'algortimo su questa espressione, mi complicherei i vari calcoli perché verrebbero fuori molti stati. Quindi vorrei sapere come potrei migliorare (se è possibile in questo caso particolare, ma anche in generale) la scrittura di un'espressione regolare efficiente, cioè se posso ridurne i termini. Spero di essere stato abbastanza chiaro da far capire il mio dubbio. Grazie in anticipo.
P.S. Ho già fatto altri esercizi simili, l'argomento mi è chiaro, ho solo questo problema sulle espressioni.
Cicchi27
New Member
New Member
 
Messaggio: 39 di 84
Iscritto il: 01/03/2020, 10:11

Re: [Teoria] Costruire DFA attraverso un'espressione regolare

Messaggioda apatriarca » 02/11/2020, 10:42

Non mi vengono in mente modi per ridurre l'espressione. Non conosco l'algoritmo che hai nominato, ma credo che quella espressione possa essere convertita in un DFA con soli 5 stati (a vista—non ho provato a risolvere l'esercizio). Come ti viene il DFA?

Sinceramente credo che l'esercizio sia semplicemente molto lungo e non ci sia alcuna soluzione più intelligente.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5508 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Teoria] Costruire DFA attraverso un'espressione regolare

Messaggioda Cicchi27 » 02/11/2020, 12:02

Non ho provato a risolvere l'esercizio in toto perché mi sono fermato all'espressione regolare. Avevo intuito che era qualccosa che prendeva più tempo rispetto agli altri. L'algoritmo ,per farla breve, prevede di trovare un NFA partendo da un linguaggio locale descritto dall'espressione, e infine lo si converte in un DFA.
Cicchi27
New Member
New Member
 
Messaggio: 40 di 84
Iscritto il: 01/03/2020, 10:11


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite