Anda di halaman 1dari 20

TUGAS 2

 10 SOAL DAN JAWABAN ESSAY PUSH DOWN AUTOMATA


 10 SOAL DAN JAWABAN ESSAY MESIN TURING

NAMA :KHAMSAH ANUGRAH PARMA NASUTION

KELAS :TI S1901

NPM :19110158

MATKUL : TEORI BAHASA & AUTOMATA

DOSEN :SONY BAHAGIA SINAGA,M.KOM

UNIVERSITY :UNIVERSITAS BUDI DARMA


10 SOAL DAN JAWABAN ESSAY PUSH DOWN AUTOMATA
1. Jika diketahui sebuah PDA M = (Q, Σ, Γ, q0 , Z0 , δ, A) merupakan sebuah PDA deterministik
untuk pengujian palindrome memiliki tuple sebagai berikut. Q = {q0 , q1 , q2 }, A = {q2 }, Σ = {a,
b, c}, Γ = {a, b, Z0 }, dan fungsi transisi δ terdefinisi melalui tabel berikut:

Pada tabel transisi tersebut terlihat bahwa pada stata q0 PDA akan melakukan PUSH jika mendapat
input a atau b dan melakukan transisi stata ke stata q1 jika mendapat input c. Pada stata q1 PDA akan
melakukan POP.

Pengujian string palindrome abcba. abcba : (q0, abcba, Z0 )


⇒ (q0 , bcba, aZ0 ) (1)

⇒ (q0 , cba, baZ0 ) (4)

⇒ (q1 , ba, baZ0 ) (9)

⇒ (q1 , a, aZ0 ) (11)

⇒ (q1 , ε, Z0 ) (10)

⇒ (q2 , ε, Z0 ) (12)
2. Jika diketahui sebuah PDA M = (Q, Σ, Γ, q0 , Z0 , δ, A) merupakan sebuah PDA deterministik
untuk pengujian palindrome memiliki tuple sebagai berikut. Q = {q0 , q1 , q2 }, A = {q2 }, Σ = {a,
b}, Γ = {a, b, Z0 }, dan fungsi transisi δ terdefinisi melalui tabel berikut:

Pada tabel transisi tersebut terlihat bahwa pada stata q0 PDA akan melakukan PUSH jika mendapat
input a atau b dan melakukan transisi stata ke stata q1 jika mendapat input ε. Pada stata q1 PDA akan
melakukan POP.

Pengujian string palindrome baab. (q0 , baab, Z0 )


⇒ (q0 , aab, bZ0 ) (2 kiri)

⇒ (q0 , ab, abZ0 ) (5 kiri)

⇒ (q1 , ab, abZ0 ) (3 kanan)

⇒ (q1 , b, bZ0 ) (11)

⇒ (q1 , ε, Z0 ) (10)

⇒ (q2 , ε, Z0 ) (12)
3. Diketahui grammar G 1 = {I → H I H IA, H → a b c … z, A → 0 1 2 … 9} dengan I adalah simbol
awal. Berikut ini kedua cara analisa sintaks untuk kalimat x23b.

Cara 1 (derivasi)

⇒ IH

IAH

IAAH

HAAH

xAAH

x2AH

x23H

x23b

Cara 2 (parsing)

Sebuah kalimat dapat saja mempunyai lebih dari satu pohon.


