14.
Download
1 / 50

14. PUSH-DOWN AUTOMATA - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

14. PUSH-DOWN AUTOMATA. 14.1 Push Down Automata (PDA) Merupakan mesin otomata dari bahasa bebas konteks . Perbedaan PDA dengan Otomata Hingga terletak pada kemampuan memori . Otomata hingga mempunyai memori yang terbatas , sedangkan PDA mempunyai memori yang tidak terbatas ,

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '14. PUSH-DOWN AUTOMATA' - dinesh


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
14 push down automata

14. PUSH-DOWN AUTOMATA


14 push down automata

14.1 Push Down Automata (PDA)

Merupakanmesinotomatadaribahasabebas

konteks.

Perbedaan PDA denganOtomataHinggaterletak

padakemampuanmemori. Otomatahingga

mempunyaimemori yang terbatas, sedangkan

PDA mempunyaimemori yang tidakterbatas,

berupastack.

Stackadalahkumpulandarielemen-elemensejenis

dengansifatpenambahanelemendanpengambilan

elemenmelaluisuatutempat yang disebut

top of stack.


14 push down automata

Aturanpengisianataupengeluaranelemenstack

menganutsistem LIFO (Last In First Out).

Pengambilanelemendari stack dikenaldenganistilah

pop. Sedangkanmemasukkanelemenkedalam stack

dikenaldenganistilahpush.

Contohsebuahstack

Top-stack 

A

D

D

E

E

Biladilakukanoperasipop, makakondisi stack menjadi:

Top-stack 


14 push down automata

Biladilakukanoperasipush B, makakondisistack

menjadi:

B

Top-stack 

D

E


14 push down automata

  • Sebuah PDA dinyatakandalam 7 tupel:

  • M = (Q, , , , S, F, Z)

  • Q = himpunanstate

  • = himpunansimbol input

  • = simbol-simboltumpukan / stack

  • = fungsitransisi

  • S = stateawal, S  Q

  • F = himpunanfinal state, F  Q

  • Z = simbolawaltumpukan / top stack, Z  

  • Dari komponendiatasdapatdisimpulkanbahwa:

  • - DefinisiuntukQ, , S, F samadengan yang adapada

  • otomatahingga.

  • Tupelbaruadalah , Z yang berhubungandenganstack.

  •  memilikikemiripandengan  padaotomatahingga

  • denganbeberapaperbedaan.


14 push down automata

PDA dapatdianggapsebagaiotomatahingga yang

dilengkapidenganstack.

Sebuah PDA yang menerimainput, selainbisa

berpindahstatejugabisamelakukanoperasipada

stack.

Kondisiataukonfigurasi PDA padasuatusaat

dinyatakandenganstatedanstack.

Jenistransisipada PDA;

Membacasimbolinput

Tanpamembacasimbolinput.


14 push down automata

Membacasimbol input

Pada PDA yang membacasimbol input, terdapat

sejumlahpilihan yang mungkin, bergantungpada

simbolinput, simbolpadatop-stack, danstate.

Setiappilihanterdiridaristateberikutnyadan

simbol-simbol (bisasatu, beberapa, ataukosong)

untukmenggantisimbolpadatop-stack.

Penggantiansimbolpadatop-stackbisaberupapush,

untuksatuataubeberapasimbol, atauberupapop

untuksimbolkosong.

Setelahmembuatpilihan, kemudian PDA membaca

simbolinputberikutnya.


14 push down automata

2. Tanpamembacasimbol input

Jenistransisitanpamembaca input adalahtransisi

yang dilakukantanpamembacainputatau.

Transisiinimemungkinkan PDA memanipulasiisi

stackatauberpindahstatetanpamembacainput.

Jenis-jenis PDA:

PDA null stack, yaitu PDA yang melakukan

penerimaaninputdenganstackkosong.

2. PDA final state,yaitu PDA yang melakukan

penerimaaninput yang pilihantransisinya

menyebabkan PDA mencapaifinal state.


14 push down automata

  • Contoh 14.1

  • Sebuah PDA

  • Q = {q1, q2}

  • = {a, b}

  • = {A, B, Z}

  • S = q1

  • Z = Z

  • F = {q2}

PDA tersebutmemilikifungsitransisi:

(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)}


14 push down automata

Kita bisamembacafungsi

transisitsb. sebagaiberikut.

(q1, a, Z) = {(q1, AZ)}

Mesindengankonfigurasi:

State q1dantop-stack Z

membacainput ‘a’

Fungsitransisi:

(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)}

Z

