slide1
Download
Skip this Video
Download Presentation
14. PUSH-DOWN AUTOMATA

Loading in 2 Seconds...

play fullscreen
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
slide2

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.

slide3

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 

slide5

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.
slide6

PDA dapatdianggapsebagaiotomatahingga yang

dilengkapidenganstack.

Sebuah PDA yang menerimainput, selainbisa

berpindahstatejugabisamelakukanoperasipada

stack.

Kondisiataukonfigurasi PDA padasuatusaat

dinyatakandenganstatedanstack.

Jenistransisipada PDA;

Membacasimbolinput

Tanpamembacasimbolinput.

slide7

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.

slide8

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.

slide9

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

slide10

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

slide11

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

slide12

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

slide13

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:

slide14

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

slide15

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

slide16

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

slide17

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:

slide18

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

slide19

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

slide20

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

slide21

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’.

slide22

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

slide23

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.
slide24

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)
slide25

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)}
slide26

Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘aca’ dari

D  aDa  aca

Karenatatabahasabebaskonteksbisamenurunkanstring ‘aca’ , maka PDA jugaharusdapatmenerimauntaitersebut.

Langkahpemeriksaan:

slide27

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

slide28

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’

slide29

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

slide30

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

slide31

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

slide32

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

slide33

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.

slide34

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.

slide35

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)

slide36

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:

slide37

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

slide38

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

slide39

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

slide40

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, )}

slide41

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)}
slide42

Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘bcb’ dari

D  bDb  bcb

Karenatatabahasabebaskonteksbisamenurunkanstring ‘bcb’ , maka PDA jugaharusdapatmenerimauntaitersebut.

Langkahpemeriksaan:

slide43

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

slide44

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

slide45

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

slide46

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

slide47

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

slide48

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

slide49

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.

slide50

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)

ad