Teori Bahasa Formal dan Automata Pertemuan 5 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA
REVIEW Apa perbedaan antara NFA dan ϵ-nfa? Apa yang dimaksud dengan ϵ-move? Lakukanlah konversi ϵ-nfa berikut ke bentuk mesin DFA, jika diberikan tabel transisi sebagai berikut!
POKOK BAHASAN Pendahuluan Regular Expressions Operator Regular Expressions Hukum Operasi Regular Expressions Hubungan RE dengan FA
PENDAHULUAN FA merupakan blueprint untuk membangun mesin yang mengenali bahasa regular. Regular Expression merupakan cara (yang lebih user friendly) untuk mendeklarsikan penjelasan dari suatu bahasa regular. Contoh : 01* + 10* Regular Expression sering digunakan dalam: UNIX Lexical Analyzer Generator FLEX (Fast Lexical Analyzer Generator)
PENDAHULUAN Regular Expression (RE) mendefinisikan suatu bahasa dengan cara deklaratif menggunakan suatu notasi aljabar. Notasi aljabar: Operand: ϵ, dan sembarang a Σ, Operator: (+) penggabungan atau union; (. ) penyambungan atau concatenation, (*) closure. Notasi yang dibangun dengan menggunakan aljabar tersebut untuk suatu RE dari R akan dapat mendefinisikan bahasa L(R) yang diterima oleh R.
OPERATOR REGULAR EXPRESSION Union Jika R dan S adalah RE maka R+S adalah RE dimana L(R+S) = L(R) U L(S) Contoh R = ϵ + 1 L(R) = {ϵ, 1} S = ϵ + 0 + 1 L(R) = {ϵ, 0, 1}
OPERATOR REGULAR EXPRESSION Concatenation Jika R dan S adalah RE maka R. S adalah RE dimana L(R. S) = L(R). L(S) Contoh R = ϵ + 1 L(R) = {ϵ, 1} S = ϵ + 0 + 1 L(R) = {ϵ, 0, 1} T = R. S L(T) = {ϵ, 0, 1, 10, 11}
OPERATOR REGULAR EXPRESSION Closure L 0 = {ϵ} L 1 = L, L 2 = L. L, L 3 = L. L. L, LK = {W = x 1 x 2 x k i, x i L} L* = L 0 + L 1 + L 2 + + L N
OPERATOR REGULAR EXPRESSION Closure Jika R adalah RE maka R* adalah RE dimana L(R *) = L(R)* = L(ϵ) U L(R 1 ) U L(R 2 ) U Contoh R = 0 + 1 L(R) = {0, 1} S = R* L(S) = {semua string biner} R = 00 L(R*) = {semua string 0 dengan panjang genap}
OPERATOR REGULAR EXPRESSION Closure Positif Definisi L + = L 1 U L 2 U L 3 U L(R + ) = L(R) U L(R 2 ) U L(R 3 ) U Maka R + = R. R* = R*. R R* = ϵ + R +
URUTAN EVALUASI & HUKUM OPERATOR RE Urutan Evaluasi Operator Tertinggi ke Terendah : (), *,., + Hukum Operator RE: Associative: R. (S. T) = (R. S). T = R. S. T R + (S + T) = (R + S) + T = R + S + T Distributive: (R + S). T = R. T + S. T
LATIHAN 1 Bentuklah Regular Expression yang mewakili bahasa sebagai berikut: a. Bahasa yang menerima string dengan komponen alfabet {a, b, c} yang mengandung paling sedikit satu simbol a dan satu simbol b. b. Bahasa yang menerima string dengan komponen alfabet {0, 1} yang mengandung substring 11.
Regular Expression ϵ-nfa HUBUNGAN RE dan FA Untuk setiap bahasa L(R) yang didefinisikan oleh RE R, terdapat sebuah ϵ NFA N sedemikian hingga L(N) = L(R). Bukti : dengan induksi pada banyaknya operator (#) dalam ER R = (a + b)*. c #R = 3 S = (a + b)* #S = 2 T = c #T = 0 #R = #S + 1 + #T ϵ NFA yang baik : hanya memiliki satu Final State
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Basis [#R = 0] R = ϵ, R = atau R = a untuk suatu a
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Induksi Andaikan hipotesis induksi benar untuk #R k, kita buktikan untuk #R= k + 1 Untuk #R = k + 1, terdapat 3 kasus: R = S + T, R = S. T dan R = S* dimana #S, #T k. Dengan demikian dari hipotesis induksi kita memiliki ϵ NFA yang baik, N S untuk S serta N T untuk T, sebagai berikut:
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Kasus I [R = S + T] Catatan: q S f dan q T f bukan lagi state final Perhatikan: L(N R ) = L(N S ) U L(N T ) = L(S) U L(T) = L(S + T) = L(R)
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Kasus II [R = S. T] Kasus III [R = S*]
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Contoh [R = a* + b. c]
HUBUNGAN RE dan FA Regular Expression ϵ-nfa Latihan 2 Bentuklah ϵ-nfa dari Regular Expression yang terbentuk dari latihan 1
DFA Regular Expression HUBUNGAN RE dan FA Untuk setiap DFA M, terdapat sebuah RE R sedemikian sehingga L(R) = L(M). Bukti: Diberikan M = (Q,, δ, q 0, F), asumsikan: Q = {q 1, q 2,, q n } q0 = q1 Definsi Catatan L i,j = {w δ(q i, W) = q j } = {String yang membawa M dari q i ke q j } L i,j = L(M i,j ), dimana M i,j = (Q,, δ, q i, {q j })
HUBUNGAN RE dan FA DFA Regular Expression Andaikan kita dapat memperoleh ER R i,j untuk L i,j maka kita dapat mengkomputasi
HUBUNGAN RE dan FA DFA Regular Expression Definsi : k, 0 k n, L k i,j = {w M berpindah dari q i ke q j pada input w dengan hanya melewai q 1,, q k }
HUBUNGAN RE dan FA DFA Regular Expression Komputasi R i,j Kita definisikan R k i,j k untuk L i,j Fakta: R i,j = R n n i,j dan L i,j = L i,j Fokuskan untuk mengkomputasikan R k i,j dengan induksi pada k. Basis : Bangun R 0 i,j untuk semua i dan j. Induksi : Berdasarkan semua R k i,j k+1, komputasikan semua R i,j
HUBUNGAN RE dan FA DFA Regular Expression Basis [R 0 i,j ] w L 0 i,j hanya jika melalui transisi langsung. Andaikan
HUBUNGAN RE dan FA DFA Regular Expression Induksi [R k i,j, k 1] Diberikan R k i,j, akan dikomputasi R k+1 i,j. Perhatikan: w L k+1 i,j namun w L k i,j hanya jika ketika M berpindah dari q i ke q j pada input substring w, kita menggunakan q k+1 paling sedikit sekali. w L k+1 i,j L k i,j adalah sedemikian rupa sehingga w = x 1 x t Dengan transisi dengan panah tebal menyembunyikan semua state
HUBUNGAN RE dan FA DFA Regular Expression k Induksi [R i,j, k 1]
HUBUNGAN RE dan FA DFA Regular Expression Contoh
PUSTAKA John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction To Automata Theory, Languages, and Computation Dr.-Ing. Reza Pulungan, M.Sc. Bahan Ajar Teori Komputasi. JIKE UGM.
Terima Kasih!