¿Hay alguna forma de probar si dos NFA aceptan el mismo idioma?

10

O al menos generar un conjunto de cadenas que una NFA acepta, para que pueda alimentarlo a la otra NFA. Si hago una búsqueda en cada ruta de la NFA, ¿funcionará? Aunque eso llevará mucho tiempo.

Duncan
fuente
No (al menos no lo sabemos). La igualdad de NFA es PSPACE-complete. Ver esta discusión .
Shaull
@Shaull: El OP no fue tan eficiente .
frafl
@frafl: Tienes razón. Asumí por "tomará mucho tiempo" que el OP quiere una solución eficiente. Aún así, mi comentario menciona que está en PSPACE, por lo que es decidible.
Shaull

Respuestas:

10

El problema de decisión es PSPACE-complete como lo señaló Shaull.

Sin embargo, resulta que en la práctica a menudo es posible decidir la equivalencia de NFA razonablemente rápido. Mayr y Clemente (basados ​​en evidencia experimental) afirman que la complejidad del caso promedio se escala cuadráticamente . Sus técnicas se basan en la poda del sistema de transición etiquetado subyacente a través de aproximaciones locales de inclusiones de trazas.

Al igual que SAT es NP-completo en un análisis del peor de los casos, pero a menudo resulta sorprendentemente manejable para instancias del mundo real, por lo tanto, parece probable que la equivalencia de NFA se pueda decidir eficientemente para muchas instancias del mundo real.

András Salamon
fuente