En deterministisk finite state-maskine (DFSM) og en ikke-deterministisk finite state-maskine (NFSM) er to typer af finite state-maskiner (FSM'er), der bruges inden for beregningskompleksitetsteori. Mens begge FSM'er har lignende egenskaber og kan bruges til at modellere forskellige beregningsprocesser, adskiller de sig med hensyn til deres adfærd og arten af deres overgange.
Hovedforskellen mellem en DFSM og en NFSM ligger i den måde, de håndterer overgange mellem stater. I en DFSM er overgangen fra en tilstand til en anden unikt bestemt af den aktuelle tilstand og inputsymbolet. Det betyder, at for en given tilstand og inputsymbol kan der kun være én mulig næste tilstand. Med andre ord fungerer DFSM på en deterministisk måde, hvor den næste tilstand er entydigt bestemt af den aktuelle tilstand og input.
På den anden side giver en NFSM mulighed for flere mulige næste tilstande for en given tilstand og inputsymbol. Dette betyder, at overgangsfunktionen for en NFSM kan have flere gyldige valg for den næste tilstand. Med andre ord fungerer NFSM på en ikke-deterministisk måde, hvor den næste tilstand ikke er entydigt bestemt af den aktuelle tilstand og input. I stedet kan en NFSM skifte til en eller flere tilstande samtidigt, hvilket skaber flere mulige beregningsveje.
For at illustrere denne forskel, lad os overveje et eksempel. Antag, at vi har en NFSM og en DFSM, der begge modellerer et simpelt sprog, der accepterer strenge med 0'er og 1'er, der slutter med et 1. NFSM har to tilstande: S0 og S1. DFSM har også to tilstande: Q0 og Q1.
For NFSM kan overgangsfunktionen for tilstand S0 og inputsymbol 0 have to mulige næste tilstande: S0 og S1. Dette betyder, at når NFSM er i tilstand S0 og modtager inputsymbolet 0, kan den gå over til enten tilstand S0 eller tilstand S1. På den anden side har overgangsfunktionen for tilstand S0 og indgangssymbol 1 kun én mulig næste tilstand: S1. Dette betyder, at når NFSM er i tilstand S0 og modtager inputsymbolet 1, vil den altid gå over til tilstand S1.
I modsætning hertil har DFSM en unik næste tilstand for hver kombination af nuværende tilstand og inputsymbol. For eksempel, når DFSM er i tilstand Q0 og modtager inputsymbolet 0, vil den altid gå over til tilstand Q0. Tilsvarende, når DFSM er i tilstand Q0 og modtager inputsymbolet 1, vil den altid gå over til tilstand Q1.
Hovedforskellen mellem deterministiske og ikke-deterministiske endelige tilstandsmaskiner ligger i arten af deres overgange. En deterministisk endelig tilstandsmaskine (DFSM) har en unik næste tilstand for hver kombination af nuværende tilstand og inputsymbol, mens en ikke-deterministisk finite state machine (NFSM) tillader flere mulige næste tilstande for en given kombination af nuværende tilstand og inputsymbol.
Andre seneste spørgsmål og svar vedr EITC/IS/CCTF Computational Complexity Theory Fundamentals:
- Hvilke grundlæggende matematiske definitioner, notationer og introduktioner er nødvendige for at forstå formalismen i beregningskompleksitetsteorien?
- Hvorfor er beregningskompleksitetsteori vigtig for forståelsen af grundlaget for kryptografi og cybersikkerhed?
- Hvilken rolle spiller rekursionssætningen i demonstrationen af ATMs uafgørelighed?
- I betragtning af en PDA, der kan læse palindromer, kan du så detaljere udviklingen af stakken, når inputtet for det første er et palindrom, og for det andet ikke et palindrom?
- I betragtning af ikke-deterministiske PDA'er er overlejring af stater per definition mulig. Ikke-deterministiske PDA'er har dog kun én stak, som ikke kan være i flere tilstande samtidigt. Hvordan er dette muligt?
- Hvad er et eksempel på PDA'er, der bruges til at analysere netværkstrafik og identificere mønstre, der indikerer potentielle sikkerhedsbrud?
- Hvad betyder det, at et sprog er stærkere end et andet?
- Er kontekstfølsomme sprog genkendelige af en Turing-maskine?
- Hvorfor er sproget U = 0^n1^n (n>=0) uregelmæssigt?
- Hvordan definerer man en FSM, der genkender binære strenge med lige antal '1'-symboler og viser, hvad der sker med den, når man behandler inputstreng 1011?
Se flere spørgsmål og svar i EITC/IS/CCTF Computational Complexity Theory Fundamentals