Kezdőoldal » Közoktatás, tanfolyamok » Házifeladat kérdések » Turing automata készítés, hogyan?

Turing automata készítés, hogyan?

Figyelt kérdés
Adott szabály : ha egymás után három nullát lát, akkor azokat lecseréli ### karakterekre. Hogy kellene felírni a szabályt illetve milyen megoldási konstrukciókat tudtok ajánlani ?

2014. szept. 18. 15:17
 1/5 anonim ***** válasza:

jflap-et használtál már? turing automatát (meg másféle automatákat is) készíthetsz és tesztelhetsz vele, nagyon egyszerű használni.


én csináltam egy verziót, amiben miután végigfut egy szón és blank jelet olvas, mindig elfogadja a szót, közben pedig a hármasával álló nullákat lecseréli.


[link]

2014. szept. 18. 16:31
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Próbálom értelmezni amit írtál. Kérdésem a következő lenne, ahol [1;1,R] állapot áll fenn, az hogy működik?


Nálam tulajdonképpen sima kettes számrendszerről lenne szó, ahol csupa 0 és 1-es szerepel. Az esetleges triviális válaszért bocsi.

2014. szept. 19. 18:27
 3/5 anonim ***** válasza:

a kezdőállapotra gondolsz? ha egyest olvas, egyest ír és továbbmegy a következő karakterre, gyakorlatilag változatlanul hagyja az egyeseket, miközben áthalad rajtuk. az R pedig egy jobbra lépés, tehát a következő karakterhez lép.


például ha 111000 kerül beolvasásra, akkor háromszor történik meg az (1, 1, R) a q0 állapotban, aztán beolvas egy 0-át és átlép a q1 állapotba. ha a beolvasott szó a 0000, akkor egyszer sem hajtódik végre az (1, 1, R).


a lényeg az egészben, hogy a q1, q2, q3 állapotok számolják az egymás mellett álló nullákat. ha pl 1001...-et olvasol, akkor a q2 a negyedik karakternél visszalép a kezdőállapotba és elölről kezdi a nullák számlálását.


ha elérted a q3-at, az azt jelenti, hogy megvan a három 0 egymás mellett, elkezdheted átírni őket. a harmadik nullánál nem lép eggyel jobbra a fej, hanem helyben marad (S = stay). q4, q5, q6 állapotokba lépve írja át a három 0-át #-re hátulról kezdve. ha megérkezett q6-ba, akkor előre kell mennie újból, át a három # jelen, hogy továbbhaladjon a szón és az esetleges többi nullákat is megtalálja és átírja. ha ez megvolt, 2 lehetőség van: vagy 1-est olvas és visszakerül a kezdőállapotba, ahol a beolvasott 0-ák száma újra nulla, vagy ha nullát olvas, átmegy egyből q1-be, ami azt jelenti, hogy azt az egy 0-át már észlelte és megszámolta.


illetve még a harmadik lehetőség, hogy a szó véget ért. (pl. 11###010110011### )

a q7-et, ami a végső állapot, azért tettem bele, hogy legyenek szavak, amiket elfogad (annak nem látom sok értelmét, hogy átírja a 0-ákat, de sose ér célba az automata). nálam minden szót elfogad, ezért mutat minden állapotból egy nyíl q7-be.


ugye a turing automata szalagja úgy néz ki, hogy pl ... blank, blank, 1001110101001111 blank, blank ... (a blank jel az üres négyzet, a szó elején és végén van)

nálam tehát bárhol eléri a végén a blank jelet, elfogad. variálhatod, hogy csak akkor fogadjon el, ha talált három 0-át, de ahhoz több állapotra lesz szükséged.

2014. szept. 19. 22:37
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:
Köszönöm!! Nagyon hasznos volt és úgy gondolom, hogy meg is értettem teljesen.
2014. szept. 22. 00:31
 5/5 anonim ***** válasza:
holnap után doga...
2014. szept. 27. 18:13
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!