Inden for beregningsmæssig kompleksitetsteori bruges finite state machines (FSM'er) i vid udstrækning til at modellere og analysere systemers adfærd. FSM'er er matematiske modeller, der består af et begrænset antal tilstande og overgange mellem disse tilstande baseret på inputsymboler. De bruges almindeligvis til at repræsentere regulære sprog, som er en delmængde af formelle sprog, der kan beskrives af regulære udtryk eller genereres af FSM'er.
For at repræsentere foreningen af sprog, der genkendes af to FSM'er, skal vi kombinere de to maskiner på en måde, der tillader os at genkende strenge, der tilhører et af sprogene. Dette kan opnås gennem en proces kaldet fagforeningsdriften.
Sammenslutningen af to FSM'er, M1 og M2, involverer at skabe en ny FSM, M, der genkender sproget dannet af foreningen af sprogene anerkendt af M1 og M2. Dette kan gøres ved at indføre en ny starttilstand og forbinde den med starttilstandene for M1 og M2 ved hjælp af ε-overgange (overgange, der ikke bruger noget inputsymbol). ε-overgangene giver maskinen mulighed for at vælge mellem de to starttilstande og fortsætte med genkendelsesprocessen i overensstemmelse hermed.
Fagforeningsdriften kræver også nogle ændringer af de originale maskiner. Først skal vi sikre, at sluttilstandene af M1 og M2 forbliver sluttilstande i den nye maskine M. Dette kan opnås ved at indføre ε-overgange fra sluttilstandene af M1 og M2 til en ny sluttilstand i M. Disse ε -overgange tillader maskinen at acceptere en streng, hvis den accepteres af enten M1 eller M2.
Ydermere skal vi sikre, at overgangene af M1 og M2 bevares i den nye maskine M. Dette kan gøres ved blot at kopiere overgangene af M1 og M2 til M. Hvis der er nogle fælles overgange mellem M1 og M2, kan de slås sammen til en enkelt overgang i M.
Lad os overveje et simpelt eksempel for at illustrere processen. Antag, at vi har to FSM'er, M1 og M2, som vist nedenfor:
M1:
Starttilstand: q0
Sluttilstand: q2
Overgange: (q0, a) -> q1, (q1, b) -> q2
M2:
Starttilstand: p0
Sluttilstand: p2
Overgange: (p0, c) -> p1, (p1, d) -> p2
For at repræsentere foreningen af sprogene, der er anerkendt af M1 og M2, opretter vi en ny FSM, M:
M:
Starttilstand: s0 (ny starttilstand)
Sluttilstand: f2 (ny sluttilstand)
Overgange: (s0, ε) -> q0, (s0, ε) -> p0, (q2, ε) -> f2, (p2, ε) -> f2
(q0, a) -> q1, (q1, b) -> q2, (p0, c) -> p1, (p1, d) -> p2
I dette eksempel genkender den nye FSM M foreningen af sprogene, der er anerkendt af M1 og M2. Den starter i den nye starttilstand s0 og kan gå over til enten q0 eller p0 ved hjælp af ε-overgange. Derfra følger den overgangene af M1 og M2 baseret på inputsymbolerne. Hvis den når den endelige tilstand af enten M1 eller M2, kan den gå over til den nye endelige tilstand f2 ved hjælp af ε-overgange.
For at opsummere kan foreningen af sprog, der genkendes af to FSM'er, repræsenteres ved at kombinere maskinerne og indføre ε-overgange for at give mulighed for valg mellem starttilstandene. Derudover kan ε-overgange bruges til at forbinde de originale maskiners endelige tilstande til en ny sluttilstand i den kombinerede maskine. Ved at bevare de originale overgange kan den nye maskine genkende strenge, der tilhører et af de sprog, der genkendes af de originale maskiner.
Andre seneste spørgsmål og svar vedr EITC/IS/CCTF Computational Complexity Theory Fundamentals:
- Er regulære sprog ækvivalente med Finite State Machines?
- Er PSPACE-klassen ikke lig med EXPSPACE-klassen?
- Er et algoritmisk beregneligt problem et problem, der kan beregnes af en Turing-maskine i overensstemmelse med Church-Turing-afhandlingen?
- Hvad er lukkeegenskaben for regulære sprog under sammenkædning? Hvordan kombineres endelige tilstandsmaskiner for at repræsentere foreningen af sprog, der genkendes af to maskiner?
- Kan ethvert vilkårligt problem udtrykkes som et sprog?
- Er P kompleksitetsklassen en delmængde af PSPACE-klassen?
- Har hver multi-tape Turing-maskine en tilsvarende enkelt-tape Turing-maskine?
- Hvad er output af prædikater?
- Er lambdaregning og turingmaskiner beregnelige modeller, der besvarer spørgsmålet om, hvad betyder beregnelig?
- Kan vi bevise, at Np- og P-klassen er ens ved at finde en effektiv polynomielløsning for ethvert NP-fuldt problem på en deterministisk TM?
Se flere spørgsmål og svar i EITC/IS/CCTF Computational Complexity Theory Fundamentals