4. Misalkan sebuah CFG memiliki aturan produksi:
S aBc | Bac
Bb|c
Maka dapat dibuat PDA-nya:
Q= {q1,q2,q3}
?= {a,b,c}
+= {S,B,a,b,c,Z}
S=q1
Z= Z
F= {q3}
Fungsi transisinya:
d (q1,£,Z) = {{q2,SZ)}
d (q2,£,S) = {{q2,aBc),(q2,Bac)}
d (q2,£,B) = {{q2,b),(q2,c)}
d (q2,a,a) = d {{q2,b,b)= d (q2,c,c) = {{q2, £)}
d (q2,£,Z) = {{q3,Z)}
berdasrkan aturan produksi, tata bahasa tersebut dapat menurunkan string ‘acc’:
S => aBc => acc

Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai berikut:
Z

1. konfigurasi awal mesin : state q1, tanpa menerima input (£), top of stack Z
fungsi transisi : d (q1,£,Z) = {{q2,SZ)}
Konfigurasi mesin menjadi: state q2, S di push
S
Z

2. input : tanpa menerima input (£)


fungsi transisi : d (q2,£,S) = {{q2,aBc) }
konfigurasi mesin menjadi : state q2, pop top of stack, push ‘aBc’
a
B
c
Z

3. input : menerima input ‘a’


fungsi transisi : d (q2,a,a) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
B
c
Z
4. input : tanpa menerima input (£)
fungsi transisi : d (q2, £,B) = {{q2, c) }
konfigurasi mesin menjadi : state q2, pop top of stack, push ‘c’
c
c
Z

5. input : menerima input ‘c’


fungsi transisi : d (q2,c,c) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
c
Z

6. input : menerima input ‘c’


fungsi transisi : d (q2,c,c) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
Z

7. input : tanpa menerima input (£)


fungsi transisi : d (q2, £,Z) = {{q3, Z) }
konfigurasi mesin menjadi : state q3
5. Q ={ q1, q2} ∑ ={a,b} Г = {A, B, Z} S = q1 F ={ q2} Z = Z Apakah string “abba”
diterima?
Δ( q1, ε, z) = {( q2, z)}
Δ( q1, a, z) = {( q1, Az)}
Δ( q1, b, z) = {( q1, Bz)}
Δ( q1, a, A) = {( q1, AA)}
Δ( q1, b, A) = {( q1, ε)}
Δ( q1, a, B) = {( q1, ε)}
Δ( q1, b, B) = {( q1, BB)}

State awal q1, Top Stack Z, Input String “a” Δ( q1, a, z) = {( q1, Az)} push A 2. Input string
“b” dengan tumpukan A Δ( q1, b, A) = {( q1, ε)} pop A 3. Input string “b” dengan tumpukan Z
Δ( q1, b, z) = {( q1, Bz)} push B 4. Input string “a” dengan tumpukan B Δ( q1, a, B) = {( q1,
ε)} pop B 5. Semua input telah selesai dibaca Δ( q1, ε, z) = {( q2, z)} Kesimpullan diterima :
berakihir di state akhir {( q2, z)}Z B Z Z

6. D → aDA | bDb | c
Dapatkah menerima string “aca”
Dapat dikontruksikan PDA- nya :
Terdapat 3 produksi :
D → aDA
D → bDb
D→c
Sehingga ada 3 state, maka :
Q = {q0, q1, q2}
S = q0
F= {q3 }
∑ = {a, b, c}
Г = { D, a, b, c, Z}
Fungsi transisi Г = { D, a, b, c, Z} :
Transisi D :
D → aDA | bDb | c
Δ( q0, ε, z) = {( q1, Dz)}
Δ( q1, ε, D) = {( q1, aDa)}, {( q1, bDb)}, {( q1, c)}
3. Transisi a, b, cΔ( q1, a, a) =
Δ( q1, b, b)=Δ( q1, c, c) = {( q1, ε )}
4. Transisi ZΔ( q1, ε, z) = {( q2, z)}

7. Diketahui Tabel Transisi Berikut Ini :

Pertanyaan :

Buatkan Tuplenya

Telusuri String Yang Diterima Dan Ditolak Masing-Masing 2 Saja dan gambarkan konfigurasi
Stacknya.

Pertanyaan :

Dari data disamping

1. Buatkan Tuplenya
2. Buatkan diagram transisinya
3. Buatkan Tabel transisinya
4. Carilah masing-masing 2
buah string yang diterima dan
ditolak. Gambarkan pula
konfigurasi stacknya
Diketahui tata bahasa bebas konteks dan PDA berikut ini :

1. Terjemahkan cara
membaca fungsi transisi
yang ada pada soal
tersebut
2. Gambarkan Konfigurasi
Stacknya
3. Telusuri 1 buah string
yang ditolak berikut
konfigurasi stacknya.

Jawaban nomor 7. Tuple :

Q = {q0,q1,q2}
= {a,b,c}
= {A.B.Z0}
S = q1
F = q2
8. Diketahui Tabel Transisi diatas :

Pertanyaan :

Tuliskan Cara Penulisan Fungsi Transisinya

8. Fungsi Transisi :

(q0,a,Z0) = {(q0,AZ0)}
(q0,b,Z0) = {(q0,BZ0)}
(q0,c,Z0) = {(q1,Z0)}
(q0,a,A) = {(q0,AA)}
(q0,b,A) = {(q0,BA)}
(q0,c,A) = {(q1,A)}
q0,a,B) = {(q0,AB)}
( (q0,b,B) = {(q0,BB)}
(q0,c,B) = {(q1,B)}
(q1, ,Z0)= {(q2,Z0)}
(q1,a,A) = {(q1, )}
(q1,b,B) = {(q1, )}

9. Diketahui Tabel Transisi diatas :

Pertanyaan :

Gambarkan Diagram Statenya

Gambar Diagram State

b.Z0/BZ0
a.A/
a.Z0/AZ0 a.A/AA

c.Z0/Z0
c.A/A
c.B/B .Z0/Z0
q0 q1 q2
a.B/AB b.A/BA

b.B/BB b.B/

10. Diketahui Tabel Transisi diatas :

Pertanyaan :Telusuri String Yang Diterima Dan Ditolak Masing-Masing 2 Saja dan gambarkan
konfigurasi Stacknya.

String yang ditolak :

“AA”
(q0,a,Z0) = (q0,AZ0)

(q0,a,A) = (q0,AA)

“BA”
(q0,b,A ) = (q0,BA)

(q0,a,B) = (q0,AB)

String yang diterima :

“C ”

(qo,c,Z0) = (q1,Z0)

(q1, ,Z0) = (q2,Z0)

10 SOAL DAN JAWABAN ESSAY MESIN TURING


1. Misalkan tata bahasa G memiliki aturan produksi sbb,

S→AcaBD D→Da

Ca→aaC AD→AC

CB→DB E→Ea

CB→E E→ ε

aaaa#S# ⇒aaaa#ACaB#⇒aaaa#AaaCB# ⇒
aaaa#AaaDB#⇒aaaa#AaDaB# ⇒aaaa#ADaaB#⇒
aaaa#ACaaB#⇒aaaa#AaaCaB# ⇒aaaa#AaaaaCB#⇒
aaaa#AaaaaE#⇒aaaa#AaaaEa# ⇒aaaa#AaaEaa#⇒
aaaa#AaEaaa#⇒aaaa#AEaaaa#⇒aaaa#aaaa#
2. Contoh: Q = {a, b, c, d, e}, Γ= {0, 1, X, Y, B}, ∑= {0, 1, B}
q0= a, F= {e}, dan fungsi transisiδdinyatakan oleh tabelberikut:

maka komputasi string ‘0011’ oleh mesin Turing M


dinyatakan dalam rangkaian deskripsi sesaat berikut:

a0011 ├Xb011├X0b11├Xc0Y1├cX0Y1├
Xa0Y1 ├XXbY1 ├XXYa1 ├XXcYY├XcXYY├
XXaYY├XXYdY├XXYYd├XXYYBe

3. Mesin Turing berikut menghitungan fungsi   , yang dinamakan monus


atau proper substraction.  Fungsi ini didefinisikan oleh  m   n = max(m – n, 0).  Bahwa,
m   n = m – n jika m ³ n dan 0 jika m < n. 
Mesin Turing yang melakukan operasi ini adalah

M = ({q0, q1, … , q6}, {0, 1}, {0, 1, B}, d, q0, B)

Aturan untuk fungsi transisi d:

4. Rancanglah sebuah mesin turing pengenal bahasa L = {a b | n ³ 0).

L tersebut terdiri dari 2 kelompok kalimat yaitu e dan non-e. Kelompok non-e adalah : ab, aabb,
aaabbb, dan seterusnya. Untuk dapat menerima kalimat e TM harus mempunyai edge dari S ke
H dengan bobot (e ,e , R). TM menerima kalimat-kalimat : ab, aabb, aaabbb, dan seterusnya,
dengan algoritma sebagai berikut :
1.      Mulai dari S, head membaca simbol a.
2.      Head membaca simbol a. Tandai simbol a yang sudah dibaca tersebut, head bergerak ke kanan
mencari simbol b pasangannya.
3.      Head membaca simbol b. Tandai simbol b yang sudah dibaca tersebut, head bergerak ke kiri
mencari simbol a baru yang belum dibaca/ditandai.
4.      Ulangi langkah 2 dan 3.
5.      Head sampai ke H hanya jika semua simbol a dan simbol b dalam kalimat a b  selesai dibaca.
Algoritma di atas lebih diperinci lagi sebagai berikut :
1.      Mulai dari S, head membaca simbol a.
2.      Overwrite a tersebut dengan suatu simbol (misalkan A) untuk menandakan bahwa a tersebut
sudah dibaca. Selanjutnya head harus bergerak ke kanan untuk mencari sebuah b sebagai
pasangan a yang sudah dibaca tersebut.
i)        Jika yang ditemukan adalah  simbol a maka a tersebut harus dilewati (tidak boleh dioverwrite),
dengan kata lain a dioverwrite dengan a juga dan head bergerak ke kanan.
ii)      Jika TM pernah membaca simbol b ada kemungkinan ditemukan simbol B. Simbol B tersebut
harus dilewati (tidak boleh dioverwrite), artinya B diover-write dengan  B juga dan head
bergerak ke kanan.
3.      Head membaca simbol b, maka b tersebut harus dioverwrite dengan simbol lain (misalnya B)
untuk menandakan bahwa b tersebut (sebagai pasangan dari a) telah dibaca, dan head bergerak
ke kiri untuk mencari simbol A.
i)        Jika ditemukan B maka B tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain
B dioverwrite dengan B juga dan head bergerak ke kiri.
ii)      Jika ditemukan a maka a tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain
a dioverwrite dengan  a juga dan head bergerak ke kiri.
4.      Head membaca simbol A, maka A tersebut harus dilewati (tidak boleh dioverwrite), dengan
kata lain A dioverwrite dengan A juga dan head bergerak ke kanan.
5.      Head membaca simbol a, ulangi langkah 2 dan 3.
6.      (Setelah langkah 3) head membaca simbol A, maka A tersebut harus dilewati (tidak boleh
dioverwrite), dengan kata lain A dioverwrite dengan A juga dan head bergerak ke kanan.
7.      Head membaca simbol B, maka B tersebut harus dilewati (tidak boleh dioverwrite), dengan
kata lain B dioverwrite dengan A juga dan head bergerak ke kanan.
8.      Head membaca simbol e, maka e dioverwrite dengan e dan head bergerak ke kanan menuju
stata H.

