¿Cuál es la implementación más sencilla de todas las traducciones decentes de LTL a Buchi u otros algoritmos de verificación de LTL?


8

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?

Respuestas:


8

Una construcción que no figura en el sitio web de SPOT se da en una encuesta realizada por Demri & Gastin, Specification and Verification utilizando Temporal Logics , 2009. La construcción es simple y produce autómatas razonablemente pequeños, por lo que se puede realizar a mano para pequeñas fórmulas, que es bueno para enseñar (que es cómo lo uso), pero también podría ser útil para depurar una implementación. Sin embargo, no apostaría a que sea más eficiente que la utilizada por SPOT.

ω


Gracias, exactamente lo que estaba buscando! Aunque no estoy perdiendo la esperanza de que aún vendrán más respuestas :)
jkff

2

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.