Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan 6 Ekspresi dan Bahasa Regular

Presentasi serupa


Presentasi berjudul: "Pertemuan 6 Ekspresi dan Bahasa Regular"— Transcript presentasi:

1 Pertemuan 6 Ekspresi dan Bahasa Regular
Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)

2 Special Instructional Objectives, Subtopics and Presentation Time
Students are able to explain the construction of regular expression and language and their relation to automata Subtopics: Operators of regular expression Construction of regular expression Conversion of DFA into regular expression Conversion of regular expression into automata Presentation Time: 1 x 150 minutes

3 Regular expression (1) Can be viewed as another notation for NFA.
Has important applications in areas such as text retrieval and compiler Provides a declarative way to specify the acceptable strings Specifies a language, for example the expression 01* + 10* represents the language containing all strings beginning with 0 followed by a 1 or a 1 followed by a 0.

4 Ekspresi Regular (2) Operasi dalam bahasa dimana operator dari ekspresi regular direpresentasikan: Union dari dua bahasa L dan M, dinotasi, adalah himpunan dari string yang ada dalam L atau dalam M. Contoh: L = {001, 10, 111} dan M = {, 001}, maka = {, 10, 001, 111}. Concatenation dari bahasa L dan M adalah himpunan dari string yang dibentuk dengan mengambil string dalam L dan merangkainya dengan string dalam M. Notasinya menggunakan “dot” atau tidak ada operator yang dituliskan. Contoh: L = {001, 10, 111} dan M = {, 001}, maka LM = {001, 10, 111, , 10001, }. Tiga string pertama dalam LM diperoleh dengan merangkaikan string-string dalam L dengan , sedangkan sisanya diperoleh dengan merangkaikan string-string dalam L dengan 001.

5 Ekspresi Regular (3) Closure (atau star, atau Kleene Closure) dari bahasa L Dinotasikan L* dan menyatakan himpunan dari string-string yang dapat dibentuk dengan mengambil sejumlah string dari L, mungkin dengan pengulangan (yaitu string yang sama dipilih lebih dari sekali), dan merangkai semua string tersebut. Contoh : L = {0, 1} maka L* adalah semua string dari para 0 dan para 1. L = {0, 11} maka L* berisi semua string dari para 0 dan para 1 sedemikian sehingga para 1 muncul berpasangan. Perhatikan bahwa 011,  L* tapi 01011, 101  L*. Secara lebih formal, L* adalah union tak berhingga  Li, i  0 dimana L0 = {}, L1 = L, dan Li untuk i  1 adalah LL...L, yaitu perangkaian dari i salinan dari L.

6 Ekspresi Regular (4) Contoh 1
L = {0,11}. L0 = {} (tidak bergantung pada bahasa L). L1 = L menyatakan pemilihan 1 string dari L. L2 ={00, 011, 110, 1111} yaitu mengambil dua string dalam L, pengulangan diperbolehkan sehingga terdapat 4 string. L3 merupakan himpunan string yang dapat dibentuk dengan membuat 3 pilihan dari 2 string dalam L, L3 = {000, 0011, 0110, 1100, 01111, 11011, 11110, }.

7 Ekspresi Regular (4) Contoh 1 (lanjutan)
Untuk menghitung L*, harus dihitung Li untuk setiap i, dan mengambil semua union dari bahasa-bahasa ini. Li memiliki 2i anggota, setiap Li berhingga, union dari sejumlah tak berhingga Li umumnya merupakan bahasa tak berhingga, L* = L0  L1  L2  ... * = {} dan 0 = {}

8 Membuat Ekspresi Regular (1)
Ekspresi regular terdiri dari konstanta, variabel-variabel yang menyatakan bahasa dan operator union, dot dan star. Ekspresi regular dapat dinyatakan secara rekursif. Definisi ekspresi regular, E, dan bahasa yang direpresentasikan oleh E yaitu L(E) terdiri dari basis dan langkah induktif

9 Membuat Ekspresi Regular (2)
Basis: terdiri dari 3 bagian : Konstanta  dan  adalah ekspresi regular, berturut-turut menyatakan bahasa {} dan . Bahwa L() ={}, dan L() = . Jika a adalah simbol, maka a adalah ekspresi regular. Ekspresi ini menyatakan bahasa {a}, bahwa L(a) = {a} Sebuah variabel, biasanya dicetak tebal dan miring seperti L, merepresentasikan suatu bahasa.

10 Membuat Ekspresi Regular (3)
Induksi: Langkah induktif terdiri dari 4 langkah: Jika E dan F adalah ekspresi regular, maka E + F adalah ekspresi regular yang menyatakan union dari L(E) dan L(F). Bahwa L(E + F) = L(E)  L(F). Jika E dan F adalah ekspresi regular, maka EF adalah ekspresi regular yang menyatakan perangkaian dari L(E) dan L(F). Bahwa L(EF) = L(E).L(F). Simbol ‘dot’ bisa digunakan atau tidak untuk menotasikan operator perangkaian baik dalam bahasa atau dalam ekspresi regular. Contoh: 0.1 adalah ekspresi regular yang artinya sama dengan 01 dan merepresentasikan bahasa {01}.

11 Membuat Ekspresi Regular (4)
Jika E adalah sebuah ekspresi regular, maka E* adalah ekspresi regular menyatakan closure dari L(E). Bahwa L(E*) = (L(E))*. Jika E adalah ekspresi regular, maka (E), E dengan tanda kurung juga ekspresi regular yang menyatakan bahasa yang sama dengan E. Bahwa L((E)) = L(E).

