En deterministisk finita tillståndsmaskin (DFSM) och en icke-deterministisk finita tillståndsmaskin (NFSM) är två typer av finita tillståndsmaskiner (FSM) som används inom området för beräkningskomplexitetsteori. Även om båda FSM har liknande egenskaper och kan användas för att modellera olika beräkningsprocesser, skiljer de sig åt när det gäller deras beteende och arten av deras övergångar.
Den största skillnaden mellan en DFSM och en NFSM ligger i hur de hanterar övergångar mellan stater. I en DFSM bestäms övergången från ett tillstånd till ett annat unikt av det aktuella tillståndet och ingångssymbolen. Detta betyder att för ett givet tillstånd och ingångssymbol kan det bara finnas ett möjligt nästa tillstånd. Med andra ord arbetar DFSM på ett deterministiskt sätt, där nästa tillstånd bestäms unikt av det aktuella tillståndet och inmatningen.
Å andra sidan tillåter en NFSM flera möjliga nästa tillstånd för ett givet tillstånd och inmatningssymbol. Detta innebär att övergångsfunktionen för en NFSM kan ha flera giltiga val för nästa tillstånd. Med andra ord fungerar NFSM på ett icke-deterministiskt sätt, där nästa tillstånd inte bestäms unikt av det aktuella tillståndet och inmatningen. Istället kan en NFSM övergå till ett eller flera tillstånd samtidigt, vilket skapar flera möjliga beräkningsvägar.
För att illustrera denna skillnad, låt oss överväga ett exempel. Anta att vi har en NFSM och en DFSM som båda modellerar ett enkelt språk som accepterar strängar med 0:or och 1:or som slutar med en 1. NFSM har två tillstånd: S0 och S1. DFSM har också två tillstånd: Q0 och Q1.
För NFSM kan övergångsfunktionen för tillstånd SO och ingångssymbol 0 ha två möjliga nästa tillstånd: SO och S0. Detta betyder att när NFSM är i tillstånd SO och tar emot ingångssymbolen 0, kan den övergå till antingen tillstånd SO eller tillstånd SI. Å andra sidan har övergångsfunktionen för tillstånd SO och ingångssymbol 1 endast ett möjligt nästa tillstånd: S0. Detta betyder att när NFSM är i tillstånd SO och tar emot ingångssymbolen 0, kommer den alltid att övergå till tillstånd S0.
Däremot har DFSM ett unikt nästa tillstånd för varje kombination av aktuellt tillstånd och ingångssymbol. Till exempel, när DFSM är i tillstånd QO och tar emot ingångssymbolen 0, kommer den alltid att övergå till tillstånd QO. På liknande sätt, när DFSM är i tillstånd QO och tar emot ingångssymbolen 0, kommer den alltid att övergå till tillstånd Q0.
Huvudskillnaden mellan deterministiska och icke-deterministiska finita tillståndsmaskiner ligger i deras övergångars natur. En deterministisk finita tillståndsmaskin (DFSM) har ett unikt nästa tillstånd för varje kombination av nuvarande tillstånd och ingångssymbol, medan en icke-deterministisk finita tillståndsmaskin (NFSM) tillåter flera möjliga nästa tillstånd för en given kombination av nuvarande tillstånd och ingångssymbol.
Andra senaste frågor och svar ang EITC/IS/CCTF Computational Complexity Theory Fundamentals:
- Vilka grundläggande matematiska definitioner, notationer och introduktioner behövs för att förstå formalism inom beräkningskomplexitetsteori?
- Varför är beräkningskomplexitetsteori viktig för att förstå grunderna i kryptografi och cybersäkerhet?
- Vilken roll spelar rekursionssatsen i demonstrationen av ATMs obestämbarhet?
- Med tanke på en handdator som kan läsa palindromer, kan du beskriva utvecklingen av stacken när ingången för det första är en palindrom och för det andra inte en palindrom?
- Med tanke på icke-deterministiska handdatorer är överlagring av stater möjlig per definition. Men icke-deterministiska handdatorer har bara en stack som inte kan vara i flera tillstånd samtidigt. Hur är detta möjligt?
- Vad är ett exempel på handdatorer som används för att analysera nätverkstrafik och identifiera mönster som indikerar potentiella säkerhetsöverträdelser?
- Vad betyder det att ett språk är mer kraftfullt än ett annat?
- Är sammanhangskänsliga språk igenkännbara av en Turing-maskin?
- Varför är språket U = 0^n1^n (n>=0) oregelbundet?
- Hur definierar man en FSM som känner igen binära strängar med ett jämnt antal '1'-symboler och visar vad som händer med den när man bearbetar inmatningssträng 1011?
Se fler frågor och svar i EITC/IS/CCTF Computational Complexity Theory Fundamentals