Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahojte vsetci. Mam taketo zadanie projektu a neviem s tym vobec pohnut.
(Další otázka týkající se Turingových strojů)
Představme si, že navrhujeme Turingův stroj M , přičemž chceme používat již hotový M1 jako proceduru, které lze předat vstup (parametr), tj. řetězec symbolů, a obdržet od ní příslušný výstup. K tomu se hodí chápat M jako dvoupáskový (víme, že vícepáskový stroj lze simulovat jednopáskovým, je-li potřeba). Když M potřebuje výstup M1 odpovídající vstupu w, neboli potřebuje zjistit řetězec M1 (w), napíše w na druhou pásku, na ní pak nechá běžet M1 a až M1 skončí, překopíruje si M výsledný řetězec z druhé pásky na „základní pásku a udělá si s ním, co potřebuje. Popište teď, jak byste řešili případ, kdy M potřebuje takto „volat stroje M1 , M2 , . . . , Mk , které se ovšem mohou také rekurzivně volat navzájem.
Dakujem za hocijaku radu, ako to vyriesit.
Offline

V normálních programech existuje stack, na který se s každou volanou funkcí uloží návratová adresa (tzn. čím se m pokračovat, až funkce skončí) a argumenty této funkce. Po skončení funkce se ze stacku tyto informace odstraní. Stejně by to šlo udělat i u turingova stroje: s každým zavoláním procedury se na konec druhé pásky z zapíše řetězec typu "pozice, kam přepsat výstup#stav, do kterého se vrátit#pozice hlavy, nakterou se vrátit#vstup funkce". Procedura pak bude pracovat nad vstupem, až skončí, přepíše hlavní stroj její výstup na cílovou pozici, vrátí se do stavu, z nějž byla funkce volána a nastaví hlavu na správnou pozici; navíc smaže data, se kterými funkce pracovala.
Zbývá technicky dořešit, jak toto ten stroj udělá, ale to už je spíš dlouhé než zajímavé psaní.
Offline
Stránky: 1