12 Contoh 2 Akan dibuat ekspresi regular untuk himpunan string yang terdiri dari para 0 dan para 1 secara bergantian. Langkah-langkah untuk membuat ekspresi regular tersebut adalah Pertama dibuat ekspresi regular untuk bahasa yang terdiri dari string tunggal 01. Gunakan operator star untuk mendapat sebuah ekspresi untuk semua string dengan bentuk

13 Contoh 2 (lanjutan) Basis: 0 dan 1 adalah ekspresi regular yang berturut-turut menyatakan bahasa {0} dan {1}. Induksi: Perangkaian dari 0 dan 1 yaitu 01 adalah ekpresi regular yang menyatakan bahasa {01}. Untuk mendapat semua string yang terdiri dari nol atau lebih kemunculan 01 digunakan ekspresi regular (01)*. Perhatikan bahwa (01)*  01*. 01* menyatakan bahasa yang terdiri dari sebuah 0 dan sejumlah para 1.

14 Contoh 2 (lanjutan) Tetapi, L((01)*) bukan bahasa yang tepat yang diinginkan. Bahasa ini hanya mencakup string-string dari para 0 dan para 1 secara bergantian dimulai dengan 0 dan diakhiri dengan 1  diperlukan kemungkinan terdapat 1 diawal dan 0 diakhir string. Ekspresi regular yang mungkin adalah (10)* yang terdiri dari para 0 dan para 1 secara bergantian, diawali 1 dan diakhiri 0. 0(10)* yang diawali dan diakhiri 0. 1(01)* yang diawali dan diakhiri 1. Sehingga keseluruhan ekspresi adalah (01)* + (10)* + 0(10)* + 1(01)* dengan + adalah operator union.

15 Contoh 2 (lanjutan), Cara Lain
Mulai dengan (01)*, tambahkan 1 (optional) diawal jika kita merangkai pada bagian kiri dengan ekspresi +1. Bisa juga ditambah 0 (optional) diakhir jika kita merangkai pada bagian kanan dengan ekspresi +0. Dengan menggunakan operator +, diperoleh L( + 1) = L( )  L(1) = {}  {1} = {,1} Ekspresi yang dimaksud adalah (+1)(01)*(+0). Jika 1 yang dipilih dalam (+1) didapat string 1w. Jika 0 yang dipilih dalam (+0) didapat string w0.

16 Urutan prioritas operator dalam ekspresi regular:
Operator star Operator dot (concatenation) Concatenation bersifat asosiatif sehingga 012 dapat dikelompokkan (01)2. Operator + (union) yang bersifat asosiatif. Contoh, ekspresi 01*+1 dikelompokkan menjadi (0(1*))+1.

17 Finite Automata dan Ekspresi Regular (1)
Sebuah ekspresi regular dapat merepresentasikan sebuah bahasa yang diterima oleh finite automata. Untuk membuktikan pernyataan tersebut, perlu dibuktikan bahwa: Setiap bahasa yang didefinisikan oleh salah satu dari automata juga didefinisikan oleh sebuah ekspresi regular. Dalam hal ini, asumsikan bahwa bahasa tersebut diterima oleh DFA. Setiap bahasa yang didefinisikan oleh suatu ekspresi regular didefinisikan oleh salah satu dari automata. Dalam hal ini, asumsikan terdapat NFA dengan transisi  yang menerima bahasa yang sama.

18 Skema pembuktian ekuivalensi notasi-notasi untuk bahasa regular:
Misalkan x dan y adalah node dalam gambar di samping. Edge dari node x ke y berarti bahwa dapat dibuktikan setiap bahasa yang didefinisikan oleh kelas x juga didefinisikan oleh kelas y.

19 Dari DFA ke Ekspresi Regular
Teorema 1: Jika L = L(A) untuk suatu DFA A, maka terdapat ekspresi regular R sedemikian sehingga L = L(R). Bukti: Lihat buku rujukan

20 Contoh 3 Ekspresi regular yang ekuivalen dengan DFA di samping adalah
1*0(0+1)*. Ekspresi regular tersebut menyatakan bahasa yang terdiri dari semua string yang dimulai dengan 0 atau lebih para 1, kemudian memiliki sebuah 0 dan diikuti string dari para 0 dan para 1. Secara ringkas bahasa tersebut terdiri para 0 dan para 1 dengan sedikitnya satu 0.

21 Konversi DFA ke Ekspresi Regular dengan Mengeliminasi State
Contoh 4, diberikan NFA yang menerima semua string dari para 0 dan 1, posisi ke-2 atau ke-3 dari ujung string memiliki sebuah 1. Bahasa yang diterima oleh NFA terdiri dari semua string dari para 0 dan 1 bahwa posisi ke-2 atau ke-3 dari ujung string memiliki sebuah 1. Ekspresi regular yang menyatakan bahasa yang sama (dengan mengeliminasi state): (0+1)*1(0+1) + (0+1)*1(0+1)(0+1)

22 Konversi Ekspresi Regular ke Automata
Teorema 2: Setiap bahasa yang didefinisikan oleh sebuah ekspresi regular juga didefinisikan oleh sebuah FA. Bukti: lihat buku rujukan

23 Contoh 5 Konversi ekspresi regular (0+1)*1(0+1) ke sebuah -NFA.
Jawab:

24 Daftar Pustaka John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley


Download ppt "Pertemuan 6 Ekspresi dan Bahasa Regular"

Presentasi serupa


Iklan oleh Google