Diberikan dua string x dan y, saya ingin membangun DFA ukuran minimum yang menerima x dan menolak y. Salah satu cara untuk melakukan ini adalah pencarian brute force. Anda menghitung mulai DFA dengan yang terkecil. Anda mencoba setiap DFA sampai Anda menemukan satu yang menerima x dan menolak y.
Saya ingin tahu apakah ada cara lain yang diketahui untuk menemukan atau membangun DFA ukuran minimum yang menerima x dan menolak y. Dengan kata lain, dapatkah kita mengalahkan pencarian brute force?
Lebih detail:
(1) Saya benar-benar menginginkan sebuah algoritma untuk menemukan DFA ukuran minimum, bukan DFA ukuran minimum dekat.
(2) Saya tidak hanya ingin tahu seberapa besar atau kecil DFA minimumnya.
(3) Di sini, saya hanya fokus pada kasing seandainya Anda memiliki dua string x dan y.
Edit :
Informasi tambahan untuk pembaca yang tertarik:
Misalkan dan adalah string biner dengan panjang maksimal . Ini adalah hasil yang diketahui bahwa ada DFA yang menerima dan menolak dengan paling banyak menyatakan. Perhatikan bahwa ada sekitar DFA dengan alfabet biner dan paling banyak menyatakan. Oleh karena itu, pendekatan brute force tidak mengharuskan kita untuk menghitung lebih dari DFA. Oleh karena itu pendekatan brute force tidak bisa memakan waktu lebih dari waktu.y n x y √ n √ √ n √ n √
Slide yang saya temukan bermanfaat: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf