Mengapa operator bintang Kleene juga disebut operator 'penutupan' Kleene?

13

Saya telah menemukan bahwa jika saya tidak memahami etimologi di balik istilah cs / pemrograman, biasanya itu berarti saya telah melewatkan atau salah paham beberapa konsep mendasar yang penting.

Saya tidak mengerti mengapa bintang Kleene juga disebut penutupan Kleene. Apakah ini terkait dengan penutupan dalam pemrograman, fungsi dengan variabel non-lokal terikat?

... pada refleksi, mungkin itu karena memungkinkan set terbuka berakhir untuk ditulis dalam bentuk ekspresi tertutup?

... yah dengan cara menjelaskan karet-bebek yang bagus , sekarang saya menebak itu saja, tetapi masih akan menyambut jawaban yang berwibawa.

mallardz
sumber
3
Apakah nama pengguna Anda menjadi alasan mengapa Anda menginginkan mode penjelasan karet-bebek tua yang baik ?
babou 15
@ Babou Ya. Tapi itu gagal saya hari ini :(
mallardz
Komentar Anda bahwa penutupan dalam rangkaian gabungan didefinisikan dalam jawaban saya (dan dalam jawaban @David Richerby, secara tidak sengaja karena dia tidak pernah menyebutkan secara eksplisit operasi string, kecuali dalam komentar) tidak akan memasukkan kata kosong ϵ cukup akurat. Terima kasih. Sebagai akibatnya operator bintang Kleene tidak dapat mewakili penutupan di bawah gabungan: operator Kleene + melakukannya. Namun operator bintang Kleene dapat mewakili penutupan di bawah operasi daya yang berasal dari penggabungan. Saya melengkapi jawaban saya untuk membahas aspek ini. Itu lebih halus dari yang diharapkan.
babou
Apakah jawabannya cukup mudah dibaca, atau haruskah saya menambahkan bagian dengan karet yang lebih lembut?
babou

Jawaban:

15

Suatu himpunan ditutup di bawah beberapa operator jika hasil dari menerapkan operator pada hal-hal dalam himpunan selalu dalam himpunan. Sebagai contoh, bilangan asli ditutup dengan penambahan karena, setiap kali dan m adalah bilangan alami, n + m adalah bilangan alami. Di sisi lain, naturals tidak ditutup dengan pengurangan karena, misalnya, 3 - 5 bukan bilangan alami.nmn+m35

The penutupan dari satu set di bawah beberapa operator adalah himpunan terkecil yang mengandung S yang tertutup di bawah operator. Sebagai contoh, penutupan bilangan asli di bawah pengurangan adalah bilangan bulat; penutupan bilangan asli di bawah penambahan hanyalah bilangan alami, karena himpunan sudah ditutup.SS

Jadi, "penutupan Kleene" bukan nama alternatif untuk "bintang Kleene". Bintang Kleene adalah operatornya; penutupan Kleene dari suatu set adalah penutupan set itu di bawah operator.

David Richerby
sumber
Ok terima kasih, penjelasan Anda tentang penutupan satu set sangat mudah dimengerti. Tapi maksud Anda bintang Kleene adalah operator (seperti plus adalah operator) dan penutupan Kleene adalah operasi (seperti penambahan)? Juga jawaban Babou bahwa nama tersebut berasal dari fakta bahwa operasi tersebut pada dasarnya mewakili penutupan set di bawah rangkaian masuk akal. Meskipun tidak epsilon sedikit mengacaukan hal di sana?! ...
mallardz
1
@ mallardz Berbicara dengan benar, penutupan adalah set; operasi pembentukan penutupan biasanya disebut "penutupan".
David Richerby
@ DavidVicherby: Bisakah Anda memanggil himpunan bilangan asli dengan pengurangan sebagai penutup ? Apakah Anda bermaksud mengatakan bahwa karena himpunan ekspresi reguler ditutup di bawah operator kleene * menghasilkan ekspresi reguler, kami menyebutnya sebagai penutup?
justin
@justin Menurut definisi, penutupan setiap set di bawah operasi itu sendiri harus ditutup di bawah operasi itu. Karena naturals tidak ditutup di bawah pengurangan, mereka tidak bisa menjadi penutupan dari apa pun yang dikurangi. Himpunan ekspresi reguler sudah ditutup di bawah bintang Kleene dan penutupan himpunan ekspresi reguler dalam beberapa operasi, menurut definisi, satu set hal, bukan ekspresi reguler tunggal. Jadi saya tidak begitu mengerti pertanyaan Anda.
David Richerby
@ DavidRicherby: Ya itu benar sekali. Dengan kesalahan saya mengambil himpunan bilangan asli dengan pengurangan sebagai bilangan alami. Apakah bintang tle terkait dengan set atau hingga automata atau keduanya?
justin
7

Pendeknya

Nama penutupan Kleene jelas dimaksudkan untuk berarti penutupan di bawah beberapa operasi string.

Namun, analisis yang cermat (terima kasih atas komentar kritis oleh OP mallardz), menunjukkan bahwa bintang Kleene tidak dapat ditutup dalam penggabungan, yang lebih sesuai dengan operator Kleene plus.

Operator bintang Kleene sebenarnya sesuai dengan penutupan di bawah operasi daya yang berasal dari penggabungan.

Nama bintang Kleene berasal dari representasi sintaksis operasi dengan bintang *, sedangkan penutupan adalah apa yang dilakukannya.

Ini dijelaskan lebih lanjut di bawah ini.
Ingatlah bahwa penutupan pada umumnya, dan bintang Kleene pada khususnya, adalah operasi pada set, di sini pada set string, yaitu pada bahasa. Ini akan digunakan dalam penjelasan.

Penutupan subset di bawah operasi selalu ditentukan

Satu set ditutup di bawah beberapa n operasi -ary f IFFCnf selalu didefinisikan untuk setiap n -tuple argumen dalam C dan C = { f ( c 1 , ... , c n ) c 1 , ... , c nC } .fnCC={f(c1,...,cn)c1,...,cnC}

Dengan memperluas ke set nilai dengan cara yang biasa, yaitu f ( S 1 , ... , S n ) = { f ( s 1 , , s n ) s iS i . 1 i n } kita dapat menulis ulang kondisi sebagai persamaan himpunan: C = f ( C , ... , C )f

f(S1,...,Sn)={f(s1,...,sn)ssayaSsaya.1sayan}


C=f(C,...,C)

Untuk domain (atau set) dengan operasi f yang selalu didefinisikan pada D , dan set S D , Penutupan S di bawah f adalah set terkecil S fDfDSDSfSf mengandung yang memenuhi persamaan: S f = { f ( s 1 , , s n ) s 1 , , s nS f } .SSf={f(s1,...,sn)s1,...,snSf}

Lebih tepatnya dengan persamaan himpunan, penutupan bawah f dapat didefinisikan oleh:Sf

Sf adalah himpunan terkecil sehingga SSf dan Sf=f(Sf,...,Sf)

Ini adalah contoh definisi titik tetap paling sedikit, sering digunakan dalam semantik, dan juga digunakan dalam bahasa formal. Tata bahasa bebas konteks dapat dilihat sebagai sistem persamaan bahasa (yaitu persamaan set string), di mana non-terminal berdiri untuk variabel bahasa. Solusi titik tetap paling tidak mengasosiasikan bahasa ke setiap variabel, dan bahasa yang terkait dengan simbol awal adalah yang didefinisikan oleh tata bahasa CF.

Memperluas konsep

Penutupan sebagaimana didefinisikan di atas hanya dimaksudkan untuk memperluas subset menjadi set minimal S f sehingga operasi f selalu didefinisikan.SSff

Sebagai berkomentar oleh mallardz OP, ini bukan penjelasan yang cukup, karena tidak akan menyertakan kata kosong di S f jika tidak sudah di S . Memang penutupan ini sesuai dengan definisi Kleene plus dan bukan ke bintang Kleene .ϵSfS+*

Sebenarnya, ide penutupan dapat diperluas, atau dipertimbangkan dengan cara yang berbeda.

  1. Perpanjangan ke sifat aljabar lainnya

    Dalam perjalanan untuk memperpanjangnya (meskipun itu tidak lagi disebut penutupan ) menganggap lebih umum ekstensi ke himpunan memiliki sifat aljabar spesifik sehubungan dengan operasi f .Sff

    Jika Anda mendefinisikan sebagai himpunan terkecil yang mengandung S yang merupakan Monoid untuk fungsi biner f , maka Anda memerlukan elemen closure dan netral yang merupakan kata kosong ϵ .SfSfϵ

  2. Perpanjangan melalui operasi turunan

    Ada cara kedua yang lebih tepat adalah masalah penutupan. Saat Anda menentukan penutupan , Anda dapat mempertimbangkannya sehubungan dengan beberapa argumen, sementara Anda mengizinkan nilai dari seluruh set D untuk argumen lainnya.SDD

    Mempertimbangkan (untuk kesederhanaan) fungsi biner atas D , Anda dapat mendefinisikan S f , 1 sebagai himpunan terkecil yang mengandung S yang memenuhi persamaan: S f , 1 = { f (fDSf,1S

    Sf,1={f(s1,s2)s1Sf,1s2D}

    atau dengan persamaan set:

    Sf,1 is the smallest set such that SSf,1 and Sf,1=f(Sf,1,D)

    Ini juga masuk akal ketika argumen tidak termasuk set yang sama. Maka Anda mungkin memiliki penutupan sehubungan dengan beberapa argumen dalam satu set, sambil mempertimbangkan semua nilai yang mungkin untuk argumen lain (banyak variasi dimungkinkan).

    Diberi Monoid -(M,f,ϵ) misalnya monoid string dengan concatenation mana f adalah operasi biner asosiatif pada elemen himpunan M dengan elemen identitas ϵ , Anda dapat menentukan kekuatan elemen u M sebagai: u M .fMϵuM

    uM.u0=ϵ and nNun=f(u,un1)

    unMN0

    MnUn={unuU}unf

    {U0={u0uU}={ϵ}nN,Un=f(U,Un1)
    fM

    U,1UM

    U,1 is the smallest set suchthat UU,1 and U,1=f(U,1,N0)

    Dan ini benar-benar memberi kita operasi bintang Kleene ketika konstruksi diterapkan pada operasi rangkaian Monoid bebas string.

    Sejujurnya, saya tidak yakin saya tidak selingkuh. Tapi definisi hanyalah apa yang Anda buat, dan itulah satu-satunya cara yang saya temukan untuk benar-benar mengubah bintang Kleene menjadi penutup. Saya mungkin berusaha terlalu keras.
    Komentar diterima.

Menutup satu set di bawah operasi yang tidak selalu ditentukan

Ini adalah pandangan yang sedikit berbeda dan penggunaan konsep penutupan. Pandangan ini tidak benar-benar menjawab pertanyaan, tetapi tampaknya baik untuk mengingatnya untuk menghindari kemungkinan kebingungan.

fD

  • Df

  • membangun set lain DDf

  • DDff

DfDf

Begitulah bilangan bulat dibangun dari bilangan asli, dengan mempertimbangkan sekumpulan pasangan bilangan asli yang dikutip oleh relasi ekivalensi (dua pasang adalah ekuivalen jika kedua elemen berada dalam urutan yang sama dan memiliki perbedaan yang sama).

Ini juga bagaimana rasional dapat dibangun dari bilangan bulat.

Dan inilah bagaimana real klasik dapat dibangun dari rasional, meskipun konstruksinya lebih kompleks.

babou
sumber
Hai, terima kasih, penutupan di bawah penjelasan gabungan sangat masuk akal, tetapi apakah epsilon ada di penutupan di bawah concatenation?
mallardz
ϵ
@DavidRicherby Sebenarnya apa yang saya maksudkan adalah jika Anda memiliki himpunan S = {m} lalu apakah penutupan di bawah rangkaian S mengandung epsilon? Karena m * benar? Jika tidak maka saya kira penutupan Kleene tidak cukup setara dengan penutupan di bawah penggabungan, meskipun saya masih bisa melihat bagaimana di situlah nama itu berasal. Saya juga ingat pernah membaca di suatu tempat bagaimana awalnya bintang Kleene adalah operator biner dan menghindari produksi epsilon?
mallardz
@ DavidRicherby Saya menyelesaikan jawaban saya dalam upaya untuk memenuhi @ mallardz keberatan.
babou
6

:XXX

  1. xx
  2. xyxy
  3. (x)=x

=(xy)=xy

X=2Σx,yΣxyxy

  1. LL
  2. L1L2L1L2
  3. (L)=L

Operator Kleene plus juga memenuhi aksioma ini, demikian juga operator penutupan di bawah definisi ini.

Yuval Filmus
sumber
Bukankah ini menghapus persyaratan minimal? Maksud saya, jika Anda menghapus persyaratan ini, jawaban David Richerby, dan jawaban awal saya OK untuk bintang Kleene.
babou
Menjawab komentar saya sendiri. Minimalitas disimpan, tetapi didefinisikan sehubungan dengan set set tertutup. Tidak ada hubungan langsung dengan operasi pada string seperti penggabungan. Bintang Kleene dan plus keduanya operasi penutupan, tetapi didefinisikan menggunakan minimal sehubungan dengan set yang berbeda dari set tertutup. Ini adalah pandangan yang jauh lebih abstrak. (Setidaknya saya memiliki kepuasan untuk melihat bahwa penalaran pada tingkat yang ditetapkan seperti yang saya akhirnya lakukan adalah cara yang tepat untuk pergi :). Menarik. Terima kasih.
babou