Skema graf Mesin Turing di atas adalah :

5. Lakukan tracing dengan mesin turing di atas untuk kalimat-kalimat : aabb, aab. :

i)        (S,aabb)   (1,Aabb)  (1,Aabb)  (2,AaBb)  (3,AaBb)  (S,AaBb)
                          (1,AABb)  (1,AABb)  (2,AABB)  (2,AABB)  (4,AABB)
                          (4,AABB)  (4,AABB)  (H,AABB)

ii)      (S,aab)   (1,Aab)  (1,Aab)  (2,AaB)  (3,AaB)  (S,AaB) (1,AAB)
 1,AAb) crash, karena dari node 1 tidak ada edge dengan bobot 
      komponen pertamanya hampa ()

6. Misal konfigurasi mesin Turing :


Q = {q0,q1,q2,q3,q4}
Σ = {0,1}
Γ = {0,1,X,Y, b)
F = {q4}
S = {q0}
Fungsi transisinya dalam bentuk tabel sebagai berikut :
δ
0
1
,X,R)
(q2,Y,L)
-
q3
-
-
-
(q3,Y,R)
(q4, b ,L)
q4
-
-
-
-
1. Misal pita yang akan dibaca : ‘0011’
0
0
1
1
state q
2.
X
0
1
1
state q1
3.
X
0
1
1
state q1
4.
X
0
Y
1
state q2
5.
X
0
Y
1
state q2
6.
X
0
Y
1
state q0
7.
X
X
Y
1
state q1
8.
X
X
Y
1
state q1
9.
X
X
Y
Y
state q2
10.
X
X
Y
Y
state q2
11.
X
X
Y
Y
state q0
12.
X
X
Y
Y
state q3
13.
X
X
Y
Y

