Automat fronty - Queue automaton
A fronta stroj nebo automat fronty je konečný stavový stroj se schopností ukládat a načítat data z nekonečné paměti fronta. Jedná se o model výpočtu ekvivalentní a Turingův stroj, a proto může zpracovávat stejnou třídu formální jazyky.
Teorie
Stroj ve frontě lze definovat jako šestici
- kde
- je konečná sada státy;
- je konečná množina vstupní abeceda;
- je konečný abeceda fronty;
- je symbol počáteční fronty;
- je počáteční stav;
- je přechodová funkce.
Stroj konfigurace je uspořádaná dvojice obsahu jejího stavu a fronty , kde označuje Kleene uzavření z . Počáteční konfigurace na vstupním řetězci je definován jako a přechod z jedné konfigurace do druhé je definována jako:
kde je symbol z abecedy fronty, je posloupnost symbolů fronty (), a . Všimněte si vlastnosti „first-in-first-out“ fronty v relaci.
Zařízení přijímá řetězec pokud se po konečném počtu přechodů vyvíjí počáteční konfigurace k vyčerpání řetězce (dosažení nulového řetězce ), nebo [1]
Turingova úplnost
Můžeme dokázat, že stroj ve frontě je ekvivalentní s Turingovým strojem, když ukážeme, že stroj ve frontě může simulovat Turingův stroj a naopak.
Turingův stroj může být simulován strojem ve frontě, který po celou dobu uchovává kopii obsahu Turingova stroje ve své frontě, se dvěma speciálními značkami: jeden pro pozici hlavy TM a jeden pro konec pásky; jeho přechody simulují přechod TM tím, že procházejí celou frontou, vyskočí z každého z jeho symbolů a znovu označí buď vyskočený symbol, nebo v blízkosti polohy hlavy ekvivalent efektu přechodu TM.
Frontu lze simulovat pomocí Turingova stroje, ale snadněji pomocí a vícepásmový Turingův stroj, o kterém je známo, že je ekvivalentní normálnímu jednopáskovému stroji. Simulační stroj fronty čte vstup na jednu pásku a ukládá frontu na druhou s pushy a popy definovanými jednoduchými přechody k počátečním a koncovým symbolům pásky.[2] Formálním důkazem toho je často cvičení v kurzech teoretické informatiky.
Aplikace
Fronty nabízejí jednoduchý model, na kterém lze založit počítačové architektury,[3][4] programovací jazyky nebo algoritmy.[5][6]
Viz také
- Vyčíslitelnost
- Turingovy ekvivalenty
- Deterministický konečný automat
- Pushdown automat
- Systém značek
- Manufactoria, flashová hra v prohlížeči, která má hráče za úkol implementovat různé algoritmy pomocí modelu stroje ve frontě.
Reference
- ^ Kozen, Dexter C. (1997) [1951]. David Gries, Fred B. Schneider (ed.). Automaty a vypočítatelnost (tvrdý obal). Bakalářské texty v informatice (1. vyd.). New York: Springer-Verlag. str.368 –370. ISBN 978-0-387-94907-9.
- ^ Rus, Teodor. „Varianty Turingových strojů“ (PDF). Poznámky k přednášce pokrývající teorii výpočtu. University of Iowa, Iowa City, IA, 52242-1419. Archivovány od originál (PDF) dne 21. 9. 2008. Citováno 2007-11-06.
- ^ Feller, M .; M. Ercegovac (1981). Fronty: Organizace pro paralelní výpočet. Přednášky z informatiky. 111. 37–47. doi:10.1007 / BFb0105108. ISBN 978-3-540-10827-6.
- ^ Schmit, H .; Levine, B .; Ylvisaker, B. (2002). Msgstr "Stroje ve frontě: Hardwarová kompilace v hardwaru". Řízení. 10. výroční sympozium IEEE o programovatelných strojích na míru programovatelných v terénu. 152–160. CiteSeerX 10.1.1.6.7718. doi:10.1109 / FPGA.2002.1106670. ISBN 978-0-7695-1801-5.
- ^ Moore, Christopher (1999-09-20). „Fronty, hromádky a transcendentálnost při přechodu do chaosu“. Seminář projektu Algoritmy. INRIA. Citováno 2007-11-06.
- ^ von Thum, Manfred (2007). "Fronta pro vyhodnocení výrazů". LaTrobe University. Archivovány od originál dne 2007-08-07. Citováno 2007-11-06.