Biarkan bahasa menjadi reguler.
Faktorisasi adalah pasangan maksimal dari kumpulan kata dengan
- ,
dimana | .
adalah maksimal jika untuk setiap pasangan dengan baik atau .
Apakah ada prosedur sederhana untuk mengetahui pasangan mana yang maksimal?
Contoh:
Biarkan . Himpunan dihitung:
dimana .
Contoh lain:
dan L = Σ ∗ a Σ Set faktorisasi F = { q , r , s , t } dengan
Jawaban:
Seperti yang disarankan dalam komentar untuk pertanyaan, saya akan mencoba memberikan (sayangnya sebagian) jawaban untuk pertanyaan itu, setidaknya sejauh saya telah memahami masalahnya sendiri (ini menyiratkan bahwa Anda mungkin menemukan kesalahan, dan jika Anda menemukan cara untuk menjelaskan secara lebih singkat atau jelas salah satu poin di bawah ini, jangan ragu untuk mengedit jawabannya):
Pertama, kita harus perhatikan bahwa kita tidak benar-benar harus menghitung otomat universal suatu bahasa jika kita ingin menghitung faktorisasi suatu bahasa.
Dari makalah yang disebutkan dalam komentar saya ¹, ada korespondensi 1-1 antara faktor kiri dan kanan bahasa biasa, yaitu, mengingat faktor kiri bahasa, faktor kanan yang sesuai ditentukan secara unik dan sebaliknya. Lebih tepatnya, kami memiliki yang berikut:
Mari menjadi faktorisasi L . Kemudian Y = ⋂ x ∈ X x - 1 L , X = ⋂ y ∈ Y L y - 1 , yaitu, setiap faktor kiri adalah persimpangan dari quotients kanan, dan setiap faktor kanan adalah persimpangan quotients kiri. Sebaliknya, setiap persimpangan quotients kiri L adalah faktor hak L , dan setiap persimpangan quotients kanan L adalah faktor kiri L .(X,Y) L
Perhatikan bahwa untuk bahasa reguler, hanya ada seperangkat terbatas negosiasi kiri dan kanan, dan dengan demikian atau masalah berkurang untuk menghitung negosiasi kiri dan kanan bahasa, dan kemudian menghitung -stable closure mereka, yaitu minimal superset dari quotients yang ditutup di bawah persimpangan. Ini kemudian justru faktor yang tepat dan faktor kiri, dan kemudian biasanya mudah untuk melihat mana pasangan adalah subset dari L .∩ L
Contoh
Untuk mengilustrasikan poin-poin di atas, perhatikan contoh pertama dalam pertanyaan (yang menurut saya juga tidak benar di koran):
Biarkan . Sekarang, quotients kiri L adalah set x - 1 L untuk x ∈ Σ * , yaitu, kata-kata u di Σ * yang dapat diawali dengan x , yaitu x u ∈ L . Kapan y - 1 L = x - 1 L untuk perbedaan x , y ? Ini adalah kasus jika dan hanya jika xL=Σ∗abΣ∗ L x−1L x∈Σ∗ u Σ∗ x xu∈L y−1L=x−1L x,y x dan dapat ditambahkan ke kata-kata dalam L dengan sufiks yang persis sama. Ini berarti, untuk memasukkannya ke dalam istilah yang lebih akrab, mereka adalah Nerode-equivalen, dan sufiks yang diperlukan untuk menambahkan kata-kata dalam kelas Nerode adalah tepatnya quotient kiri masing-masing.y L
Untuk , kita melihat bahwa kelas Nerode-equivalence kamiL
Mereka dapat ditambah dengan set-set berikut (yaitu, ini adalah negosiasi kiri dari kata-kata di kelas masing-masing):
Hence, our factorization setFL is of the form (P1,S1),(P2,S2),(P3,S3) .
Now, for the left factorsPi , we use the equations of the beginning of this answer:
ForP1 , this yields L∪Σ∗a , for P2 we get Σ∗ and for P3 , we obtain L . You can see this by inspection (the most popular excuse for being too lazy to state a formal proof) or by explicitly computing the right quotients (which is fairly analogous, although not completely, to computing the left quotients).
Our factorizations are thus given by FL=u,v,w where
Summary
To summarize (as you were asking for a simple procedure):
sumber