Anda di halaman 1dari 53

R E G U LAR LAN G UAG E S

TEORI PERHITUNGAN DIMULAI DENGAN PERTANYAAN: APA ITU KOMPUTER? INIMUNGKIN PERTANYAAN KONYOL,
KARENA SEMUA ORANG TAHU BAHWA HAL YANG SAYA KETIK ADALAH KOMPUTER. TETAPI KOMPUTER YANG
SEBENARNYA INI CUKUP RUMIT — TERLALU BANYAK UNTUK MEMUNGKINKAN KITAUNTUK MENGATUR TEORI
MATEMATIKA YANG DAPAT DIKELOLA DARI MEREKA SECARA LANGSUNG. SEBALIKNYA, KAMI
MENGGUNAKANKOMPUTER IDEAL YANG DISEBUT MODEL KOMPUTASI. SEPERTI HALNYA MODEL DALAM
SAINS,MODEL KOMPUTASI MUNGKIN AKURAT DALAM BEBERAPA HAL TETAPI MUNGKIN TIDAK DALAM HAL LAIN.JADI
KITA AKAN MENGGUNAKAN BEBERAPA MODEL KOMPUTASI YANG BERBEDA, TERGANTUNG PADA FITUR YANG INGIN
KITA FOKUSKAN. KITA MULAI DENGAN MODEL PALING SEDERHANA, YANG DISEBUT TERBATASMESIN NEGARA ATAU
OTOMAT TERBATAS.1.1AUTOMATA TERBATASAUTOMATA TERBATAS ADALAH MODEL YANG BAIK UNTUK KOMPUTER
DENGAN YANG SANGAT TERBATASJUMLAH MEMORI. APA YANG BISA DILAKUKAN KOMPUTER DENGAN MEMORI
SEKECIL ITU? BANYAKHAL YANG BERMANFAAT! BAHKAN, KAMI BERINTERAKSI DENGAN KOMPUTER SEPERTI ITU
SETIAP SAAT, SAAT MEREKA BERBOHONGJANTUNG BERBAGAI PERANGKAT ELEKTROMEKANIS.PENGONTROL UNTUK
PINTU OTOMATIS ADALAH SALAH SATU CONTOH PERANGKAT SEMACAM ITU. SERINGDITEMUKAN DI PINTU MASUK
DAN KELUAR SUPERMARKET, PINTU OTOMATIS TERBUKA KETIKA TERBUKAPENGENDALI MERASAKAN BAHWA
SESEORANG SEDANG MENDEKATI. PINTU OTOMATIS MEMILIKI BANTALAN
• di depan untuk mendeteksi keberadaan seseorang yang akan berjalan melalui pintu.Bantalan lain
terletak di bagian belakang pintu sehingga pengontrol dapat memegangpintu terbuka cukup lama
bagi orang untuk melewati semua jalan dan jugaagar pintu tidak menabrak seseorang yang berdiri
di belakangnya saat terbuka. Inikonfigurasi ditunjukkan pada gambar berikut.GAMBAR
1.1Tampilan teratas dari pintu otomatisKontroler berada dalam salah satu dari dua status: "OPEN"
atau "CLOSED," mewakilikondisi pintu yang sesuai. Seperti yang ditunjukkan pada gambar
berikut,ada empat kondisi input yang mungkin: "FRONT" (artinya seseorangberdiri di pad di
depan pintu), "BELAKANG" (artinya seseorang ituberdiri di pad ke bagian belakang pintu),
"KEDUA" (artinya orang-orangberdiri di atas kedua pembalut), dan “NEITHER” (artinya tidak
ada yang berdiridi kedua bantalan).
• Pengontrol bergerak dari satu kondisi ke kondisi lain, bergantung pada input yang diterimanya.Ketika dalam keadaan TUTUP dan
menerima input TIDAK SAH atau BELAKANG, itu tetapdalam kondisi TUTUP. Selain itu, jika input KEDUA diterima, ia tetap
TUTUPkarena membuka pintu berisiko menjatuhkan seseorang di bantalan belakang. Tapi jikainput FRONT tiba, ia pindah ke status
OPEN. Dalam keadaan OPEN, jika inputFRONT, REAR, atau BOTH diterima, tetap di OPEN. Jika input TIDAK BAIKtiba, ia kembali
ke TUTUP.Misalnya, pengontrol mungkin mulai dalam keadaan TUTUP dan menerima serisinyal input DEPAN, BELAKANG, BAIK,
DEPAN, KEDUA, BAIK, BELAKANG,dan TIDAK. Kemudian akan melalui serangkaian negara TUTUP (mulai),BUKA, BUKA,
TUTUP, BUKA, BUKA, TUTUP, DITUTUP, dan DITUTUP.Memikirkan pengontrol pintu otomatis sebagai otomat terbatas berguna
karena menyarankan cara representasi standar seperti pada Gambar 1.2 dan 1.3.Pengontrol ini adalah komputer yang hanya memiliki
sedikit memori, mampumerekam mana dari dua negara bagian pengontrol. Perangkat umum lainnyamemiliki pengendali dengan ingatan
yang agak besar. Dalam pengontrol lift, anegara dapat mewakili lantai lift aktif dan input mungkin sinyal yang diterima dari tombol.
Komputer ini mungkin perlu beberapa bit untuk disimpanmelacak informasi ini. Pengontrol untuk berbagai peralatan rumah tangga
sepertimesin pencuci piring dan termostat elektronik, serta bagian dari jam tangan digital dankalkulator, adalah contoh tambahan
komputer dengan memori terbatas. Itudesain perangkat semacam itu membutuhkan metodologi dan terminologi menjagaautomata
terbatas dalam pikiran.Automata yang terbatas dan rantai Markov rekan probabilistiknya bermanfaatalat ketika kami mencoba mengenali
pola dalam data. Perangkat-perangkat inidigunakan dalam pemrosesan ucapan dan pengenalan karakter optik. Rantai Markovbahkan
telah digunakan untuk memodelkan dan memprediksi perubahan harga di pasar keuangan.Kita sekarang akan melihat lebih dekat pada
automata terbatas dari perspektif matematika. Kami akan mengembangkan definisi yang tepat tentang robot yang terbatas,
terminologiuntuk menggambarkan dan memanipulasi automata terbatas, dan hasil teoritis yang menggambarkan kekuatan dan
keterbatasan mereka. Selain memberi Anda pemahaman yang lebih jelasapa automata terbatas dan apa yang bisa dan tidak bisa mereka
lakukan, pengembangan teoretis ini akan memungkinkan Anda untuk berlatih dan menjadi lebih nyaman dengandefinisi matematika,
teorema, dan bukti dalam pengaturan yang relatif sederhana.
• Di awal untuk menggambarkan teori matematika automata terbatas, kita lakukanjadi secara abstrak, tanpa
referensi ke aplikasi tertentu. PengikutAngka menggambarkan otomat terbatas bernama M1.GAMBAR
1.4Otomat terbatas bernama M1 yang memiliki tiga statusGambar 1.4 disebut diagram keadaan M1. Ini
memiliki tiga negara, berlabel q1, q2,dan q3. Status awal, q1, ditunjukkan oleh panah yang menunjuknya
entah dari mana.Status terima, q2, adalah negara dengan lingkaran ganda. Panah pergi dari satunegara ke
yang lain disebut transisi.Ketika otomat ini menerima string input seperti 1101, itu memproses itustring
dan menghasilkan output. Outputnya dapat diterima atau ditolak. Kami akanpertimbangkan hanya tipe
keluaran ya / tidak ini untuk saat ini agar semuanya…
• DEFINISI FORMAL DARI OTOMATIS TERBATASDi bagian sebelumnya, kami menggunakan diagram keadaan untuk memperkenalkan
finite automata.Sekarang kita mendefinisikan automata terbatas secara formal. Meskipun diagram keadaan lebih mudahmemahami secara
intuitif, kita perlu definisi formal juga, karena dua alasan spesifik.Pertama, definisi formal tepat. Ini menyelesaikan segala ketidakpastian
tentang apadiizinkan dalam robot terbatas. Jika Anda tidak yakin apakah terbatasautomata diizinkan untuk memiliki 0 status terima atau
apakah mereka harus memiliki satu transisi yang tepat keluar dari setiap negara untuk setiap simbol input yang mungkin, Anda dapatlihat
definisi resmi dan verifikasi bahwa jawabannya adalah ya dalam kedua kasus. Kedua, definisi formal memberikan notasi. Notasi yang baik
membantu Anda berpikir danungkapkan pikiran Anda dengan jelas.Bahasa definisi formal agak misterius, memiliki beberapa kesamaan
dengan bahasa dokumen hukum. Keduanya harus tepat, dan setiapdetail harus dijabarkan.Otomat terbatas memiliki beberapa bagian. Ini
memiliki seperangkat negara dan aturan untuk pergidari satu kondisi ke kondisi lain, tergantung pada simbol input. Ini memiliki alfabet input
yang menunjukkan simbol input yang diizinkan. Ini memiliki keadaan awal dan satu setmenerima negara. Definisi formal mengatakan bahwa
robot terbatas adalah daftar itulima objek: set negara, alfabet input, aturan untuk memindahkan, mulai status, dan terimamenyatakan. Dalam
bahasa matematika, daftar lima elemen sering disebut 5-tuple.Oleh karena itu kami mendefinisikan otomat terbatas menjadi tuple 5 yang
terdiri dari lima bagian ini.Kami menggunakan sesuatu yang disebut fungsi transisi, yang sering dilambangkan δ, untuk menetapkan aturan
pemindahan. Jika robot hingga memiliki panah dari keadaan xke keadaan y dilabeli dengan simbol input 1, itu berarti bahwa jika
otomatnyadalam keadaan x ketika membaca 1, ia kemudian bergerak ke keadaan y. Kami dapat menunjukkan hal yang samahal dengan
fungsi transisi dengan mengatakan bahwa δ (x, 1) = y. Notasi ini adalah asemacam singkatan matematika. Menyatukan semuanya, kita
sampai di formaldefinisi automata terbatas.DEFINISI 1.5Otot terbatas adalah tuple 5 (Q, Σ, δ, q0, F), di mana1. Q adalah himpunan terbatas
yang disebut state,2. Σ adalah himpunan terbatas yang disebut alfabet,3. δ: Q × Σ− → Q adalah fungsi transisi,14. q0 ∈ Q adalah status awal,
dan5. F ⊆ Q adalah set status terima.21Perujuk kembali ke halaman 7 jika Anda tidak yakin tentang arti δ: Q × Σ− → Q.2 Status penerimaan
terkadang disebut status akhir
• Definisi formal secara tepat menggambarkan apa yang kami maksud dengan otomat terbatas. Misalnya, kembali ke
pertanyaan sebelumnya apakah 0 status terima atau tidakdiizinkan, Anda dapat melihat bahwa pengaturan F
menjadi set kosong ∅ menghasilkan 0 status terima,yang diizinkan. Lebih lanjut, fungsi transisi δ menentukan satu
sajastatus berikutnya untuk setiap kemungkinan kombinasi dari status dan simbol input. Itu menjawab pertanyaan
kami yang lain dengan tegas, menunjukkan bahwa tepat satu panah transisikeluar dari setiap negara bagian untuk
setiap simbol input yang mungkin.Kita dapat menggunakan notasi dari definisi formal untuk menggambarkan
hingga individuautomata dengan menentukan masing-masing dari lima bagian yang tercantum dalam Definisi 1.5.
Sebagai contoh, mari kita kembali ke M1 otomat terbatas yang kita bahas sebelumnya, digambar ulang di siniuntuk
kenyamanan.GAMBAR 1.6Otomat terbatas M1Kita dapat menggambarkan M1 secara formal dengan menulis M1
= (Q, Σ, δ, q1, F), di mana1. Q = {q1, q2, q3},2. Σ = {0,1},3. δ digambarkan sebagai0 1q1 q1 q2q2 q3 q2q3 q2
q2,4. q1 adalah kondisi awal, dan5. F = {q2}.Jika A adalah himpunan semua string yang diterima mesin M, kita
katakan bahwa A adalahbahasa mesin M dan tulis L (M) = A. Kita mengatakan bahwa M mengenali A ataubahwa
M menerima A. Karena istilah menerima memiliki arti yang berbeda ketika kita merujukke mesin yang menerima
string dan mesin yang menerima bahasa, kami lebih sukakenali istilah untuk bahasa untuk menghindari
kebingungan.Mesin mungkin menerima beberapa string, tetapi selalu mengenali hanya satu bahasa. Jika mesin
tidak menerima string, ia masih mengenali satu bahasa—yaitu, bahasa kosong ∅.
• Dalam contoh kita, mariA = {w | w mengandung setidaknya satu 1 danangka 0 yang rata mengikuti 1}
terakhir.Kemudian L (M1) = A, atau ekuivalen, M1 mengenali A.CONTOH DARI FINOM
AUTOMATACONTOH 1.7Berikut adalah diagram keadaan M2 otomat terbatas.GAMBAR 1.8State
diagram dari M2 state dua otomat terbatasDalam deskripsi formal, M2 adalah{q1, q2}, {0,1}, δ, q1,
{q2}. Transisifungsi δ adalah0 1q1 q1 q2q2 q1 q2.Ingatlah bahwa diagram keadaan M2 dan deskripsi
formal M2mengandung informasi yang sama, hanya dalam bentuk yang berbeda. Anda selalu bisa
pergisatu ke yang lain jika perlu.Cara yang baik untuk mulai memahami mesin apa pun adalah dengan
mencobanya pada beberapa sampelstring input. Ketika Anda melakukan "percobaan" ini untuk melihat
bagaimana mesin itubekerja, metodenya berfungsi sering menjadi jelas. Pada sampelstring 1101,
mesin M2 mulai dalam status awal q1 dan mulai pertama untuk menyatakanq2 setelah membaca 1
pertama, dan kemudian menyatakan q2, q1, dan q2 setelah membaca 1, 0,dan 1. String diterima karena
q2 adalah keadaan terima. Tetapi tali 110 daunM2 dalam status q1, jadi ditolak. Setelah mencoba
beberapa contoh lagi, Anda akan melihatbahwa M2 menerima semua string yang diakhiri dengan 1.
Jadi L (M2) = {w | w berakhiran 1}
• Pertimbangkan M3 otomat terbatas.GAMBAR 1.10Diagram keadaan otomat terbatas dua keadaan M3Mesin
M3 mirip dengan M2 kecuali untuk lokasi keadaan terima. Sebagaibiasanya, mesin menerima semua string
yang meninggalkannya dalam keadaan terima saat ituselesai membaca. Perhatikan bahwa karena keadaan awal
juga merupakan keadaan terima, M3menerima string kosong ε. Begitu mesin mulai membaca yang
kosongstring, itu pada akhirnya; jadi jika keadaan awal adalah keadaan terima, ε diterima. DiSelain string
kosong, mesin ini menerima string yang diakhiri dengan 0.Sini,L (M3) = {w | w adalah string kosong ε atau
berakhir dengan 0}.CONTOH 1.11Gambar berikut menunjukkan mesin M4 lima negara.GAMBAR 1.12Otot
terbatas M4Hak Cipta 2012 Cengage Learning. Seluruh hak cipta. Tidak boleh disalin, dipindai, atau
digandakan, seluruhnya atau
• Mesin M4 memiliki dua status terima, q1 dan r1, dan beroperasi pada alfabetΣ = {a, b}. Beberapa eksperimen
menunjukkan bahwa ia menerima string a, b, aa, bb, danbab, tapi bukan string ab, ba, atau bbba. Mesin ini dimulai
dalam keadaan s, dan setelahia membaca simbol pertama dalam input, ia pergi ke kiri ke status q atau kananke r
negara. Dalam kedua kasus, itu tidak pernah dapat kembali ke keadaan awal (sebaliknyake contoh sebelumnya),
karena tidak memiliki cara untuk mendapatkan dari negara lain kembali ke s.Jika simbol pertama dalam string
input adalah, maka ia pergi ke kiri dan menerima ketikastring diakhiri dengan a. Demikian pula, jika simbol
pertama adalah b, mesin berjalan dengan benardan menerima ketika string berakhir b. Jadi M4 menerima semua
string yang dimulai danakhiri dengan atau yang dimulai dan akhiri dengan b. Dengan kata lain, M4 menerima
string itumulai dan akhiri dengan simbol yang sama.CONTOH 1.13Gambar 1.14 menunjukkan mesin M5 tiga-
negara, yang memiliki input empat-simbolalfabet, Σ = {hRESETi, 0, 1, 2}. Kami memperlakukan hRESETi
sebagai simbol tunggal.GAMBAR 1.14Otomat terbatas M5Mesin M5 menyimpan hitungan berjalan dari jumlah
simbol input numerikbunyinya, modulo 3. Setiap kali ia menerima simbol hRESETi, ia me-reset hitunganke 0. Ia
menerima jika jumlahnya 0 modulo 3, atau dengan kata lain, jika jumlahnya adalah beberapadari 3.Dalam
beberapa kasus, mendeskripsikan otomat terbatas dengan diagram keadaan tidak dimungkinkan.Itu bisa terjadi
ketika diagram akan terlalu besar untuk menggambar atau jika, seperti pada gambar berikutnyaMisalnya, deskripsi
tergantung pada beberapa parameter yang tidak ditentukan. Dalam kasus-kasus ini,kami menggunakan deskripsi
formal untuk menentukan mesin.
• Consider a generalization of Example 1.13, using the same four-symbol alphabet Σ. For each i ≥ 1 let Ai be the
language of all strings where the sum of thenumbers is a multiple of i, except that the sum is reset to 0 whenever the
symbolhRESETi appears. For each Ai we give a finite automaton Bi, recognizing Ai.We describe the machine Bi
formally as follows: Bi = (Qi, Σ, δi, q0, {q0}),where Qiis the set of i states {q0, q1, q2, . . . , qi−1}, and we design the
transition function δi so that for each j, if Biis in qj , the running sum is j, modulo i.For each qj letδi(qj , 0) = qj
,δi(qj , 1) = qk, where k = j + 1 modulo i,δi(qj , 2) = qk, where k = j + 2 modulo i, andδi(qj ,hRESETi) =
q0.FORMAL DEFINITION OF COMPUTATIONSo far we have described finite automata informally, using state
diagrams, andwith a formal definition, as a 5-tuple. The informal description is easier to graspat first, but the formal
definition is useful for making the notion precise, resolving any ambiguities that may have occurred in the informal
description. Next wedo the same for a finite automaton’s computation. We already have an informalidea of the way it
computes, and we now formalize it mathematically.Let M = (Q, Σ, δ, q0, F) be a finite automaton and let w = w1w2 ·
· · wn bea string where each wiis a member of the alphabet Σ. Then M accepts w if asequence of states r0, r1, . . . , rn
in Q exists with three conditions:1. r0 = q0,2. δ(ri, wi+1) = ri+1, for i = 0, . . . , n − 1, and3. rn ∈ F.Condition 1 says
that the machine starts in the start state. Condition 2 saysthat the machine goes from state to state according to the
transition function.Condition 3 says that the machine accepts its input if it ends up in an acceptstate. We say that M
recognizes language A if A = {w| M accepts w}.DEFINITION 1.16A language is called a regular language if some
finite automatonrecognizes it.
• Ambil mesin M5 dari Contoh 1.13. Biarkan w menjadi string10hRESETi22hRESETi012.Maka M5 menerima w sesuai dengan definisi formal
perhitungan karenaurutan status yang dimasuki saat komputasi pada w adalahq0, q1, q1, q0, q2, q1, q0, q0, q1, q0,yang memenuhi tiga syarat.
Bahasa M5 adalahL (M5) = {w | jumlah simbol dalam w adalah 0 modulo 3,kecuali bahwa hRESETi menyetel ulang penghitungan ke 0}.Karena
M5 mengenali bahasa ini, ini adalah bahasa biasa.MERANCANG AUTOMATA HINGGAApakah itu otomat atau karya seni, desain adalah
proses kreatif. Dengan demikian,itu tidak dapat direduksi menjadi resep atau formula sederhana. Namun, Anda mungkin
menemukannyapendekatan tertentu membantu ketika merancang berbagai jenis automata. Bahwaadalah, tempatkan diri Anda di tempat mesin
yang Anda coba desain dan kemudian lihatbagaimana Anda akan melakukan tugas mesin. Berpura-pura seperti itumesin adalah trik psikologis
yang membantu melibatkan seluruh pikiran Anda dalamproses desain.Mari kita merancang robot terbatas hingga menggunakan metode "reader as
automaton" sajadijelaskan. Misalkan Anda diberi beberapa bahasa dan ingin mendesain yang terbatasotomat yang mengenalinya. Berpura-pura
menjadi automaton, Anda menerimamasukan string dan harus menentukan apakah itu anggota bahasa tersebutotomat seharusnya dikenali. Anda
bisa melihat simbol dalam stringsatu per satu. Setelah setiap simbol, Anda harus memutuskan apakah string yang dilihat sejauh inidalam bahasa
Alasannya adalah bahwa Anda, seperti mesin, tidak tahu kapanakhir string akan datang, jadi Anda harus selalu siap dengan jawabannya.Pertama,
untuk membuat keputusan ini, Anda harus mencari tahu apa yang Anda butuhkanuntuk mengingat tentang string saat Anda membacanya.
Mengapa tidak mengingat saja begitu sajasemua yang kamu lihat? Ingatlah bahwa Anda berpura-pura menjadi robot yang terbatasdan bahwa
jenis mesin ini hanya memiliki sejumlah negara terbatas, yang berartimemori yang terbatas. Bayangkan bahwa inputnya sangat panjang —
katakanlah, dari sini hinggabulan — sehingga kamu tidak mungkin mengingat semuanya. Kamu punyamemori yang terbatas — katakanlah,
selembar kertas — yang memiliki kapasitas penyimpanan terbatas. Untungnya, untuk banyak bahasa Anda tidak perlu mengingat
keseluruhannyamemasukkan. Anda hanya perlu mengingat informasi penting tertentu. Tepatnya yang manainformasi sangat penting tergantung
pada bahasa tertentu yang dipertimbangkan.Misalnya, anggap alfabetnya adalah {0,1} dan bahasanya terdiridari semua string dengan jumlah
ganjil 1s. Anda ingin membuat otomat terbatasE1 untuk mengenali bahasa ini. Berpura-pura menjadi automaton, Anda mulai mengerti
• string input simbol 0s dan 1s demi simbol. Apakah Anda perlu mengingatSeluruh string terlihat sejauh ini
untuk menentukan apakah jumlah 1s ganjil?Tentu saja tidak. Cukup ingat apakah jumlah 1 yang terlihat sejauh
ini adalah genapatau aneh dan terus melacak informasi ini saat Anda membaca simbol baru. Jika Anda
membacaa 1, balikkan jawabannya; tetapi jika Anda membaca 0, biarkan jawabannya apa adanya.Tetapi
bagaimana ini membantu Anda merancang E1? Setelah Anda menentukan informasi yang diperlukan untuk
mengingat tentang string saat sedang dibaca, Anda mewakiliinformasi ini sebagai daftar kemungkinan yang
terbatas. Dalam hal ini, kemungkinanakan menjadi1. bahkan sejauh ini, dan2. aneh sejauh ini.Kemudian Anda
menetapkan negara bagian untuk setiap kemungkinan. Ini adalah negara bagian E1, sebagaiditunjukkan di
sini.GAMBAR 1.18Kedua negara qeven dan qoddSelanjutnya, Anda menetapkan transisi dengan melihat
bagaimana beralih dari satu kemungkinan ke yang lainlain saat membaca simbol. Jadi, jika state qeven
mewakili kemungkinan genapdan negara qodd mewakili kemungkinan aneh, Anda akan mengatur transisi ke
flipnyatakan 1 dan tetap pakai 0, seperti yang ditunjukkan di sini.GAMBAR 1.19Transisi menceritakan
bagaimana kemungkinan mengatur ulangSelanjutnya, Anda mengatur negara mulai menjadi negara yang sesuai
dengan kemungkinandikaitkan dengan telah melihat 0 simbol sejauh ini (string kosong ε). Pada kasus
ini,keadaan awal berhubungan dengan keadaan qeven karena 0 adalah bilangan genap. Terakhir, aturnegara
yang menerima menjadi yang sesuai dengan kemungkinan di mana Anda inginterima string input. Tetapkan
qodd menjadi status terima karena Anda ingin menerima
• ketika Anda telah melihat angka ganjil dari 1s. Penambahan ini ditunjukkan digambar berikut.GAMBAR
1.20Menambahkan status mulai dan terimaCONTOH 1.21Contoh ini menunjukkan bagaimana merancang E2 otomat
terbatas untuk mengenali bahasa reguler semua string yang berisi string 001 sebagai substring. Sebagai contoh,0010,
1001, 001, dan 11111110011111 semuanya dalam bahasa ini, tetapi 11 dan 0000tidak. Bagaimana Anda mengenali
bahasa ini jika Anda berpura-puramenjadi E2? Saat simbol masuk, Anda awalnya akan melewati semua 1s. Kalau
kamu datangke 0, maka Anda perhatikan bahwa Anda mungkin baru saja melihat yang pertama dari tiga
simboldalam pola 001 yang Anda cari. Jika pada titik ini Anda melihat angka 1, ada jugabeberapa 0s, jadi Anda
kembali melompati 1s. Tetapi jika Anda melihat 0 pada saat itu, Andaharus ingat bahwa Anda baru saja melihat dua
simbol pola. Kamu sekaranghanya perlu melanjutkan pemindaian sampai Anda melihat 1. Jika Anda
menemukannya, ingat ituAnda berhasil menemukan pola dan terus membaca string input hinggaAnda sampai
akhir.Jadi ada empat kemungkinan: Anda1. belum melihat simbol pola apa pun,2. baru saja melihat 0,3. baru saja
melihat 00, atau4. telah melihat seluruh pola 001.Tetapkan status q, q0, q00, dan q001 untuk kemungkinan ini. Anda
dapat menetapkantransisi dengan mengamati bahwa dari q membaca 1 Anda tetap di q, tetapi membaca 0
Andapindah ke q0. Dalam q0 membaca 1 Anda kembali ke q, tetapi membaca 0 Anda pindah ke q00.Di q00
membaca 1 Anda pindah ke q001, tetapi membaca 0 membuat Anda di q00. Akhirnya, diq001 membaca 0 atau 1
membuat Anda di q001. Status awal adalah q, dan satu-satunya yang menerimastate adalah q001, seperti yang
ditunjukkan pada Gambar 1.22.
• Menerima string yang berisi 001OPERASI REGULERDalam dua bagian sebelumnya, kami memperkenalkan
dan mendefinisikan automata terbatas danbahasa reguler. Kami sekarang mulai menyelidiki propertinya.
Melakukannya akanmembantu mengembangkan kotak peralatan teknik untuk merancang automata untuk
mengenali bahasa tertentu. Toolbox juga akan mencakup cara untuk membuktikan hal itubahasa tidak teratur
(mis., di luar kemampuan automata terbatas).Dalam aritmatika, objek dasar adalah angka dan alat untuk
operasimemanipulasi mereka, seperti + dan ×. Dalam teori perhitungan, objek adalah bahasa dan alat termasuk
operasi yang dirancang khusus untukmemanipulasi mereka. Kami mendefinisikan tiga operasi pada bahasa,
disebut operasi reguler, dan menggunakannya untuk mempelajari properti dari bahasa biasa.DEFINISI
1.23Biarkan A dan B menjadi bahasa. Kami mendefinisikan serikat operasi reguler,penggabungan, dan bintangi
sebagai berikut:• Union: A ∪ B = {x | x ∈ A atau x ∈ B}.• Rangkai: A ◦ B = {xy | x ∈ A dan y ∈ B}.• Bintang:
A ∗ = {x1x2. . . xk | k ≥ 0 dan masing-masing xi ∈ A}.Anda sudah terbiasa dengan operasi serikat. Ini hanya
membutuhkan semuastring dalam A dan B dan menggabungnya menjadi satu bahasa.Operasi penyatuan sedikit
rumit. Itu melampirkan string dari Adi depan string dari B dalam semua cara yang mungkin untuk
mendapatkan string di yang barubahasa.Operasi bintang agak berbeda dari dua lainnya karena berlaku
untuksatu bahasa daripada dua bahasa yang berbeda. Yaitu, operasi bintang adalah operasi unary, bukan operasi
biner. Ini bekerja dengan melampirkansejumlah string dalam A bersama-sama untuk mendapatkan string dalam
bahasa baru. Karena
• "Nomor apa saja" termasuk 0 sebagai kemungkinan, string kosong ε selalu menjadi anggotadari A ∗, tidak peduli apa A.CONTOH
1.24Biarkan alfabet Σ menjadi 26 huruf standar {a, b,. . . , z}. Jika A = {baik, buruk}dan B = {anak laki-laki, perempuan}, laluA ∪ B
= {baik, buruk, laki-laki, perempuan},A ◦ B = {goodboy, goodgirl, badboy, badgirl}, danA ∗ = {ε, baik, buruk, goodgood, goodbad,
badgood, badbad,goodgoodgood, goodgoodbad, goodbadgood, goodbadbad,. . . }.Misalkan N = {1, 2, 3,. . . } menjadi himpunan
bilangan asli. Ketika kita mengatakan bahwa Nditutup dengan perkalian, yang kami maksudkan adalah untuk setiap x dan y dalam N,
produkx × y juga dalam N. Sebaliknya, N tidak ditutup di bawah divisi, seperti 1 dan 2dalam N tetapi 1/2 tidak. Secara umum,
koleksi benda ditutup di bawahbeberapa operasi jika menerapkan operasi itu kepada anggota koleksi mengembalikansebuah objek
masih dalam koleksi. Kami menunjukkan bahwa koleksi bahasa biasaditutup di bawah ketiga operasi reguler. Di Bagian 1.3, kami
menunjukkan ituini adalah alat yang berguna untuk memanipulasi bahasa reguler dan memahamikekuatan automata terbatas. Kami
mulai dengan operasi serikat.THEOREM 1.25Kelas bahasa reguler ditutup di bawah operasi serikat.Dengan kata lain, jika A1 dan A2
adalah bahasa biasa, maka A1 ∪ A2.BUKTI BUKTI Kami memiliki bahasa reguler A1 dan A2 dan ingin menunjukkannyaA1 ∪A2
juga teratur. Karena A1 dan A2 adalah teratur, kita tahu bahwa beberapa terbatasautomaton M1 mengenali A1 dan beberapa otomat
terbatas M2 mengenali A2. Untukbuktikan bahwa A1 ∪ A2 adalah biasa, kami mendemonstrasikan otomat terbatas, sebut saja M,
itumengenali A1 ∪ A2.Ini adalah bukti dari konstruksi. Kami membangun M dari M1 dan M2. MesinM harus menerima inputnya
tepat ketika M1 atau M2 akan menerimanya secara berurutanuntuk mengenali bahasa serikat. Ia bekerja dengan mensimulasikan M1
dan M2 danmenerima jika salah satu dari simulasi menerima.Bagaimana kita bisa membuat mesin M mensimulasikan M1 dan M2?
Mungkin pertama kali disimulasikanM1 pada input dan kemudian mensimulasikan M2 pada input. Tapi kita harus hati-hatisini!
Setelah simbol input telah dibaca dan digunakan untuk mensimulasikan M1,kita tidak dapat "memundurkan kaset input" untuk
mencoba simulasi pada M2. Kita butuh yang lainpendekatan
• Berpura-puralah Anda M. Ketika simbol input tiba satu per satu, Anda mensimulasikanbaik M1 dan M2 secara bersamaan. Dengan begitu,
hanya satu yang melewati input tersebutperlu. Tetapi dapatkah Anda melacak kedua simulasi dengan memori yang terbatas? Semuayang
perlu Anda ingat adalah keadaan di mana setiap mesin akan berada jika sudah membacahingga saat ini di input. Karena itu, Anda perlu
mengingat sepasang kondisi.Berapa banyak pasangan yang mungkin ada? Jika M1 memiliki status k1 dan M2 memiliki status k2,
makajumlah pasangan negara, satu dari M1 dan yang lainnya dari M2, adalah produkk1 × k2. Produk ini akan menjadi jumlah negara
bagian dalam M, satu untuk setiap pasangan. Itutransisi M pergi dari pasangan ke pasangan, memperbarui keadaan saat ini untuk M1
danM2. Status penerimaan M adalah pasangan di mana M1 atau M2 berada dalam sebuahterima negara.BUKTIBiarkan M1 mengenali A1,
di mana M1 = (Q1, Σ, δ1, q1, F1), danM2 mengenali A2, di mana M2 = (Q2, Σ, δ2, q2, F2).Bangun M untuk mengenali A1 ∪ A2, di mana
M = (Q, Σ, δ, q0, F).1. Q = {(r1, r2) | r1 ∈ Q1 dan r2 ∈ Q2}.Set ini adalah produk Cartesian dari set Q1 dan Q2 dan ditulis Q1 × Q2.Ini
adalah himpunan semua pasangan negara, yang pertama dari Q1 dan yang kedua dari Q2.2. Σ, alfabetnya, sama dengan di M1 dan M2.
Dalam teorema ini dan semuanyateorema serupa berikutnya, kami menganggap untuk kesederhanaan bahwa M1 danM2 memiliki alfabet
input yang sama Σ. Teorema tetap benar jika merekamemiliki huruf yang berbeda, Σ1 dan Σ2. Kami kemudian akan memodifikasi buktinya
menjadibiarkan Σ = Σ1 ∪ Σ2.3. δ, fungsi transisi, didefinisikan sebagai berikut. Untuk setiap (r1, r2) ∈ Q danmasing-masing ∈ Σ,
biarkanδ(r1, r2), a=δ1 (r1, a), δ2 (r2, a).Karenanya δ mendapat status M (yang sebenarnya adalah pasangan status dari M1 danM2), bersama
dengan simbol input, dan mengembalikan status M berikutnya.4. q0 adalah pasangan (q1, q2).5. F adalah himpunan pasangan di mana
salah satu anggota adalah negara penerima M1 atau M2.Kita bisa menuliskannya sebagaiF = {(r1, r2) | r1 ∈ F1 atau r2 ∈ F2}.Ungkapan
ini sama dengan F = (F1 × Q2) ∪ (Q1 × F2). (Catat itutidak sama dengan F = F1 × F2. Apa yang akan memberi kita sebagai gantinya?)3
Ungkapan ini akan mendefinisikan negara yang menerima M sebagai negara tempat kedua anggotapasangan menerima status. Dalam hal
ini, M akan menerima string hanya jika M1 dan M2menerimanya, jadi bahasa yang dihasilkan akan menjadi persimpangan dan bukan
persatuan. Faktanya,hasil ini membuktikan bahwa kelas bahasa reguler ditutup di bawah persimpangan
• Ini menyimpulkan konstruksi M otomat terbatas yang mengakuipenyatuan A1 dan A2. Konstruksi ini cukup sederhana, dan dengan
demikian kebenarannya terlihat dari strategi yang dijelaskan dalam ide bukti. Lebih rumitkonstruksi membutuhkan diskusi tambahan untuk
membuktikan kebenaran. Bukti kebenaran formal untuk konstruksi jenis ini biasanya hasil dengan induksi. Untukcontoh konstruksi terbukti
benar, lihat bukti Teorema 1.54.Sebagian besar konstruksi yang akan Anda temui dalam kursus ini cukup sederhanadan karenanya tidak
memerlukan bukti kebenaran formal.Kami baru saja menunjukkan bahwa penyatuan dua bahasa reguler adalah biasamembuktikan bahwa
kelas bahasa reguler ditutup di bawah operasi serikat pekerja.Kami sekarang beralih ke operasi gabungan dan berusaha menunjukkan kelas
itubahasa reguler ditutup di bawah operasi itu juga.THEOREM 1.26Kelas bahasa reguler ditutup di bawah operasi gabungan.Dengan kata
lain, jika A1 dan A2 adalah bahasa biasa maka A1 juga ◦ A2.Untuk membuktikan teorema ini, mari kita coba sesuatu di sepanjang garis
pembuktiankasus serikat pekerja. Seperti sebelumnya, kita bisa mulai dengan automata terbatas M1 dan M2 yang mengenalibahasa biasa A1
dan A2. Tapi sekarang, bukannya membangun robotM untuk menerima inputnya jika M1 atau M2 menerima, ia harus menerima jika
inputnya dapatdipecah menjadi dua bagian, di mana M1 menerima bagian pertama dan M2 menerima bagianbagian kedua. Masalahnya
adalah bahwa M tidak tahu di mana harus memecah inputnya(mis., di mana bagian pertama berakhir dan yang kedua dimulai). Untuk
mengatasi masalah ini, kamimemperkenalkan teknik baru yang disebut nondeterminisme.1.2NETETERMINISMENondeterminisme adalah
konsep yang berguna yang memiliki dampak besar pada teorikomputasi. Sejauh ini dalam diskusi kita, setiap langkah perhitungan
mengikuti acara unik dari langkah sebelumnya. Ketika mesin dalam kondisi tertentu danmembaca simbol input berikutnya, kita tahu seperti
apa keadaan selanjutnya — ditentukan. Kami menyebut perhitungan deterministik ini. Dalam mesin nondeterministic,beberapa pilihan
mungkin ada untuk keadaan selanjutnya pada titik mana pun.Nondeterminisme adalah generalisasi determinisme, sehingga setiap
deterministikfinite automaton secara otomatis merupakan otomat hingga nondeterministis. Seperti ditunjukkan pada Gambar 1.27, automata
terbatas nondeterministic mungkin memiliki fitur tambahan.
• Otomat terbatas nondeterministik N1Perbedaan antara otomat terbatas deterministik, disingkat DFA,dan otomat terbatas nondeterministik,
disingkat NFA, segera terlihat. Pertama, setiap keadaan DFA selalu memiliki tepat satu panah transisi yang keluaruntuk setiap simbol dalam alfabet.
NFA yang ditunjukkan pada Gambar 1.27 melanggar ituaturan. Status q1 memiliki satu panah keluar untuk 0, tetapi memiliki dua untuk 1; q2
memiliki satu panahuntuk 0, tetapi tidak ada untuk 1. Dalam NFA, negara mungkin memiliki nol, satu, atau banyakkeluar panah untuk setiap
simbol alfabet.Kedua, dalam DFA, label pada panah transisi adalah simbol dari alfabet. NFA ini memiliki panah dengan label ε. Secara umum, NFA
mungkin memiliki panahdilabeli dengan anggota alfabet atau ε. Nol, satu, atau banyak panah dapat keluardari setiap negara bagian dengan label
ε.Bagaimana cara NFA menghitung? Misalkan kita menjalankan NFA pada inputmerangkai dan datang ke negara dengan beberapa cara untuk
melanjutkan. Sebagai contoh, katakan itukita berada dalam keadaan q1 dalam NFA N1 dan bahwa simbol input berikutnya adalah 1. Setelah
membacasimbol itu, mesin terbagi menjadi beberapa salinan dari dirinya sendiri dan mengikuti semuakemungkinan secara paralel. Setiap salinan
mesin mengambil salah satu cara yang mungkinuntuk melanjutkan dan melanjutkan seperti sebelumnya. Jika ada pilihan selanjutnya, mesinpecah
lagi. Jika simbol input berikutnya tidak muncul pada salah satu panah yang keluarnegara ditempati oleh salinan mesin, salinan mesin mati,
bersamadengan cabang perhitungan yang terkait dengannya. Akhirnya, jika salah satunyasalinan mesin berada dalam keadaan terima pada akhir
input, NFA menerimastring input.Jika keadaan dengan simbol ε pada panah yang keluar ditemui, sesuatuserupa terjadi. Tanpa membaca input apa
pun, mesin terbagi menjadi beberapasalinan, satu mengikuti masing-masing panah berlabel ε yang keluar dan satu tetap dikondisi saat ini.
Kemudian mesin melanjutkan secara non-deterministik seperti sebelumnya.Nondeterminisme dapat dipandang sebagai semacam komputasi paralel
dimanabeberapa "proses" atau "utas" independen dapat berjalan secara bersamaan.Ketika NFA berpisah untuk mengikuti beberapa pilihan, itu
sesuai dengan suatu proses"Memalsukan" ke beberapa anak, masing-masing melanjutkan secara terpisah. Jika setidaknya satuproses ini menerima,
lalu seluruh perhitungan menerima.Cara lain untuk memikirkan perhitungan nondeterministik adalah sebagai pohon kemungkinan. Akar pohon
sesuai dengan awal perhitungan. Setiaptitik percabangan di pohon sesuai dengan titik dalam perhitungan di manamesin memiliki banyak pilihan.
Mesin menerima jika setidaknya satu daricabang perhitungan berakhir dalam keadaan terima, seperti yang ditunjukkan pada Gambar 1.28.
• Deterministic and nondeterministic computations with an acceptingbranchLet’s consider some sample
runs of the NFA N1 shown in Figure 1.27. Thecomputation of N1 on input 010110 is depicted in the
following figure.FIGURE 1.29The computation of N1 on input 010110
• Pada input 010110, mulailah dalam status awal q1 dan baca simbol pertama 0. Dariq1 hanya ada satu tempat untuk 0 -
yaitu, kembali ke q1 - jadi tetap di sana.Selanjutnya, baca simbol kedua 1. Dalam q1 pada 1 ada dua pilihan: tinggal
diq1 atau pindah ke q2. Tanpa ragu, mesin terbagi dua untuk mengikuti masing-masingpilihan. Melacak kemungkinan
dengan menempatkan jari pada setiap negara di mana amesin bisa. Jadi sekarang Anda memiliki jari pada status q1 dan
q2. Panah ε keluarnyatakan q2 sehingga mesin terbelah lagi; pertahankan satu jari pada q2, dan gerakkan jari lainnyake
q3. Anda sekarang memiliki jari pada q1, q2, dan q3.Saat simbol ketiga 0 dibaca, ambil masing-masing jari secara
bergantian. Jaga jaripada q1 di tempat, gerakkan jari pada q2 ke q3, dan lepaskan jari yang telahpada q3. Jari terakhir itu
tidak memiliki panah 0 untuk diikuti dan sesuai dengan suatu prosesitu hanya "mati." Pada titik ini, Anda memiliki jari
pada status q1 dan q3.Saat simbol keempat 1 dibaca, pisahkan jari pada q1 menjadi jari pada statusq1 dan q2, kemudian
lebih lanjut membagi jari pada q2 untuk mengikuti panah ε ke q3, dangerakkan jari yang ada di q3 ke q4. Anda sekarang
memiliki jari pada masing-masing dari empatmenyatakan.Ketika simbol kelima 1 dibaca, jari pada q1 dan q3
menghasilkan jarimenyatakan q1, q2, q3, dan q4, seperti yang Anda lihat dengan simbol keempat. Jari pada keadaanq2
dihapus. Jari yang ada di q4 tetap di q4. Sekarang kamu punya dua jaripada q4, jadi hapus satu karena Anda hanya perlu
mengingat bahwa q4 adalah mungkinnyatakan pada titik ini, bukan karena dimungkinkan karena berbagai alasan.Ketika
simbol keenam dan terakhir 0 terbaca, tetap gunakan jari pada q1,pindahkan yang di q2 ke q3, hapus yang di q3, dan
biarkan yang diq4 di tempat. Anda sekarang berada di ujung tali, dan Anda menerima jika ada jaripada kondisi terima.
Anda memiliki jari pada status q1, q3, dan q4; dan sebagai q4 adalah menerimamenyatakan, N1 menerima string ini.
• Apa yang dilakukan N1 pada input 010? Mulailah dengan jari pada q1. Setelah membaca0, Anda masih
memiliki jari hanya pada q1; tapi setelah 1 ada jari pada q1, q2,dan q3 (jangan lupakan panah ε). Setelah
simbol ketiga 0, lepaskan jaripada q3, gerakkan jari pada q2 ke q3, dan biarkan jari pada q1 di tempatnya.
Inititik Anda berada di akhir input; dan karena tidak ada jari pada status penerimaan, N1menolak input
ini.Dengan terus bereksperimen dengan cara ini, Anda akan melihat bahwa N1 menerima semuastring yang
berisi 101 atau 11 sebagai substring.Automata hingga non-deterministik berguna dalam beberapa hal. Seperti
yang kita akanmenunjukkan, setiap NFA dapat dikonversi menjadi DFA yang setara, dan membangunNFA
terkadang lebih mudah daripada membangun DFA secara langsung. NFA mungkin banyaklebih kecil dari
mitra deterministiknya, atau fungsinya mungkin lebih mudahmemahami. Nondeterminisme dalam automata
terbatas juga merupakan pengantar yang bagusuntuk nondeterminisme dalam model komputasi yang lebih
kuat karena automata terbatas sangat mudah dimengerti. Sekarang kita beralih ke beberapa contohNFA.
• Misalkan A adalah bahasa yang terdiri dari semua string di atas {0,1} yang mengandung 1 di dalamposisi
ketiga dari akhir (mis., 000100 dalam A tetapi 0011 tidak). Pengikutempat-negara NFA N2 mengakui
A.GAMBAR 1.31NFA N2 mengenali ASalah satu cara yang baik untuk melihat perhitungan NFA ini adalah
dengan mengatakan bahwa ia tetap berada dalammulai keadaan q1 sampai "menebak" bahwa ini adalah tiga
tempat dari akhir. Pada titik itu,jika simbol input adalah 1, ia bercabang untuk menyatakan q2 dan
menggunakan q3 dan q4 untuk "memeriksa"apakah tebakannya benar.Seperti disebutkan, setiap NFA dapat
dikonversi menjadi DFA yang setara; tetapi kadang-kadang DFA itu mungkin memiliki lebih banyak negara.
DFA terkecil untuk A mengandungdelapan negara. Selain itu, memahami fungsi NFA jauhlebih mudah, seperti
yang Anda lihat dengan memeriksa gambar berikut untuk DFA.GAMBAR 1.32A DFA yang mengakui
AMisalkan kita menambahkan ε ke label pada panah dari q2 ke q3 dandari q3 ke q4 dalam mesin N2 pada
Gambar 1.31. Jadi kedua panah itu akan memilikilabel 0, 1, ε bukan hanya 0, 1. Bahasa apa yang akan dikenali
N2 dengan inimodifikasi? Coba modifikasi DFA pada Gambar 1.32 untuk mengenali bahasa itu.
• NFA N3 berikut memiliki alfabet input {0} yang terdiri dari satu simbol.Alfabet yang hanya mengandung satu
simbol disebut alfabet unary.GAMBAR 1.34NFA N3Mesin ini menunjukkan kenyamanan memiliki panah ε.
Itu menerimasemua string dari bentuk 0k di mana k adalah kelipatan 2 atau 3. (Ingat bahwasuperscript
menunjukkan pengulangan, bukan eksponensial numerik.) Misalnya, N3menerima string ε, 00, 000, 0000, dan
000000, tetapi tidak 0 atau 00000.Pikirkan mesin yang beroperasi dengan menebak pada awalnya apakah akan
menguji akelipatan 2 atau kelipatan 3 dengan bercabang ke salah satu loop atas atau loop bawah dan kemudian
memeriksa apakah tebakannya benar. Tentu saja kita bisaganti mesin ini dengan yang tidak memiliki panah ε
atau bahkan nondeterminisme sama sekali, tetapi mesin yang ditampilkan adalah yang paling mudah untuk
memahami hal inibahasa.CONTOH 1.35Kami memberikan contoh lain dari NFA pada Gambar 1.36.
Berlatihlah dengan itu untuk memuaskansendiri bahwa ia menerima string ε, a, baba, dan baa, tetapi ia tidak
menerima string b, bb, dan babba. Nanti kita menggunakan mesin ini untuk menggambarkanprosedur untuk
mengubah NFA menjadi DFA.
• DEFINISI FORMAL DARI AOTOMATIS TINGGI NONDETERMINISTIKDefinisi formal dari
otomat terbatas nondeterministik mirip denganotomat terbatas deterministik. Keduanya memiliki
status, alfabet input, transisifungsi, status awal, dan kumpulan status terima. Namun, mereka
berbedasatu cara penting: dalam jenis fungsi transisi. Dalam DFA, transisifungsi mengambil status
dan simbol input dan menghasilkan status berikutnya. Dalam sebuahNFA, fungsi transisi mengambil
status dan simbol input atau string kosongdan menghasilkan set kemungkinan status selanjutnya.
Untuk menulis definisi formal,kita perlu mengatur beberapa notasi tambahan. Untuk setiap set Q kita
menulis P (Q) menjadikoleksi semua himpunan bagian dari Q. Di sini P (Q) disebut set daya Q.
Untuk setiapalfabet Σ kita menulis Σε menjadi Σ ∪ {ε}. Sekarang kita bisa menulis deskripsi
formaldari jenis fungsi transisi dalam NFA sebagai δ: Q × Σε− → P (Q).DEFINISI 1.37Otomat
terbatas nondeterministik adalah 5-tupel (Q, Σ, δ, q0, F),dimana1. Q adalah sekumpulan negara yang
terbatas,2. Σ adalah alfabet terbatas,3. δ: Q × Σε− → P (Q) adalah fungsi transisi,4. q0 ∈ Q adalah
status awal, dan5. F ⊆ Q adalah set status terima.
• Ingat NFA N1:Deskripsi formal N1 adalah (Q, Σ, δ, q1, F), di mana1. Q = {q1, q2, q3, q4},2. Σ = {0,1},3. δ
diberikan sebagai 0 1 εq1 {q1} {q1, q2} ∅q2 {q3} ∅ {q3}q3 ∅ {q4} ∅q4 {q4} {q4} ∅,4. q1 adalah
kondisi awal, dan5. F = {q4}.Definisi formal perhitungan untuk NFA mirip dengan definisi untuk
DFA.Biarkan N = (Q, Σ, δ, q0, F) menjadi NFA dan w string di atas alfabet Σ. Kemudiankita mengatakan
bahwa N menerima w jika kita dapat menulis w sebagai w = y1y2 · · · ym, di mana setiap yiadalah anggota
dari Σε dan urutan keadaan r0, r1,. . . , rm ada di Q dengan tigakondisi:1. r0 = q0,2. ri + 1 ∈ δ (ri, yi + 1),
untuk i = 0,. . . , m - 1, dan3. rm ∈ F.Kondisi 1 mengatakan bahwa mesin memulai dalam kondisi awal.
Kata Kondisi 2status ri +1 adalah salah satu status selanjutnya yang diizinkan ketika N dalam status ri dan
bacaanyi + 1. Perhatikan itu δ (ri, yi + 1) adalah himpunan status selanjutnya yang diizinkan dan kami
katakan ituri + 1 adalah anggota dari set itu. Akhirnya, kondisi 3 mengatakan bahwa mesin
menerimainputnya jika status terakhir adalah status terima.EKUIVALENSI NFAS DAN DFASAutomata
terbatas deterministic dan nondeterministic mengenali kelas yang samabahasa. Kesetaraan semacam itu
mengejutkan sekaligus bermanfaat. Mengejutkan karena NFA tampaknya memiliki kekuatan lebih dari
DFA, jadi kita mungkin mengharapkan NFAkenali lebih banyak bahasa. Ini berguna karena
menggambarkan NFA untuk diberikanBahasa terkadang jauh lebih mudah daripada menggambarkan DFA
untuk bahasa itu.Katakan bahwa dua mesin setara jika mereka mengenali bahasa yang sama.
• Setiap robot hingga nondeterministic memiliki finit deterministik yang setaraotomat.BUKTI BUKTI Jika suatu bahasa dikenali oleh NFA,
maka kita harus menunjukkankeberadaan DFA yang juga mengenalinya. Idenya adalah untuk mengubah NFA menjadiDFA setara yang
mensimulasikan NFA.Ingat strategi "reader as automaton" untuk merancang automata terbatas. Bagaimanaapakah Anda akan
mensimulasikan NFA jika Anda berpura-pura menjadi DFA? Apa yang kamuperlu melacak karena string input diproses? Dalam contoh
NFA,Anda melacak berbagai cabang perhitungan dengan meletakkan jaripada setiap negara yang bisa aktif pada titik yang diberikan dalam
input. Anda memperbaruisimulasi dengan menggerakkan, menambah, dan melepas jari sesuai dengan caraNFA beroperasi. Yang Anda
butuhkan untuk melacak adalah set negara memiliki jaripada mereka.Jika k adalah jumlah status NFA, ia memiliki 2khimpunan bagian dari
negara. Setiap subsetsesuai dengan salah satu kemungkinan yang harus diingat DFA, demikian juga DFAmensimulasikan NFA akan
memiliki 2kmenyatakan. Sekarang kita perlu mencari tahu mana yang akanmenjadi negara awal dan menerima negara DFA, dan apa yang
akan menjadi transisifungsi. Kita dapat membahas ini dengan lebih mudah setelah menyiapkan beberapa notasi formal.BUKTI Biarkan N =
(Q, Σ, δ, q0, F) menjadi NFA yang mengenali beberapa bahasa A.Kami membangun DFA M = (Q0, Σ, δ0, q00, F0) mengakui A. Sebelum
melakukan penuhkonstruksi, mari kita pertimbangkan kasus yang lebih mudah di mana N tidak memiliki panah s. Kemudiankami
memperhitungkan panah ε.1. Q0 = P (Q).Setiap keadaan M adalah seperangkat keadaan N. Ingat bahwa P (Q) adalah himpunanhimpunan
bagian dari Q.2. Untuk R ∈ Q0dan ∈ Σ, biarkan δ0(R, a) = {q ∈ Q | q ∈ δ (r, a) untuk beberapa r ∈ R}.Jika R adalah keadaan M, itu juga
seperangkat keadaan N. Saat M membaca simboldalam keadaan R, ini menunjukkan di mana a mengambil setiap keadaan dalam R. Karena
masing-masing keadaan mungkinpergi ke satu set negara, kami mengambil penyatuan semua set ini. Cara lain untuktulis ungkapan iniδ0(R,
a) = [r∈Rδ (r, a).43. q00 = {q0}.M dimulai dalam keadaan yang sesuai dengan koleksi yang hanya berisimulai keadaan N.4. F0 = {R ∈
Q0| R berisi status penerimaan N}.Mesin M menerima jika salah satu kemungkinan menyatakan bahwa N bisa masuktitik ini adalah
keadaan terima.4 Notasi [r ∈Rδ (r, a) berarti: penyatuan himpunan δ (r, a) untuk setiap kemungkinan r dalam R.
• Sekarang kita perlu mempertimbangkan panah ε. Untuk melakukannya, kami menyiapkan sedikit tambahannotasi. Untuk negara bagian R,
kami mendefinisikan E (R) sebagai kumpulan negarayang dapat dijangkau dari anggota R hanya dengan menyusuri panah ε,
termasukanggota R sendiri. Secara formal, untuk R ⊆ Q biarkanE (R) = {q | q dapat dicapai dari R dengan melakukan perjalanan sepanjang 0
atau lebih panah ε}.Kemudian kita memodifikasi fungsi transisi M untuk menempatkan jari tambahan di semuamenyatakan bahwa dapat
dicapai dengan menyusuri panah ε setelah setiap langkah. Menggantiδ (r, a) oleh E (δ (r, a)) mencapai efek ini. Jadiδ0(R, a) = {q ∈ Q | q ∈ E
(δ (r, a)) untuk beberapa r ∈ R}.Selain itu, kita perlu memodifikasi keadaan awal M untuk menggerakkan jari pada awalnya ke semua
kemungkinan keadaan yang dapat dicapai dari keadaan awal N sepanjangpanah ε. Mengubah q00menjadi E ({q0}) mencapai efek ini. Kita
punya sekarangmenyelesaikan pembangunan DFA M yang mensimulasikan NFA N.Konstruksi M jelas bekerja dengan benar. Pada setiap
langkah dalam perhitungan M pada input, itu jelas memasuki negara yang sesuai dengan subsetmenyatakan bahwa N bisa berada di titik itu.
Dengan demikian bukti kami lengkap.Teorema 1.39 menyatakan bahwa setiap NFA dapat dikonversi menjadi DFA yang setara.Jadi automata
terbatas nondeterministic memberikan cara karakterisasi alternatifbahasa reguler. Kami menyatakan fakta ini sebagai akibat wajar dari
Teorema 1.39.COROLLARY 1.40Suatu bahasa adalah biasa jika dan hanya jika beberapa otomat terbatas nondeterministik
mengenalinya.Satu arah kondisi "jika dan hanya jika" menyatakan bahwa suatu bahasa adalah teraturjika beberapa NFA mengenalinya.
Teorema 1.39 menunjukkan bahwa NFA dapat dikonversimenjadi DFA yang setara. Akibatnya, jika NFA mengenali beberapa bahasa,
makamelakukan beberapa DFA, dan karenanya bahasa tersebut teratur. Arah lain dariKondisi “jika dan hanya jika” menyatakan bahwa suatu
bahasa hanya reguler jika beberapa NFA mengenalinya. Artinya, jika suatu bahasa biasa, beberapa NFA harus mengenalinya.Jelas, kondisi ini
benar karena bahasa biasa memiliki DFA yang mengenalinya dan DFA apa pun juga merupakan NFA.CONTOH 1.41Mari kita ilustrasikan
prosedur yang kami berikan dalam bukti Teorema 1.39 untuk mengubah NFA menjadi DFA dengan menggunakan mesin N4 yang muncul
dalam Contoh 1.35. Untukkejelasan, kami telah menabel ulang status N4 menjadi {1, 2, 3}. Demikian secara formaldeskripsi N4 = (Q, {a,
b}, δ, 1, {1}), set status Q adalah {1, 2, 3} seperti yang ditunjukkanpada Gambar 1.42.
• Untuk membuat DFA D yang setara dengan N4, pertama-tama kita menentukan status D.N4 memiliki tiga status, {1, 2, 3},
jadi kami membangun D dengan delapan status, satu untuk masing-masingbagian dari status N4. Kami memberi label pada
masing-masing negara D dengan subset yang sesuai.Dengan demikian keadaan set D adalah∅, {1}, {2}, {3}, {1,2}, {1,3},
{2,3}, {1,2,3}.GAMBAR 1.42NFA N4Selanjutnya, kami menentukan awal dan menerima status D. Status awal adalah E
({1}),himpunan negara yang dapat dijangkau dari 1 dengan melakukan perjalanan di sepanjang panah ε, ditambah 1diri.
Panah ε berubah dari 1 menjadi 3, jadi E ({1}) = {1, 3}. Status penerimaan yang baruadalah yang mengandung status
penerimaan N4; dengan demikian{1}, {1,2}, {1,3}, {1,2,3}.Akhirnya, kami menentukan fungsi transisi D. Masing-masing
status D berlaku untuk satuletakkan pada input a dan satu tempat pada input b. Kami menggambarkan proses penentuan
penempatan panah transisi D dengan beberapa contoh.Dalam D, status {2} pergi ke {2,3} pada input a karena di N4, status 2
pergi ke keduanya 2dan 3 pada input a dan kita tidak bisa melangkah lebih jauh dari 2 atau 3 sepanjang panah ε. Negara
{2}pergi ke state {3} pada input b karena di N4, state 2 hanya menuju state 3 pada inputb dan kita tidak bisa melangkah lebih
jauh dari 3 di sepanjang panah ε.Status {1} menuju ke ∅ pada a karena tidak ada panah yang keluar. Ia pergi ke {2} pada
b.Perhatikan bahwa prosedur dalam Teorema 1.39 menentukan bahwa kita mengikuti panah εsetelah setiap simbol input
dibaca. Prosedur alternatif berdasarkan mengikutiPanah ε sebelum membaca setiap simbol input bekerja dengan baik, tetapi
metode itutidak diilustrasikan dalam contoh ini.Status {3} pergi ke {1,3} pada a karena di N4, status 3 pergi ke 1 pada a dan
1 inbelok ke 3 dengan panah ε. Negara {3} pada b menuju ke ∅.Nyatakan {1,2} pada jalan ke {2,3} karena 1 poin tanpa
status dengan panah,2 poin pada 2 dan 3 dengan panah, dan tidak ada titik di mana saja dengan panah ε. Negara {1,2} pada b
menuju ke {2,3}. Melanjutkan dengan cara ini, kami memperolehdiagram untuk D pada Gambar 1.43.
• DFA D yang setara dengan NFA N4Kami dapat menyederhanakan mesin ini dengan mengamati bahwa
tidak ada panah yang menunjukkan status {1}dan {1, 2}, sehingga dapat dihapus tanpa memengaruhi
kinerjamesin. Melakukannya menghasilkan gambar berikut.GAMBAR 1.44DFA D setelah menghapus
status yang tidak perluPENUTUPAN DI BAWAH OPERASI REGULERSekarang kita kembali ke
penutupan kelas bahasa reguler di bawah reguleroperasi yang kami mulai di Bagian 1.1. Tujuan kami
adalah untuk membuktikan bahwa serikat pekerja,penggabungan, dan bintang bahasa reguler masih
teratur. Kami meninggalkanUpaya awal untuk melakukannya ketika berhadapan dengan operasi
gabungan jugarumit. Penggunaan nondeterminisme membuat buktinya jauh lebih mudah.Pertama,
mari pertimbangkan lagi penutupan di bawah penyatuan. Sebelumnya kami membuktikan penutupandi
bawah penyatuan dengan mensimulasikan secara deterministik kedua mesin secara bersamaan
viasebuah konstruksi produk Cartesian. Kami sekarang memberikan bukti baru untuk menggambarkan
• teknik nondeterminisme. Meninjau bukti pertama, muncul di halaman 45,mungkin bermanfaat untuk
melihat betapa lebih mudah dan lebih intuitif buktinya yang baru.THEOREM 1.45Kelas bahasa reguler
ditutup di bawah operasi serikat.BUKTI BUKTI Kami memiliki bahasa reguler A1 dan A2 dan ingin
membuktikannyaA1 ∪ A2 teratur. Idenya adalah untuk mengambil dua NFA, N1 dan N2 untuk A1 dan
A2, danmenggabungkannya menjadi satu NFA baru, N.Mesin N harus menerima inputnya jika N1 atau
N2 menerima input ini. Itumesin baru memiliki status awal baru yang bercabang ke status awal mesin
lama dengan panah ε. Dengan cara ini, mesin baru secara nondetis menentukanyang mana dari dua
mesin yang menerima input. Jika salah satu dari mereka menerima input,N akan menerimanya
juga.Kami mewakili konstruksi ini pada gambar berikut. Di sebelah kiri, kami menunjukkan mulai dan
menerima keadaan mesin N1 dan N2 dengan lingkaran besar danbeberapa negara tambahan dengan
lingkaran kecil. Di sebelah kanan, kami menunjukkan cara menggabungkanN1 dan N2 ke N dengan
menambahkan panah transisi tambahan.GAMBAR 1.46Konstruksi NFA N untuk mengenali A1 ∪ A2
• BUKTIBiarkan N1 = (Q1, Σ, δ1, q1, F1) mengenali A1, danN2 = (Q2, Σ, δ2, q2, F2) mengenali A2.Bangun N =
(Q, Σ, δ, q0, F) untuk mengenali A1 ∪A2.1. Q = {q0} ∪ Q1 ∪ Q2.Status N adalah semua status N1 dan N2,
dengan tambahan yang barumulai menyatakan q0.2. Status q0 adalah kondisi awal N.3. Himpunan status terima F
= F1 ∪ F2.Status penerimaan N adalah semua status penerimaan N1 dan N2. Dengan begitu, Nmenerima jika N1
menerima atau N2 menerima.4. Tentukan δ sehingga untuk q ∈ Q dan a ∈ Σε,δ (q, a) =δ1 (q, a) q
∈ Q1δ2 (q, a) q ∈ Q2{q1, q2} q = q0 dan a = ε∅ q = q0 dan a 6 = ε.Sekarang kita bisa membuktikan penutupan di
bawah gabungan. Ingat itu sebelumnya, tanpanondeterminisme, melengkapi bukti akan sulit.THEOREM
1.47Kelas bahasa reguler ditutup di bawah operasi gabungan.BUKTI BUKTI Kami memiliki bahasa reguler A1
dan A2 dan ingin membuktikannyaA1 ◦ A2 teratur. Idenya adalah untuk mengambil dua NFA, N1 dan N2 untuk
A1 dan A2, danmenggabungkan mereka menjadi NFA N baru seperti yang kami lakukan untuk kasus persatuan,
tapi kali inidengan cara yang berbeda, seperti yang ditunjukkan pada Gambar 1.48.Tetapkan status mulai N untuk
menjadi status awal N1. Status penerimaan N1 milikipanah ε tambahan yang secara nondeterministis
memungkinkan percabangan ke N2 kapan sajaN1 berada dalam keadaan terima, menandakan bahwa ia telah
menemukan bagian awal dari inputyang merupakan string dalam A1. Status penerimaan N adalah status
penerimaan N2hanya. Oleh karena itu, menerima ketika input dapat dibagi menjadi dua bagian, yang
pertamaditerima oleh N1 dan yang kedua oleh N2. Kita dapat menganggap N sebagai tidak deterministikmenebak
di mana harus membuat perpecahan.
• Konstruksi N untuk mengenali A1 ◦ A2BUKTIBiarkan N1 = (Q1, Σ, δ1, q1, F1) mengenali A1,
danN2 = (Q2, Σ, δ2, q2, F2) mengenali A2.Bangun N = (Q, Σ, δ, q1, F2) untuk mengenali A1 ◦
A2.1. Q = Q1 ∪ Q2.Status N adalah semua status N1 dan N2.2. Status q1 sama dengan status awal
N1.3. Status terima F2 sama dengan status terima N2.4. Tentukan δ sehingga untuk q ∈Q dan a ∈
Σε,δ (q, a) =δ1 (q, a) q ∈Q1 dan q 6∈F1δ1 (q, a) q ∈F1 dan 6 = εδ1 (q, a) ∪
{q2} q ∈F1 dan a = εδ2 (q, a) q ∈Q2.
• Kelas bahasa reguler ditutup di bawah operasi bintang.BUKTI BUKTI Kami memiliki bahasa A1 biasa dan ingin
membuktikan bahwa A ∗1jugateratur. Kami mengambil NFA N1 untuk A1 dan memodifikasinya untuk
mengenali A ∗1, seperti yang ditunjukkan padagambar berikut. NFA yang dihasilkan N akan menerima inputnya
kapan pun bisadipecah menjadi beberapa bagian dan N1 menerima setiap bagian.Kita dapat membangun N
seperti N1 dengan panah ε tambahan yang kembali ke awalnegara dari negara menerima. Dengan cara ini, saat
pemrosesan mencapai akhir sebuah karyabahwa N1 menerima, mesin N memiliki opsi untuk melompat kembali
ke keadaan awaluntuk mencoba membaca bagian lain yang diterima N1. Selain itu, kita harus memodifikasi
Nsehingga menerima ε, yang selalu merupakan anggota A ∗1. Satu (sedikit buruk) ide adalahcukup dengan
menambahkan status awal ke set status terima. Pendekatan ini tentu sajamenambahkan ε ke bahasa yang dikenali,
tetapi juga dapat menambahkan string lain yang tidak diinginkan.Latihan 1.15 menanyakan contoh kegagalan ide
ini. Cara untuk memperbaikinya adalahuntuk menambahkan keadaan awal yang baru, yang juga merupakan
keadaan terima, dan yang memiliki panah εke kondisi awal yang lama. Solusi ini memiliki efek yang diinginkan
dari menambahkan ε ke dalambahasa tanpa menambahkan apa pun.GAMBAR 1.50Konstruksi N untuk
mengenali A ∗BUKTI Biarkan N1 = (Q1, Σ, δ1, q1, F1) mengenali A1.Bangun N = (Q, Σ, δ, q0, F) untuk
mengenali A ∗1.1. Q = {q0} ∪ Q1.Status N adalah status N1 ditambah status awal yang baru.2. Status q0 adalah
status awal yang baru.3. F = {q0} ∪ F1.Status penerimaan adalah status penerimaan lama plus status awal baru.
• Tentukan δ sehingga untuk q ∈ Q dan a ∈ Σε,δ (q, a) =             δ1 (q, a) q ∈ Q1 dan q 6 ∈
F1δ1 (q, a) q ∈ F1 dan 6 = εδ1 (q, a) ∪ {q1} q ∈ F1 dan a = ε{q1} q = q0 dan a = ε ∅ q = q0 dan a 6 =
ε.1.3EKSPRESI REGULERDalam aritmatika, kita dapat menggunakan operasi + dan × untuk membangun
ekspresi seperti(5 + 3) × 4.Demikian pula, kita dapat menggunakan operasi reguler untuk membangun ekspresi
yang dijelaskanbahasa, yang disebut ekspresi reguler. Contohnya adalah:(0 ∪ 1) 0 ∗.Nilai ekspresi aritmatika
adalah angka 32. Nilai regulerekspresi adalah bahasa. Dalam hal ini, nilainya adalah bahasa yang terdiri dari
semuastring dimulai dengan 0 atau 1 diikuti oleh sejumlah 0s. Kami mendapatkan hasil ini denganmembedah
ekspresi menjadi bagian-bagiannya. Pertama, simbol 0 dan 1 adalah singkatanuntuk set {0} dan {1}. Jadi (0 ∪1)
berarti ({0} ∪ {1}). Nilai bagian iniadalah bahasanya {0,1}. Bagian 0 ∗berarti {0} ∗, dan nilainya adalah
bahasaterdiri dari semua string yang mengandung jumlah 0s. Kedua, seperti simbol ×dalam aljabar, simbol
gabungan ◦ seringkali tersirat dalam ekspresi reguler.Jadi (0 ∪1) 0 ∗sebenarnya adalah singkatan untuk (0 ∪1) ◦ 0 ∗.
Rangkaian dilampirkanstring dari dua bagian untuk mendapatkan nilai dari seluruh ekspresi.Ekspresi reguler
memiliki peran penting dalam aplikasi ilmu komputer.Dalam aplikasi yang melibatkan teks, pengguna mungkin
ingin mencari string yang memuaskanpola tertentu. Ekspresi reguler menyediakan metode yang ampuh untuk
menggambarkanpola seperti itu. Utilitas seperti awk dan grep di UNIX, pemrograman modernbahasa seperti
Perl, dan editor teks semuanya menyediakan mekanisme untuk deskripsi pola dengan menggunakan ekspresi
reguler.
• Contoh lain dari ekspresi reguler adalah(0 ∪ 1)∗.Dimulai dengan bahasa (0 ∪ 1) dan menerapkan operasi ∗. Nilai
dariungkapan ini adalah bahasa yang terdiri dari semua string 0s dan 1s. JikaΣ = {0,1}, kita dapat menulis Σ sebagai
singkatan untuk ekspresi reguler (0∪1). Lebihumumnya, jika Σ adalah alfabet apa saja, ekspresi reguler Σ menjelaskan
bahasanyaterdiri dari semua string dengan panjang 1 di atas alfabet ini, dan Σ ∗ menjelaskan bahasa yang terdiri dari
semua string di atas alfabet itu. Demikian pula, Σ∗ 1 adalah bahasanyayang berisi semua string yang berakhiran 1.
Bahasa (0Σ∗) ∪ (Σ ∗ 1) terdiri darisemua string yang dimulai dengan 0 atau diakhiri dengan 1.Dalam aritmatika, kita
mengatakan bahwa × memiliki lebih dari + untuk berarti bahwa ketika adaadalah sebuah pilihan, kami melakukan
operasi × ​terlebih dahulu. Jadi dalam 2 + 3 × 4, 3 × 4 dilakukan sebelumnyatambahan. Agar penambahan dilakukan
terlebih dahulu, kita harus menambahkan tanda kurung untuk mendapatkan(2 + 3) × 4. Dalam ekspresi reguler, operasi
bintang dilakukan terlebih dahulu, diikuti olehpenggabungan, dan akhirnya penyatuan, kecuali tanda kurung mengubah
urutan yang biasa.DEFINISI FORMAL DARI EKSPRESI REGULERDEFINISI 1.52Katakan bahwa R adalah ekspresi
reguler jika R adalah1. a untuk beberapa huruf alfabet Σ,2. ε,3. ∅,4. (R1 ∪ R2), di mana R1 dan R2 adalah ekspresi
reguler,5. (R1 ◦ R2), di mana R1 dan R2 adalah ekspresi reguler, atau6. (R ∗1), di mana R1 adalah ekspresi
reguler.Dalam item 1 dan 2, ekspresi reguler a dan ε mewakilibahasa {a} dan {ε}, masing-masing. Dalam item 3,
ekspresi reguler ∅ mewakili bahasa kosong. Dalam item 4, 5, dan 6, theekspresi mewakili bahasa yang diperoleh
dengan menggunakan serikatatau gabungan bahasa R1 dan R2, atau bintang daribahasa R1, masing-masing.Jangan
bingung ekspresi reguler ε dan ∅. Ekspresi ε mewakilibahasa yang berisi string tunggal — yaitu, string kosong —
sedangkan ∅mewakili bahasa yang tidak mengandung string apa pun.
• Tampaknya, kita dalam bahaya mendefinisikan gagasan ekspresi regulerdalam hal itu sendiri. Jika benar, kita akan memiliki
definisi lingkaran, yang mana akan menjaditidak valid Namun, R1 dan R2 selalu lebih kecil dari R. Demikianlah kita
sebenarnyamendefinisikan ekspresi reguler dalam hal ekspresi reguler yang lebih kecil dan karenanyamenghindari
sirkularitas. Definisi jenis ini disebut definisi induktif.Tanda kurung dalam ekspresi dapat dihilangkan. Jika ya, evaluasi
dilakukandalam urutan yang diutamakan: bintang, lalu penggabungan, lalu penyatuan.Untuk kenyamanan, kami
membiarkan R + menjadi singkatan untuk RR ∗. Dengan kata lain, sedangkanR ∗ memiliki semua string yang merupakan
0 atau lebih rangkaian string dari R, bahasa R + memiliki semua string yang merupakan 1 atau lebih rangkaian string dari R.
JadiR + ∪ ε = R ∗. Selain itu, kami membiarkan Rk menjadi singkatan untuk penggabungan kRsatu sama lain.Ketika kita
ingin membedakan antara ekspresi reguler R dan bahasa yang dideskripsikan, kita menulis L (R) menjadi bahasa
R.CONTOH 1.53Dalam contoh berikut, kami menganggap bahwa alfabet Σ adalah {0,1}.1. 0 ∗ 10 ∗ = {w | w berisi 1
tunggal}.2. Σ∗ 1Σ∗ = {w | w memiliki setidaknya satu 1}.3. Σ ∗ 001Σ ∗ = {w | w berisi string 001 sebagai substring}.4.
1∗(01+)∗ = {w | setiap 0 dalam w diikuti oleh setidaknya satu 1}.5. (ΣΣ) ∗ = {w | w adalah string dengan panjang
genap}.56. (ΣΣΣ) ∗ = {w | panjang w adalah kelipatan dari 3}.7. 01 ∪ 10 = {01, 10}.8. 0Σ ∗ 0 ∪ 1Σ ∗ 1 ∪ 0 ∪ 1 = {w | w
mulai dan diakhiri dengan simbol yang sama}.9. (0 ∪ ε) 1∗ = 01 ∗ ∪ 1∗.Ekspresi 0 ∪ ε menggambarkan bahasa {0, ε},
jadi rangkumannyaoperasi menambahkan 0 atau ε sebelum setiap string dalam 1∗.10. (0 ∪ ε) (1 ∪ ε) = {ε, 0, 1, 01}.11. 1 ∗
∅ = ∅.Menggabungkan set kosong ke set apa pun menghasilkan set kosong.12. ∅∗ = {ε}.Operasi bintang mengumpulkan
sejumlah string dari bahasauntuk mendapatkan string dalam hasilnya. Jika bahasanya kosong, operasi bintang
dapatmengumpulkan 0 string, hanya memberikan string kosong.5 Panjang string adalah jumlah simbol yang dikandungnya
• ika kita membiarkan R sebagai ekspresi reguler, kita memiliki identitas berikut. Merekaadalah ujian yang baik apakah
Anda memahami definisi tersebut.R ∪ ∅ = R.Menambahkan bahasa kosong ke bahasa lain tidak akan mengubahnya.R ◦
ε = R.Bergabung dengan string kosong ke string apa pun tidak akan mengubahnya.Namun, pertukaran ∅ dan ε dalam
identitas sebelumnya dapat menyebabkan persamaangagal.R ∪ ε mungkin tidak sama dengan R.Misalnya, jika R = 0,
maka L (R) = {0} tetapi L (R ∪ ε) = {0, ε}.R ◦ ∅ mungkin tidak sama dengan R.Misalnya, jika R = 0, maka L (R) = {0}
tetapi L (R ◦ ∅) = ∅.Ekspresi reguler adalah alat yang berguna dalam desain kompiler untuk bahasa pemrograman.
Objek unsur dalam bahasa pemrograman, disebut token,seperti nama variabel dan konstanta, dapat digambarkan dengan
ekspresi reguler. Misalnya, konstanta numerik yang mungkin termasuk bagian fraksionaldan / atau suatu tanda dapat
digambarkan sebagai anggota bahasa+ ∪ - ∪ εD+ ∪ D+.D∗ ∪ D∗.D+di mana D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} adalah
alfabet digit desimal. Contohnyastring yang dihasilkan adalah: 72, 3.14159, +7., dan -.01.Setelah sintaks bahasa
pemrograman telah dijelaskan dengan regulerekspresi dalam hal tokennya, sistem otomatis dapat menghasilkan
leksikalanalyzer, bagian dari kompiler yang awalnya memproses program input.EKUIVALENSI DENGAN
AUTOMATA HINGGAEkspresi reguler dan automata terbatas setara dalam deskriptifkekuasaan. Fakta ini mengejutkan
karena automata terbatas dan ekspresi regulersecara dangkal tampak agak berbeda. Namun, setiap ekspresi reguler
dapatdikonversi menjadi otomat terbatas yang mengenali bahasa yang diuraikannya,dan sebaliknya. Ingatlah bahwa
bahasa biasa adalah bahasa yang dikenali oleh beberapa orangotomat terbatas.THEOREM 1.54Bahasa biasa jika dan
hanya jika beberapa ekspresi reguler menjelaskannya.Teorema ini memiliki dua arah. Kami menyatakan dan
membuktikan setiap arah sebagai terpisahkata pengantar singkat
• Jika suatu bahasa dijelaskan oleh ekspresi reguler, maka itu adalah reguler.BUKTI BUKTI Katakanlah bahwa
kita memiliki ekspresi reguler R yang menggambarkan beberapa bahasa A. Kami menunjukkan bagaimana
mengubah R menjadi NFA yang mengenali A. Oleh Corollary 1.40, jika NFA mengenali A maka A adalah
reguler.BUKTI Mari kita ubah R menjadi NFA N. Kami mempertimbangkan enam kasus dalamdefinisi
formal dari ekspresi reguler.1. R = a untuk beberapa a ∈ Σ. Kemudian L (R) = {a}, dan NFA berikut
mengenali L (R).Perhatikan bahwa mesin ini cocok dengan definisi NFA tetapi bukan definisiDFA karena
memiliki beberapa status tanpa panah keluar untuk setiap kemungkinansimbol masukan. Tentu saja, kami
bisa menyajikan DFA yang setara di sini;tetapi NFA adalah semua yang kita butuhkan untuk saat ini, dan
lebih mudah untuk dijelaskan.Secara formal, N ={q1, q2}, Σ, δ, q1, {q2}, di mana kami menggambarkan δ
dengan mengatakanbahwa δ (q1, a) = {q2} dan bahwa δ (r, b) = ∅ untuk r 6 = q1 atau b 6 = a.2. R = ε.
Kemudian L (R) = {ε}, dan NFA berikut mengenali L (R).Secara formal, N ={q1}, Σ, δ, q1, {q1}, dengan δ
(r, b) = ∅ untuk r dan b.3. R ​= ∅. Kemudian L (R) = ∅, dan NFA berikut mengenali L (R).Secara formal, N
={q}, Σ, δ, q, ∅, dengan δ (r, b) = ∅ untuk r dan b.4. R = R1 ∪ R2.5. R = R1 ◦ R2.6. R = R ∗1.Untuk tiga
kasus terakhir, kami menggunakan konstruksi yang diberikan dalam bukti bahwakelas bahasa reguler ditutup
di bawah operasi reguler. Dengan kata lain,kami membangun NFA untuk R dari NFA untuk R1 dan R2 (atau
hanya R1 dalam kasus 6)dan constructio penutupan yang tepat
• Itu mengakhiri bagian pertama dari bukti Teorema 1.54, memberikan arah yang lebih mudah dari
kondisi jika dan hanya jika. Sebelum pergi ke arah lain,mari kita pertimbangkan beberapa contoh
dimana kita menggunakan prosedur ini untuk mengonversi yang biasaekspresi ke NFA.CONTOH
1.56Kami mengonversi ekspresi reguler (ab ∪ a)∗ke NFA dalam urutan tahapan.Kami membangun
dari subekspresi terkecil hingga subekspresi yang lebih besar hingga kamimemiliki NFA untuk ekspresi
asli, seperti yang ditunjukkan pada diagram berikut.Perhatikan bahwa prosedur ini umumnya tidak
memberikan NFA dengan status paling sedikit.Dalam contoh ini, prosedur memberikan NFA dengan
delapan negara, tetapi yang terkecilNFA setara hanya memiliki dua negara. Bisakah kamu
menemukannya?GAMBAR 1.57Membangun NFA dari ekspresi reguler (ab ∪ a)∗
• Pada Gambar 1.59, kami mengonversi ekspresi reguler (a ∪ b)∗aba ke NFA. Beberapalangkah-
langkah kecil tidak ditampilkan.GAMBAR 1.59Membangun NFA dari ekspresi reguler (a ∪ b) ∗
abaSekarang mari kita beralih ke arah lain dari bukti Teorema 1.54.LEMMA 1.60Jika suatu bahasa
biasa, maka itu dijelaskan dengan ekspresi reguler.BUKTI BUKTI Kami perlu menunjukkan bahwa
jika bahasa A teratur, regulerEkspresi menggambarkannya. Karena A biasa, itu diterima oleh DFA.
Kami jelaskanprosedur untuk mengubah DFA menjadi persamaan reguler yang setara
• Kami memecah prosedur ini menjadi dua bagian, menggunakan tipe otomat terbatas yang barudisebut
automaton terbatas nondeterministik umum, GNFA. Pertama kami tunjukkancara mengubah DFA menjadi
GNFA, dan kemudian GNFA menjadi ekspresi reguler.Automata terbatas nondeterministik terbatas hanyalah
automata terbatas non-deterministik di mana panah transisi dapat memiliki ekspresi reguler sepertilabel, bukan
hanya anggota alfabet atau ε. GNFA membaca blok darisimbol dari input, tidak harus hanya satu simbol pada
suatu waktu seperti pada NFA biasa. GNFA bergerak di sepanjang panah transisi yang menghubungkan dua
negara bagian olehmembaca blok simbol dari input, yang merupakan stringdijelaskan oleh ekspresi reguler pada
panah itu. GNFA tidak bersifat deterministikdan mungkin memiliki beberapa cara berbeda untuk memproses
string input yang sama. Ia menerima inputnya jika pemrosesannya dapat menyebabkan GNFA berada dalam
keadaan menerima di Internetakhir input. Gambar berikut menyajikan contoh GNFA.GAMBAR 1.61Otomat
terbatas nondeterministik umumUntuk kenyamanan, kami mengharuskan GNFAs selalu memiliki formulir
khusus yang memenuhikondisi berikut.• Status awal memiliki panah transisi yang menuju ke setiap negara lain
tetapi tidak ada panahdatang dari negara bagian lain.• Hanya ada satu negara yang menerima, dan memiliki
panah yang datang dari setiap negaranegara lain tetapi tidak ada panah yang menuju ke negara lain. Selanjutnya,
menerimastate tidak sama dengan start state.• Kecuali untuk memulai dan menerima status, satu panah
berpindah dari setiap negara kesetiap negara bagian lain dan juga dari masing-masing negara bagian itu sendiri.
• Kami dapat dengan mudah mengkonversi DFA menjadi GNFA dalam bentuk khusus. Kami cukup menambahkanstatus mulai baru
dengan panah ε ke kondisi awal yang lama dan status penerimaan baru dengan εpanah dari negara menerima yang lama. Jika ada
panah yang memiliki banyak label (atau jika adabeberapa panah terjadi antara dua negara yang sama dalam arah yang sama),
kitaganti masing-masing dengan panah tunggal yang labelnya merupakan gabungan dari label sebelumnya.Akhirnya, kami
menambahkan panah berlabel ∅ di antara status yang tidak memiliki panah. Ini terakhirlangkah tidak akan mengubah bahasa yang
dikenal karena transisi yang ditandai dengan edtidak pernah bisa digunakan. Dari sini kita mengasumsikan bahwa semua GNFA
berada dalam kekhususanbentuk.Sekarang kami menunjukkan cara mengubah GNFA menjadi ekspresi reguler. Katakan ituGNFA
memiliki status k. Kemudian, karena GNFA harus memiliki awal dan status penerimaandan mereka harus berbeda satu sama lain,
kita tahu bahwa k ≥ 2. Jika k> 2, kitamembangun GNFA yang setara dengan status k - 1. Langkah ini bisa diulangiGNFA baru
sampai dikurangi menjadi dua negara. Jika k = 2, GNFA memiliki satupanah yang beralih dari status mulai ke status terima. Label
panah iniadalah persamaan reguler setara. Misalnya, tahapan dalam mengubah DFAdengan tiga negara bagian ke persamaan
reguler ditunjukkan pada berikut iniangka.GAMBAR 1.62Tahapan khas dalam mengubah DFA menjadi ekspresi regulerLangkah
penting adalah membangun GNFA setara dengan satu negara lebih sedikitketika k> 2. Kami melakukannya dengan memilih
negara, merobeknya dari mesin, danmemperbaiki sisanya sehingga bahasa yang sama masih dikenali. Keadaan apa punakan
melakukannya, asalkan itu bukan awal atau menerima negara. Kami dijamin itukeadaan seperti itu akan ada karena k> 2. Mari
panggil status penghapusan yang dihapus.Setelah menghapus qrip, kami memperbaiki mesin dengan mengubah ekspresi
regulerberi label masing-masing panah yang tersisa. Label baru mengkompensasi untuktidak adanya qrip dengan menambahkan
kembali perhitungan yang hilang. Label baru mulai daristate qi to state qj adalah ekspresi reguler yang menggambarkan semua
string yang akan
• ambil mesin dari qi ke qj baik secara langsung atau melalui qrip. Kami menggambarkan inipendekatan pada
Gambar 1.63.GAMBAR 1.63Membangun GNFA yang setara dengan satu negara lebih sedikitDi mesin lama,
jika1. qi pergi ke qrip dengan panah berlabel R1,2. qrip pergi ke dirinya sendiri dengan panah berlabel R2,3.
qrip pergi ke qj dengan panah berlabel R3, dan4. qi pergi ke qj dengan panah berlabel R4,kemudian di mesin
baru, panah dari qi ke qj mendapat label(R1) (R2)∗(R3) ∪ (R4).Kami membuat perubahan ini untuk setiap
panah dari negara qi ke negara qj,termasuk kasus di mana qi = qj. Mesin baru mengenali yang
aslibahasa.BUKTI Mari sekarang jalankan ide ini secara formal. Pertama, untuk memfasilitasi buktinya,kami
secara resmi mendefinisikan jenis otomat baru yang diperkenalkan. GNFA serupake otomat terbatas
nondeterministic kecuali untuk fungsi transisi, yangmemiliki bentukδ:Q - {qaccept}×Q - {qstart}- → R.Simbol
R adalah kumpulan semua ekspresi reguler di atas alfabet Σ,dan qstart dan qaccept adalah status awal dan
terima. Jika δ (qi, qj) = R, panahdari state qi ke state qj memiliki ekspresi reguler R sebagai labelnya.
Domaindari fungsi transisi adalahQ - {qaccept}×Q - {qstart}karena panahmenghubungkan setiap negara ke
setiap negara lain, kecuali bahwa tidak ada panah yang berasalmenerima atau pergi ke qst
• Otomat terbatas nondeterministik umum adalah 5-tuple,(Q, Σ, δ, qstart, qaccept), di mana1. Q adalah himpunan terbatas
negara,2. Σ adalah alfabet input,3. δ:Q - {qaccept}×Q - {qstart}- → R adalah transisifungsi,4. qstart adalah kondisi
awal, dan5. qaccept adalah status terima.GNFA menerima string dengan Σ ∗jika w = w1w2 · · · wk, di mana masing-
masing wiada di Σ∗dan urutan status q0, q1,. . . , qk ada sedemikian rupa1. q0 = qstart adalah kondisi awal,2. qk =
qaccept adalah status terima, dan3. untuk setiap i, kami memiliki wi ∈ L (Ri), di mana Ri = δ (qi − 1, qi); dengan kata
lain, Riadalah ekspresi pada panah dari qi − 1 ke qi.Kembali ke bukti Lemma 1.60, kami membiarkan M menjadi DFA
untuk bahasaA. Kemudian kita mengonversi M ke GNFA G dengan menambahkan status awal baru dan baruterima
status dan panah transisi tambahan sebagaimana diperlukan. Kami menggunakan prosedurCONVERT (G), yang
mengambil GNFA dan mengembalikan ekspresi reguler yang setara.Prosedur ini menggunakan rekursi, yang berarti
menyebut dirinya sendiri. Loop tak terbatasdihindari karena prosedur memanggil dirinya sendiri hanya untuk
memproses GNFA yang dimilikinyasatu negara lebih sedikit. Kasus di mana GNFA memiliki dua negara ditangani
tanpapengulangan.CONVERT (G):1. Biarkan k menjadi jumlah negara bagian G.2. Jika k = 2, maka G harus terdiri dari
status awal, status terima, dan tunggalpanah yang menghubungkan mereka dan diberi label dengan ekspresi reguler
R.Kembalikan ekspresi R.3. Jika k> 2, kami memilih sembarang negara qrip ∈ Q berbeda dari qstart dan qaccept dan
biarkanG0 menjadi GNFA (Q0, Σ, δ0, qstart, qaccept), di manaQ0 = Q - {qrip},dan untuk qi ∈ Q0 - {qaccept} dan qj ∈
Q0 - {qstart}, biarkanδ0(qi, qj) = (R1) (R2) ∗(R3) ∪ (R4),untuk R1 = δ (qi, qrip), R2 = δ (qrip, qrip), R3 = δ (qrip, qj),
dan R4 = δ (qi, qj).4. Hitung CONVERT (G0) dan mengembalikan nilai ini
• Selanjutnya kami membuktikan bahwa CONVERT mengembalikan nilai yang benar.KLAIM 1.65Untuk setiap GNFA G, CONVERT (G)
setara dengan G.Kami membuktikan klaim ini dengan induksi pada k, jumlah negara bagian GNFA.Dasar: Buktikan klaim true untuk k = 2
status. Jika G hanya memiliki dua status, G dapathanya memiliki satu panah, yang beralih dari keadaan mulai ke keadaan terima. Itulabel
ekspresi reguler pada panah ini menjelaskan semua string yang memungkinkan G untuk mendapatkanke negara terima. Oleh karena itu
ungkapan ini setara dengan G.Langkah induksi: Asumsikan bahwa klaim itu benar untuk negara k - 1 dan gunakan asumsi ini untuk
membuktikan bahwa klaim itu benar untuk negara k. Pertama kita tunjukkan bahwa G danG0kenali bahasa yang sama. Misalkan G menerima
input w. Kemudian di sebuahmenerima cabang perhitungan, G memasuki urutan status:qstart, q1, q2, q3,. . . , terima kasih.Jika tidak ada dari
mereka adalah qrip status dihapus, jelas G0juga menerima w. Alasannyaadalah masing-masing ekspresi reguler baru yang memberi label
panah G0berisiekspresi reguler lama sebagai bagian dari persatuan.Jika qrip benar-benar muncul, hapus setiap proses dari status qrip
berturut-turut darimenerima perhitungan untuk G0. Status qi dan qj menandai suatu run memiliki yang baruekspresi reguler pada panah di
antara mereka yang menjelaskan semua string yang mengambil qiuntuk qj via qrip pada G. So G0menerima w.Sebaliknya, anggaplah G0
itumenerima input w. Seperti setiap panah di antara semuadua negara qi dan qj di G0 menggambarkan kumpulan string yang mengambil qi ke
qj di G,baik secara langsung atau melalui qrip, G juga harus menerima w. Demikianlah G dan G0adalah setara.Hipotesis induksi menyatakan
bahwa ketika algoritma menyebut dirinya secara rekursif pada input G0, hasilnya adalah ekspresi reguler yang setara dengan G0karena G0
memiliki status k - 1. Oleh karena itu ungkapan reguler ini juga setara denganG, dan algoritme terbukti benar.Ini menyimpulkan bukti Klaim
1.65, Lemma 1.60, dan Teorema 1.54.CONTOH 1.66Dalam contoh ini, kami menggunakan algoritma sebelumnya untuk mengubah DFA
menjadi regulerekspresi. Kita mulai dengan DFA dua negara pada Gambar 1.67 (a).Pada Gambar 1.67 (b), kami membuat empat negara
bagian GNFA dengan menambahkan negara mulai baru dankeadaan penerimaan baru, disebut s dan alih-alih qstart dan qaccept sehingga kita
bisa menggambarmereka dengan mudah. Untuk menghindari mengacaukan angka, kita tidak menggambar panah
• berlabel ∅, meskipun ada. Perhatikan bahwa kami mengganti label a, b padaloop otomatis pada status 2 pada
DFA dengan label a∪b pada titik yang sesuaidi GNFA. Kami melakukannya karena label DFA mewakili dua
transisi, satuuntuk a dan yang lainnya untuk b, sedangkan GNFA mungkin hanya memiliki satu transisipergi
dari 2 ke dirinya sendiri.Pada Gambar 1.67 (c), kami menghapus status 2 dan memperbarui label panah yang
tersisa.Dalam hal ini, satu-satunya label yang berubah adalah label dari 1 ke a. Pada bagian (b) itu ∅, tetapi
pada bagian (c) itu adalah b (a ∪ b)∗. Kami mendapatkan hasil ini dengan mengikuti langkah 3 dariProsedur
CONVERT. Nyatakan qiadalah state 1, state qj adalah a, dan qrip adalah 2, jadi R1 = b,R2 = a ∪ b, R3 = ε, dan
R4 = ∅. Oleh karena itu, label baru pada panah dari 1to a adalah (b) (a ∪ b) ∗(ε) ∪ ∅. Kami
menyederhanakan ungkapan reguler ini menjadi b (a ∪ b)∗.Pada Gambar 1.67 (d), kami menghapus status 1
dari bagian (c) dan mengikuti prosedur yang sama. Karena hanya status mulai dan terima yang tersisa, label
pada panahbergabung dengan mereka adalah ekspresi reguler yang setara dengan DFA asli.GAMBAR
1.67Mengonversi DFA dua negara ke ekspresi reguler yang setara
• Dalam contoh ini, kita mulai dengan DFA tiga negara. Langkah-langkah dalam konversi
adalahditunjukkan pada gambar berikut.GAMBAR 1.69Mengonversi DFA tiga negara ke ekspresi
reguler yang setara
• BAHASA NONREGULARUntuk memahami kekuatan automata terbatas, Anda juga harus memahami merekaketerbatasan. Di bagian
ini, kami menunjukkan cara membuktikan bahwa bahasa tertentu tidak bisadikenali oleh otomat terbatas.Mari kita ambil bahasa B =
{0n1n | n ≥ 0}. Jika kami berusaha menemukan DFAyang mengenali B, kami menemukan bahwa mesin itu sepertinya perlu
diingatberapa banyak 0s yang terlihat sejauh membaca input. Karena jumlah0 tidak terbatas, mesin harus melacak jumlah yang tidak
terbataskemungkinan. Tetapi tidak dapat melakukannya dengan sejumlah negara terbatas.Selanjutnya, kami menyajikan metode untuk
membuktikan bahwa bahasa seperti B tidak teratur. Bukankah argumen yang sudah diberikan membuktikan ketidakberesan karena
jumlahnya0s tidak terbatas? Itu tidak. Hanya karena bahasa tersebut tampaknya memerlukan memori tidak terbatas, itu tidak berarti
bahwa itu harus demikian. Itu memang benar adanyauntuk bahasa B; tetapi bahasa lain tampaknya membutuhkan jumlah yang tidak
terbataskemungkinan, namun sebenarnya itu biasa. Misalnya, pertimbangkan dua bahasadi atas alfabet Σ = {0,1}:C = {w | w memiliki
jumlah yang sama dengan 0s dan 1s}, danD = {w | w memiliki jumlah kemunculan yang sama dengan 01 dan 10 sebagai
substring}.Sekilas, mesin pengenal tampaknya perlu menghitung dalam setiap kasus,dan karena itu tidak ada bahasa yang biasa.
Seperti yang diharapkan, C tidakteratur, tetapi yang mengejutkan D adalah reguler! 6 Jadi, intuisi kita kadang bisa mengarahkita
tersesat, itulah sebabnya kita membutuhkan bukti matematis untuk kepastian. Di bagian ini,kami menunjukkan bagaimana
membuktikan bahwa bahasa tertentu tidak teratur.LEMMA PUMPING UNTUK BAHASA REGULERTeknik kami untuk
membuktikan ketidakberesan berasal dari teorema tentang regulerbahasa, secara tradisional disebut lemma pemompaan. Teorema ini
menyatakan bahwa semuabahasa reguler memiliki properti khusus. Jika kita dapat menunjukkan bahwa suatu bahasa
melakukannyatidak memiliki properti ini, kami dijamin tidak teratur. Propertimenyatakan bahwa semua string dalam bahasa dapat
"dipompa" jika mereka setidaknya samaselama nilai khusus tertentu, disebut panjang pemompaan. Itu artinya masing-masingstring
tersebut berisi bagian yang dapat diulang beberapa kali denganstring yang dihasilkan tersisa dalam bahasa.6Lihat Masalah 1.48
• Memompa lemma Jika A adalah bahasa biasa, maka ada nomor p (thememompa panjang) di mana jika s adalah string dalam A dengan
panjang setidaknya p, maka s mungkindibagi menjadi tiga bagian, s = xyz, memenuhi syarat-syarat berikut:1. untuk setiap i ≥ 0, xyiz ∈
A,2. | y | > 0, dan3. | xy | ≤ p.Ingat notasi di mana | s | mewakili panjang string s, yaku berarti akusalinan y digabungkan bersama, dan
y0sama dengan ε.Ketika s dibagi menjadi xyz, baik x atau z mungkin ε, tetapi kondisi 2 mengatakan ituy 6 = ε. Amati bahwa tanpa
syarat 2 teorema tersebut akan sepele benar.Kondisi 3 menyatakan bahwa potongan x dan y bersama-sama memiliki panjang paling
banyak p. Ini adalah sebuahkondisi teknis tambahan yang kadang-kadang bermanfaat bagi kami saat membuktikannyabahasa menjadi
tidak teratur. Lihat Contoh 1.74 untuk aplikasi kondisi 3.BUKTI BUKTI Misalkan M = (Q, Σ, δ, q1, F) menjadi DFA yang mengakui A.
Kami menetapkanpanjang pompa p menjadi jumlah negara M. Kami menunjukkan bahwa setiap strings dalam A panjang setidaknya p
dapat dipecah menjadi tiga bagian xyz, memuaskan kitatiga syarat. Bagaimana jika tidak ada string dalam A yang memiliki panjang
setidaknya p? Lalu tugas kitabahkan lebih mudah karena teorema menjadi hampa benar: Jelas ketiganyaketentuan berlaku untuk semua
string dengan panjang setidaknya p jika tidak ada string seperti itu.Jika s dalam A memiliki panjang setidaknya p, pertimbangkan urutan
status yang digunakan Mmelalui saat menghitung dengan input s. Dimulai dengan q1 status awal, lalu berlanjutuntuk, katakanlah, q3,
lalu, katakanlah, q20, lalu q9, dan seterusnya, hingga mencapai akhir s dalam keadaanq13. Dengan s dalam A, kita tahu bahwa M
menerima s, jadi q13 adalah keadaan terima.Jika kita membiarkan n menjadi panjang s, urutan status q1, q3, q20, q9,. . . , q13
memilikipanjang n + 1. Karena n setidaknya p, kita tahu bahwa n +1 lebih besar dari p, thejumlah negara M. Oleh karena itu, urutan
harus berisi keadaan berulang.Hasil ini adalah contoh dari prinsip pigeonhole, nama yang mewah untuk yang agakfakta yang jelas
bahwa jika merpati ditempatkan ke dalam kurang dari lubang p, beberapa lubang memilikiuntuk memiliki lebih dari satu merpati di
dalamnya.Gambar berikut menunjukkan string s dan urutan status yang Mmelewati saat memproses s. Negara q9 adalah orang yang
mengulang.GAMBAR 1.71Contoh yang menunjukkan keadaan q9 berulang ketika M membaca sKita sekarang membagi s menjadi tiga
bagian x, y, dan z. Sepotong x adalah bagian dari smuncul sebelum q9, bagian y adalah bagian antara dua penampilan q9, dan
• piece z is the remaining part of s, coming after the second occurrence of q9. Sox takes M from the state q1 to q9, y
takes M from q9 back to q9, and z takes Mfrom q9 to the accept state q13, as shown in the following figure.FIGURE
1.72Example showing how the strings x, y, and z affect MLet’s see why this division of s satisfies the three
conditions. Suppose that werun M on input xyyz. We know that x takes M from q1 to q9, and then the firsty takes it
from q9 back to q9, as does the second y, and then z takes it to q13.With q13 being an accept state, M accepts input
xyyz. Similarly, it will acceptxyiz for any i > 0. For the case i = 0, xyiz = xz, which is accepted for similarreasons.
That establishes condition 1.Checking condition 2, we see that |y| > 0, as it was the part of s that occurredbetween two
different occurrences of state q9.In order to get condition 3, we make sure that q9 is the first repetition in thesequence.
By the pigeonhole principle, the first p+ 1 states in the sequence mustcontain a repetition. Therefore, |xy| ≤ p.PROOF
Let M = (Q, Σ, δ, q1, F) be a DFA recognizing A and p be the numberof states of M.Let s = s1s2 · · · sn be a string in
A of length n, where n ≥ p. Let r1, . . . , rn+1be the sequence of states that M enters while processing s, so ri+1 = δ(ri,
si)for 1 ≤ i ≤ n. This sequence has length n + 1, which is at least p + 1. Amongthe first p + 1 elements in the sequence,
two must be the same state, by thepigeonhole principle. We call the first of these rj and the second rl. Because rloccurs
among the first p+ 1 places in a sequence starting at r1, we have l ≤ p+ 1.Now let x = s1 · · · sj−1, y = sj · · · sl−1, and
z = sl· · · sn.As x takes M from r1 to rj , y takes M from rj to rj , and z takes M from rjto rn+1, which is an accept
state, M must accept xyiz for i ≥ 0. We know thatj 6= l, so |y| > 0; and l ≤ p+ 1, so |xy| ≤ p. Thus we have satisfied all
conditionsof the pumping lemma.
• Untuk menggunakan lemma pemompaan untuk membuktikan bahwa bahasa B tidak teratur, pertama-tama asumsikan bahwa B adalah teratur untuk
mendapatkan kontradiksi. Kemudian gunakan pompalemma untuk menjamin adanya panjang memompa sedemikian rupa sehingga semua
stringpanjang p atau lebih besar dalam B dapat dipompa. Selanjutnya, cari string s dalam B yang memiliki panjangp atau lebih besar tapi itu tidak
bisa dipompa. Akhirnya, tunjukkan bahwa itu tidak mungkindipompa dengan mempertimbangkan semua cara membagi s menjadi x, y, dan z (kondisi
pengambilan 3dari lemma pemompaan ke akun jika nyaman) dan, untuk setiap divisi tersebut,menemukan nilai i di mana xyiz 6∈ B. Langkah
terakhir ini sering melibatkan pengelompokanberbagai cara membagi s menjadi beberapa kasus dan menganalisanya secara individual.Keberadaan s
bertentangan dengan lemma pemompaan jika B teratur. Oleh karena itu Btidak bisa teratur.Menemukan terkadang membutuhkan sedikit pemikiran
kreatif. Anda mungkin perlu berburumelalui beberapa kandidat sebelum Anda menemukan satu yang berfungsi. Cobalah anggota B yang tampaknya
menunjukkan "esensi" dari ketidakberesan B. Kami selanjutnyabahas tugas menemukan dalam beberapa contoh berikut.CONTOH 1.73Biarkan B
menjadi bahasa {0n1n | n ≥ 0}. Kami menggunakan lemma pemompaan untuk membuktikannyaB tidak teratur. Buktinya dengan
kontradiksi.Asumsikan sebaliknya bahwa B adalah teratur. Biarkan p menjadi panjang pemompaan yang diberikanoleh lemma pemompaan. Pilih s
untuk menjadi string 0p1hal. Karena s adalah anggotaB dan s memiliki panjang lebih dari p, lemma pemompaan menjamin bahwa s bisadibagi
menjadi tiga bagian, s = xyz, di mana untuk setiap i ≥ 0 string xyiz ada di B. Kamipertimbangkan tiga kasus untuk menunjukkan bahwa hasil ini tidak
mungkin.1. String y hanya terdiri dari 0s. Dalam hal ini, string xyyz memiliki lebih banyak 0sdari 1s dan bukan anggota B, melanggar kondisi 1 dari
pemompaankata pengantar singkat. Kasus ini kontradiksi.2. String y hanya terdiri dari 1s. Kasus ini juga memberikan kontradiksi.3. String y terdiri
dari 0s dan 1s. Dalam hal ini, string xyyz mungkinmemiliki jumlah yang sama 0s dan 1s, tetapi mereka akan rusak dengan beberapa1 sebelum 0s.
Karenanya itu bukan anggota B, yang merupakan kontradiksi.Dengan demikian kontradiksi tidak dapat dihindari jika kita membuat asumsi bahwa B
adalah reguler, jadi B tidak teratur. Perhatikan bahwa kami dapat menyederhanakan argumen ini dengan menerapkankondisi 3 dari lemma
pemompaan untuk menghilangkan kasus 2 dan 3.Dalam contoh ini, menemukan string s mudah karena string apa pun di B daripanjang p atau lebih
akan berhasil. Dalam dua contoh berikut, beberapa pilihan untuk stidak bekerja sehingga diperlukan perawatan tambahan.CONTOH 1.74Misalkan C
= {w | w memiliki jumlah yang sama dengan 0s dan 1s}. Kami menggunakan lemma pemompaanuntuk membuktikan bahwa C tidak teratur.
Buktinya dengan kontradiksi.
• Asumsikan sebaliknya bahwa C adalah reguler. Biarkan p menjadi panjang pemompaan yang diberikanoleh lemma pemompaan. Seperti pada Contoh
1.73, mari kita menjadi string 0p1hal. DenganMenjadi anggota C dan memiliki panjang lebih dari p, lemma pemompaanmenjamin bahwa s dapat
dibagi menjadi tiga bagian, s = xyz, di mana untuk i> 0string xyiz ada di C. Kami ingin menunjukkan bahwa hasil ini tidak mungkin. Tapitunggu, itu
mungkin! Jika kita membiarkan x dan z menjadi string kosong dan y menjadi string 0p1hal,lalu xyiz selalu memiliki jumlah yang sama dengan 0s
dan 1s dan karenanya berada dalam C. Jadi sepertinyaitu bisa dipompa.Di sini kondisi 3 dalam lemma pemompaan bermanfaat. Ini menetapkan
bahwa kapanmemompa s, itu harus dibagi sehingga | xy | ≤ p. Itu pembatasan pada cara itus dapat dibagi membuatnya lebih mudah untuk
menunjukkan bahwa string s = 0p1p kami pilihtidak bisa dipompa. Jika | xy | ≤ p, maka y harus hanya terdiri dari 0s, jadi xyyz 6 ∈ C.Karena itu, s
tidak dapat dipompa. Itu memberi kita kontradiksi yang diinginkan.Memilih string dalam contoh ini membutuhkan perhatian lebih dari pada Contoh
1.73. Jika kami memilih s = (01)halsebaliknya, kita akan mengalami masalahkarena kita membutuhkan string yang tidak dapat dipompa dan string
yang dapat dipompa,bahkan dengan mempertimbangkan kondisi 3. Bisakah Anda melihat cara memompanya? Satu jalan menujulakukan set x = ε, y
= 01, dan z = (01)p − 1. Lalu xyiz ∈ C untuk setiap nilaisaya. Jika Anda gagal pada upaya pertama Anda untuk menemukan string yang tidak dapat
dipompa, janganputus asa. Coba yang lain!Metode alternatif untuk membuktikan bahwa C adalah tidak teratur mengikuti dari kamipengetahuan
bahwa B tidak teratur. Jika C teratur, C ∩ 0∗ 1∗juga akanreguler. Alasannya adalah karena bahasa 0 ∗ 1 ∗reguler dan kelasbahasa reguler ditutup di
bawah persimpangan, yang kami buktikan dalam catatan kaki 3(halaman 46). TapiC ∩ 0 ∗ 1 ∗sama dengan B, dan kita tahu bahwa B tidak teratur
dariContoh 1.73.CONTOH 1.75Biarkan F = {ww | w ∈ {0,1} ∗}. Kami menunjukkan bahwa F tidak teratur, menggunakan pemompaankata
pengantar singkat.Asumsikan sebaliknya bahwa F adalah teratur. Biarkan p menjadi panjang pemompaan yang diberikanoleh lemma pemompaan.
Mari menjadi string 0p10p1. Karena s adalah anggotaF dan s memiliki panjang lebih dari p, lemma pemompaan menjamin s bisadibagi menjadi tiga
bagian, s = xyz, memenuhi tiga kondisi lemma.Kami menunjukkan bahwa hasil ini tidak mungkin.Kondisi 3 sekali lagi penting karena tanpa itu kita
bisa memompa jika kitamisalkan x dan z menjadi string kosong. Dengan kondisi 3 buktinya mengikuti karena yhanya terdiri dari 0s, jadi xyyz 6 ∈
F.Perhatikan bahwa kami memilih s = 0p10p1 menjadi string yang menunjukkan "esensi" dariketidakteraturan F, sebagai lawan dari, katakanlah,
string 0p0hal. Meskipun 0p0haladalahanggota F, gagal menunjukkan kontradiksi karena dapat dipompa
• Di sini kami menunjukkan bahasa unary yang tidak teratur. Misalkan D = {1n2| n ≥ 0}.Dengan kata lain, D berisi semua string 1s yang panjangnya
adalah kuadrat sempurna.Kami menggunakan lemma pemompaan untuk membuktikan bahwa D tidak teratur. Buktinya adalah
olehkontradiksi.Asumsikan sebaliknya bahwa D teratur. Biarkan p menjadi panjang pemompaan yang diberikanoleh lemma pemompaan. Mari
menjadi string 1hal2. Karena s adalah anggota D dans memiliki panjang setidaknya p, lemma pemompaan menjamin bahwa s dapat dibagi
menjaditiga potong, s = xyz, di mana untuk setiap i ≥ 0 string xyiz ada di D. Seperti dicontoh sebelumnya, kami menunjukkan bahwa hasil ini
tidak mungkin. Melakukannya dalam hal inicase membutuhkan sedikit pemikiran tentang urutan kuadrat sempurna:0, 1, 4, 9, 16, 25, 36, 49,. .
.Perhatikan kesenjangan yang tumbuh antara anggota berturut-turut dari urutan ini. Besaranggota urutan ini tidak dapat berada di dekat satu sama
lain.Sekarang perhatikan dua string xyz dan xy2z. String ini berbeda dari masing-masinglainnya dengan pengulangan tunggal y, dan akibatnya
panjangnya berbeda denganpanjang y. Dengan kondisi 3 dari lemma pemompaan, | xy | ≤ p dan karenanya | y | ≤ p.Kami punya | xyz | = p2dan
sebagainya | xy2z | ≤ p2 + p. Tapi hal2 + p <p2 + 2p + 1 = (p + 1) 2.Selain itu, kondisi 2 menyiratkan bahwa y bukan string kosong dan jadi | xy2z |
>hal2. Karena itu, panjang xy2z terletak persis di antara perfect berurutankotak p2dan (p + 1) 2. Karena itu, panjang ini tidak bisa menjadi kuadrat
sempurna itu sendiri. Begitukita sampai pada kontradiksi xy2z 6 ∈ D dan simpulkan bahwa D tidak teratur.CONTOH 1.77Terkadang "pumping
down" berguna ketika kita menerapkan lemma pemompaan. Kitagunakan lemma pemompaan untuk menunjukkan bahwa E = {0i1j| i> j} tidak
teratur. Itubuktinya dengan kontradiksi.Anggaplah E itu teratur. Biarkan p menjadi panjang pemompaan untuk E yang diberikan olehmemompa
lemma. Misalkan s = 0p + 11hal. Kemudian s dapat dipecah menjadi xyz, memuaskankondisi lemma pemompaan. Dengan kondisi 3, y hanya
terdiri dari 0s. Ayoperiksa string xyyz untuk melihat apakah bisa dalam E. Menambahkan salinan tambahanof y meningkatkan jumlah 0s. Tapi, E
berisi semua string dalam 0∗ 1∗yang mempunyailebih banyak 0 daripada 1, sehingga meningkatkan jumlah 0 akan tetap memberikan string
dalam E. Tidakkontradiksi terjadi. Kita perlu mencoba sesuatu yang lain.Lemma pemompaan menyatakan bahwa xyiz ∈ E bahkan ketika saya = 0,
jadi mari kita pertimbangkanstring xy0z = xz. Menghapus string y mengurangi jumlah 0s dalam s. Penarikanyang memiliki hanya satu lebih dari 1.
Oleh karena itu, xz tidak dapat memiliki lebih dari 0 daripada 1,jadi itu tidak bisa menjadi anggota E. Dengan demikian kita memperoleh
kontradiksi.

Anda mungkin juga menyukai