You are on page 1of 6

VILNIAUS GEDIMINO TECHNIKOS UNIVERSITETAS

FUNDAMENTINIŲ MOKSLŲ FAKULTETAS


INFORMACINIŲ SISTEMŲ KATEDRA

INFORMACINĖS TECHNOLOGIJOS.
TIURINGO MAŠINA
Namų darbas Nr. 2

Atliko: PRIf-22/1 gr. studentas


Vardas Pavardė
Tikrino: lekt. Rasa Juodagalvytė

Vilnius, 2022
TURINYS

1. PIRMOJI UŽDUOTIS..................................................................................................................3
1.1. Tiuringo mašinos kodas.........................................................................................................3
1.2. Tiuringo mašinos būsenų aprašas..........................................................................................3
1.3. Tiuringo mašinos testavimas.................................................................................................4
2. ANTROJI UŽDUOTIS.................................................................................................................6
2.1. Tiuringo mašinos kodo analizavimas....................................................................................6
2.2. Tiuringo mašinos būsenų aprašymas.....................................................................................6

2
1. PIRMOJI UŽDUOTIS

Pradinius duomenis sudaro tekstas, kurio pradžioje ir pabaigoje yra neribotas skaičius
tarpų. Duomenų pradžia žymima [, o pabaiga – ].
Parašykite Tiuringo mašiną, kuri visus tekste esančius jungtukus „bei“ pakeistų jungtukais
„ir“. Jeigu raidžių derinys „bei“ yra žodžio dalis, tai šio derinio nekeistų.
Pavyzdžiui:
pradinė įvestis - [ beisbolas bei futbolas ],
rezultatas - [ beisbolas ir futbolas ].

1.1. Tiuringo mašinos kodas

0 [ * r 0
0 * * r 0
0 b * l 1
0 B * l 1

1 _ * r 1
1 * * r 2
1 b * r 2

2 * * r 0
2 e * r 3

3 i * r 3
3 * * r 0
3 _ * l 4

4 i _ l 4
4 e r l 4
4 b i r 0

0 ] * * halt

1.2. Tiuringo mašinos būsenų aprašas


Naudojamos 5 būsenos.
0 būsena. Mašina juda į dešinę ir skaito simbolius, jei randa ne b, juda toliau į dešinę; jei
randa b, keičia būseną į 1. Radusi pabaigos simbolį ], mašina baigia darbą.
1 būsena. Radusi b patikrina, ar prieš tai tarpas
2 būsena. Radusi b patikrina, kas yra po: jei bet koks simbolis – grįžta į 0 būseną, jei e –
keičia būseną į 3

3
3 būsena. Jei po e yra i ir tarpas, vadinasi tai yra jungtukas bei – keičia būseną į 4, jei po e
yra i, bet po to bet koks simbolis – grįžta į 0 būseną.
4 būsena. Keičia simbolius: e į r, o b į i ir grįžta į būseną 0

1.3. Tiuringo mašinos testavimas


Sukurtos Tiuringo mašinos testavimui naudojamas simuliatorius:
https://morphett.info/turing/turing.html
Testuojama su įvairiais pradiniais duomenimis.
1 testas. *[ beisbolai bei futbolas ]

2 testas. *[ beisbolai bei futbeilas bei ]

4
3 testas. *[ bei beisbolais bei abei ]

4 testas. ...

5
2. ANTROJI UŽDUOTIS

Pateikiama 2 užduotis.

2.1. Tiuringo mašinos kodo analizavimas


Pateikiama TM simbolių abėcėlė ir parašoma, ką mašina atlieka.
...
Parodomi kodo veiksmai su įvairiais pradiniais duomenimis, iliustruojant Tiuringo mašinos
simuliatoriaus vaizdais.
...

2.2. Tiuringo mašinos būsenų aprašymas


Pateikiamas išanalizuotų kodo būsenų ir komandų aprašymas (1 lentelė).

1 lentelė. Būsenų aprašymo pavyzdys.

Būsena Būsenos aprašymas


0 $ x r 1 Mašina juda į dešinę ir skaito simbolius,
0 x * r 0 jei randa simbolį $, pakeičia jį pirmu x bei keičia būseną į 1,
0 _ * l 4 jei randa ne $, juda toliau į dešinę, jei randa tarpą, keičia būseną į 4.

1 * * r 1 Juda į simbolių sekos pabaigą ir radusi tarpą jį keičia į antrą x.


1 _ x r 2

2 _ x 1 3 Tarpą keičia į trečią x ir keičia kryptį į „kairę“ bei keičia būseną į 3.

3 * * 1 3 Juda į kairę, grįžta į sekos pradžią, randa tarpą ir keičia būseną į 0.


3 _ * r 0

4 x $ l 4 Juda į kairę ir pakeičia visus x į $, tada mašina baigia darbą.


4 _ * * halt

You might also like