Deterministyczny automat skończony (DFA) to model maszyny stanów zdolny do przyjmowania wszystkich i tylko zwykłych języków. DFA można (i zwykle są) definiować w taki sposób, że każdy stan musi zapewnić pewne przejście dla wszystkich elementów alfabetu wejściowego; innymi słowy, funkcja przejścia powinna być funkcją (całkowitą).
Wyobraź sobie, co nazwiemy podwójnie deterministycznym automatem skończonym (DDFA). Jest on zdefiniowany podobnie do DFA, z dwoma wyjątkami: po pierwsze, zamiast przejścia prowadzącego z jednego stanu do drugiego dla każdego możliwego symbolu wejściowego, musi on prowadzić do dwóch różnych stanów; po drugie, aby zaakceptować ciąg, wszystkie potencjalne ścieżki muszą spełniać jeden lub drugi z następujących warunków:
- Wszystkie potencjalne ścieżki przez DDFA prowadzą do stanu akceptacji (nazwiemy to DDFA typu 1).
- Wszystkie potencjalne ścieżki przez DDFA prowadzą do tego samego stanu akceptacji (nazwiemy to DDFA typu 2).
Teraz moje pytanie:
Jakie języki są akceptowane przez DDFA typu 1 i typu 2? W szczególności, czy jest tak, że , L (DDFA) = L (DFA) , czy L (DDFA) \ subsetneq L (DFA) ? W przypadku, gdy L (DDFA) \ neq L (DFA) , czy istnieje łatwy opis L (DDFA) ?L ( D D F A ) = L ( D F A ) L ( D D F A ) ⊊ L ( D F A ) L ( D D F A ) ≠ L ( D F A ) L ( D D F
Doceniane są dowody (lub przynajmniej średnio rozwinięte szkice), jeśli nie są zbyt skomplikowane.