04 TBO_Bagus_CNF

Download Report

Transcript 04 TBO_Bagus_CNF

Teori Bahasa dan Otomata
BENTUK NORMAL
CHOMSKY
Oleh : Bagus Adhi Kusuma
Program Studi Teknik Informatika
STMIK AMIKOM Purwokerto
DEFINISI CNF
merupakan salah satu bentuk normal yang
sangat berguna untuk Context Free
Grammar (CFG)
Merupakan Context Free Grammar (CFG)
dengan setiap produksinya berbentuk :
A → BC atau A → a
DEFINISI CNF
Suatu tata bahasa bebas konteks dapat dikonstruksi
menjadi bentuk normal Chomsky (Chomsky Normal
Form/CNF) jika tidak lagi mengandung produksi-produksi
yang useless, unit, dan empty (ε).
Dengan kata lain, untuk mengkonstruksi suatu CNF dari
suatu tata bahas bebas konteks adalah dengan cara
menghilangkan produksi-produksi useless, unit, dan ε.
ATURAN PRODUKSI CNF
ruas kanan adalah sebuah simbol terminal atau
dua simbol variable.
• Jadi dalam CNF, ruas kanan hanya boleh berupa
sebuah simbol terminal atau dua buah simbol
variable.
• Jika terdapat lebih dari satu simbol terminal maka
harus dilakukan penggantian dan juga jika terdapat
lebih dari dua buah simbol variable maka harus
dilakukan perubahan.
Misalkan:
•A → BC
•A → b
•B → a
•C → BA | d
TRANSFORMASI CFG KE CNF
Transformasi CFG ke CNF adalah transformasi
berikut:
PEMBENTUKAN CNF
Langkah-langkah pembentukan bentuk normal
Chomsky secara umum sebagai berikut:
1.Biarkan aturan produksi yang sudah dalam bentuk
normal Chomsky
2.Lakukan penggantian aturan produksi yang ruas
kanannya memuat simbol terminal dan panjang ruas
kanan > 1
3.Lakukan penggantian aturan produksi yang ruas
kanannya memuat > 2 simbol variabel
4.Penggantian-penggantian tersebut bisa dilakukan
berkali-kali sampai akhirnya semua aturan produksi
dalam bentuk normal Chomsky
5.Selama dilakukan penggantian, kemungkinan kita
akan memperoleh aturan-aturan produksi baru, dan
juga memunculkan simbol-simbol variabel baru
Bisa dilihat tahapan-tahapan tersebut
pada gambar berikut:
CONTOH 1:
Diketahui tata bahasa bebas konteks (sudah tidak
mengandung produksi useless, unit dan ε) sebagai
berikut :
S  aB | SS | c
B  BBB | cd | a
Ubahlah ke dalam bentuk normal Chomsky
Langkah membuat CNF dari tata bahasa bebas konteks
contoh 1 :
a. Biarkan aturan-aturan produksi yang sudah dalam
bentuk CNF
S  SS
Sc
Ba
b. Lakukan penggantian aturan-aturan produksi yang
belum dalam bentuk CNF yang belum dalam
bentuk CNF :
S  aB
=> S  Z1B
B  BBB => B  Z2 B
B  cd
=> B  Z3 d => B  Z3 Z4
c. Simbol variable baru dan aturan produksi baru
yang terbentuk :
Z1  a
Z3  c
Z2  BB
Z2  d
d. Hasil akhir :
S  SS | c | Z1B
B  Z2B | Z3 Z4 | a
Z1  a
Z2  BB
Z3  c
Z4  d
CONTOH 2 :
Diketahui tata bahasa bebas konteks (sudah tidak
mengandung produksi useless, unit dan ε) sebagai
berikut :
S → bA | aB
A → bAA | aS | a
B → aBB | bS | b
Ubahlah ke dalam bentuk normal Chomsky
a. Aturan produksi yang sudah
dalam bentuk normal Chomsky:
A→a
B→b
b. Dilakukan penggantian aturan produksi yang
belum bentuk normal Chomsky (‘=>’ bisa dibaca
berubah menjadi):
S → bA => S → P1A
S → aB => S → P2B
A → bAA =>A → P1AA => A → P1P3
A → aS => A → P2S
B → aBB => B → P2BB => B → P2P4
B → bS => B → P1S
c. Terbentuk aturan produksi dan simbol
variabel baru:
P1 → b
P2 → a
P3 → AA
P4 → BB
d. Hasil akhir aturan produksi dalam bentuk
normal Chomsky :
A→a
B→b
S → P1A
S → P2B
A → P1P3
A → P2S
B → P2P4
B → P1S
P1 → b
P2 → a
P3 → AA
P4 → BB
P1 = P, P2 =Q, P3 =R, P4 =T,
sehingga aturan produksinya menjadi:
S → PA
S → QB
A → PR
A → QS
A→a
B → QT
B → PS
B→b
P→b
Q→a
R → AA
T → BB
LATIHAN SOAL 1
Diketahui Tata bahasa bebas konteks sbb.
S →aB | CA
A →a | bc
B →BC | Ab
C →aB | b
Ubahlah kedalam bentuk normal chomsky
LATIHAN SOAL 2
Diketahui tata bahasa bebas konteks sebagai
berikut:
S  aa | Ba | cd
B  AA | AAA | Dc
A  abcd
D  De | ee | f
Ubahlah kedalam bentuk normal chomsky