1 / 34

Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr /

Uvod u teoriju računarstva http://www.zemris.fer.hr/ predmeti / utr /. Zadaci za vje žbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu. Zadatak br. 25. Konstruirati potisni automat koji prihvaća nizove koje generira zadana gramatika. S  xABy A  zwA

nizana
Download Presentation

Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr /

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uvod u teoriju računarstvahttp://www.zemris.fer.hr/predmeti/utr/ Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu

  2. Zadatak br. 25 • Konstruirati potisni automat koji prihvaća nizove koje generira zadana gramatika SxABy AzwA A BwC Bv B CvB CxA C Ab Pripremni korak: Pretvorba gramatike u Greibachin oblik Prvo se izbace  produkcije. SxABy AzwA A BwC Bv B CvB CxA C SxABy AzwA A BwC Bw Bv B CvB CxA BwC Bw SxAByCxA SxAy AzwA A BwC Bw Bv CvB Cv SxAByCvB SxByCv SxAyCxA SxyCx AzwA Azw BwC Bw Bv BwCNE BwCDA CDA

  3. Zadatak br. 25 Zamjena završnih znakova koji nisu na prvom mjestu s desne strane produkcija SxABy SxBy SxAy Sxy AzwA Azw BwC Bw Bv CvB Cv CxA Cx SxABD SxBD SxAD SxD AzwA Azw BwC Bw Bv CvB Cv CxA Cx Dy SxABD Dy SxBD Ew SxAD SxD AzEA AzE BwC Bw Bv CvB Cv CxA Cx y y y y w w

  4. Zadatak br. 25 Izgradnja potisnog automata G=(V,T,P,S) M=({q},,,,q,S,) pri tome vrijedi =T, =V te za Ab(q,b,A)=(q,) SxABD SxBD SxAD SxD AzEA AzE BwC Bw Bv CvB Cv CxA Cx Dy Ew (q,x,S)= {(q,ABD),(q,BD),(q,AD),(q,D)} (q,z,A)={(q,EA),(q,E)} (q,w,B)={(q,C),(q,)} (q,v,B)=(q,) (q,v,C)={(q,B),(q,)} (q,x,C)={(q,A),(q,)} (q,y,D)=(q,) (q,w,E)=(q,)

  5. qi qj *  M Zadatak br. 26 • Konstruirati konteksno neovisnu gramatiku koja generira nizove koje prihvaća zadani potisni automat M. M=( {q0,q1}, {a,b,c}, {A,K}, , q0, K,  ) (q0,b,K)=(q0,AK) (q0,a,A)=(q1,A) (q1,,K)=(q1,) (q0,b,A)=(q0,AA) (q1,c,A)=(q1,) Da bi se gramatika mogla konstruirati, potisni automat mora prihvaćati praznim stogom G=(V,T,P,S) pri tome je T=, a V={S}{[qiAqj] | qi,qjQ, A} Uvodimo početne produkcije iz početnog nezavršnog znaka S [ q0 K qi ], qiQ S[ q0 K q0 ] S[qi, A, qj] S[ q0 K q1 ]

  6. Zadatak br. 26 Daljnji nezavršni znakovi i produkcije gramatike grade se na temelju prijelaza potisnog automata i sljedećeg pravila: Za prijelaz (qj,a,X)=(qk,ABC...Z) uvode se sljedeći nezavršni znakovi i produkcije: [qjXqe]a[qkAqf][qfBqg][qgCqh]...[qiZqe] qe,qf,qg,qh,qiQ Ako je |Q|=n i |ABC...Z|=m onda iz jednog prijelaza nastaje nm produkcija posebni slučaj ako je m=0: (qj,a,X)=(qk,)  [qjXqk]a, aT{} Za prijelaz (q0,b,K)=(q0,AK) uvodimo: [q0Kq0]b[q0Aq0][q0Kq0] [q0Kq0]b[q0Aq1][q1Kq0] [q0Kq1]b[q0Aq0][q0Kq1] [q0Kq1]b[q0Aq1][q1Kq1] Za prijelaz (q0,a,A)=(q1,A)uvodimo: [q0Aq0]a[q1Aq0] [q0Aq1]a[q1Aq1]

  7. Zadatak br. 26 Za prijelaz (q0,b,A)=(q0,AA)uvodimo: [q0Aq0]b[q0Aq0][q0Aq0] [q0Aq0]b[q0Aq1][q1Aq0] [q0Aq1]b[q0Aq0][q0Aq1] [q0Aq1]b[q0Aq1][q1Aq1] Za prijelaz (q1,c,A)=(q1,)uvodimo: [q1Aq1]c Za prijelaz (q1,,K)=(q1,)uvodimo: [q1Kq1] Dobivena gramatika: S[q0Kq0] S[q0Kq1] [q0Kq0]b[q0Aq0][q0Kq0] [q0Kq0]b[q0Aq1][q1Kq0] [q0Kq1]b[q0Aq0][q0Kq1] [q0Kq1]b[q0Aq1][q1Kq1] [q0Aq0]a[q1Aq0] [q0Aq1]a[q1Aq1] [q0Aq0]b[q0Aq0][q0Aq0] [q0Aq0]b[q0Aq1][q1Aq0] [q0Aq1]b[q0Aq0][q0Aq1] [q0Aq1]b[q0Aq1][q1Aq1] [q1Aq1]c [q1Kq1]

  8. Zadatak br. 26 Dobivena gramatika može imati mrtvih i nedohvatljivih nezavršnih znakova.Nakon izbacivanja mrtvih i nedohvatljivihnezavršnih znakova, gramatika sadrži produkcije: S[q0Kq1] [q0Kq1]b[q0Aq1][q1Kq1] [q0Aq1]b[q0Aq1][q1Aq1] [q0Aq1]a[q1Aq1] [q1Aq1]c [q1Kq1] Dobivena gramatika je čitljivija ako se izvrši preimenovanje nezavršnih znakova: [q0Kq1]A [q0Aq1]B [q1Aq1]C [q1Kq1]D S A A bBD B bBC B aC C c D

  9. Zadatak br. 27 • Konstruirati Turingov stroj u osnovnom obliku koji oduzima dva binarna broja zapisana na traci. Najznačajnija znamenka je lijevo, a brojevi su odvojeni znakom –. Drugi broj se oduzima od prvog pri čemu prvi broj sigurno nije manji od drugog. Glava se nalazi na početku ulaznog niza, a s obje strane ulaznog niza nalaze se praznine. TS M=(Q,,,,q0,B,F) Početno stanje: 1 0 0 1 1 1 0 1 0 B 0 - B

  10. Zadatak br. 27 IDEJA • dovoljan je jedan trag (to je osnovni oblik TS) • q0 iq1 - prelazak na krajnje desni znak, brisanje • q2 i q3-učitana krajnje desna 0, odnosno 1; kretanje lijevo; • q4i q5 - preskočili znak minus s učitanom 0, odnosno 1 • oduzimanje od odgovarajućeg bita prvog broja • zapisuje se J i N • q6- ako treba posuditi od prethodnog bita, komplementiraju se bitovi sve do prve pojave 1 • vraćanje natrag pomoću q0 • q7, q8 i q9 - za zavšetak 1 0 0 1 1 1 0 1 0 B 0 - B

  11. B Zadatak br. 27 • q0iq1 - prelazak na krajnje desni znak, brisanje 1 0 0 1 1 1 0 1 0 B 0 - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q2 q3 q4 q5 q6 q7 q8

  12. Zadatak br. 27 • q2 i q3-učitana krajnje desna 0, odnosno 1 • kretanje lijevo do minusa B 1 0 0 1 1 1 0 1 0 B 0 - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q5 q6 q7 q8

  13. Zadatak br. 27 • q4i q5 - preskočili znak minus s učitanom 0, odnosno 1 • pozicioniranje na odgovarajući bit umanjenika • oduzimanje,zapisuje se rezultat J i N • q6 – javlja se posudba 1 0 0 1 1 1 0 1 B B 0 - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q0, N, R q0, J, R q4, N, L q4, J, L q5 q6, J, L q0, N, R q5, N, L q5, J, L q6 q7 q8

  14. Zadatak br. 27 • q4i q5 - preskočili znak minus s učitanom 0, odnosno 1 • pozicioniranje na odgovarajući bit umanjenika • oduzimanje,zapisuje se rezultat J i N • q6 – javlja se posudba J J N B B B 1 0 0 1 1 1 0 1 B B N - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q0, N, R q0, J, R q4, N, L q4, J, L q5 q6, J, L q0, N, R q5, N, L q5, J, L q6 q7 q8

  15. Zadatak br. 27 • q6- treba posuditi od prethodnog bita • komplementiraju se bitovi sve do prve pojave 1 • vraćanje natrag pomoću q0 i q1 0 1 1 0 J J N B B B B B N - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q7, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q0, N, R q0, J, R q4, N, L q4, J, L q5 q6, J, L q0, N, R q5, N, L q5, J, L q6 q6, 1, L q0, 0, R q7 q8

  16. Zadatak br. 27 • q7- obrisali umanjitelj • brisemo “–” • pretvaramo rezultat u 0 i 1 0 1 1 J 1 J 0 N B B B B B B 0 N - B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q7, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q0, N, R q0, J, R q4, N, L q4, J, L q5 q6, J, L q0, N, R q5, N, L q5, J, L q6 q6, 1, L q0, 0, R q7 q7, 0, L q7, 1, L q7, 0, L q7, 1, L q8, B, R q8

  17. Zadatak br. 27 • q8- došli do lijeve praznine • brišemo vodeće nule • q9 - zavšetak u prihvatljivom stanju B 0 1 1 J 1 J 0 N B B B B B 0 N B B 0 1 - N J B q0 q0, 0, R q0, 1, R q0, -, R q0, N, R q0, J, R q1, B, L q1 q2, B, L q3, B, L q7, B, L q2 q2, 0, L q2, 1, L q4, -, L q3 q3, 0, L q3, 1, L q5, -, L q4 q0, N, R q0, J, R q4, N, L q4, J, L q5 q6, J, L q0, N, R q5, N, L q5, J, L q6 q6, 1, L q0, 0, R q7 q7, 0, L q7, 1, L q7, 0, L q7, 1, L q8, B, R q8 q8, B, R q9, 1, L q9, 0, L

  18. Zadatak br. 28 • Konstruirati Turingov stroj koji redom generira sve potencije broja 2. Vrijednost jednog broja na traci zapisana je odgovarajućim brojem jedinica. Brojevi su međusobno odvojeni graničnikom $. Na ulaznoj traci Turingovog stroja na početku je zapisan niz $1. S obje strane ulaznog niza nalaze se praznine. TS M=(Q,,,,q0,B,F) Na početku: $ 1 B B B B B B Na kraju: $ 1 1 $ 1 1 1 1 $ ... $ 1

  19. Zadatak br. 28 $ 1 1 $ 1 1 1 1 $ ... $ 1 IDEJA: Za svaku jedinicu iz prethodno stvorenog niza generirati po dvije nove jedinice. TS M=(Q,,,,q0,B,F) Turingov stroj s jednom trakom s dva traga: Glavni – ulazno-izlazni trag B B $ 1 B B B B B B B B B B B B Pomoćni – označni trag

  20. Zadatak br. 28 IDEJA: Za svaku jedinicu iz prethodno stvorenog niza generirati po dvije nove jedinice na kraju trake. $ 1 1 $ B 1 B 1 1 1 B $ --- B $ 1 B B B B B B B B B B * B B B B B B B * * * B * * * B B B

  21. Zadatak br. 28 [1, B] [B, B] [$, B] [1, *] q0 q1,[1,*],R q0,[$, B], R - - Konstrukcija TS: q1 q1,[1, B],R q2,[$, B], R q2,[$, B], R - q2 q2,[1, B],R q3,[1, B], R - - q3 q4,[1, B], L - - - q4,[1, B], L q4 q4,[$, B], L q0,[1, *], R - $ 1 $ B 1 B 1 B $ B 1 B 1 B 1 B 1 B B $ 1 B 1 B 1 B 1 B B B B B B * * * * * B B B B B B B B B B B B B B B B B B B B q0 q0 q1 q2 q3 q4 q4 q4 q0 q1 q1 q2 q3 q0 q4 q4 q4 q4 q0 q1 q2 q2 q2 q3 q4 q4 q4  q4 q4 q0 q1 q1 q1 q1 q2 q3 q0  q4 q4 q4  q4 q4 q4 q1 q1 q1 q2 q2 q2 q3 q0  . . . 

  22. Zadatak br. 28 Turingov stroj: [1, B] [B, B] [$, B] [1, *] q0 q1,[1,*],R q0,[$, B], R - - - q1 q1,[1, B],R q2,[$, B], R q2,[$, B], R - - q2 q2,[1, B],R q3,[1, B], R - q3 q4,[1, B], L - - q4,[1, B], L - q4 q4,[$, B], L q0,[1, *], R

  23. Zadatak br. 29 Konstruirati Turingov stroj koji prihvaća nizove iz jezika L. Nakon što Turingov stroj završi s radom, stanje na traci mora biti isto kao početno. S obje strane ulaznog niza nalaze se praznine. L={w(a+b+c)* | na=nb=nc}

  24. P a a b c c b a c b P Prihvatljivi niz a b c A B C P q0 qa qb qc qbc qac qab qV qOC qPC

  25. qab q0 qa P a A a B b c c b a c b P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R qa qa, a, R qab, B, R qac, C, R qb qc qbc qac qab qab, a, R qab, b, R qV, C, L qV qOC qPC

  26. q0 qV qab P A a B c C c b a c b P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R qa qa, a, R qab, B, R qac, C, R qb qc qbc qac qab qab, a, R qab, b, R qV, C, L qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC

  27. q0 qa qac P A a A B C C c b a c b P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC

  28. qac qV P A A B C C B b a c b P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC

  29. q0 P A A B C C B A C B P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC

  30. qP qPC q0 P A a a A b B c C c C b B A a C c b B P Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC - - - qPC, a, L qPC, b, L qPC, c, L qP, P, R

  31. P A A B C C B A C P B P Neprihvatljivi niz Prihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC - - - qPC, a, L qPC, b, L qPC, c, L qP, P, R

  32. qac P A A B C C B A C P P Neprihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qOC, P, L qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qOC, P, L qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qOC, P, L qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qOC, P, L qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qOC, P, L qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qOC, P, L qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qPC - - - qPC, a, L qPC, b, L qPC, c, L qP, P, R

  33. qOC qac P A a A a B b C c c C b B A a c C P P Neprihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qOC, P, L qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qOC, P, L qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qOC, P, L qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qOC, P, L qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qOC, P, L qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qOC, P, L qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qOC, a, L qOC, b, L qOC, c, L qOC, a, L qOC, b, L qOC, c, L qPC - - - qPC, a, L qPC, b, L qPC, c, L qP, P, R

  34. qac qOC P a a b c c b a c P P Neprihvatljivi niz a b c A B C P q0 qa, A, R qb, B, R qc, C, R q0, A, R q0, B, R q0, C, R qPC, P, L qa qa, a, R qab, B, R qac, C, R qa, A, R qa, B, R qa, C, R qOC, P, L qb qab, A, R qb, b, R qbc, C, R qb, A, R qb, B, R qb, C, R qOC, P, L qc qac, A, R qbc, B, R qc, c, R qc, A, R qc, B, R qc, C, R qOC, P, L qbc qV, A, L qbc, b, R qbc, c, R qbc, A, R qbc, B, R qbc, C, R qOC, P, L qac qac, a, R qV, B, L qac, c, R qac, A, R qac, B, R qac, C, R qOC, P, L qab qab, a, R qab, b, R qV, C, L qab, A, R qab, B, R qab, C, R qOC, P, L qV qV, a, L qV, b, L qV, c, L qV, A, L qV, B, L qV, C, L q0, P, R qOC qOC, a, L qOC, b, L qOC, c, L qOC, a, L qOC, b, L qOC, c, L - qPC - - - qPC, a, L qPC, b, L qPC, c, L qP, P, R

More Related