Saya sedang menulis modelchecker mainan , dan saya pada titik di mana saatnya untuk mengimplementasikan terjemahan LTL ke Buchi automata.
Untuk berbagai alasan yang jelas, saya ingin algoritme menjadi sederhana :) misalnya saya ingin kode tetap sangat jelas dan singkat selama mungkin.
Saya telah melihat pendekatan "automata lokal + kemungkinan automata", yang dijelaskan dalam beberapa tutorial, tetapi tampaknya tidak mudah untuk diimplementasikan / dipahami (bukti kebenarannya cukup besar), juga tidak menghasilkan automata kecil. Jadi saya tidak mengimplementasikannya sampai saya yakin saya tidak akan menyesal :)
Jadi, saya akan berterima kasih untuk referensi ke makalah yang menggambarkan algoritma sederhana dan efisien untuk terjemahan ini, atau mungkin yang sederhana dan tidak efisien - maka makalah tentang minimalisasi Buchi automata akan diterima juga :)
... Atau mungkin ada pendekatan alternatif yang menarik untuk verifikasi LTL?
Untuk referensi, berikut adalah silsilah algoritma terjemahan LTL-to-Buchi http://spot.lip6.fr/wiki/LtlTranslationAlgorithms . Adakah yang bisa mengatakan sesuatu tentang ini?
Saya akan mempertimbangkan terjemahan yang berjalan melalui automata bolak-balik. (Lihat makalah Vardi "Alternating Automata dan verifikasi program"). Ini adalah terjemahan yang sangat elegan dari LTL ke alternata automata dan kemudian Anda dapat menggunakan Mihano Ayashi (yang juga elegan - ini adalah konstruksi subset ganda) untuk mencapai Buchi automata yang non deterministik.
sumber