Bahasa Tak Terbatas vs bahasa terbatas

16

Saya tidak jelas tentang penggunaan frasa "tak terbatas" bahasa atau "terbatas" bahasa dalam teori komputer.

Saya pikir akar masalahnya adalah bahwa bahasa seperti tidak terbatas dalam arti bahwa ia dapat menghasilkan jumlah string yang tak terbatas (tetapi dapat dihitung). Namun, itu masih dapat dikenali oleh otomat keadaan terbatas .L={ab}

Juga tidak membantu bahwa buku Sipser tidak benar-benar membuat perbedaan ini (setidaknya sejauh yang saya tahu). Sebuah pertanyaan tentang bahasa tak terbatas / terbatas dan hubungannya dengan bahasa biasa muncul dalam ujian sampel.

kayu
sumber
1
Ini tidak terbatas karena ab*(bintang Kleene) berarti Anda dapat memiliki nol atau lebih kombinasi string ab, ini termasuk jumlah string potensial tak hingga: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Namun Anda masih dapat membangun FSM yang mengenali bahasa ini karena pada kenyataannya tidak ada cara untuk menghasilkan string tanpa batas, ketika diproses oleh mesin semua string harus terbatas, tetapi itu tidak membuat bahasa itu sendiri terbatas. Bahasa tanpa batas adalah teoretis.
Hunter McMillen
1
"Diuraikan dengan jelas" dan "terbatas" tidak sama. Misalnya, ekspresi reguler Anda adalah deskripsi terbatas dari bahasa tak terbatas; sebuah finite automaton hanyalah yang lain (tapi itu disebut finite automaton bukan karena itu adalah deskripsi yang terbatas, tetapi karena ia hanya dapat menyimpan jumlah bit yang konstan). {a,b}
Raphael
Mengapa jumlah terbatas negara lebih penting daripada deskripsi terbatas dari mesin lain?
babou
Automaton mungkin memiliki loop dan Anda dapat menggunakan beberapa status kali tak terbatas.
doganulus

Jawaban:

28

Astaga. Ini kelihatannya seperti kebingungan yang disebabkan oleh terminologi (sekolah tua) "bahasa negara terbatas" sebagai sinonim dari apa yang sekarang dikenal sebagai "bahasa biasa".

Bagaimanapun, definisi standar untuk terbatas / tidak terbatas yang diterima dewasa ini hanya memperhatikan ukuran bahasa:

  1. a terbatas bahasa adalah setiap set string, kardinalitas terbatas, | L | < .L|L|<
  2. sebuah tak terbatas bahasa adalah setiap set string, dari yang tak terbatas ( 0 ) kardinalitas | L | = .L0|L.|=

terbatas selalu teratur.L.

tak terbatas dapat menjadi teratur (kadang-kadang disebut "finite-state"), dapat didekidasikan (kadang-kadang disebut "rekursif"), non-reguler (non-finite-state), tidak dapat decidable, dll.,L.

Ran G.
sumber
1
Ran terima kasih! Jadi untuk memperjelas, adalah bahasa tak terbatas? Jadi saya kira, mengingat bahasa yang tidak terbatas, tidak ada yang bisa diketahui tentang kelas bahasa apa itu. L.={Sebuahb}
timberly
1
itu betul. adalah bahasa reguler tak terbatas. L.={Sebuah,b}
Ran G.
1
@berberly Tentu, kita bisa tahu dan membuktikan bahasa apa itu.
phant0m
4

Bahasa adalah seperangkat string. Ini terbatas jika memiliki sejumlah string di dalamnya.

David Richerby
sumber
4

Saya tidak jelas tentang penggunaan frasa "tak terbatas" bahasa atau "terbatas" bahasa dalam teori komputer.

Saya pikir akar masalahnya adalah bahwa bahasa seperti tidak terbatas dalam arti bahwa ia dapat menghasilkan jumlah string yang tak terbatas (tetapi dapat dihitung). Namun, itu masih dapat dikenali oleh otomat keadaan terbatas.L.={Sebuahb}

Masalah lain adalah bahwa teori bahasa formal agak aneh dalam bagaimana ia menggunakan istilah "bahasa".

Untuk semua orang di dunia ini kecuali orang-orang dalam teori bahasa formal, bahasa adalah sistem ujaran yang digunakan untuk berkomunikasi, sehingga setiap ujaran memiliki bentuk ( sintaksisnya ) dan semacam makna ( semantiknya ). Teori bahasa formal, setidaknya bagian yang digunakan dalam ilmu komputer, dikhususkan untuk masalah cara terbaik untuk mendefinisikan, secara formal, sintaks bahasa. Ini semua tentang hubungan antara sintaksis bahasa (seperti apa ujarannya) dan formalisme (bahasa!) Seperti ekspresi reguler yang digunakan untuk menentukan sintaksis bahasa.

Oleh karena itu, dalam teori bahasa formal, 'bahasa' didefinisikan secara sederhana sebagai 'seperangkat string'. Biasanya tidak memberikan arti pada string dalam bahasa.

Pada saat yang sama, formalisme yang digunakan untuk menggambarkan bahasa, seperti ekspresi reguler, juga membentuk bahasa dalam pengertian ini: misalnya, setiap ekspresi reguler adalah string, dan karenanya, rangkaian ekspresi reguler adalah bahasa. Namun, untuk formalisme ini, string dalam bahasa memang memiliki arti: misalnya, arti dari setiap ekspresi reguler adalah bahasa yang ditunjukkannya.

Sebuahb{Sebuahb}SebuahbSebuahb{Sebuahb}

{Sebuahb}L.L.L.L.{Sebuahb}{ϵ,Sebuahb,SebuahbSebuahb,SebuahbSebuahbSebuahb,SebuahbSebuahbSebuahbSebuahb,...}{Sebuahb}

(Sebuahb)

(Sebuahb)

reinierpost
sumber