Alternerende eindige automaat

Uit testwiki
Versie door imported>Wikiwernerbot op 19 nov 2020 om 20:22 (https://taaladvies.net/taal/advies/vraag/238/: één van → een van met AWB)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

In de theoretische informatica is een alternerende eindige automaat een variant op een eindige automaat. Een toestand van een eindige automaat accepteert een woord w=ax, waarbij a een symbool van het alfabet is en x de rest van het woord, wanneer minstens een van zijn a-opvolgertoestanden de x accepteert. Een alternerende eindige automaat past echter een willekeurige booleaanse functie op de acceptatiewaardes van zijn opvolgertoestanden toe.

De naam baseert zich op het volgende: Als we lege overgangen toestaan (wat in het geval van eindige automaten niet gebruikelijk is), hebben we slechts twee soorten toestanden nodig om alle mogelijke booleaanse functies te kunnen uitdrukken: toestanden die ax accepteren als alle opvolgertoestanden x accepteren, en toestanden die ax accepteren als minstens één opvolgertoestand x accepteert. De automaat alterneert dan als het ware tussen "alle"- en "één"-toestanden.

Formele definitie

Een alternerende eindige automaat is een tupel 𝒜=(Q,Σ,q1,F,g) waarbij

  • Q={q1,,qk} een eindige verzameling toestanden is;
  • Σ het eindige invoeralfabet;
  • q1Q de begintoestand;
  • FQ de verzameling eindtoestanden; en
  • g:Q(Σ𝔹k𝔹) de transitiefunctie.

𝔹={0,1} staat hier voor de verzameling van waarheidswaarden. De transitiefunctie g kent aan elke toestand q een functie g(q):Σ×𝔹k𝔹 toe, die gegeven een alfabetsymbool en een waarheidswaarde voor elke toestand, een waarheidswaarde teruggeeft.

Om makkelijk functies van toestanden naar waarheidswaarden op te kunnen schrijven, worden de toestanden geordend. We kunnen een functie van toestanden naar waarheidswaarden nu als tupels opschrijven. Als Q={q1,q2,q3}, dan wordt met 𝐮=(1,0,0) de functie met 𝐮(q1)=1, 𝐮(q2)=0 en 𝐮(q3)=0 bedoeld. De functie 𝐟 is de karakteristieke functie van de verzameling eindtoestanden, dat wil zeggen:

𝐟(q)={1als qF0als qF

We definiëren nu de functie H:Q(Σ*𝔹k𝔹) als de uitbreiding van de transitiefunctie g van symbolen naar woorden:

H(q)(ϵ)(𝐮)=𝐮(q)
H(q)(ax)(𝐮)=g(q)(a)(H(q1)(x),,H(qk)(x))

en definiëren de taal van een automaat 𝒜, dat wil zeggen, de verzameling van woorden die door 𝒜 geaccepteerd worden, als:

L(𝒜)={wH(q1)(w)(𝐟)=1}.

Voorbeeld

De volgende alternerende eindige automaat over het alfabet Σ={a,b} zij gegeven:

𝒜=({q1},Σ,q1,{q1},g), waarbij
g(q1)(a)(x)=¬x
g(q1)(b)(x)=0

De automaat 𝒜 accepteert de volgende taal:

L(𝒜)={a2nn}{a2n+1bwn,wΣ*}

Deze alternerende eindige automaat heeft 1 toestand. De kleinste niet-deterministische eindige automaat die dezelfde taal accepteert heeft 2 toestanden; de kleinste deterministische eindige automaat zelfs 4.

Eigenschappen

Niet-deterministische eindige automaten (NFAs) zijn een speciaal geval van alternerende automaten; voor elke reguliere taal bestaat dus een alternerende eindige automaat die de taal accepteert. Andersom is ook het geval: elke alternerende eindige automaat kan in een equivalente NFA worden omgevormd. De alternerende eindige automaten accepteren dus precies de klasse der reguliere talen. Alternerende eindige automaten kunnen echter veel kleiner zijn dan equivalente eindige automaten. Voor elke k bestaat er een alternerende eindige automaat met k toestanden, waarvoor geldt dat de kleinste equivalente NFA 2k en de kleinste equivalente deterministische eindige automaat (DFA) zelfs 22k toestanden heeft (zie het voorbeeld hierboven).

Literatuur

  • Ashok K. Chandra, Dexter C. Kozen and Larry J. Stockmeyer. Alternation. Journal of the Association for Computing Machinery, 28(1), 1981.