Turingov stroj

Programovacie jazyky, rady, poradňa...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Turingov stroj

Príspevok od používateľa harrison314 »

Potreboval by som vysvetlit (najslesie po slovensky), ako turingov stroj respektive zasobnikovy automat pocita, zlozitejsie alegebraicke vyrazy (zatvorky, logaritmy ,premenne... ) , najlepsie aj z peknymi obrazkami.
Nieco som uz naprogramoval, ale vyrazy vycisluje rekurzivne a nesplnuje vetcinu mojich pozidaviek.
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Turingov stroj

Príspevok od používateľa juho »

no pracoval si uz niekedy s FloatingPointUnit? tak sa to davalo do zasobniku pricom posledna pridana hodnota bola nazaciatku a potom tam boli operacie ktore si vytiahli tolko hodnot pre kolko boli naprogramovane a miesto nich priradilo vyslednu hodnotu to myslis?
az ten zdrojak nieje statne tajomstvo tak pasti usek ktory ti nefunguje presne
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa audiotrack »

harrison314 napísal:Potreboval by som vysvetlit (najslesie po slovensky), ako turingov stroj respektive zasobnikovy automat pocita, zlozitejsie alegebraicke vyrazy (zatvorky, logaritmy ,premenne... ) , najlepsie aj z peknymi obrazkami.
Nieco som uz naprogramoval, ale vyrazy vycisluje rekurzivne a nesplnuje vetcinu mojich pozidaviek.
máš zásobník (to znamená že čo prvé príde, to posledné odchádza). Príde pravá zátvorka, pridá sa do zásobnika. Príde lavá, odstráni sa pravá zo zásobnika (všetky tieto pravidlá musíš mať popísané v danej gramatike). Tento stroj potom oproti bežnému TS akceptuje okrem koncového stavu aj prázdnym zásobníkom. Myslím že na internete je toho kopec popísaného, asi by bolo lepšie vysvetliť na konkrétnom príklade ak si sa na nejakom zasekol
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa axxis »

zda sa mi, ze si to trochu poplietol. Turingov stroj predsa ziadnu gramatiku nepotrebuje a okrem toho prechody cez Epsilony vie zovseobecneny automat ( ci uz deterministicky alebo nedeterministicky ), turingov stroj ,na rozdiel od inych automatov, sa vyznacuje tym, ze ma nekonecnu pasku a vie po nej chodit zlava doprava aj naopak + dokaze vymazavat obsah pasky. a zlozite vyrazy vie riesit jedine spravnym usporiadanim stavov a prechodov medzi nimi

vid toto od strany 27
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa audiotrack »

pásku v TS môžeš používať rovnako ako zásobník v PDA. On ale nepotrebuje vytvoriť gramatiku, on potrebuje konkrétnu implementáciu prostredníctvom TS. A tú spraví práve tak ako som mu písal.
Ale hej, TS potrebuje jazyk a nie gramatiku. Jazyk je ale popísaný gramatikou... a asi sa nebudeme môcť chytať za slovíčka lebo sa nedočká odpovede
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa harrison314 »

Takze kde som sa zasekol:
Moj program funguje dobre , len zvlada zatvorky,+,-,*,/,^ , nezvlada unarne operacie.
Mam spraveny lexikalny analizator, ktori vyraz premeni na pole oprantov a hodnot, potom metody ktore ho spracuju rekurzivne ( ak najde zatvorku posunie sa zani a zavola sama seba a vysledok pouzije ako operant, ...), mozem upnut zdrojaky v C++.
Problem nastal, ked som chcel doplnit obycajny logaritmus ln( .... );.

Chcel by som sa postupne dopracovat az k tomu aby som mohol zaviest uzivatelom deklarovane premenne,viac vyrazov v matematickom "skrypte" s priradenim a funkcie ( nie definovane uzivatelom), ktore by mali viac parametrov.

Povodne som ani neuvazoval o klasickom TS , ale skor o nejakom automate ktory sa mu podoba, citacou hlavou by behal po vyraze a hladal by opracie z najvysou prioritou tie by vyhodnotil a nahradil ich hodnotou, takto by pokracoval pokial by ho nevypocital.
Ale tiez som narazil na dost zlozitu rekurzivnost.
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Turingov stroj

Príspevok od používateľa juho »

nemyslim ze by si mal pouzivat rekurzie ved kludne to mozes spravit ako strom ze listy budu hodnoty a jeho konare alebo proste tie vnutorne uzly budu tie operatory a napriklad unarny x++ mozes definovat ako x+1 a ked najde napriklad L tak sa zapne automat pre funkcie a ten sa bude snazit prijat potom n zatvorku a potom ten vyraz vnutri a ked narazi na ) tak cely ten vyraz preda automatu na vyssej urovni
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa audiotrack »

áno, to si práve popísal rekurziu ^ :)
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Turingov stroj

Príspevok od používateľa juho »

alebo skor volanie inych funkcii z nie tej istej ci?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa harrison314 »

juho napísal:nemyslim ze by si mal pouzivat rekurzie ved kludne to mozes spravit ako strom ze listy budu hodnoty a jeho konare alebo proste tie vnutorne uzly budu tie operatory a napriklad unarny x++ mozes definovat ako x+1 a ked najde napriklad L tak sa zapne automat pre funkcie a ten sa bude snazit prijat potom n zatvorku a potom ten vyraz vnutri a ked narazi na ) tak cely ten vyraz preda automatu na vyssej urovni
Ako s toho spravim strom ,mudrlant ? Ako vstup mam text. Len ci to nebude zlozitejsie ako to rovno zinterperovat.
Hlavnym mojim problemmom je spravne urcit prioritu vsetkych poratorov,oprandov a funkcii, co nie je take jednoduche ako si napisal.
Rekurzia sa tu pouziva zlozena , zavolam funkciu A , ta vola funkciu B, B vola B aj A.
A unarny opertaor je aj faktorial, ale hlavne minus pred cislom !
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Turingov stroj

Príspevok od používateľa juho »

tak ty mudrlant ja mudrlant ..nc.nc.nc.. z textoveho vstupu si vytvoris lexemy podla delimitrov tym priradis preddefinovane tokenove cisla a z toho spracovavas dalej a priradujes do stromu alebo vsuvas do zasobnika a vykonavas operacie ci?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Turingov stroj

Príspevok od používateľa harrison314 »

Nakoniec som to vyreisil vylepsenim Lexikalneho analizatora a rekurziov, takto :
Lexikalny nalizator spravy z jednotlivych veci pole, kde su vsetky potrebne veci, ako je typ (zatvorka, cislo, premnna), ukazovatel na funkciu ak sa jedna o funkciu, ....
Lexikalny analizator sa stara aj o vytvaranie a deklaraciu premnnych.

Potom mam 4 funkcie na interpertaciu:
1.uroven - stara sa o priradenie
2.uroven je +,-
3.uroven *,/
4.uroven hodnota,premenna,funkcia,zatvorky ... a podla potreby vola 1.uroven

Pricom kazda uroven vola tu nizsiu.

Je dost zaujimave ze to zvlada aj dost krkolomne zapisi.
Ale este je natom vela prace.

Este vymsliet if a while , to bude trapenie. :cry:
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Turingov stroj

Príspevok od používateľa juho »

tak a je to tu
39-ročný Ind dokázal P != NP
rozoslal 103-stranovú predbežnú verziu dôkazu
Napísať odpoveď