Академический Документы
Профессиональный Документы
Культура Документы
a) Pseudocode:
1. Check leftmost symbol. If reading :
❏ Δ , Accept
❏ 0, 1 or 2:
➔ Write Δ, Move tapehead to the rightmost
➔ Else, Reject
1
BCS2113 Computer Science Theory
b) State Diagram:
The state diagram shows only include the main part of the program, and exclude the
smiley or sad face and the students id :
2
BCS2113 Computer Science Theory
q2 _ _ l q5
q2 * * r q2
q3 _ _ l q6
q3 * * r q3
; State q4, q5, q6: check if the rightmost symbol matches the most recently read
left-hand symbol
q4 0 _ l q7
q4 _ _ * accept
q4 * * * reject
q5 1 _ l q7
q5 _ _ * accept
q5 * * * reject
q6 2 _ l q7
q6 _ _ * accept
q6 * * * reject
; accept zone
accept * : r accept2
accept2 * D r accept3
accept3 * _ r accept4
accept4 * B r accept5
accept5 * 0 r accept6
accept6 * 1 r accept7
accept7 * 1 r accept8
accept8 * 7 r accept9
accept9 * 0 r accept10
accept10 * 0 r accept11
accept11 * 0 r accept12
3
BCS2113 Computer Science Theory
accept12 * 5 r accept13
accept13 * _ r accept14
accept14 * B r accept15
accept15 * 0 r accept16
accept16 * 2 r accept17
accept17 * 1 r accept18
accept18 * 7 r accept19
accept19 * 0 r accept20
accept20 * 0 r accept21
accept21 * 2 r accept22
accept22 * 9 r accept23
accept23 * _ r accept24
accept24 * B r accept25
accept25 * 0 r accept26
accept26 * 1 r accept27
accept27 * 1 r accept28
accept28 * 7 r accept29
accept29 * 0 r accept30
accept30 * 0 r accept31
accept31 * 0 r accept32
accept32 * 9 r accept33
accept33 * _ * halt-accept
;reject zone
reject * * r reject
reject _ : r reject2
reject2 * ( r reject3
reject3 * _ r reject4
reject4 * B r reject5
reject5 * 0 r reject6
reject6 * 1 r reject7
reject7 * 1 r reject8
reject8 * 7 r reject9
reject9 * 0 r reject10
reject10 * 0 r reject11
reject11 * 0 r reject12
reject12 * 5 r reject13
4
BCS2113 Computer Science Theory
reject13 * _ r reject14
reject14 * B r reject15
reject15 * 0 r reject16
reject16 * 1 r reject17
reject17 * 2 r reject18
reject18 * 7 r reject19
reject19 * 0 r reject20
reject20 * 0 r reject21
reject21 * 2 r reject22
reject22 * 9 r reject23
reject23 * _ r reject24
reject24 * B r reject25
reject25 * 0 r reject26
reject26 * 1 r reject27
reject27 * 1 r reject28
reject28 * 7 r reject29
reject29 * 0 r reject30
reject30 * 0 r reject31
reject31 * 0 r reject32
reject32 * 9 r reject33
reject33 * _ * halt-reject
5
BCS2113 Computer Science Theory
Task 2
Create a Turing machine M2 that decides the language L2 = {1n22n33n | n > 0}.
So, ε , 122333, 112222333333, 111222222333333333 are all in L2, while 321, 321313,
1122233333 are all not in L2. Similar to Turing Machine M1, depending on whether it
accepts or rejects a string, M2 will write a happy face or a bad face, followed by the sort list
of your student IDs.
a) Pseudocode:
1. Read leftmost symbol
❏ If empty, Accept
❏ If 1, change to X, and move the tapehead to right
❏ If y, move to the right, state F8
❏ Else, Reject
b) State diagram:
The state diagram shows only include the main part of the program, and exclude the
smiley or sad face and the students id :
7
BCS2113 Computer Science Theory
c) Listing of the program
F7 * * l F7
F7 x * r 0
F7 1 * l F7
F7 2 * l F7
F7 3 * l F7
F7 y * l F7
8
BCS2113 Computer Science Theory
F7 z * l F7
F7 _ * r reject
;check x, y and z
F8 y * r F8
F8 z * r F8
F8 _ * l accept
* * * * reject
; accept zone
accept * : r accept2
accept2 * D r accept3
accept3 * _ r accept4
accept4 * B r accept5
accept5 * 0 r accept6
accept6 * 1 r accept7
accept7 * 1 r accept8
accept8 * 7 r accept9
accept9 * 0 r accept10
accept10 * 0 r accept11
accept11 * 0 r accept12
accept12 * 5 r accept13
accept13 * _ r accept14
accept14 * B r accept15
accept15 * 0 r accept16
accept16 * 2 r accept17
accept17 * 1 r accept18
accept18 * 7 r accept19
accept19 * 0 r accept20
accept20 * 0 r accept21
accept21 * 2 r accept22
accept22 * 9 r accept23
accept23 * _ r accept24
accept24 * B r accept25
accept25 * 0 r accept26
accept26 * 1 r accept27
accept27 * 1 r accept28
accept28 * 7 r accept29
accept29 * 0 r accept30
accept30 * 0 r accept31
accept31 * 0 r accept32
accept32 * 9 r accept33
9
BCS2113 Computer Science Theory
accept33 * _ * halt-accept
;reject zone
reject * * r reject
reject _ : r reject2
reject2 * ( r reject3
reject3 * _ r reject4
reject4 * B r reject5
reject5 * 0 r reject6
reject6 * 1 r reject7
reject7 * 1 r reject8
reject8 * 7 r reject9
reject9 * 0 r reject10
reject10 * 0 r reject11
reject11 * 0 r reject12
reject12 * 5 r reject13
reject13 * _ r reject14
reject14 * B r reject15
reject15 * 0 r reject16
reject16 * 1 r reject17
reject17 * 2 r reject18
reject18 * 7 r reject19
reject19 * 0 r reject20
reject20 * 0 r reject21
reject21 * 2 r reject22
reject22 * 9 r reject23
reject23 * _ r reject24
reject24 * B r reject25
reject25 * 0 r reject26
reject26 * 1 r reject27
reject27 * 1 r reject28
reject28 * 7 r reject29
reject29 * 0 r reject30
reject30 * 0 r reject31
reject31 * 0 r reject32
reject32 * 9 r reject33
reject33 * _ * halt-reject
10
BCS2113 Computer Science Theory
Task 3
Create a Turing machine M3 that decides the language L3 = {w-w | w ∈ {a, b, c, d}∗}.
(This language is similar to the “Kata Ganda” in Malay language, such as “bola-bola”,
“rajin-rajin”. Note also that w can be , so string ‘-’ should also be accepted.) So, -, a-a,
ab-ab, cdab-cdab are all in L3, while ad-b, b-aaddcbc, abcd-dcba are all not in L3. Similar
to Turing Machine M1, depending on whether it accepts or rejects a string, M3 will write a
happy face or a bad face, followed by the sort list of your student IDs.
a) Pseudocode:
1. read the leftmost symbol
a. If read string ‘a,b,c,d,-’, replace with ‘Δ’
b. Move to the next string and ignore it until ‘-’
2. After reading ‘-’
a. Check the string if it same with the ‘Δ’ in the left
b. Replace it with ‘X’
c. Else, Reject
3. Keep moving to the left until find ‘Δ’
4. Then, repeat step 1 and 5
5. Final string will be ‘-’ in the left, replace it with ‘Δ’
6. Keep moving to the right and replace all strings with ‘X’ until find ‘’ and
ACCEPT.
7. Print the :D <ID><ID><ID><ID><ID>, HALT-ACCEPT
8. ELSE, Print :( <ID> <ID> <ID> <ID> <ID>, HALT-REJECT
11
BCS2113 Computer Science Theory
b) State Diagram:
The state diagram shows only include the main part of the program, and exclude the
smiley or sad face and the students id :
12
BCS2113 Computer Science Theory
; State q1,q2,q4,q6,q8: check a or b or c or d or empty string and replace it with blank symbol
q1 * * r q1
q4 * * r q4
q6 * * r q6
q8 * * r q8
q2 X * r q2
q2 a X l q3
q5 X * r q5
q5 b X l q3
q7 X * r q7
q7 c X l q3
q9 X * r q9
q9 d X l q3
;q9 * * * reject3
;state q3: move to the left to the blank symbol and keep moving to the next string.
;then, move to right and check if it same with the left string(now blank symbol), if match
replace it with X. Else Reject
q3 * * l q3
q3 _ _ r 0
R1 c _ l reject
R1 a _ l reject
R1 b _ l reject
R1 d _ l reject
;
q10 X _ r q10
q10 _ * l q11
q10 * * r RE
q11 _ _ l accept
* * * * reject
AC * : r AC2
13
BCS2113 Computer Science Theory
AC2 * ) * halt-accept
RE2 * ( * halt-reject
; accept zone
accept * : r accept2
accept2 * D r accept3
accept3 * _ r accept4
accept4 * B r accept5
accept5 * 0 r accept6
accept6 * 1 r accept7
accept7 * 1 r accept8
accept8 * 7 r accept9
accept9 * 0 r accept10
accept10 * 0 r accept11
accept11 * 0 r accept12
accept12 * 5 r accept13
accept13 * _ r accept14
accept14 * B r accept15
accept15 * 0 r accept16
accept16 * 2 r accept17
accept17 * 1 r accept18
accept18 * 7 r accept19
accept19 * 0 r accept20
accept20 * 0 r accept21
accept21 * 2 r accept22
accept22 * 9 r accept23
accept23 * _ r accept24
accept24 * B r accept25
accept25 * 0 r accept26
accept26 * 1 r accept27
accept27 * 1 r accept28
accept28 * 7 r accept29
accept29 * 0 r accept30
accept30 * 0 r accept31
accept31 * 0 r accept32
accept32 * 9 r accept33
accept33 * _ * halt-accept
;reject zone
reject * * r reject
reject _ : r reject2
reject2 * ( r reject3
14
BCS2113 Computer Science Theory
reject3 * _ r reject4
reject4 * B r reject5
reject5 * 0 r reject6
reject6 * 1 r reject7
reject7 * 1 r reject8
reject8 * 7 r reject9
reject9 * 0 r reject10
reject10 * 0 r reject11
reject11 * 0 r reject12
reject12 * 5 r reject13
reject13 * _ r reject14
reject14 * B r reject15
reject15 * 0 r reject16
reject16 * 1 r reject17
reject17 * 2 r reject18
reject18 * 7 r reject19
reject19 * 0 r reject20
reject20 * 0 r reject21
reject21 * 2 r reject22
reject22 * 9 r reject23
reject23 * _ r reject24
reject24 * B r reject25
reject25 * 0 r reject26
reject26 * 1 r reject27
reject27 * 1 r reject28
reject28 * 7 r reject29
reject29 * 0 r reject30
reject30 * 0 r reject31
reject31 * 0 r reject32
reject32 * 9 r reject33
reject33 * _ * halt-reject
15
BCS2113 Computer Science Theory
Task 4
Create a Turing machine M4 that decides the language L4 = {w | w ∈ {x, y, z}∗} i.e., a
string that consists of only x, y, and z. Moreover, M4 also acts as a transducer. If it accepts
the string, it will remove all of the zs from the string, and shift the xs and ys to the left. You
may use extra symbols in your solution, but your machine should halt with only some xs,
some ys, blanks (∆) and student IDs on the tape. Similar to Turing Machine M1, depending
on whether it accepts or rejects a string, it will write a happy face or a bad face, followed
by the sort list of your student IDs.
a) Pseudocode:
➔ When read z:
● Delete it
● Move tape head to right
● Repeat step 2 until end of string
; check for z
0x*r0
0y*r0
0z_rS
0 _ * * accept
0 * * r reject
17
BCS2113 Computer Science Theory
S x _ l Sx
S z _ l Sz
S * * r reject
; accept zone
accept _ _ r accept0
accept0 * * r accept0
accept0 _ _ r accept1
accept1 * : r accept2
accept2 * D r accept3
accept3 * _ r accept4
accept4 * B r accept5
accept5 * 0 r accept6
accept6 * 1 r accept7
accept7 * 1 r accept8
accept8 * 7 r accept9
accept9 * 0 r accept10
accept10 * 0 r accept11
accept11 * 0 r accept12
accept12 * 5 r accept13
18
BCS2113 Computer Science Theory
accept13 * _ r accept14
accept14 * B r accept15
accept15 * 0 r accept16
accept16 * 2 r accept17
accept17 * 1 r accept18
accept18 * 7 r accept19
accept19 * 0 r accept20
accept20 * 0 r accept21
accept21 * 2 r accept22
accept22 * 9 r accept23
accept23 * _ r accept24
accept24 * B r accept25
accept25 * 0 r accept26
accept26 * 1 r accept27
accept27 * 1 r accept28
accept28 * 7 r accept29
accept29 * 0 r accept30
accept30 * 0 r accept31
accept31 * 0 r accept32
accept32 * 9 r accept33
accept33 * _ * halt-accept
;reject zone
reject * * r reject
reject _ : r reject2
reject2 * ( r reject3
reject3 * _ r reject4
reject4 * B r reject5
reject5 * 0 r reject6
reject6 * 1 r reject7
reject7 * 1 r reject8
reject8 * 7 r reject9
reject9 * 0 r reject10
reject10 * 0 r reject11
reject11 * 0 r reject12
reject12 * 5 r reject13
reject13 * _ r reject14
reject14 * B r reject15
reject15 * 0 r reject16
reject16 * 1 r reject17
reject17 * 2 r reject18
reject18 * 7 r reject19
reject19 * 0 r reject20
19
BCS2113 Computer Science Theory
reject20 * 0 r reject21
reject21 * 2 r reject22
reject22 * 9 r reject23
reject23 * _ r reject24
reject24 * B r reject25
reject25 * 0 r reject26
reject26 * 1 r reject27
reject27 * 1 r reject28
reject28 * 7 r reject29
reject29 * 0 r reject30
reject30 * 0 r reject31
reject31 * 0 r reject32
reject32 * 9 r reject33
reject33 * _ * halt-reject
20
BCS2113 Computer Science Theory
21
BCS2113 Computer Science Theory
22
BCS2113 Computer Science Theory