Diberikan dua set string lebih dari alfabet , dapatkah kita menghitung otomat kondisi-terbatas deterministik terkecil (DFA) sehingga dan ?
Dengan kata lain, mewakili sekumpulan contoh positif. Setiap string dalam A harus diterima oleh DFA. B mewakili sekumpulan contoh negatif. Tidak ada string dalam B yang harus diterima oleh DFA.
Apakah ada cara untuk mengatasi ini, mungkin menggunakan teknik minimalisasi DFA ? Saya bisa membayangkan membuat otomat seperti DFA yang memiliki tiga jenis negara: menerima negara, menolak negara, dan negara "tidak peduli" (input yang berakhir di negara "tidak peduli" dapat diterima atau ditolak). Tetapi bisakah kita menemukan cara untuk meminimalkan ini ke DFA biasa?
Anda dapat menganggap ini sebagai masalah mempelajari DFA, dengan memberikan contoh positif dan negatif.
Ini terinspirasi oleh Apakah golf regex NP-Complete? , yang menanyakan pertanyaan serupa untuk regexps dan bukan DFA.
Jawaban:
DFA seperti yang Anda gambarkan disebut DFA pemisah . Ada beberapa literatur tentang masalah ini ketikaSEBUAH dan adalah bahasa reguler, seperti Learning Minimal Separating DFA's for Compositional Verification, oleh Yu-Fang Chen, Azadeh Farzan, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw WangB
Perhatikan bahwa sebagai @reinierpost menyatakan, tanpa batasan pada A dan B, masalahnya mungkin menjadi tidak dapat ditentukan.
sumber
Ada banyak literatur tentang pembelajaran DFA yang diberikan sampel positif dan negatif. Jika dan B terbatas, saya tidak melihat bagaimana masalah akan diputuskan. Jika A ∩ B = ∅ maka jelas DFA yang hanya menerima string dalam A memenuhi kebutuhan Anda dan satu dapat dengan mudah menyebutkan semua DFA yang lebih kecil. Jika A ∩ B ≠ ∅ maka jelas tidak ada DFA tersebut.SEBUAH B A ∩ B = ∅ SEBUAH A ∩ B ≠ ∅
Menemukan DFA minimum yang konsisten dengan serangkaian string yang diberikan adalah NP-complete. Hasil ini muncul sebagai Teorema 1 di kertas Angluin Pada kompleksitas inferensi minimum dari set reguler . Jadi jelas masalah Anda juga NP-complete.
Untuk banyak tautan dan diskusi yang baik tentang belajar bahasa reguler, lihat blog post CSTheory On Learning Regular Languages .
sumber