state q3
14.
X
X
Y
Y
b
state q4
Tidak ada transisi lagi dari state q4, mesin Turing berhenti dan karena state q4 termasuk state
akhir, maka input tersebut diterima

7. Misal terdapat mesin Turing :


Q = {q1,q2}
Σ = {a,b}
Γ = {a,b, b)
F = {q2}
S = {q1}

Fungsi transisinya :Pergerakan mesin Turing : R = right(kanan), L = left (kiri)


δ (q1,a) = (q1,a,R) ��pada state q1, head menunjuk karakter ‘a’ pada pita, menjadi state q1,
head
bergerak ke kanan
δ (q1,b) = (q1,a,R) ��pada state q1, head menunjuk karakter ‘b’ pada pita, menjadi state q1,
head
menulis karakter ‘a’ lalu bergerak ke kanan
δ (q1, b ) = (q2, b ,L) ��
pada state q1, head menunjuk karakter ‘ b ’ pada pita menjadi state
q2,
head bergerak ke kiri
Perhatian : pada mesin Turing
δ (q,x) = (q,y,G)
bila x <> y, maka head akan menulis simbol y (menimpa x) sebelum bergerak sesuai G
(kiri / kanan)
Jadi berdasarkan fungsi transisi diatas, maka mesin Turing beroperasi seperti berikut :
Head ditunjukkan dengan

