Skaičiavimo sudėtingumo teorijos srityje, ypač baigtinių būsenų mašinų studijose, nedeterminizmo sąvoka vaidina svarbų vaidmenį.
Nedeterministinės baigtinių būsenų mašinos (NFSM) yra teoriniai modeliai, leidžiantys bet kurioje būsenoje pasirinkti kelis priimtinus kelius. Tačiau susidūrus su tokia situacija kyla klausimas: kokį kelią rinktis?
Ši užklausa paliečia „priėmimo“ sąvoką NFSM ir kriterijus, kurie gali būti naudojami priimant sprendimą.
Norėdami suprasti atrankos procesą, pirmiausia panagrinėkime NFSM nedeterminizmo prigimtį. Skirtingai nuo deterministinių baigtinių būsenų mašinų (DFSM), NFSM neturi unikalaus perėjimo kiekvienam galimam įvesties simboliui kiekvienoje būsenoje. Vietoj to, jie leidžia naudoti kelis to paties įvesties simbolio perėjimus. Dėl šios savybės iš vienos būsenos gali būti keli keliai, o tai gali sukelti skirtingus rezultatus.
Susidūrę su tokia situacija, NFSM naudoja mechanizmą, vadinamą „išsišakojimu“, kad vienu metu ištirtų visus galimus kelius. Tai reiškia, kad aparatas sukuria kelias savo kopijas, kurių kiekviena eina skirtingu keliu. Dėl to NFSM gali būti vertinamas kaip į medį panašios struktūros tyrinėjimas, kur kiekviena šaka reiškia skirtingą skaičiavimo kelią. Ši šakojimo technika yra esminė analizuojant NFSM ir jų skaičiavimo sudėtingumą.
Dabar panagrinėkime kriterijus, pagal kuriuos galima pasirinkti konkretų kelią iš kelių priimtinų. Vienas iš bendrų būdų yra apsvarstyti „priėmimo“ sąvoką NFSM. Priėmimas reiškia sąlygą, pagal kurią nustatoma, ar mašina tam tikrą įvestį laiko galiojančia, ar ne. NFSM priėmimą galima apibrėžti dviem pagrindiniais būdais: „priėmimas pagal galutinę būseną“ ir „priėmimas tuščia krūva“.
Priėmimas pagal galutinę būseną įvyksta, kai, panaudojus visą įvesties eilutę, NFSM patenka į galutinę būseną. Šis kriterijus reiškia, kad mašina priima įvestį, jei yra bent vienas skaičiavimo kelias, vedantis į galutinę būseną. Ir atvirkščiai, jei joks kelias neveda į galutinę būseną, įvestis atmetama.
Kita vertus, priėmimas naudojant tuščią krūvą yra svarbus, kai NFSM įtraukia krūvą kaip papildomą komponentą. Pagal šį scenarijų priėmimas įvyksta, kai įvesties eilutė yra visiškai apdorota, o krūva tampa tuščia. Panašiai kaip ir priimant galutinę būseną, jei yra bent vienas skaičiavimo kelias, kurio rezultatas yra tuščias krūvas, įvestis priimama; kitu atveju jis atmetamas.
Atsižvelgiant į šiuos kriterijus, konkretaus kelio pasirinkimas tarp kelių priimtinų nedeterministinėje mašinoje gali būti nustatytas teikiant pirmenybę priėmimo sąlygoms. Pavyzdžiui, jei galutinis būsenos priėmimas yra pagrindinis kriterijus, mašina pasirinks kelią, vedantį į galutinę būseną, neatsižvelgdama į kitus galimus kelius. Ir atvirkščiai, jei pirminis kriterijus yra priėmimas iš tuščio krūvos, įrenginys pirmenybę teiks keliui, dėl kurio susidaro tuščia krūva.
Svarbu pažymėti, kad kelio pasirinkimas NFSM neturi įtakos mašinos skaičiavimo galiai. Nepriklausomai nuo pasirinkto kelio, NFSM vis tiek gali atpažinti tą patį kalbų rinkinį kaip ir bet kuris kitas NFSM tam tikros įvesties atveju. Atrankos procesas tik nustato įvesties priėmimą arba atmetimą pagal nurodytus kriterijus.
Kai nedeterministinėje mašinoje susiduriama su keliais priimtinais keliais, kelio pasirinkimas gali būti nustatytas teikiant pirmenybę priėmimo sąlygoms, pvz., priėmimas iki galutinės būsenos arba priėmimas tuščia krūva. Atrankos procesas neturi įtakos mašinos skaičiavimo galiai, bet įtakoja, ar įvestis bus priimta ar atmesta.
Kiti naujausi klausimai ir atsakymai apie EITC/IS/CCTF skaičiavimo sudėtingumo teorijos pagrindai:
- 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?
- Kaip nedeterminizmas veikia perėjimo funkciją?
- Ar įprastos kalbos lygiavertės baigtinių būsenų mašinoms?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/IS/CCTF skaičiavimo sudėtingumo teorijos pagrinduose