Menemukan DFA terkecil yang memisahkan dua kata tanpa menggunakan pencarian brute force?

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...