Misal pita yang akan dibaca : ‘abbaa’


a
b
b
a
a
state q1
Fungsi transisi δ (q1,a) = (q1,a,R) menyebabkan head bergerak ke kanan
2.
a
b
b
a
a
state q1
Fungsi transisi δ (q1,b) = (q1,a,R) menyebabkan head menulis ‘a’ lalu bergerak ke kanan
3.
a
a
b
a
a
state q1
Fungsi transisi δ (q1,b) = (q1,a,R) menyebabkan head menulis ‘a’ lalu bergerak ke kanan
4.
a
a
a
a
a
state q1
Fungsi transisi δ (q1,a) = (q1,a,R) menyebabkan head bergerak ke kanan
5.
a
a
a
a
a
state q1
Fungsi transisi δ (q1,a) = (q1,a,R) menyebabkan head bergerak ke kanan
6.
a
a
a
a
a
b
state q1
Head menunjuk b, karena bagian pita yang belum ditulisi dianggap berisi b
Fungsi transisi δ (q1, b ) = (q2, b ,L) menyebabkan head bergerak ke kiri
7.
a
a
a
a
a
b
state q2
Tidak ada transisi lagi dari state q2, mesin Turing akan berhenti (halt state)
Karena state q2 termasuk state akhir berarti input tersebut diterima

8. (a a*) ( є | a) = a*
 
Jawab :
 Dengan diketahui a* =
ε| a| aa| aaa| aaaa| …..,
 Dan (a a*)
= a(ε| a| aa| aaa|
 
aaaa| …..)
 
(ԑ|a)
 = (
ε a| aa| aaa|aaaa|…) (ԑ|a)
 
= (a|aa|aaa|aaaa|…) (ԑ|a)
 = (
ε| a| aa| aaa| aaaa| …..) =>a*
 Maka terbukti,
(a a*) (ԑ|a) = a*

9. | b*)* = (a | b)*
Jawab :Diketahui (a|b)* =
ε 
| a| b| aa| bb| aaa| bbb| ab| abb| aab| ba ....
 Dengan b* =
ε| b| bb| bbb| bbbb| …..
 
(a|b*)= (a| ε| b| bb| bbb| bbbb| …..)
 Maka (a|b*)* =
(a| ε| b| bb| bbb| bbbb| …..)*
 
=
ε 
| a| b| aa| bb| aaa| bbb| ab| abb| aab| ba ....
 
Maka terbukti, (a|b*)* = (a|b)*

Anda mungkin juga menyukai