Saya sudah mencoba menerapkan algoritma Brzozowski tetapi saya baru saja menemukan bahwa itu menciptakan automata suboptimal untuk kelas input tertentu, memiliki satu keadaan lebih dari apa yang benar-benar diperlukan dalam hasilnya. Saya bisa menunjukkannya pada robot yang sepele:
a b a b a b a b a b
>0 0 1 rev *0 0,2 - det >0 - 1 rev *0 - - det >0 1 2
1 1 2 --> 1 1 0 --> 1 2 5 --> 1 - 0,4 --> 1 1 2
*2 0 2 >2 - 1,2 2 2 3 2 1,2 - 2 2 3
*3 4 - 3 - 2 *3 1 3
*4 4 1 4 3,4 -
*5 5 5 5 5 1,5
>6 3,4,5 1,2,5
Di sini rev adalah bagian pembalikan tepi, di mana saya sudah menghapus transisi pada epsilon, dan det adalah penentuan melalui konstruksi powerset, menciptakan negara baru segera setelah menemukan mereka, secara rekursif.
Masalahnya di sini adalah ini: sekali saya menambahkan negara tambahan untuk menebus tiga keadaan awal yang berbeda setelah pembalikan tepi pertama dan konstruksi powerset, tidak ada yang pernah kembali ke keadaan itu dan dengan demikian saya tidak bisa menyingkirkannya nanti karena setara. ke kondisi awal semula.
Apakah ada yang salah dengan cara saya melakukannya? Apakah saya melewatkan sesuatu?