Esistono diversi algoritmi per convertire espressioni regolari in automi finiti. Puoi passare direttamente dalle espressioni regolari ai DFA senza creare prima nessun altro automa facendo implicitamente la costruzione del sottoinsieme mentre generando l'automa. Un'altra opzione per ottenere direttamente automi deterministici è utilizzare il metodo dei derivati.
Controllare se un'espressione regolare rappresenta la lingua che contiene tutte le stringhe è un problema completo di PSPACE (vedere questa risposta per un riferimento). Verifica se un DFA accetta che la lingua possa essere eseguita in un tempo polinomiale, quindi se passi direttamente da un'espressione regolare a un DFA, ci sarà un'esplosione da qualche parte.
La mia comprensione della letteratura è che possiamo scegliere traduzioni che ci consentono di localizzare l'esplosione. In altre parole, esistono diversi modi per passare da un'espressione regolare a un automa finito e sono preferiti metodi lineari o polinomiali. Di solito, i costi esponenziali vengono spinti nella determinazione degli automi.
C'è stato molto lavoro per identificare le sottofamiglie di espressioni regolari da cui possiamo generare efficientemente DFA. Questa linea di lavoro dipende dalla traduzione che usi. Ciò significa che correggi una mappatura dalle espressioni regolari agli NFA e provi a caratterizzare le espressioni regolari che si associano ai DFA.
La costruzione standard di automi da espressioni regolari non è la costruzione preferita in tale lavoro. Le costruzioni di scelta producono automi che ricordano da vicino la struttura dell'espressione regolare. Queste costruzioni usano la nozione di un derivato di un'espressione regolare.
Derivati delle espressioni regolari , JA Brzozowski. 1964.
srara
Derivati parziali di espressioni regolari e costruzioni di automi finiti , V. Antimirov. 1995.
Se pensi a uno stato di un automa come una rappresentazione di tutte le stringhe accettate da quello stato, le derivate (parziali) ti consentono di trattare le espressioni regolari come stati . Contrariamente alla costruzione di libri di testo standard che tratta in modo intuitivo espressioni regolari come automi, non come stati.
Dalle espressioni regolari agli automi deterministici , G. Berry e R. Sethi, 1986.
La corrispondenza tra espressioni regolari e stati di un automa e determinismo è discussa esplicitamente da Berry e Sethi, che combinano la nozione di derivati di Brzozowski con l'idea di distinguere tra occorrenze dello stesso simbolo per dare una traduzione basata su sintassi di espressioni regolari in finito automi.
One-Unambiguous Regular Languages , A. Brüggemann-Klein e Derick Wood, 1998.
Questo documento si basa su precedenti lavori di Brüggemann-Klein e studia casi in cui è possibile utilizzare derivati per generare DFA in tempo polinomiale. C'è molto lavoro a seguito di questo documento. Era significativo dal punto di vista delle tecnologie web perché le espressioni regolari che possono essere manipolate in modo efficiente (ovvero corrispondenti ai DFA) erano importanti per l'elaborazione di SGML e XML.
C'è stato molto lavoro nello studio di altri casi speciali di espressioni regolari deterministiche. Un documento molto recente che studia quando alcuni di questi problemi possono essere risolti in tempo lineare è del 2012.
Espressioni regolari deterministiche nel tempo lineare , Benoit Groz, Sebastian Maneth, Slawomir Staworko. 2012.