Un Generic Non deterministic Finite state Automaton è una tupla , dove .

Accettazione: un GNFA accetta se ed:

:

Conversione NFA GNFA

Dato un qualsiasi automa non deterministico a stati finiti (NFA) è facile ottenere un GNFA equivalente.

Ad esempio questo NFA

Può essere convertito in questo GNFA

Algoritmo

Sia il numero di stati di .

  • Se , ci sono solo e e l’arco . Output: .
  • Se , scelgo .
    • Creo un GNFA
    • (si costruisce progressivamente, seguendo la forma canonica degli NFA)

Affermazione: è equivalente a . Cioè l’etichetta finale tale che è l’espressione regolare equivalente al GNFA di partenza.

Dimostrazione:

  • è banale.
  • caso induttivo: suppongo vera l’affermazione per GNFA con stati, è vero pure per stati.

Dimostriamolo per stati.

Ma in effetti:

  • se accetta , ci sarà ramo di computazione che attraversa . Due casi:
    • non è uno degli stati intermedi allora non è cambiato nulla ( è compreso nell’unione).
    • è uno degli stati intermedi: è ok per lo stesso motivo ma relativo a ovvero tutti i modi per andare da a passando per .

Esercizi

1. Trasformare in NFA.

2. Trovare l’espressione regolare equivalente al seguente NFA