Sudahkah Anda mencoba algoritma Brzozowski ? Waktu berjalan terburuk adalah eksponensial, tetapi saya melihat beberapa referensi yang menunjukkan bahwa itu sering berkinerja sangat baik, terutama ketika memulai dengan NFA yang ingin Anda konversi ke DFA dan meminimalkan.
Makalah berikut ini tampaknya relevan:
Ini mengevaluasi sejumlah algoritma yang berbeda untuk minimalisasi DFA, termasuk aplikasi mereka untuk situasi Anda di mana kami mulai dengan NFA dan ingin mengubahnya menjadi DFA dan menguranginya.
Seperti apa dekomposisi komponen yang sangat terhubung (SCC) NFA Anda (menganggapnya sebagai grafik berarah)? Apakah ada banyak komponen, di mana tidak ada komponen yang terlalu besar? Jika demikian, saya bertanya-tanya apakah mungkin untuk merancang algoritma divide-and-conquer, di mana Anda mengambil satu komponen, mengonversinya dari NFA ke DFA dan kemudian menguranginya, dan kemudian mengganti yang asli dengan versi yang ditentukan baru. Ini harus dimungkinkan untuk komponen entri-tunggal (di mana semua tepi ke dalam komponen itu mengarah ke satu simpul, simpul entri). Saya tidak segera melihat apakah mungkin untuk melakukan sesuatu seperti ini untuk NFA sewenang-wenang, tetapi jika Anda memeriksa seperti apa struktur SCC, maka Anda mungkin dapat menentukan apakah arah semacam ini layak dijelajahi atau tidak .