Mis on abstraktne masin?

Abstraktsed masinad, mida nimetatakse ka automaatideks, on teoreetilise arvutiteaduse element. Abstraktne masin meenutab matemaatikas funktsiooni. See võtab vastu sisendeid ja toodab väljundeid vastavalt kindlaksmääratud reeglitele. Abstraktsed masinad erinevad sõnasõnalisematest masinatest, kuna eeldatakse, et need töötavad ideaalselt ja riistvarast sõltumatult. Need jagunevad tüüpideks selliste omaduste alusel, nagu see, kuidas nad oma toiminguid teevad ja millist tüüpi sisendeid nad saavad vastu võtta.

Abstraktsete masinate klassifitseerimisel on üks lihtsamaid eristusi seotud toimingute arvuga, mida neil on lubatud teha mis tahes punktis. Abstraktset masinat nimetatakse deterministlikuks, kui sellel on alati ainult üks võimalus edasi liikuda. See on mittedeterministlik, kui masinal on vähemalt ühes võimalikus olekus mitu võimalust. Allasurutud automaat on automaat, millel on võime oma sisendite virnaga manipuleerida, selle asemel, et vastata neile ükshaaval nende ilmumise järjekorras.

Wolfram MathWorld toob kaks kuulsat näidet abstraktsetest masinatest. Üks nendest näidetest on Conway elumäng, mis on deterministlik abstraktne masin, kuna teistest konfiguratsioonidest võib tekkida ainult üks konfiguratsioon. See mäng kasutab ruudustikku, kus iga kasti või lahtri olek võib olla kas “elus” või “surnud”. Kogu ruudustiku olek määratakse eelmise oleku alusel. Kui elusrakk puudutab täpselt kahte või kolme teist elusrakku, jätkab ta oma elu. Kui tal on üks, kaks või rohkem kui kolm naabrit (kuni võimalikku kaheksat), siis ta sureb. Täpselt kolme naabriga surnud rakk ärkab ellu; muidu jääb see surnuks.

Teine näide, Turingi masin, on arvutiteaduse üks elementaarsemaid ja fundamentaalsemaid abstraktseid masinaid. Turingi masin teostab toiminguid piiramatu suurusega lindiga – sümbolite jadaga. See sisaldab juhiseid nii sümbolite muutmiseks kui ka selle sümboli muutmiseks, millel see töötab. Lihtsal Turingi masinal võib olla ainult käsk “teisenda sümbol 1-ks, seejärel liigu paremale”. See masin ei väljastaks muud kui 1-de jada. See lihtne Turingi masin on deterministlik, kuid on võimalik konstrueerida ka mittedeterministlikke Turingi masinaid, mis suudavad sama sisendiga sooritada mitut erinevat operatsiooni.

Need abstraktsed masinad võivad teenida mitmeid eesmärke. Need võivad olla lõbusad teoreetilised mänguasjad, kuid need võivad olla ka tõeliste arvutisüsteemide mudelid. Abstraktne masin on arvutiteaduse kui distsipliini keskmes.