Postikone on Emil Postin vuonna 1936 ehdottama abstrakti laskentakone , joka luotiin Turingin koneesta riippumattomasti , mutta Post-konetta koskeva postaus julkaistiin muutamaa kuukautta myöhemmin. Se eroaa Turingin koneesta suuremmalla yksinkertaisuudella, lisäksi molemmat koneet ovat algoritmisesti "ekvivalentteja" ja molemmat on suunniteltu formalisoimaan algoritmin käsite ja ratkaisemaan algoritmisia ratkottavuusongelmia , eli osoittamaan ongelmien algoritmista ratkaisua ohjesarja postikoneelle.
Postin kone koostuu vaunusta (tai luku- ja kirjoituspäästä) ja nauhasta, joka on jaettu soluihin, molemmin puolin loputon. Jokainen nauhan solu voi olla kahdessa tilassa - joko tyhjä - 0tai merkitty etiketillä 1. Koneen jakson aikana vaunu voi liikkua yhden asennon vasemmalle tai oikealle, laskea, muuttaa merkkiä nykyisessä asemassaan.
Postikoneen toiminta määritellään ohjelmalla , joka koostuu äärellisestä määrästä rivejä. Jotta kone toimisi, sinun on asetettava ohjelma ja sen alkutila (eli nauhan tila ja kelkan sijainti). Kuljetusta ohjaa ohjelma, joka koostuu numeroiduista, ei välttämättä järjestetyistä komentoriveistä, jos jokainen komento määrittää rivin, jolle hypätään. Yleensä hyväksytään, että jos siirtymää ei ole määritetty komennossa, siirtyminen tapahtuu seuraavalle riville. Jokaisella komennolla on seuraava syntaksi:
i. K jmissä i on komennon numero, K on kuljetustoiminto, j on seuraavan komennon (lähetä) numero.
Postikoneelle on yhteensä kuusi erityyppistä komentoa:
"Stop"-komennossa siirtymistä seuraavalle riville ei ilmoiteta.
Ohjelman käynnistämisen jälkeen vaihtoehdot ovat:
Luonnollisten (ei-negatiivisten kokonaislukujen) P ja Q yhteen- ja vähennyslaskua varten ne voidaan esittää nauhalla joukolla P - yksikköä ja Q , jotka on erotettu toisistaan yhdellä nollalla; olkoon pisteen alkusijainti yksikköryhmän Q vasemmanpuoleisimman "1" kohdalla (merkitty symbolilla " "): ⇓
⇓ …0010010010110… ╚═══╝ ╚═╝ P QKahden luvun lisääminen on triviaalia - riittää, että laitat " 1" numeroiden väliin ja pyyhitään yksi äärioikeisto " " Q1 :n esityksestä .
Ohjelma tällaisten lukujen vähentämiseksi koostuu peräkkäin Q1 -esityksen vasemmanpuoleisimman " " ja P -esityksen oikeanpuoleisimman " " muuttamisesta . Ohjelman alussa vaunu on asetettu vasemmanpuoleisimpaan "1" kohtaan Q : 1
1. ← -askel vasemmalle 2. ? 1; 3 - jos solu on tyhjä, siirry 1-vaiheeseen, jos ei - siirry kohtaan3 3. X - poista etiketti 4. → -askel oikealle 5. ? 4; 6 - jos solu on tyhjä, siirry 4-vaiheeseen, jos ei - siirry kohtaan6 6. X - poista etiketti 7. → -askel oikealle 8. ? 9; 1 - jos solu on tyhjä, siirry 9vaiheeseen, jos ei - siirry kohtaan1 9. ! - loppu5. rivillä silmukka on mahdollinen, jos .