Estoy escribiendo un modelo de juguete , y estoy en el punto en que es hora de implementar la traducción de autómatas LTL a Buchi.
Por una variedad de razones obvias, deseo que el algoritmo sea simple :) por ejemplo, quiero que el código permanezca extremadamente claro y conciso durante el mayor tiempo posible.
He examinado el enfoque de "autómata local + autómata de eventualidad", descrito en múltiples tutoriales, pero parece que no es fácil de implementar / comprender (la prueba de corrección es bastante grande), ni produce autómatas pequeños. Así que no lo estoy implementando hasta que esté seguro de que no me arrepentiré :)
Por lo tanto, agradecería las referencias a documentos que describan algoritmos simples y eficientes para esta traducción, o quizás simples e ineficientes, entonces los documentos sobre minimización de autómatas Buchi también serían bienvenidos :)
... ¿O tal vez hay enfoques alternativos interesantes para la verificación LTL?
Como referencia, aquí hay una genealogía de los algoritmos de traducción de LTL a Buchi http://spot.lip6.fr/wiki/LtlTranslationAlgorithms . ¿Alguien puede decir algo sobre esto?
Consideraría la traducción que pasa por un autómata alterno. (Ver el documento de Vardi "Autómatas alternos y verificación del programa"). Es una traducción muy elegante de LTL a autómatas alternos y luego puede usar Mihano Ayashi (que también es elegante, es una construcción de doble subconjunto) para alcanzar un autómata Buchi no determinista.
fuente