Matematické Fórum

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

#1 09. 04. 2008 17:53

ims
Zelenáč
Příspěvky: 1
Reputace:   
 

Projekt z teoretickej informatiky - Další otázka týkající se Turingový

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

 

#2 01. 06. 2008 01:04

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4247
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: Projekt z teoretickej informatiky - Další otázka týkající se Turingový

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í.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson