Skaičiavimo sudėtingumo teorijos srityje baigtinių būsenų mašinos (FSM) plačiai naudojamos sistemų elgsenai modeliuoti ir analizuoti. FSM yra matematiniai modeliai, susidedantys iš baigtinio skaičiaus būsenų ir perėjimų tarp šių būsenų, pagrįstų įvesties simboliais. Jie dažniausiai naudojami įprastoms kalboms, kurios yra formalių kalbų poaibis, kurias galima apibūdinti reguliariosiomis išraiškomis arba generuoti FSM.
Norėdami reprezentuoti dviejų FSM atpažįstamų kalbų sąjungą, turime sujungti dvi mašinas taip, kad galėtume atpažinti eilutes, priklausančias bet kuriai iš kalbų. Tai galima pasiekti per procesą, vadinamą sąjungos operacija.
Dviejų FSM, M1 ir M2, sąjunga apima naujo FSM M sukūrimą, kuris atpažįsta kalbą, sudarytą iš M1 ir M2 atpažįstamų kalbų sąjungos. Tai galima padaryti įvedant naują pradžios būseną ir sujungiant ją su M1 ir M2 pradžios būsenomis naudojant ε perėjimus (perėjimus, kurie nenaudoja jokio įvesties simbolio). ε perėjimai leidžia mašinai pasirinkti vieną iš dviejų pradinių būsenų ir atitinkamai tęsti atpažinimo procesą.
Sujungimo veiklai taip pat reikia atlikti tam tikrus originalių mašinų pakeitimus. Pirma, turime užtikrinti, kad galutinės M1 ir M2 būsenos išliktų galutinės būsenos naujoje mašinoje M. Tai galima pasiekti įvedant ε perėjimus iš galutinių M1 ir M2 būsenų į naują galutinę būseną M. Šie ε -Perėjimai leidžia mašinai priimti eilutę, jei ją priima M1 arba M2.
Be to, turime užtikrinti, kad M1 ir M2 perėjimai būtų išsaugoti naujajame įrenginyje M. Tai galima padaryti tiesiog nukopijuojant M1 ir M2 perėjimus į M. Jei yra kokių nors bendrų perėjimų tarp M1 ir M2, jie gali sujungti į vieną perėjimą M.
Panagrinėkime paprastą pavyzdį procesui iliustruoti. Tarkime, kad turime du FSM, M1 ir M2, kaip parodyta žemiau:
M1:
Pradžios būsena: q0
Galutinė būsena: Q2
Perėjimai: (q0, a) -> q1, (q1, b) -> q2
M2:
Pradžios būsena: p0
Galutinė būsena: p2
Perėjimai: (p0, c) -> p1, (p1, d) -> p2
Siekdami atstovauti kalbų, kurias atpažįsta M1 ir M2, sąjungą, sukuriame naują FSM M:
M:
Pradinė būsena: s0 (nauja pradžios būsena)
Galutinė būsena: f2 (nauja galutinė būsena)
Perėjimai: (s0, ε) -> q0, (s0, ε) -> p0, (q2, ε) -> f2, (p2, ε) -> f2
(q0, a) -> q1, (q1, b) -> q2, (p0, c) -> p1, (p1, d) -> p2
Šiame pavyzdyje naujasis FSM M atpažįsta kalbų, kurias atpažįsta M1 ir M2, sąjungą. Jis prasideda naujoje pradžios būsenoje s0 ir gali pereiti į q0 arba p0 naudojant ε perėjimus. Iš ten seka M1 ir M2 perėjimus pagal įvesties simbolius. Jei jis pasiekia galutinę M1 arba M2 būseną, jis gali pereiti į naują galutinę būseną f2 naudodamas ε perėjimus.
Apibendrinant galima pasakyti, kad dviejų FSM atpažįstamų kalbų sąjunga gali būti pavaizduota sujungiant mašinas ir įvedant ε perėjimus, kad būtų galima pasirinkti tarp pradinių būsenų. Be to, ε perėjimai gali būti naudojami norint sujungti galutines pradinių mašinų būsenas su nauja galutine kombinuotojo įrenginio būsena. Išsaugodamas originalius perėjimus, naujasis įrenginys gali atpažinti eilutes, priklausančias bet kuriai iš kalbų, kurias atpažįsta originalūs įrenginiai.
Kiti naujausi klausimai ir atsakymai apie EITC/IS/CCTF skaičiavimo sudėtingumo teorijos pagrindai:
- Kokie yra pagrindiniai matematiniai apibrėžimai, žymėjimai ir įvadai, reikalingi skaičiavimo sudėtingumo teorijos formalizmui suprasti?
- Kodėl skaičiavimo sudėtingumo teorija yra svarbi norint suprasti kriptografijos ir kibernetinio saugumo pagrindus?
- Koks yra rekursijos teoremos vaidmuo įrodant bankomato neapibrėžtumą?
- Turint omenyje PDA, galintį nuskaityti palindromus, ar galėtumėte išsamiai aprašyti krūvos raidą, kai įvestis, pirma, yra palindromas, o antra, ne palindromas?
- Atsižvelgiant į nedeterministinius PDA, būsenų superpozicija yra įmanoma pagal apibrėžimą. Tačiau nedeterministiniai PDA turi tik vieną krūvą, kuri negali būti kelių būsenų vienu metu. Kaip tai įmanoma?
- Koks yra PDA, naudojamo tinklo srautui analizuoti ir modeliams, rodantiems galimus saugumo pažeidimus, pavyzdys?
- Ką reiškia, kad viena kalba yra galingesnė už kitą?
- Ar Turingo mašina atpažįsta kontekstui jautrias kalbas?
- Kodėl kalba U = 0^n1^n (n>=0) yra netaisyklinga?
- Kaip apibrėžti FSM, atpažįstantį dvejetaines eilutes su lyginiu simbolių skaičiumi '1', ir parodyti, kas su juo atsitinka apdorojant įvesties eilutę 1011?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/IS/CCTF skaičiavimo sudėtingumo teorijos pagrinduose