Definisi Himpunan Bagian oleh Zamir Bavel

21
1 Definisi 1.13.2. Ambil X adalah sebuah himpunan tak kosong. Himpunan dari semua sekuen hingga dari elemen-elemen X, termasuk sekuen kosong, dinyatakan dengan X * . Jumlah banyaknya kemunculan elemen-elemen X dalam sebuah sekuen disebut panjang dari sekuen tersebut. Sekuen kosong mempunyai panjang nol dan dinyatakan dengan ε. Dalam penggabungan dengan anggota-anggota X*, ε hilang: yaitu, xε = εx = x, x X*. Sekuen kosong ε jangan dikelirukan dengan himpunan kosong, dinyatakan dengan ; ε adalah selalu sebuah elemen dari X* (meskipun jika definisi mengizinkan X sebagai himpunan kosong), sedangkan adalah sebuah himpunan (terutama sebuah subhimpunan dari X*) yang tidak mempunyai elemen-elemen. Pembaca dapat mencatat bahwa X* adalah selalu sebuah himpunan tak hingga, sebagaimana kita lanjutkan untuk perlihatkan. Pertama, setiap anggota dari X adalah sebuah sekuen dengan panjang 1 dan karena itu sebuah anggota dari X*; jadi, X X*. Sekarang, karena X tidak kosong, X* mempunyai sebuah elemen dengan panjang positip, dan jika X* hingga, dia mempunyai sebuah elemen dengan panjang terbesar. Ambil panjang terbesar dari anggota X* adalah n > 0 dan ambil j X* adalah mempunyai panjang n. Maka sekuen jj X*, yang diperoleh dengan menggadengkan j dengan dirinya sendiri, mempunyai panjang 2n > n, berlawanan dengan hipotesis bahwa n adalah panjang terbesar dari anggota-anggota X*. Karena itu X* adalah tak hingga. Jika himpunan X pada Definisi 1.13.2 adalah alphabet masukan Σ, sebuah anggota dari Σ* (= X*) kadang-kadang disebut sebuah pita (tape) atau sebuah pita masukan (input tape). Kita cari cara untuk memperluas fungsi-fungsi δ dan λ kepada S × Σ* sehingga mereka didefinisikan untuk pita-pita masukan, daripada masukan-masukan tunggal. Pertama marilah kita temukan bagaimana hal ini harus dilakukan. Hasil dari sebuah pita masukan pada sebuah state secara parsial telah dieksplorasi dalam Subbab 1.2 dan Latihan 1.5.3 dan Latihan 1.5.4. Selanjutnya marilah kita perikas proses tersebut dengan menggunakan “binary 1/3 recognizer” pada Contoh 1.9.1. Jika kita kodekan keluaran- keluarannya sehingga 00 = l (lebih kecil dari 1/3), 01 = e (mamadengan 1/3), dan 11 = m (lebih besar dari 1/3), dan jika kita ambil Δ = {l, e, m}, diagram state pada Gambar 1.36 dapat ditranslasikan ke dalam table δ-λ pada Tabel 1.46. Tabel 1.46. Tabel δ-λ untuk Contoh 1.9.1. 0 1 a b/e c/m b d/l a/e c c/m c/m d d/l d/l Sekarang misalkan bahwa pita masukan 100 digunakan pada state b (kita pikirkan semua pita masukan sebagai mulai dari kiri, kecuali dinyatakan lain). Untuk memperoleh next-state yang dihasilkan, pertama kita cari next-state dari b dengan masukan pertama dari pita tersebut, 1. Karena δ(b, 1) = a, kita harus peroleh δ(b, 100) = δ(a, 00). Sekarang kita peroleh next-state dari a dengan masukan kedua, 0, dari pita asli. Karena δ(a, 0) = b, kita harus peroleh δ(a, 00) = δ(b, D:\Zamir_Bavel\Definisi_1_13_2.doc

description

Definisi Himpunan Bagian oleh Zamir Bavel in bahasa.

Transcript of Definisi Himpunan Bagian oleh Zamir Bavel

Page 1: Definisi Himpunan Bagian oleh Zamir Bavel

1

Definisi 1.13.2. Ambil X adalah sebuah himpunan tak kosong. Himpunan dari semua sekuen hingga dari elemen-elemen X, termasuk sekuen kosong, dinyatakan dengan X*. Jumlah banyaknya kemunculan elemen-elemen X dalam sebuah sekuen disebut panjang dari sekuen tersebut. Sekuen kosong mempunyai panjang nol dan dinyatakan dengan ε. Dalam penggabungan dengan anggota-anggota X*, ε hilang: yaitu, xε = εx = x, ∀x ∈ X*.

Sekuen kosong ε jangan dikelirukan dengan himpunan kosong, dinyatakan dengan ∅; ε adalah selalu sebuah elemen dari X* (meskipun jika definisi mengizinkan X sebagai himpunan kosong), sedangkan ∅ adalah sebuah himpunan (terutama sebuah subhimpunan dari X*) yang tidak mempunyai elemen-elemen.

Pembaca dapat mencatat bahwa X* adalah selalu sebuah himpunan tak hingga, sebagaimana kita lanjutkan untuk perlihatkan. Pertama, setiap anggota dari X adalah sebuah sekuen dengan panjang 1 dan karena itu sebuah anggota dari X*; jadi, X ⊆ X*.

Sekarang, karena X tidak kosong, X* mempunyai sebuah elemen dengan panjang positip, dan jika X* hingga, dia mempunyai sebuah elemen dengan panjang terbesar. Ambil panjang terbesar dari anggota X* adalah n > 0 dan ambil j ∈ X* adalah mempunyai panjang n. Maka sekuen jj ∈ X*, yang diperoleh dengan menggadengkan j dengan dirinya sendiri, mempunyai panjang 2n > n, berlawanan dengan hipotesis bahwa n adalah panjang terbesar dari anggota-anggota X*. Karena itu X* adalah tak hingga.

Jika himpunan X pada Definisi 1.13.2 adalah alphabet masukan Σ, sebuah anggota dari Σ* (= X*) kadang-kadang disebut sebuah pita (tape) atau sebuah pita masukan (input tape). Kita cari cara untuk memperluas fungsi-fungsi δ dan λ kepada S × Σ* sehingga mereka didefinisikan untuk pita-pita masukan, daripada masukan-masukan tunggal. Pertama marilah kita temukan bagaimana hal ini harus dilakukan.

Hasil dari sebuah pita masukan pada sebuah state secara parsial telah dieksplorasi dalam Subbab 1.2 dan Latihan 1.5.3 dan Latihan 1.5.4. Selanjutnya marilah kita perikas proses tersebut dengan menggunakan “binary 1/3 recognizer” pada Contoh 1.9.1. Jika kita kodekan keluaran-keluarannya sehingga 00 = l (lebih kecil dari 1/3), 01 = e (mamadengan 1/3), dan 11 = m (lebih besar dari 1/3), dan jika kita ambil Δ = {l, e, m}, diagram state pada Gambar 1.36 dapat ditranslasikan ke dalam table δ-λ pada Tabel 1.46.

Tabel 1.46. Tabel δ-λ untuk Contoh 1.9.1.

0 1 a b/e c/m b d/l a/e c c/m c/m d d/l d/l

Sekarang misalkan bahwa pita masukan 100 digunakan pada state b (kita pikirkan semua pita masukan sebagai mulai dari kiri, kecuali dinyatakan lain). Untuk memperoleh next-state yang dihasilkan, pertama kita cari next-state dari b dengan masukan pertama dari pita tersebut, 1. Karena δ(b, 1) = a, kita harus peroleh δ(b, 100) = δ(a, 00). Sekarang kita peroleh next-state dari a dengan masukan kedua, 0, dari pita asli. Karena δ(a, 0) = b, kita harus peroleh δ(a, 00) = δ(b,

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 2: Definisi Himpunan Bagian oleh Zamir Bavel

2

0), yang mana adalah d. Dengan demikian proses tersebut menghasilkan δ(b, 100) = δ(a, 00) = δ(b, 0) = d.

Persamaan pertama dari persamaan-persamaan tersebut dihasilkan dari δ(b, 1) = a. Sekarang jika kita ganti a dengan δ(b, 1), persamaan pertama ini menjadi δ(b, 100) = δ(δ(b, 1), 00). Dengan memperlakukan persamaan kedua secara serupa, kita gunakan δ(a, 0) = b untuk memperoleh δ(a, 00) = δ(δ(a, 0), 0) dan dengan demikian δ(b, 100) = δ(δ(b, 1), 00) = δ(δ(δ(b, 1), 0), 0).

Selagi setiap masukan dari pita tersebut 100 dipakai pada state-state yang bersesuaian, sebuah keluaran dihasilkan dalam proses tersebut. Jadi, ketika 1 dipakai pada b, keluarannya adalah λ(b, 1) = e. Sekarang, sebagai sebuah hasil dari masukan pertama ketika masukan kedua, 0, diberikan pada mesin yang sedang berada dalam state δ(b, 1) = a sehingga keluaran yang dihasilkan adalah λ(δ(b, 1), 0) = λ(a, 0) = e. Ketika masukan terakhir, 0, diberikan, state mesin adalah δ(b, 10) = δ(a, 0) = b dan oleh karena itu keluaran ketiga adalah λ(δ(b, 10), 0) = λ(δ(a, 0), 0) = λ(b, 0) = l. Sekuen keluaran yang dihasilkan dari seluruh proses tersebut dengan demikian adalah eel; hal ini diperoleh dengan λ(b, 100) = λ(b, 1)λ(δ(b, 1), 00) = λ(b, 1)λ(a, 00) = λ(b, 1)λ(a, 0)λ(δ(a, 0), 0) = λ(b, 1)λ(a, 0)λ(b, 0) = eel.

Sebagai contoh lain, kita cari next-state dari a dengan 0110: δ(a, 0110) = δ(δ(δ(δ(a, 0), 1), 1), 0) = δ(δ(δ(b, 1), 1), 0) = δ(δ(a, 1), 0) = δ(c, 0) = c.

Sekuen keluaran yang diperoleh dalam proses tersebut adalah λ(a, 0110) = λ(a, 0)λ(δ(a, 0), 110) = λ(a, 0)λ(b, 110) = λ(a, 0)λ(b, 1)λ(δ(b, 1), 10) = λ(a, 0)λ(b, 1)λ(a, 10) = λ(a, 0)λ(b, 1)λ(a, 1)λ(δ(a, 1), 0) = λ(a, 0)λ(b, 1)λ(a, 1)λ(c, 0) = eemm.

Langkah-langkah yang kita ambil dalam dua contoh tersebut ditentukan oleh keinginan untuk kesesuaian (compatibility) antara hasil dari pemakaian sebuah masukan tunggal pada sebuah state dan hasil dari pemakaian masukan pertama dari sebuah pita (tape) pada state tersebut. Hal inilah motivasi untuk Definisi 1.13.3.

Definisi 1.13.3. Ambil x1x2 … xk ∈ Σ* dimana xi ∈ Σ untuk setiap i ∈ {1, …, k}, dan dimana k > 0, dan ambil s ∈ S. Definisikan

δ(s, x1x2 … xk) = δ(δ(s, x1x2 … xk-1), xk)

dan

λ(s, x1x2 … xk) = λ(s, x1)λ(δ(s, x1), x2 … xk).

Untuk pita kosong (k = 0), definisikan

δ(s, ε) = s dan λ(s, ε) = ε.

Bagian pertama dari definisi ini menyatakan secara tidak langsung bahwa apa yang telah kita lihat sebelumnya: dimana s1 = s dan si+1 = δ(si, xi), untuk 1 ≤ I ≤ k, δ(s, x1, x2 … xk) = δ(δ(s, x1x2 … xk-1), xk) = … = δ(δ( … δ(δ(s1, x1), x2) …, xk-1), xk) = δ(δ( … δ(s2, x2) …, xk-1), xk) = … = δ(δ(sk-1, xk-1), xk) = δ(sk, xk) = sk+1.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 3: Definisi Himpunan Bagian oleh Zamir Bavel

3

Kita sebut sk+1 sebagai next-state dari s dengan pita x1x2 … xk.

Karena s = s1, bagian kedua dari Definisi 1.13.3 dapat dituliskan sebagai λ(s, x1x2 … xk) = λ(s1, x1)λ(s2, x2 … xk), dan dengan pemakaian berulang dari proses yang sama ini kita peroleh λ(s, x1x2 … xk) = λ(s1, x1)λ(s2, x2)λ(δ(s2, x2), x3 … xk) = λ(s1, x1)λ(s2, x2)λ(s3, x3 … xk) = … = λ(s1, x1)λ(s2, x2) … λ(sk, xk). Jadi keluaran yang dihasilkan dari pemakaian sebuah sekuen masukan j pada state a adalah sebuah sekuen keluaran yang panjangnya adalah panjang dari j.

Daripada mulai dengan Definisi 1.13.1 dan kemudian dengan memperluas domain dari δ dan λ pada S × Σ* dengan Definisi 1.13.3, kita dapat mendefinisikan sebuah mesin sekuensial dalam suatu cara yang demikian sehingga domain dari δ dan λ adalah S × Σ* untuk mulai dengan, seperti yang kita lakukan dalam Definisi 1.13.4. Definisi ini mempunyai labih banyak kesamaan dengan definisi dari sebuah otomata yang diperkenalkan dalam Bab 2.

Definisi 1.13.4. Sebuah mesin sekuensial adalah sebuah 5-tuple M = (S, Σ, Δ, δ, λ), dengan

(i) S adalah sebuah himpunan hingga tak kosong (dari state); (ii) adalah sebuah himpunan hingga tak kosong (dari masukan);

(iii) adalah sebuah himpunan hingga tak kosong (dari keluaran); (iv) : S × Σ* → S adalah fungsi transisi (atau fungsi next-state) yang memenuhi: ∀x, y ∈ Σ*,

δ(s, xy) = δ(δ(s, x), y) dan δ(s, ε) = s; (v) : S × Σ* → Δ* adalah fungsi keluaran yang memenuhi ∀s ∈ S, ∀x, y ∈ Σ*, dan ∀I ∈ Σ,

λ(s, xy) = λ(s, x)λ(δ(s, x), y), λ(s, i) ∈ Δ, dan λ(s, ε) = ε.

Dalam Latihan 1.18.4, pembaca diminta untuk membuktikan bahwa definisi ini memang ekivalen dengan Definisi 1.13.1 yang diperluas dengan Definisi 1.13.3 dengan menunjukkan bahwa kondisi-kondisi yang cocok yang mana adalah intisari dari Definisi 1.13.3 dibangun ke dalam bagian (iv) dan (v) dari Definisi 1.13.4.

Pembaca harus mencatat bahwa, bahkan dengan Definisi 1.13.4, sebuah mesin khusus masih dapat didefinisikan dengan menspesifikasikan S, Σ, dan Δ dan image-image dari δ dan λ pada subhimpunan hingga S × Σ dari domain tak hingga s × Σ*, karena kondisi-kondisi yang harus dipenuhi oleh kedua fungsi tersebut dapat dipakai untuk memperoleh image-imagenya pada sisa dari domain tersebut. Jadi, sebuah table δ-λ atau sebuah diagram state masih tetap mendefinisikan sebuah mesin secara lengkap.

Catatan yang menyertai Definisi 1.13.1 juga benar untuk perluasannya berdasarkan Definisi 1.13.3 dan karena itu unutk Definisi 1.13.4. Definisi yang terakhir mendefinisikan sebuah mesin sekuensial lengkap, karena δ dan λ didefinisikan untuk seluruh pasangan (s, x) ∈ S × Σ*. Selanjutnya, nilai δ untuk sembarang (s, x) ∈ S × Σ* adalah sebuah anggota dari S; yaitu, S tertutup dibawah δ untuk setiap x ∈ Σ*.

Seperti yang telah ditunjukkan sebelumnya dalam subbab ini, pentingnya sifat tertutup (closure) ini menjadi jelas ketika perhatian difokuskan pada submesin dari sebuah mesin. Sebelum memperkenalkan sedinisi formal dari sebuah submesin, marilah kita lihat, sebagai contoh, pada mesin M yang didefinisikan oleh Tabel 1.47 dan Gambar 1.45.

Marilah kita hapus dari Tabel 1.47 baris-baris yang tidak diberi tanda bintang untuk mendapatkan Tabel 1.48. Sebenarnya table ini dapat dipakai sebagai sebuah table δ-λ dari

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 4: Definisi Himpunan Bagian oleh Zamir Bavel

4

sebuah mesin, dan diagram state yang terkait dengannya, ditunjukkan dalam Gambar 1.46, adalah bagian dari Gambar 1.45 di dalam batas-batas garis putus-putus. Seperti yang akan kita lihat sekarang, kita tidak dapat memilih baris-baris dengan acak dari sebuah table δ-λ dan berharap memperoleh sebuah mesin. Pemilihan dari baris-baris dengan tanda bintang pada Tabel 1.47 telah berhasil karena masing-masing entri next-state dalam baris-baris tersebut adalah sebuah label dari salah satu dari baris-baris tersebut (itu juga). Dengan kata lain, subhimpunan {b, d, e} dari himpunan state-state M adalah tertutup di bawah δ untuk semua masukan.

Tabel 1.47. Tabel δ-λ untuk mesin M.

x y a c/0 b/1 * b d/1 e/1 c b/1 d/0 * d e/0 d/0 * e e/1 e/0

Gambar 1.45. Diagram state untuk mesin M.

Sebaliknya, marilah kita pilih tiga baris pertama dari Tabel 1.47 dan memeriksa hasilnya seperti yang ditunjukkan dalam Tabel 1.49. Meskipun table ini nampak seperti sebuah table δ-λ, sesungguhnya table ini bukan table δ-λ, karena beberapa transisinya tidak mempunyai arti dalam konteks table ini sendiri. Sebagai contoh δ(b, x) = d adalah bukan sebuah state dari mesin yang dinyatakan oleh Tabel 1.49. Untuk menyadari butir ini lebih lanjut, pembaca dapat mencoba menggambarkan sebuah diagram state dari Tabel 1.49 (pasti tidak berhasil, ini hanya untuk meyakinkan).

Tabel 1.48. Sebuah submesin dari M.

x y b d/1 e/1 d e/0 d/0 e e/1 e/0

Pilihan pertama kita mempunyai semua sifat dari sebuah mesin, sedangkan pilihan yang kedua telah gagal memenuhi sifat tertutup (closure) terhadap fungsi transisi. Tipe pemilihan pertama

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 5: Definisi Himpunan Bagian oleh Zamir Bavel

5

jelas mengandung lebih banyak kepentingan dan janji dan dengan demikian kita mendefinisikannya secara formal.

Tabel 1.49. Sebagian dari Tabel 1.47.

x y a c/0 b/1 b d/1 e/1 c b/1 d/0

Gambar 1.16. Diagram state untuk Tabel 1.48.

Definisi 1.13.5. Ambil M = (S, Σ, Δ, δ, λ) adalah sebuah mesin sekuensial, dan ambil R ⊆ S, R ≠ ∅. Ambil δ’ dan λ’ adalah pembatasan pada (restrictions of) δ dan λ, secara berturut-turut, pada (terhadap) R × Σ (atau R × Σ*). Maka N = (R, Σ, Δ, δ’, λ’) dikatakan sebagai sebuah submesin dari M, dinyatakan dengan N « M, jika dan hanya jika N adalah sebuah mesin, yaitu, jika dan hanya jika δ’ memetakan R × Σ (atau R × Σ*) ke dalam R.

Harus dicatat bahwa δ” dan λ’ adalah fungsi-fungsi yang didefinisikan dengan baik (well-defined) karena mereka mewarisi definisi-definisi mereka dari definisi-definisi δ dan λ. Dengan demikian, untuk membuktikan bahwa N « M, cukup menunjukkan bahwa R adalah tertutup di bawah δ’ untuk setiap x ∈ Σ, yaitu, bahwa semua next-state dari anggota-anggota R adalah anggota-anggota R itu sendiri.

Catat juga bahwa, berdasarkan Definisi 1.13.5, M adalah submesin dari dirinya sendiri, M « M.

Untuk melengkapi ilustarasi ini, kita daftar semua submesin dari Tabel 1.47 berdasarkan himpunan state-statenya: {a, b, c, d, e}, {b, c, d, e}, {b, d, e}, {d, e}, {e}. Pembaca harus memverifikasi kebenaran dari daftar tersebut. Marilah kita sebut submesin-submesin yang berkaitan dengan himpunan state-state tersebut, secara berturut-turut, M1, M2, M3, M4, dan M5. Maka kita catat bahwa M5 « M4 « M3 « M2 « M1. Ini adalah sebuah situasi yang agak tidak biasa, dan seringkali dua submesin tidak dapat dibandingkan dengan relasi «, seperti yang akan pembaca temukan dari Latihan 1.18.7 sampai Latihan 1.18.9.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 6: Definisi Himpunan Bagian oleh Zamir Bavel

6

Demi kelengkapan, kita perkenalkan definisi dari mesin-mesin tak lengkap dan tidak-usah-lengkap (not-necessarily-complete). Mesin-mesin tersebut meneladan Definisi 1.13.1 dan diberikan tanpa perluasan dari fungsi transisi dan fungsi keluaran yang berkaitan. Catat bahwa yang dimaksud dengan “tidak lengkap” adalah “dispesifikasikan secara tidak lengkap”.

Definisi 1.13.6. Sebuah mesin sekuensial not-necessarily-complete (NNC) adalah sebuah 5-tuple M = (S, Σ, Δ, δ, λ), dengan

(i) S adalah sebuah himpunan hingga tak kosong (dari state-state); (ii) adalah sebuah himpunan hingga tak kosong (dari masukan);

(iii) adalah sebuah himpunan hingga tak kosong (dari keluaran); (iv) adalah sebuah fungsi (fungsi transisi) pada sebuah subhimpunan dari S × Σ ke dalam S; (v) adalah sebuah fungsi (fungsi keluaran) pada sebuah subhimpunan dari S × Σ ke dalam Δ.

M adalah sebuah mesin sekuensial tak lenglap jika dan hanya jika domain dari sekurang-kurangnya satu dari δ dan λ adalah sebuah subhimpunan sejati (proper subset) dari S × Σ (dan M adalah sebuah mesin sekuensial NNC).

Meskipun kita tunda dulu mempelajari mesin-mesin NNC dan mesin tak lengkap untuk nanti, kita berikan di sini sebuah contoh dari sebuah mesin tak lengkap untuk melukiskan perbedaan antara Definisi 1.13.6 dan Definisi 1.13.1 dan untuk menunjukkan beberapa kesulitan dalam memperluas fungsi transisi dan fungsi keluaran.

Akan kita gunakan notasi dan konvensi yang sama untuk mesin-mesin tak lengkap seperti yang kita gunakan untuk mesin-mesin lenkap. Jadi, kita dapat mendefinisikan mesin tak lengkap dengan apa yang dipandang sebagai sebuah table δ-λ dalam kasus-kasus tak lengkap. Perhatikan mesin tak lengkap pada Tabel 1.50. Tanda-tanda strip (dashes) dalam table tersebut menunjukkan entri-entri yang kurang (missing), yaitu, anggota-anggota dari S × Σ untuk maan δ dan/atau λ tidak didefinisikan. Sebagai contoh, δ tidak didefinisikan untuk (b, x) dan (c, y) sedagkan λ tidak didefinisikan untuk (b, z) dan (c, y).

Tabel 1.50. Tabel δ-λ untuk sebuah mesin tak lengkap.

x y z a b/0 c/1 a/1 b −/1 a/0 c/− c b/1 −/− c/0

Gambar 1.47. Diagram state untuk mesin tak lengkap dari Tabel 1.50.

Dalam diagram pada Gambar 1.47, panah yang mulai (berawal) dari b dan diberi label x/1 tidak berakhir pada salah satu dari state-state tersebut, meskipun dengan menunjukkan bahwa λ(b, x)

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 7: Definisi Himpunan Bagian oleh Zamir Bavel

7

= 1, δ(b, x) tidak terdefinisi; panah dari b ke c dengan label z menunjukkan bahwa δ(b, z) = c, tetapi λ(b, z) tidak terdefinisi; dan tiadanya sebuah panah dengan label masukan y yang berawal dari c menunjukkan bahwa δ(c, y) tidak terdefinisi juga tidak λ(c, y).

Next-state dari a dengan pita xyy, misalnya, dapat diperoleh seperti dalam mesin lengkap dengan δ(a, xyy) = δ(δ(δ(a, x), y), y) = δ(δ(b, y), y) = δ(a, y) = c. Walaupun demikian, proses tersebut berhenti ketika kita mencoba mencari, misalnya, next-state dari a dengan xxy, karena δ(a, xxy) = δ(δ(δ(a, x), x), y) = δ(δ(b, x), y), tetapu δ(b, x) tidak ada.

Serupa, λ(b, yxx) = λ(b, y)λ(a, x)λ(b, x) = 001 tetapi λ(b, yxxx) = λ(b, y)λ(a, x)λ(b, x)λ(δ(b, x), x) tidak ada karena δ(b, x) tidak ada. Juga, λ(c, xzz) tidak ada, tetapi untuk suatu alas an yang berbeda: λ(c, xzz) = λ(c, x)λ(b, z)λ(c, z) dimana entri ditengah λ(b, z) tidak didefinisikan. Ilustrasi di atas cukup memverifikasi bahwa mesin-mesin tak lengkap memerlukan perlakuan yang terpisah karena perbedaannya dan problem-problem komplek yang dimunculkannya.

1.15. Pemilihan di antara model-model: model Mealy dan model Moore.

Unsur dasar dari sebuah struktur sekuensial telah dipelajari dalam subbab-subbab sebelumnya dalam suatu rincian dan dilukiskan dalam berbagai aplikasi. Bahkan di dalam lingkup yang terbatas ini, telah kita jumpai empat model dari sebuah mesin sekuensial yang satu sama lain berbeda dalam beberapa karakteristik sifat-sifat dasar. Kombinasi dari dua klasifikasi dari struktur sekuensial seperti dispesifikasikan secara lengkap lawan dispesifikasikan secara tak lengkap dan sebagai hingga lawan tak hingga telah menghasilkan empat model tersebut.

Pemilihan model pada sebuah mesin sekuensial tergantung pada keperluan penyelidikan dan aplikasi. Jadi, seperti yang telah kita lihat, sebuah mesin sekuensial hingga adalah sebuah model yang tidak sesuai untuk perkalian dari dua bilangan bulat positip sembarang; juga tidak sebuah mesin yang dispesifikasikan secara tak lengkap adalah pemilihan model untuk penjumlahan dari dua bilangan-bilangan bulat positip sembarang, kalau tidak beberapa penjumlahan tidak didefinisikan oleh model tersebut.

Sejauh ini, pemakaian dari mesin-mesin sekuensial dimana kita harus berkonsentrasi terutama adalah dua. Salah satunya adalah representasi dari kejadian-kejadian, situasi-situasi, dan divais dari sifat dasar sekuensial. Aplikasi-aplikasi sepanjang garis ini adalah banyak dan bervariasi, dan telah kita ilustrasikan kecuali satu bagian kecil dari mereka.

Pemakaian utama lainnya dari sebuah struktur sekuensial yang diilustrasikan sebelum ini terutama adalah ilustrasi dari sebuah transducer, sebuah divais yang mentransformasikan sekuen masukan ke dalam sekuen keluaran. Sifat seksama dari suatu transformasi tersebut dan sifat-sifat yang dipertahankan adalah sebuah subjek untuk pembelajaran diluar lingkup saat ini. Walaupun demikian, gagasan dasar yang terlibat secara intuitif tidak sulit dan, sebenarnya, telah banyak dilukiskan sampai sekarang. Sebagai contoh, suatu table δ-λ, atau diagram state, pada Subbab 1.8 sampai dengan Subbab 1.10 adalah sebuah mekanisme untuk suatu transformasi seperti itu. Jadi, pengali 3 biner pada contoh 1.9.3 mentransformasikan sebuah string masukan dari 0 dan 1, yang mana merepresentasikan sebuah bilangan bulat biner, ke dalam sebuah string keluaran dari 0 dan 1, yang mana merepresentasikan sebuah bilangan bulat biner tiga kali lebih besar.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 8: Definisi Himpunan Bagian oleh Zamir Bavel

8

Sebuah aplikasi yang lebih canggih dari prinsip yang sama, meskipun dengan struktur yang lebih banyak daripada yang telah kita ilhami dalam model dari sebuah mesin sekuensial, adalah translator dari sebuah bahasa pemrograman (bersesuaian dengan system computer yang menyebabkan translasi tersebut). Sebuah string masukan terdiri dari statement-statement dari sebuah program tertentu yang dituliskan dalam ALGOL, misalnya, dan string keluaran adalah program bahasa mesin yang dihasilkan. (Solusi computer dari sebuah problem adalah/merupakan juga para pelaku dalam peran ini).

Aplikasi utama lainnya dari sebuah divais sekuensial adalah dalam bidang teori bahasa formal, dimana dia dipakai untuk keperluan-keperluan diagnostic, diantara keperluan-keperluan lainnya. Berlawanan dengan tugas-tugas menterjemahkan sebuah string masukan ke dalam sebuah string keluaran, yang mana adalah tujuan dari translasi, ketika/bila sebuah divais sekuensial dipakai secara diagnostic dia akan menentukan apakah sebuah string masukan bagian dari sebuah himpunan string yang telah ditentukan sebelumnya. Dalam peran ini, divais tersebut digunakan sebagai sebuah recognizer atau acceptor.

Sebelum pembahasan lebih lanjut, kita ilustrasikan dengan sebuah contoh. Kita menaruh perhatian pada himpunan-himpunan dari string-string dari suatau alphabet (masukan) Σ = {0, 1}, yaitu, himpunan dari string-string hingga dari 0 dan 1. (Catat bahwa string kosong ε adalah juga hingga). Pikirkan salah satu dari himpunan tersebut,

L = {1} ∪ 0Σ* ∪ 11Σ*.

Yang dimaksud dengan 0Σ* adalah himpunan dari seluruh string yang mulai dengan 0, yaitu 0 diikuti dengan sembarang anggota dari Σ*. Jadi, beberapa anggota terpendek dari 0Σ* adalah 0, 00, 01, 000, 001, 010, 011, dan seterusnya. Serupa, 11Σ* adalah himpunan dari semua string yang mulai dengan 11, seperti 11, 110, 111, dan seterusnya.

Diagram state dalam Gambar 1.49 mendefinisikan sebuah mesin sekuensial yang mengenali anggota-anggota dari L dalam cara berikut. Sebuah string masukan diberikan pada state inisial s (ditandai dengan sebuah panah tebal yang masuk), satu karakter pada satu waktu. Bilamana keluaran saat itu adalah 1, sekuen masukan, atau bagian sekuen masukan yang telah digunakan sampai saat itu, diterima sebagai sebuah anggota dari L. Bilamana keluaran saat itu adalah 0, bagian dari sekuen masukan tersebut ditolak sebagai bukan berada dalam L.

Gambar 1.49. Sebuah mesin sekuensial M(L) yang mengenali L.

Jika masukan pertama adalah 0, mesin berpindah dari state s ke state r dan keluarannya adalah 1; jadi, 0 diterima, sebagai sebuah anggota dari L. Sampai di sini, sembarang sekuen masukan yang

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 9: Definisi Himpunan Bagian oleh Zamir Bavel

9

diberikan pada state saat itu (present state) r membiarkan mesin berapa dalam state r dan mengeluarkan sebuah keluaran terakhir 1. Sebagai akibatnya, sembarang string masukan yang mulai dengan 0 diterima oleh mesin M(L) tersebut. Hal ini menerangkan komponen 0Σ* dari L.

Sekarang, jika 1 dipakai ketika M(L) berada pada state s, next-statenya adalah t dan keluarannya adalah 1, menunjukkan penerimaan dari komponen {1} dari L. Jika 1 diberikan pada tempat ini, ketika present-state adalah t, M(L) bergerak ke dalam state r dan mengeluarkan sebuah keluaran 1. Sebagai akibatnya, sekuen masukan 11 juga diterima. Seperti yang telah dilihat sebelumnya, sembarang sekuen masukan yang diberikan pada r menghasilkan sebuah keluaran final 1; karena itu M(L) menerima semua sekuen masukan yang mulai dengan 11. Hal ini menerangkan komponen yang tersisa 11Σ* dari L.

Sebaliknya, setelah pemberian 1 pada s dan berpindah ke dalam state t, marilah kita gunakan sebuah 0. Sebagai hasilnya, M(L) berpindah ke dalam state u sementara mengeluarkan sebuah keluaran 0, menunjukkan bahwa 10 tidak diterima. Selanjutnya, sembarang sekuen masukan yang diberikan pada state u meninggalkan mesin tersebut berada dalam state u setelah mengeluarakan sebuah string yang terdiri dari 0. Sebagai akibatnya, semua string yang mulai dengan 10 ditolak oleh M(L).

Karena sembarang string tak kosong harus mulai dengan 0, 11, atau 10, M(L) memang menerima setiap string dalam L dan hanya string dalam L.

Model dari sebuah mesin sekuensial yang telah kita pakai sejauh ini disebut sebuah model Mealy, atau sebuah mesin Mealy, berdasarkan G. H. Mealy, orang yang mengusulkannya. E. F. Moore mengusulkan sebuah model yang agak berbeda, disebut dengan tepat model Moore, atau mesin Moore, yang mana memenuhi (melakukan) tugas yang sama.

Pemakaian model Moore untuk kegunaan saat ini adalah lebih menguntungkan dan lebih konvensional sekalugus, dan oleh karena itu kita memperkenalkannya di sini. Dalam sebuah mesin Moore, keluaran dipandang sebagai terkait (terikat) dengan present-state, daripada dengan transisi darinya, dan bahwa keluaran diemisikan (dipancarkan) secara otomatis bila mesin sedang berada, atau masuk ke dalam, state tersebut. Gambar 1.50 dan Table 1.51 memperlihatkan sebuah mesin Moore yang mengenali L.

u/0 0, 1

r/1 0, 1s/0

t/10

0

11

Gambar 1.50. Sebuah mesin Moore yang mengenali L.

Jika kita akan mengkonversikan Tabel 1.51 ke dalam table δ-λ dari sebuah mesin Mealy, kita hanya perlu menyisipkan pada setiap entri dalam kolom transisi keluaran-keluaran yang terkait dengan state tersebut, seperti yang dapat dilihat dari Tabel 1.52. Sebagai contoh, amati baris t

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 10: Definisi Himpunan Bagian oleh Zamir Bavel

10

dari kedua table. Dalam mesin Moore, transisi 0 ke u menghasilkan dalam sebuah keluaran 0 demi memasuki state u; jadi, keluaran yang dimasukkan untuk transisi 0 dari t dalam model Mealy adalah 0. Catat bahwa ini adalah keluaran yang terkait dengan next-state dari mesin Moore yang dimasuki untuk transisi tersebut dalam mesin Mealynya. Catat juga bahwa, dalam proses tersebut, kita telah kehilangan keluaran 0 yang terkait dengan state s dalam mesin Moore. Ilustrasi di sini agak sangat disederhanakan, tetapi ini cukup untuk menunjukkan perbedaan antara ke dua model. Ini juga cukup untuk memperkenalkan finite acceptors dalam subbab berikutnya, dimana kita bahas lebih lanjut divais-divais sekuensial sebagai recognizer dari himpunan string.

Tabel 1.51. Tabel δ-λ untuk mesin Moore pada Gambar 1.50.

0 1 λ s r t 0 r r r 1 t u r 1 u u u 0

Tabel 1.52. Sebuah mesin Mealy untuk Gambar 1.50.

0 1 s r/1 t/1 r r/1 r/1 t u/0 r/1 u u/0 u/0

1.16. Mesin Nondeterministik dan Finite Acceptors

Kita lanjutkan contoh dari subbab sebelumnya, di mana pusat perhatian adalah pada divais yang mengenali, atau menerima, himpunan

L = {1} ∪ 0Σ* ∪ 11Σ*

Dari string-string pada alphabet Σ = {0, 1}. Untuk keperluan menunjukkan penerimaan atau penolakan dari sebuah string masukan, sebuah alphabet keluaran dengan dua symbol sudah cukup. Sebenarnya, kita dapat meletakkan keluaran eksplisit bersama-sama jika kita sertakan (gabungkan) mekanisme penerimaan-penolakan tersebut ke dalam state-state itu sendiri. Hal ini dapat kita lakukan pada mesin Moore dari Gambar 1.50 dengan menunjuk state-state yang keluarannya 1 sebagai accepting states dan state-state dengan keluaran 0 sebagai rejecting states. Tidak ada hal penting yang diubah, kecuali bahwa model tersebut perlu sebuah pendefinisian kembali.

Marilah pertama kita amati hasil dari transmutasi ini. Dalam diagram pada Gambar 1.51, state-state s dan t direpresentasikan dengan lingkaran ganda untuk menunjukkan bahwa mereka adalah state-state penerima (accepting states), kadang-kadang disebut final states. Sembarang sekuen masukan yang, bila diberikan pada state inisial s, membawa pada sebuah accepting state adalah diterima oleh divais ini; dan hanya sekuen-sekuen seperti itu yang diterima.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 11: Definisi Himpunan Bagian oleh Zamir Bavel

11

Korespondesi antara divais-divais yang direpresentasikan oleh Gambar 1.50 dan Gambar 1.51 adalah sejelas kenyataan bahwa, untuk memperoleh divais terakhir dari yang pertama, kita gambar lingkaran lain melingkari state-state dengan keluaran 1 dan kemudian mengeliminasi semua keluaran dari diagram tersebut. Berharga untuk dicatat bahwa string kosong ε tidak diterima oleh divais kita ini, sebagaimana dia membawa dari s ke s, sebuah nonaccepting state. Bilamana inisial state juga sebuah accepting state, himpunan yang dikenali oleh divais tersebut mencakup ε sebagai sebuah anggota.

Gambar 1.51. Sebuah finite-state acceptor untuk L.

Definisi 1.16.1. Sebuah deterministic finite acceptor (dfa) adalah sebuah 5-tuple A = (S, Σ, δ, q, F), dengan S, Σ, dan δ adalah seperti dalam Definisi 1.13.4 dari sebuah mesin sekuensial, q ∈ S adalah inisial state, dan F ⊆ S adalah himpunan dari final (atau accepting) states.

Arti dari deterministic dalam difinisi ini adalah sebagai berikut. Untuk sembarang state s dan sembarang string masukan x, suksesor x dari s adalah hanya satu state; yaitu, terdapat sebuah t ∈ S yang unik sehingga δ(s, x) = t. Dalam diagram state, sifat deterministic ini terlihat dalam fakta bahwa tidak ada dua panah dengan label sama yang dapat keluar meninggalkan state yang sama (untuk pergi menuju state-state yang berbeda). Konsep ini dapat dipahami dengan lebih baik kalau dikontraskan dengan konsep dari divais nondeterministic, yang mana sekarang kita perkenalkan.

Marilah kita izinkan lebih dari satu panah yang diberi label sama meninggalkan state yang sama. Maka kita izinkan, misalnya, dua atau lebih suksesor 0 dari state yang sama. Selain itu, marilah kita hapus persyaratan penentuan secara lengkap transisi-transisi untuk semua state dan semua masukan. Dengan demikian, sebagai contoh, kita boleh tidak mempunyai sama sekali suksesor 0 untuk beberapa state. Sebuah diagram untuk sebuah acceptor seperti itu mungkin nampak seperti acceptor dalam Gambar 1.52; state a mempunyai dua suksesor 0, a dan b, dan state b mempunyai dua suksesor 1 dan tidak mempunyai sama sekali suksesor 0.

Gambar 1.52. Sebuah nondeternimistik finite acceptor N.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 12: Definisi Himpunan Bagian oleh Zamir Bavel

12

Mekanisme akseptasi (acceptance) harus dipahami dengan hati-hati untuk sebuah acceptor seperti itu. Perhatikan string masukan 10. Mulai dengan state inisial a, masukan 1 hanya membawa pada b, dan dari b masukan 0 tidak ada. Konsekuensinya, 10 ditolak oleh N, karena tidak ada cara untuk mencapai sebuah accepting state dari a dengan 10.

Sebaliknya, perhatikan string masukan 010. Jika transisi 0 pertama dari a dipilih sebagai masukan yang membawa pada a, maka masukan 1 membawa dari sini ke b, dan sekali lagi, masukan 0 berikutnya tidak dapat diberikan. Serupa, jika transisi 0 bertama dipilih sebagai masukan yang membawa dari a ke b, tetapi transisi 1 dari b dipilih sebagai masukan yang membawa dari b ke dirinya sendiri, situasi yang sama terjasi – transisi 0 berikutnya tidak ada. Meskipun demikian, hal ini bukan sebuah alas an yang cukup untuk menolak 010, karena terdapat sebuah jalan untuk mencapai accepting state b dari state inisial a dengan 010: dari a dengan 0 ke b, dari b dengan 1 ke a, dan dari a dengan 0 ke b. Sebagai konsekuensinya, 010 diterima oleh N. Maka, untuk merangkum, “sebuah string masukan x adalah diterima oleh nondeterministic acceptor jika dan hanya jika terdapat sebuah cara untuk mencapai dengan x dari state awal ke suatu accepting state”. Harus dicatat bahwa interpretasi yang sama ini pada mekanisme acceptance-rejection juga berlaku untuk dfa, karena jika terdapat suatu cara tersebut, ini adalah satu-satunya cara untuk menggunakan string masukan x. Maka kita akan mengerti kalimat terakhir yang ditulis miring sebagai mekanisme untuk acceptance bagi deterministic dan nondeterministic finite acceptors sekaligus, kecuali bahwa dalam hal yang pertama selalu hanya ada satu jalur (path) untuk ditelusuri.

Maka perbedaaan mendasar antara definisi dari model-model deterministic dan nondeterministic harus terletak dalam definisi dari fungsi transisi δ.

Definisi 1.16.2. Sebuah aseptor hingga nondeterministic (nfa) adalah sebuah 5-tuple N = (S, Σ, δ, q, F), dimana S, Σ, q, dan F adalah seperti dalam Definisi 1.16.1 dari sebuah dfa, dan dengan δ : S × Σ* → {semua subhimpunan dari S} memenuhi kondisi-kondisi kompatibilitas berikut: ∀s ∈ S, ∀x ∈ Σ*, ∀I ∈ Σ,

U),(

),(),(xst

itxisδ

δδ∈

=

dan δ(s, ε) = {s}.

Perbedaan dalam definisi δ harus dicatat baik-baik. Kalau dalam model deterministic image δ(s, x) adalah selalu sebuah state, dalam kasus nondeterministic imagenya adalah sebuah himpunan state. Untuk melukiskan butir ini, dalam nfa N pada Gambar 1.52,

δ(a, 0) = {a, b}, δ(a, 1) = {b},

δ(b, 0) = ∅ δ(b, 1) = {a, b}.

Daftar ini diperlihatkan dalam bentuk tabular dalam Tabel 1.53. Catat bahwa sekarang transisi 0 dari b didefinisikan, karena himpunan kosong adalah sebuah subhimpunan dari S.

Untuk melukiskan lebih lanjut, kita hitung transisi 01 dari a. Karena 0 membawa dari a ke a dan b sekaligus, sekarang kita pakai 1 dalam semua cara yang mungkin pada a dan b sekaligus.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 13: Definisi Himpunan Bagian oleh Zamir Bavel

13

Karena δ(a, 1) = {b} dan δ(b, 1) = {a, b}, kita peroleh hasil yang diinginkan sebagai gabungan dari himpunan-himpunan tersebut; yaitu, {b} ∪ {a, b} = {a, b}.

Tabel 1.53. Transisi-transisi N (Gambar 1.52).

0 1 a {a, b} {b} b ∅ {a, b}

Jika kita pandang seluruh hasil tersebut sebagai state-state dari sebuah acceptor, dan menyertakan di antara mereka titik mulai {a} sebagai sebuah state inisial, kita peroleh Tabel 1.54. Cara memperoleh entri-entri daripada table tersebut adalah sebagai berikut. Baris pertama diberi label dengan himpunan singleton {a} yang elemennya adalah state inisial a dari N. Entri {a, b} dalam kolom 0 merepresentasikan semua state yang dapat dicapai dari anggota a dari label {a} dari baris tersebut. Serupa, entri {b} dalam kolom 1 merepresantasikan satu-satunya suksesor 1 dari a.

Tabel 1.54. Transisi-transisi dari N yang diperluas.

0 1 {a} {a, b} {b} {b} ∅ {a, b}

{a, b} {a, b} {a, b} ∅ ∅ ∅

Untuk mencari state-state yang dapat dicapai dari a dengan 00 atau 01, kita harus mulai dengan semua suksesor 0 dari a dan kemudian menggunakan pada state-state tersebut masukan kedua yang bersesuaian. Oleh karena itu kita daftar {a, b} sebagai label pada sebuah baris (baris ketiga), hitung himpunan-himpunan suksesor 0 dan 1 yang berkaitan, dan masukkan semua dari mereka sebagai himpunan yang dihasilkan dalam lokasi-lokasi yang sesuai. Ketika kita gunakan teknik yang sama pada himpunan {b} suksesor 1 dari {a}, kita peroleh bahwa tidak ada state yang dapat dicapai dengan 0; maka kita masukkan ∅ dalam kolom 0 pada baris kedua. Entri kolom 1 merepresentasikan suksesor 1 dari {b}, karena a dan b sekaligus dapat dicapai dari b dengan 1.

Untuk melengkapi table tersebut, setiap subhimpunan baru dari S yang dimasukkan ke dalam table tersebut harus memberi label sebuah baris dan harus dihitung himpunan-himpunan suksesor 0 dan 1 nya. Baris keempat dari table tersebut merepresentasikan fakta bahwa, dari himpunan kosong dari state-state, tidak ada state-state yang dapat dicapai baik dengan 0 atau 1.

Tabel 1.54 dengan demikian terlihat merepresentasikan subhimpunan-subhimpunan dari S sebagai transisi-transisi oleh 0 dan 1 dari subhimpunan-subhimpunan S. Dengan {a} sebagai state inisial, maka kita dapat menelusuri dengan sembarang string masukan x melalui transisi-transisi yang terkait, persis sepert yang kita lakukan dengan sebuah mesin sekuensial, dan himpunan terakhir yang kita capai akan mengandung semua state yang dapat dicapai dari a dengan x.

Sebagai contoh, 0 membawa dari {a} ke {a, b}, dan dari sini baik 0 dan 1 keduanya membawa kepada {a, b}. Karena itu, adalah mungkin untuk mencapai salah satu state jika masukan

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 14: Definisi Himpunan Bagian oleh Zamir Bavel

14

pertama dalam string tersebut adalah 0. Bagaimanapun, fakta penting adalah bahwa accepting state b dari N dapat dicapai. Sebagai contoh lain, 1 membawa dari {a} ke {b}, yang mana berarti bahwa hanya state b dapat dicapai dari state a dengan 1.Maka, kita catat bahwa 1 membawa pada accepting state b. Jika sekarang 1 yang lain diberikan, baik a dan b keduanya dapat dicapai dank arena itu transisinya adalah ke {a, b}. Sekali lagi salah satu masukan membawa pada kedua state dank arena itu, sepanjang sekuen masukan mulai dengan 11, kedua state a dan b dapat dicapai. Jadi adaalh mungkin untuk mencapai accepting state b dari a dengan sembarang string masukan yang mulai dengan 11.

Ingat kembali bahwa 1 membawa dari {a} hanya pada {b}. Jika sekarang 0 diberikan, entri ∅ dalam kolom 0 dari {b} menunjukkan bahwa tidak ada state yang dapat dicapai dengan 10 dari a; baris terakhir dari table tersebut menunjukkan bahwa tidak ada state yang dapat dicapai dengan sembarang sekuen yang mulai dengan 10. Jadi, terutama, tidak ada accepting state yang dapat dicapai.

Sedikit perluasan pada definisi δ mengizinkan kita memandang Tabel 1.54 sebagai table transisi dari sebuah mesin; kita pandang δ({a, b}, 0) sebagai δ({a}, 0) ∪ δ({b}, 0). Sekarang kita ingatkan kembali bahwa, dalam sebuah nfa, akseptasi (acceptance) dari sebuah string x berarti bahwa terdapat sebuah cara untuk mencapai sebuah accepting state dengan x. Tetapi kehadiran belaka dari accepting state b dalam himpunan {a, b} berarti sebagai berikut. Bilamana {a, b} dicapai dengan menelusuri dalam Tabel 1.54 dengan sebuah string masukan x, ada sebuah jalan untuk mencapai b dari a dengan x. Karena itu, jika b muncul dalam sebuah label dari sebuah baris pada Tabel 1.54, himpunan yang melabeli baris tersebut dapat dipandang sebagai sebuah accepting state dari sebuah acceptor. Bila kita masukkan keluaran-keluaran yang bersesuaian ke dalam table tersebut, kita peroleh hasilnya seperti yang diperlihatkan dalam Tabel 1.55. Ini adalah sebuah mesin Moore, dari mana kita peroleh dfa pada Gambar 1.53.

Tabel 1.55. Sebuah dfa dari N.

0 1 λ {a} {a, b} {b} 0 {b} ∅ {a, b} 1

{a, b} {a, b} {a, b} 1 ∅ ∅ ∅ 0

Gambar 1.53. Sebuah dfa dari Tabel 1.55.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 15: Definisi Himpunan Bagian oleh Zamir Bavel

15

Dfa pada Gambar 1.53 dengan mudah dapat dikenali sebagai dfa pada Gambar 1.51, yang mana menerima L, dengan nama-nama berbeda untuk state-statenya. Dengan demikian kita telah mulai dengan sebuah nfa N dan memperoleh sebuah dfa yang menerima himpunan yang sama L dari string-string. Teknik yang kita gunakan adalah umum dan dapat dipakai pada semua nondeterministic finite acceptors.

Satu kenyataan yang timbul saat ini adalah ‘daya komputasi”, atau “daya pengenalan”, dari klas nfa adalah sama dengan daya komputasi dari klas finite acceptor deterministic. Hal ini mengikuti dari dua fakta. Satu yang baru saja dilukiskan adalah bahwa, untuk sembarang nfa, terdapat sebuah dfa yang mana mengenali himpunan string yang persis sama. Fakta lain adalah bahwa sebuah dfa adalah isomorphic dengan sebuah nfa dengan setiap transisi dedefinisikan sebagai sebuah himpunan singleton. Sebagai akibatnya, untuk sembarang dfa, terdapat sebuah nfa yang mengenali himpunan string yang sama. Himpunan string-string yang dapat dikenali oleh acceptor-acceptor hingga disebut himpunan-himpunan regular.

Walaupun demikian, harus dicatat bahwa bila daya tambahan ditambahkan pada model tersebut agar himpunan-himpunan nonregular dapat dikenali, divais-divais nondeterministic dan deterministic yang dihasilkan merepresentasikan “recognition powers” yang berbeda.

Masih tetap harus dipertimbangkan pelibatan dengan nfa, bila mereka tidak meningkatkan klas dari himpunan-himpunan string yang dapat dikenali. Salah satu alasan yang mudah terlihat adalah fakta bahwa umumnya nfa mempunyai state yang lebih sedikit dan lebih mudah ditangani, sebagai suatu hasil, tentu saja, ketika sedangn memperoleh sebuah dfa dari sebuah nfa, kita berkepentingan dengan subhimpunan-subhimpunan dari S, dan ada 2|S| dari mereka. Alasan kedua terkait erat dengan yang pertama: nfa adalah sebuah alat yang sangat bernilai dalam membuktikan teorema-teorema, mengizinkan kesederhanaan dan sifat langsung yang alat lainnya tidak mempunyai (tersedia).

Sedikit catatan akhir adalah layak berkaitan dengan struktur sekuensial nondeterministic. Jika mereka dipandang sebagai mesin sekuensial yang fungsi transisi dan fungsi keluarannya boleh bernilai banyak, mereka mempunyai masifestasi dunia nyata dalam rangkaian-rangkaian (atau mesin-mesin fisik) yang mana dibangun dari komponen-komponen yang tidak andal atau yang menderita karena perubahan-perubahan perilaku sebagai sebuah konsekuensi dari interferensi luar. Mesin nondeterministic tersebut dapat dipandang sebagai apakah mesin sekuensial yang “rusak” atau mesin-mesin sekuensial yang dengan sengaja nondeterministic.

Variasi lain dari mesin nondeterministic terdiri dari mesin-mesin dimana berbagai transisi dan/atau keluaran dari sebuah state tunggal dan sebuah string masukan tunggal diberi bobot sehingga, meskipun semuanya mungkin, beberapa lebih mungkin terjadi daripada yang lainnya. Yang paling menonjol dari jenis ini adalah mesin-mesin (sekuensial) probabilistic, yang mana telah, dan sedang, diteliti secara ekstensif, tetapi yang mana adalah di luar lingkup dari buku ini. Mayoritas dari buku ini berkonsentrasi pada “completely specified deterministic sequential machines”.

1.17. Struktur-struktur Sekuensial Lain

Pada saat ini, akan membantu untuk mengganti citra mental yang agak abstrak dari model sebuah acceptor dengan suatu visualisasi dari sebuah divais fisik dari jenis kotak hitam.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 16: Definisi Himpunan Bagian oleh Zamir Bavel

16

Visualisasi ini akan memberikan perspektif yang lebih baik, selagi, pada saat yang bersamaan, dia akan mengizinkan kita untuk memperkenalkan komponen-komponen tambahan dan kemampuan-kemampuan tambahan tanpa harus mengambil jalan pada rincian-rincian formal. Kita ingin menghindari formalisme karena divais yang dihasilkan dari penguatan model dfa pada Subbab 1.16 adalah diluar lingkup dari buku ini. Mereka dijelaskan dalam subbab ini terutama untuk memperkenalkan pembaca dengan divais-divais sekuensial lainnya, karena penting, dan untuk menunjukkan peran yang dimainkan oleh model dasar dalam model yang diubah. Jadi, tujuan kita di sini adalah peran orientasi.

Gambar 1.54. Sebuah mesin sekuensial.

Gambar 1.54 menggambarkan mekanisme masukan-keluaran dari sebuah mesin sekuensial sebagai “eksternal”, dengan memindahkan mekanisme transisi ke interior (sebelah dalam) dari finite-control box. Sekuen masukan dianggap sudah tersedia pada pita yang ada, pita masukan, yang mana, dikendalikan oleh finite control kea rah kiri, satu kotak pada satu waktu, sehingga reading head menerima sinyal-sinyal masukan dari kiri ke kanan dalam suatu cara yang lazim. (Sebuah string masukan lain membutuhkan suatu “run” yang berbeda dengan sebuah penggantian tape). Finite control mewujudkan mekanisme untuk penggantian state, juga mekanisme untuk memancarkan sinyal-sinyal keluaran yang benar dan mengendalikan kedua pita sekaligus. Selama masing-masing satuan waktu, symbol masukan pada kotak yang dipindai digunakan oleh kendali hingga (finite control) untuk menentukan symbol keluaran, yang mana writing head kemudian menulis pada kotak yang bersesuaian dari pita keluaran. Kedua pita tersebut mulai dengan kotak paling kiri di bawah headnya masing-masing; setelah terjadi transisi dan symbol keluaran ditulis, ke dua pita digerakkan satu kotak ke kiri sehingga symbol masukan berikutnya disebelah kanan akan dipindai dan symbol keluaran yang dihasilkan dapat dimasukkan ke dalam kotak berikutnya disebelah kanan.

Susunan yang bersesuaian untuk sebuah finite acceptor ditunjukkan dalam Gambar 1.55. Disini, seperti dalam kasus pada Gambar 1.54, pengendali hingga (finite control) menerima sinyal-sinyal masukan dari ujung pembaca (reading head) dan memicu (triggers) penggerak pita masukan untuk selalu bergerak satu kotak ke kiri. Walaupun demikian, mekanisme keluaran telah diganti dengan kemampuan (internal) dari pengendali hingga tersebut untuk membedakan antara state accepting dan state nonaccepting.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 17: Definisi Himpunan Bagian oleh Zamir Bavel

17

Gambar 1.55. Sebuah finite acceptor.

Dengan kata masukan x dianggap sebagai telah ditentukan sebelumnya dan telah ada pada pita masukan, kita pertimbangkan x diterima oleh acceptor hingga jika dan hanya jika yang terakhir memasuki sebuah state final (accepting) pada saat yang bersamaan dengan ujung pembaca berpindah keluar ujung kanan dari x (ke sebelah kanan).

Variasi pertama yang kita ajukan ke dalam model tersebit adalah kemampuan untuk menggerakkan pita tersebut apakah ke kiri atau ke kanan sekaligus, sebenarnya, untuk membiarkannya berada dalam posisinya saat itu. Sebagai hasilnya, ujung pembaca dapat memindai kotak berikutnya di sebelah kanan, kotak disebelah kiri, atau kotak yang baru saja dipindainya. Divais yang seperti itu disebut sebuah two-way finite acceptor (two-way fa), atau two-way finite otomaton. Divais ini dilukiskan dalam Gambar 1.56.

0 0 0 01 1 1

Finite Control

Input tape

Gambar 1.56. Sebuah two-way finite acceptor.

Sekali lagi, seperti halnya dengan nondeterministic finite acceptors, perbedaan utama ada dalam definisi fungsi transisi δ. Walaupun demikian, fungsi ini lebih baik diberi mana next-move function, karena dia menyertakan instruksi untuk pergerakakan pita tersebut. Two-way fa menerima (accepts) sebuah string masukan x jika dan hanya jika dia memasuki sebuah state final tepat sebagaimana ujung pembaca bergerak keluar ujung kanan dari x (ke sebelah kanan), persis seperti halnya dengan one-way finite acceptors. Harus dicatat, bagaimanapun, bahwa sebuah string masukan x dapat ditolak (rejected) dalam lebih dari satu cara: (1) ujung pembaca bergerak keluar ujung kanan dari x ketika divais tersebut masuk ke dalam sebuah nonaccepting state, seperti pada one-way fa; (2) ujung pembaca bergerak keluar ujung kiri dari x; dan (3) ujung pembaca tinggal selamanya pada x, dengan bergerak dalam suatu loop atau tetap diam (yang mana juga dapat dianggap sebagai bergerak dalam suatu loop dengan panjang nol).

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 18: Definisi Himpunan Bagian oleh Zamir Bavel

18

Kemampuan untuk balik kembali pada kotak-kotak pita masukan yang telah dipindai sebelumnya adalah salah satu kemampuan yang tidak ada dalam one-way fa. Dengan demikian, dapat diperkirakan bahwa two-way finite otomaton, sebagai sebuah klas, mampu mengenali suatu klas dari himpunan-himpunan string yang lebih besar daripada yang dapat dikenali oleh one-way fa. Hal ini tidak demikian. Klas string yang dikenali oleh two-way fa adalah masih tetap persis sama klas dari himpunan-himpunan regular. Walaupun demikian, jika kemampuan tambahan dibangun ke dalam model tersebut, kemampuan bergerak mundur ini meningkatkan daya pengenalan (recognizing power) dari divais yang diperkuat ini, seperti kita lihat nanti.

Sekarang marilah kita kembali pada model finite acceptor pada Gambar 1.55, dan menambahkan padanya sebuah pita kedua, disebut penyimpanan push-down, dan sebuah read-write head untuk pita ini (Gambar 1.57). (Fakta bahwa kemampuan untuk membedakan antara state accepting dan nonaccepting jangan dilupakan, yang mana telah menggantikan mekanisme keluaran, masih tetap ada dalam finite acceptor ini; sebagai konsekuensinya, penyimpanan push-down ini adalah benar-benar sebuah penambahan). Divais yang dihasilkan disebut sebuah push-down acceptor (pda) atau sebuah push-down automaton.

Gambar 1.57. Sebuah push-down acceptor.

Pita masukan dan read-only headnya yang terkait beroperasi dalam gaya (one-way) finite acceptor. Push-down store beroperasi dalam mode push-down dan pop-up; yaitu, dia mempunyai sebuah kotak pertama, atau kotak dasar (bottom) di dalam mana read-write head dapat/boleh menulis sebuah symbol awal (starting symbol), Z. Ketika symbol berikutnya akan dituliskan, pita tersebut ditekan ke bawah (pushed down) dan symbol tersebut (A, dalam ilustrasi ini) dituliskan pada kotak berikutnya. Setiap kali symbol lain akan dituliskan dalam push-down store, pita tersebut ditekan ke bawah dan symbol tersebut dituliskan pada kotak di atas kotak yang baru saja dipindai. Dengan cara seperti ini, push-down store dapat dipakai untuk menyimpan sebuah sekuen remainders (sisa), yang mana akan di rediscovered (dipakai kembali) dalam urutan terbalik; yaitu, yang terakhir masuk adalah yang pertama keluar (LIFO).

Popping up dari penyimpanan tersebut menggerakkan nya satu kotak ke atas dan symbol pada kotak yang sebelumnya dipindai hilang – dihapus; yaitu, kotak di atas head selalu kosong. Kotak yang dipindai selalu di puncak dari penyimpanan (store) tersebut; setelah popping up, kotak yang tadinya tepat di bawah puncak menjadi kotak puncak dan dipindai oleh read-write head. Push-dpwn store dapat digerakkan naik atau turun (sepanjang tidak dicoba untuk merun keluar

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 19: Definisi Himpunan Bagian oleh Zamir Bavel

19

dari dasar tersebut) dalam suatu sekuen dari gerakan-gerakan tersebut, menyisipkan sebuah symbol setelah suatu gerakan push-down dan penghapusan sebuah symbol dalam proses pop-up. Bagaimanapun, kehilangan symbol ini adalah perlu, agar diperoleh yang mana symbol berikutnya jatuh.

Suatu keadaan khusus (khas), walaupun agak abstrak, di mana sebuah symbol khusus B dimasukkan dalam push-down store adalah sebagai berikut. Kita tahu bahwa suatu situasi tertentu hadir tetapi kita belum tahu aksi apa yang ingin kita ambil, sebagaimana hal ini akan tergantung pada kondisi-kondisi yang akan datang. Sebagai akibatnya, kita masukkan B dipuncak baru dari push-down store, menunggu baginya untuk diambil pada waktu yang tepat. Ketika ini terjadi, walaupun setelah banyak gerakan push-down dan pop-up, present state dan present input (dari kotak yang dipindai pada pita masukan) mengatakan dengan tepat yang mana dari beberapa kejadian yang mungkin telah terjadi. Sebagai hasilnya, B sekarang dapat memicu aksi yang benar, yang mana tidak mungkin sebelumnya.

Pergerakan-pergerakan tersebut, ditentukan oleh kendali hingga (finite control) sebagai suatu hasil dari present state, present input, dan present symbol yang dipindai pada push-down store, sekarang termasuk (meliputi) menggerakkan pita masukan, menggerakan push-down store dan kemungkinan menulis padanya, dan pengubahab state. Gerakan-gerakan tersebut adalah unik untuk setiap kombinasi dari state-input-store symbols, dalam hal ini divais tersebut disebut sebuah deterministic push-down acceptor (dpda). Sebaliknya, jika ada kemungkinan lebih dari satu hasil pada sekurang-kurangnya satu kombinasi tersebut, divaisnya disebut sebuah nondeterministic push-down acceptor (npda). (Seringkali, istilah pda berarti npda).

Sebuah string masukan x diterima oleh sebuah pda jika dan hanya jika, mulai dengan state inisial dari kendali hingga dan symbol awal pada kotak dasar dari penyimpanan (store), terdapat sebuah sekuen gerakan yang menyebabkan penyimpanan tersebut kosong ketika read head berangkat ujung kanan dari x. (Penerimaan oleh sebuah state adalah ekivalen dengan penerimaan oleh sebuah penyimpanan kosong). (Lihat Latihan 1.18.20).

Kebalikan dengan finite acceptors, dimana nondeterminisme tidak meningkatkan klas dari himpunan string yang diterima, npda-npda mengenali suatu klas yang lebih besar daripada yang dikenali dpda. Klas dari himpunan string yang dapat dikenali oleh npda disebut klas dari context-free languages (cfl); klas dari himpunen string yang dapat dikenali oleh dpda disebut klas deterministic context-free languages. Semua deterministic context-free languages adalah cfl, tetapi tidal semua cfl adalah deterministic context-free languages.

Sekali lagi kontras dengan finite acceptors, two-way push-down acceptors (twpda) mampu mengenali berbagai himpunan string yang lebih banyak lagi daripada yang pda dapat kenali. Kemampuan tambahan tersebut adakah persis seperti yangterdapat dalam kasus finite acceptor: pita masukan dapat digerakkan apakah ke kanan atau ke kiri, atau tetap diam ditempat.

Terdapat sejumlah besar variasi modifikasi dan penambahan pada model-model yang telah kita ilustrasikan sebelum ini, beberapa diantaranya adalah sama dalam kemampuannya untuk mengenali atau menghitung, dan yang lainnya berbeda. Di sini kita ilustrasikan secara singkat hanya dua modifikasi lebih lanjut, mesin linier bounded automata dan mesin Turing. Alasan untuk pemilihan ini adalah keunggulan dari kedua model tersebut dalam teori bahasa formal dan teori komputasi.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 20: Definisi Himpunan Bagian oleh Zamir Bavel

20

Sebuah linear-bounded automaton (lba) berbeda dari sebuah (deterministic) two-way finite acceptor dalam satu rincian penting: dia mampu menulis pada pita masukannya sendiri dan, oleh karena itu, mengubah symbol-simbol pada string masukan yang mula-mula ada pada pita tersebut. Hal ini dipenuhi dengan menambahkan kemampuan menulis pada apa yang telah ada pada reading head, seperti yang dilukiskan oleh Gambar 1.58. Perubahan ini meningkatkan kemampuan dari divais ini untuk mengenali (atau menghitung). Lba’s muncul dalam variasi baik deterministic dan nondeterministic sekaligus; nondeterminisme tersebut adalah sama seperti nondeterminisme di atas, perbedaan sekali lagi terdapat dalam definisi dari fungsi next-move dan diwujudkan dalam kotak hitam dari finite control tersebut. (Seringkali, istilah lba berarti nondeterministic lba).

Gambar 1.58. Sebuah linear-bounded automaton.

Belum diketahui apakah nondeterministic lba lebih ampuh (powerful) daripada deterministic lba. Nondeterministik lba dapat ,mengenali dengan tepat klas dari himpunan string yang disebut contex-sensitive languages (csl), yang mana meliputi semua cfl dan juga himpunan bukan cfl. Jadi, lba dapat mengenali semua himpunan string yang pda dapat kenali dan beberapa yang mana pda tidak dapat kenali.

Sebuah mesin Turing, diberi mana berdasarkan A. M. Turing, dapat dianggap sebagai sebuah lba yang mana tapenya memanjang secara tak hingga ke kanan, melampaui kotak-kotak yang mengandung string masukan; yaitu, pita tersebut adalah tak hingga tetapi hanya sebagian hingga daripadanya ditempati oleh string masukan. Read-write head dapat memindai sembarang kotak sepanjang pita tersebut, setelah berpindah dari situ satu kotak pada satu waktu, dan sebagai konsekuensinya mengubah symbol-simbol dalam kotak-kotak dari string masukan orisinil, juga menulis symbol-simbol pada kotak-kotak kosong di sebelah kanan. (Lihat Gambar 1.59). Sekali lagi hal ini meningkatkan kemampuan pengenalan (dan komputasi) dari divais tersebut. Mesin-mesin Turing mengenali recursively enumerable sets (r. e. sets) daripada string-string, yang mana mencakup semua csl dan lebih banyak lagi. Jadi, mesin Turing mengenali semua himpunan yang lba dapat kenali dan beberapa lagi yang lba tidak dapat kenali. (Adalah menarik, meskipun suatu pokok bahasan untuk pembelajaran diluar lingkup dari buku ini, bahwa modifikasi biasa pada mesin Turing tidak meningkatkan daya pengenalan dan komputasinya).

Guna merangkum secara singkat, hirarki dari divais-divais tersebut mulasi dari yang paling ampuh (powerful) sampai yang kurang ampuh adalah mesin Turing, linear bounded automata, push-down acceptors, dan finite acceptors. Variasi dalam kemampuan pengenalan terjadi dalam beberapa kasus yang dikarenakan pada perbedaan antara model-model deterministic dan nondeterministic dan antara model-model one-way dan two-way.

D:\Zamir_Bavel\Definisi_1_13_2.doc

Page 21: Definisi Himpunan Bagian oleh Zamir Bavel

21

Gambar 1.59. Sebuah mesin Turing.

Sebuah catatan akhir berkaitan dengan recognition devices yang telah dibahas dalam subbab ini: divais-divais tersebut terutama diperuntukkan sebagai alat untuk menarik kesimpulan dari suatu hasil dan pembuktian teorema-teorema berkaitan dengan himpunan-himpunan string, kompleksitas komputasional, dan hal-hal semacam itu. Meskipun sedikit pergeseran dalam point of view (sudut pandang) dapat mengkonversikannya dari divais-divais diagnostic ke dalam mekanisme-mekanisme komputasi, sebagai mesin-mesin komputasi mereka agak tidak efisien.

Kita akhiri subbab ini dengan klasifikasi lain pada divais sekuensial, dari sifat dasar yang berbeda daripada yang telah dibahas sebelumnya. Dalam pembahasan rangkaian sekuensial sebelumnya, nilai-nilai dari berbagai variable diambil pada waktu-waktu tertentu yang diselaraskan, dan kita kita gunakan rangkaian clock untuk mencegah mesin sekuensial elektronik ini (keluar) dari kegagalan sinkronisasi. Sebagai hasilnya, nilai-nilai variable (masukan, keluaran, next-state) pada akhirnya tergantung pada nilai dari variable waktu, yaitu, pada jumlah banyaknya perioda clock sejak “start operasi”.

Struktur sekuensial yang mempunyai karakteristik ini disebut sinkronus, dan struktur sekuensial yang tidak mempunyai karakteristik ini disebut asinkronus; yang terakhir ini tidak melibatkan sembarang sinkronisasi pada sinyal-sinyal, seperti yang diberikan oleh rangkaian clock. Rangkaian asinkron mengemukakan problem-problem yang sulit, berbeda dari problem-problem yang terkait dengan rangkaian sinkron, dan membutuhkan perlakuan yang terpisah yang mana adalah diluar dari lingkup buku ini.

D:\Zamir_Bavel\Definisi_1_13_2.doc