Konfigurasimenjadi:

State q1 , push A kestack,

A menjaditop-stack

A

Z


14 push down automata

(q1, b, A) = {(q1, )}

Mesindengankonfigurasi:

State q1dantop-stack A

membacainput ‘b’

Fungsitransisi:

(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)}

A

Z

Konfigurasimenjadi:

State q1 , pop A daristack,

elemendibawah A

menjaditop-stack

Z


14 push down automata

(q1, , Z) = {(q2, Z)}

Mesindengankonfigurasi:

State q1dantop-stack Z

tanpamembacainput.

Fungsitransisi:

(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)}

Z

Z

Konfigurasimenjadi:

State q2, stacktidakberubah


14 push down automata

  • Contoh 14.2

  • Sebuah PDA

  • Q = {q1, q2}

  • = {a, b}

  • = {A, B, Z}

  • S = q1

  • Z = Z

  • F = {q2}

PDA tersebutmemilikifungsitransisi:

(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)}

Tentukanapakah PDA diatasdapatmenerima

string ‘abba’

Penyelesaian:


14 push down automata

Fungsitransisi:

(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)}

Konfigurasiawalmesin:

state q1 , top-stack Z,

membaca input ‘a’.

Fungsitransisinya:

(q1, a, Z) = {(q1, AZ)}

Konfigurasimesinmenjadi:

state q1danpush A

Z

A

Z


14 push down automata

2. Membacainput ‘b’.

Fungsitransisinya:

(q1, b, A) = {(q1, )}

Konfigurasimesinmenjadi:

state q1dantop-stackdipop

Fungsitransisi:

(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)}

Z

3. Membacainput ‘b’.

Fungsitransisinya:

(q1, b, Z) = {(q1, BZ)}

Konfigurasimesinmenjadi:

state q1dan B dipush

B

Z


14 push down automata

4. Membacainput ‘a’.

Fungsitransisinya:

(q1, a, B) = {(q1, )}

Konfigurasimesinmenjadi:

state q1dantop-stackdipop

Fungsitransisi:

(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)}

Z

5. Semua input sudahselesaidibaca.

Fungsitransisinya:

(q1, , Z) = {(q2, Z)}

Konfigurasimesinmenjadi: state q2

State q2beradadalam F (final state),

maka ‘abba’ diterimaoleh PDA

Z


14 push down automata

Contoh 14.3

Sebuah PDA

Q = {q1, q2} ;  = {0, 1, 2} ; = {Z, B, G} ;

S = {q1 , q2} ; Z = Z ; F = 

PDA tersebutmemilikifungsitransisi:

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

Tentukanapakah PDA diatasdapatmenerima

string ‘020’

Penyelesaian:


14 push down automata

Z

B

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z

Konfigurasiawalmesin:

state q1 , top-stack Z,

menerima input ‘0’.

Fungsitransisinya:

(q1, 0, Z) = {(q1, BZ)}

Konfigurasimesinmenjadi:

state q1danpush B


14 push down automata

2. Membaca input ‘2’

Fungsitransisinya:

(q1, 2, B) = {(q2, B)}

Konfigurasimesinmenjadi:

state q2danstack tetap

B

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z


14 push down automata

3. Membaca input ‘0’

Fungsitransisinya:

(q2, 0, B) = {(q2, )}

Konfigurasimesinmenjadi:

state q2dan B dipop

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z


14 push down automata

4. Tanpamembaca input (  )

Fungsitransisinya:

(q2, , Z) = {(q2, )}

Konfigurasimesinmenjadi:

state q2dan Z dipop

Stack kosong

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Karenastring‘020’ telahselesai

dibacadanberakhirpadastack

kosong, maka PDA dapat

menerimastring‘020’.


14 push down automata

14.2 PDA untuksuatutatabahasabebaskonteks

PDA adalahmerupakanpenerimabahasa-bahasa

bebaskonteks, sehinggadarisuatutatabahasa

bebaskontekskitadapatmemperolehsebuah

PDA, begitujugasebaliknya.

Sebuah PDA bisadibuatuntukkumpulanaturan

Produksidarisuatutatabahasabebaskonteks.

Langkah-langkahnyaadalahsebagaiberikut:

1. Definisikan:

Q = {q1, q2, q3 }

S = q1

F = { q3 }

 = simbol terminal


