Una de las mejores bibliotecas FSM gratuitas, avanzadas y altamente optimizadas, disponibles en línea es la biblioteca AT&T FSM . Implementa "fsmdifference" exactamente como usted describe, requiriendo un FSM libre de epsilon determinado para hacer la diferencia. Una idea es minimizar uno o ambos FSM antes de hacer la diferencia, lo que puede ayudar en algunos casos. (es decir, determinar no es lo mismo que minimizar). Este paquete también tiene una minimización "aproximada" o "codiciosa" que está diseñada para ser posiblemente más rápida que una minimización completa.
Sin embargo, al estudiar problemas similares, creo que hay una generalización o construcción de FSM que no aparecen en la literatura que pueden ayudar con este problema evitando el paso de determinación, es decir, básicamente invirtiendo un NFA sin crear un FSM determinado adicional. La idea es atravesar los bordes de NFA "en paralelo" y realizar un seguimiento del conjunto de nodos que forman parte del "superestado" actual (conjunto de estados) al igual que con el algoritmo de determinación estándar. Entonces, el complemento NFA acepta si y solo si el conjunto de nodos superestados actuales son "no aceptables" (en contraste con la construcción determinante que acepta iff "cualquier aceptación").
Sin embargo, no he visto esto escrito antes y no lo veo a través de una búsqueda rápida en línea. Hay muchas referencias que sugieren o implican que la única forma de trabajar con el complemento de un NFA es determinarlo.
Aquí hay dos referencias "cercanas" que pueden ser útiles para algunas ideas. Me interesaría saber de cualquiera / otros que estén "más cerca". Usted menciona que está trabajando en la verificación del programa, que puede ser un campo que tiene una investigación más directa sobre el problema.
[1] Construcción de la intersección de autómatas finitos no deterministas utilizando la notación Z Nazir Ahmad Zafar, Nabeel Sabir y Amir Ali
[2] Construcciones de complementación para autómatas no deterministas en palabras infinitas Orna Kupferman y Moshe Vardi