14 push down automata

  • Untuk yang berhubungandenganstack, tentukan :

  • = semuasimbolvariabel, simbol terminal, dan

  • Z (simbolawalstack)

  • 2. Mesininidimulaidenganmem-push Z pada top stack. Padasetiaplangkahberikutnyadilakukan

  • salahsatudariduahalberikut:

  • Jikatop-stackadalahvariabel , misal A, kitagantikandenganruaskanandari A, misal A w,

  • makakitagantidengan w.

  • Jikatop-stackadalah terminal, dansamadengansimbolmasukanberikutnya, makakitapopdaristack.


14 push down automata

  • 3. Berdasarkanaturandiatas, kitadapatmengkonstruksiempattipetransisiberikut.

  •  (q1 , , Z) = {(q2 , SZ)} untukmem-pushsimbolawal (S) kestack.

  •  (q2 , , A) = {(q2 , w) | A  w adalahsebuahsimbolproduksidalamtatabahasabebaskonteksitu} untuksemuavariabel A.

  •  (q2 , a, a) = {(q2 , )} untuksetiapsimbol terminal (untukmem-poppembandingan terminal yang sama)

  •  (q2 , , Z) = {(q3 , Z)}, bilaselesaimembacasemuainputdantop-stackadalah Z, berartistringinputsuksesditerimaoleh PDA ( q3stateakhir)


14 push down automata

  • Contoh 14.4

  • Sebuahtatabahasabebaskonteks, D  aDa | bDb | c

  • PDA nyadapatdikonstruksimenjadi:

  • Q = {q1, q2, q3 }

  • S = q1

  • F = { q3 }

  • = {a, b, c}

  • = {D, a, b, c, Z}

  • Fungsitransisinya:

  • (q1, , Z) = {(q2, DZ)}

  • (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)}

  • (q2, a, a) =  (q2, b, b) =  (q2, c, c) = {(q2, )}

  • (q2, , Z) = {(q3, Z)}


14 push down automata

Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘aca’ dari

D  aDa  aca

Karenatatabahasabebaskonteksbisamenurunkanstring ‘aca’ , maka PDA jugaharusdapatmenerimauntaitersebut.

Langkahpemeriksaan:


14 push down automata

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}

Konfigurasiawalmesin:

state q1 , top-stack Z,

tanpamenerimainput ().

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

Konfigurasimesinmenjadi:

state q2danpush D


14 push down automata

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}

2. Tanpamenerimainput ().

Fungsitransisinya:

(q2, , D) = {(q2, aDa)}

Konfigurasimesinmenjadi:

state q2, pop top-stack push‘aDa’


14 push down automata

3. Menerimainput ‘a’

Fungsitransisinya:

(q2, a, a) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

4. Tanpamenerimainput (  )

Fungsitransisinya:

(q2, , D) = {(q2, c)}

Konfigurasimesinmenjadi:

state q2 , pop top-stack,

push c

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

5. Menerimainput ’c’

Fungsitransisinya:

(q2, c, c) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

6. Menerimainput ’a’

Fungsitransisinya:

(q2, a, a) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

7. Tanpamenerimainput ()

Fungsitransisinya:

(q2, , Z) = {(q3, Z)}

Konfigurasimesinmenjadi:

state q3

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}

Tidakadatransisilagidari q3 .

Karena q3stateakhirdansemuainputsudahselesaidibaca, sehinggamenandakanuntai ‘aca’ diterimaoleh PDA tersebut.


14 push down automata

14.3 Deskripsiseketikapada PDA

Langkah 1 s.d. 7 padacontohsoal 14.4, dapatjugadinyatakandalamsuatunotasi yang disebutdeskripsiseketika (instantaneous description).

Deskripsiseketikatersebutdigunakanuntukmenyatakansecara formal konfigurasi PDA padasuatusaat.

Perubahandarisuatukondisikekondisiberikutnyadipisahkandengantanda ‘┣’.

Konfigurasisuatusaatdapatdinyatakandengan

triplet: (q, w, u)

Dimana q menyatakanstate, w adalahstring yang

belumdibaca, sedangkan u adalahisistackdengansimbolterkiriadalahpop-stack.


14 push down automata

Tahapannomor 1 s.d. 7 dapatdinyatakansebagaiberikut:

(q1 , aca, Z) (q2, aca, DZ) (q2, aca, aDaZ)

(q2, ca, DaZ) (q2, ca, caZ) (q2 , a, aZ)

(q2 , , Z) (q3, , Z)


14 push down automata

Latihan

1. Sebuah PDA

Q = {q1, q2} ;  = {0, 1, 2} ; = {Z, B, G} ;

S = {q1 , q2} ; Z = Z ; F = 

PDA tersebutmemilikifungsitransisi:

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

Tentukanapakah PDA diatasdapatmenerima

string ‘121’

Penyelesaian:


14 push down automata

Z

G

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z

Konfigurasiawalmesin:

state q1 , top-stack Z,

menerima input ‘1’.

Fungsitransisinya:

(q1, 1, Z) = {(q1, GZ)}

Konfigurasimesinmenjadi:

state q1danpush G


14 push down automata

2. Membaca input ‘2’

Fungsitransisinya:

(q1, 2, G) = {(q2, G)}

Konfigurasimesinmenjadi:

state q2danstack tetap

G

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z


14 push down automata

3. Membaca input ‘1’

Fungsitransisinya:

(q2, 1, G) = {(q2, )}

Konfigurasimesinmenjadi:

state q2dan G dipop

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}

Z


14 push down automata

4. Tanpamembaca input (  )

Fungsitransisinya:

(q2, , Z) = {(q2, )}

Konfigurasimesinmenjadi:

state q2dan Z dipop

Stack kosong

(q1, 0, Z) = {(q1, BZ)}

(q1, 0, B) = {(q1, BB)}

(q1, 0, G) = {(q1, BG)}

(q1, 2, Z) = {(q2, Z)}

(q1, 2, B) = {(q2, B)}

(q1, 2, G) = {(q2, G)}

(q2, 0, B) = {(q2, )}

(q2, , Z) = {(q2, )}

(q1, 1, Z) = {(q1, GZ)}

(q1, 1, B) = {(q1, GB)}

(q1, 1, G) = {(q1, GG)}

(q2, 1, G) = {(q2, )}


14 push down automata

  • Latihan 2

  • Sebuahtatabahasabebaskonteks, D  aDa | bDb | c

  • PDA nyadapatdikonstruksimenjadi:

  • Q = {q1, q2, q3 }

  • S = q1

  • F = { q3 }

  • = {a, b, c}

  • = {D, a, b, c, Z}

  • Fungsitransisinya:

  • (q1, , Z) = {(q2, DZ)}

  • (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)}

  • (q2, a, a) =  (q2, b, b) =  (q2, c, c) = {(q2, )}

  • (q2, , Z) = {(q3, Z)}


14 push down automata

Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘bcb’ dari

D  bDb  bcb

Karenatatabahasabebaskonteksbisamenurunkanstring ‘bcb’ , maka PDA jugaharusdapatmenerimauntaitersebut.

Langkahpemeriksaan:


14 push down automata

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}

Konfigurasiawalmesin:

state q1 , top-stack Z,

tanpamenerimainput ().

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

Konfigurasimesinmenjadi:

state q2danpush D


14 push down automata

2. Tanpamenerimainput ().

Fungsitransisinya:

(q2, , D) = {(q2, bDb)}

Konfigurasimesinmenjadi:

state q2 ,

pop top-stack push ‘bDb’

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

3. Menerimainput ‘b’

Fungsitransisinya:

(q2, b, b) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

4. Tanpamenerimainput (  )

Fungsitransisinya:

(q2, , D) = {(q2, c)}

Konfigurasimesinmenjadi:

state q2 , pop top-stack,

push c

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

5. Menerimainput ’c’

Fungsitransisinya:

(q2, c, c) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

6. Menerimainput ’b’

Fungsitransisinya:

(q2, b, b) = {(q2, )}

Konfigurasimesinmenjadi:

state q2 , pop top-stack

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}


14 push down automata

7. Tanpamenerimainput ()

Fungsitransisinya:

(q2, , Z) = {(q3, Z)}

Konfigurasimesinmenjadi:

state q3

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa),

(q2, bDb),

(q2, c)}

(q2, a, a) =  (q2, b, b)

=  (q2, c, c)

= {(q2, )}

(q2, , Z) = {(q3, Z)}

Tidakadatransisilagidari q3 .

Karena q3stateakhirdansemuainputsudahselesaidibaca, sehinggamenandakanuntai ‘bcb’ diterimaoleh PDA tersebut.


14 push down automata

Fungsitransisinya:

(q1, , Z) = {(q2, DZ)}

(q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)}

(q2, a, a) =  (q2, b, b) =  (q2, c, c) = {(q2, )}

(q2, , Z) = {(q3, Z)}

Latihan 3:

Kerjakanlatihan 2, dengandeskripsiseketika.

(q1 , bcb, Z) (q2, bcb, DZ) (q2, bcb, bDbZ)

(q2, cb, DaZ) (q2, cb, cbZ) (q2 , b, bZ)

(q2 , , Z) (q3, , Z)