Una ecuación de palabras es una igualdad formal entre un par de palabras y , cada una sobre un alfabeto que comprende tanto constantes (cf ) como incógnitas (cf ). [1] Se dice que una asignación de palabras constantes a las incógnitas de resuelve si asigna ambos lados de a palabras idénticas. En otras palabras, las soluciones de son aquellos morfismos cuya restricción a es la función identidad , y que satisfacen . Las ecuaciones de palabras son un objeto central en la combinatoria de palabras ; desempeñan un papel análogo en esta área al de las ecuaciones diofánticas en la teoría de números . Una marcada diferencia es que las ecuaciones diofánticas tienen un problema de solubilidad indecidible , [2] mientras que el problema análogo para las ecuaciones de palabras es decidible . [3]
Un ejemplo clásico de una ecuación de palabras es la ecuación de conmutación , en la que es una incógnita y es una palabra constante. Es bien sabido [4] que las soluciones de la ecuación de conmutación son exactamente aquellos morfismos que se asignan a alguna potencia de . Otro ejemplo es la ecuación de conjugación [5] , en la que y son todas incógnitas. Las soluciones de esta ecuación son precisamente aquellos morfismos que envían y a las palabras conjugadas, con la imagen completada según corresponda.
Se han introducido muchas subclases de ecuaciones de palabras, algunas de las cuales incluyen:
El estudio de las ecuaciones verbales fue iniciado por Willard Quine en 1946. Quine demostró [8] que la teoría de primer orden de las ecuaciones verbales es esencialmente equivalente a la teoría de primer orden de la aritmética. En 1954, Andrey Markov propuso [9] el problema de solubilidad de las ecuaciones verbales: decidir si una ecuación verbal dada admite una solución. Durante mucho tiempo, se esperó que este problema fuera indecidible . Una razón para esto es que se esperaba, [10] (incorrectamente, según se demostró), que las ecuaciones verbales pudieran proporcionar un paso intermedio entre el Décimo Problema de Hilbert y los problemas indecidibles relacionados con las máquinas de Turing .
A principios de los años 1970 se hicieron más contribuciones con el trabajo de André Lentin y Juri Ilich Hmelevskii. [11] En 1976, Gennady Makanin introdujo [3] un método por el cual se podía determinar si una ecuación dada admitía una solución. Es muy difícil probar que este procedimiento, que se ha dado en conocer como el algoritmo de Makanin, existe, y es uno de los resultados más celebrados en la combinatoria de palabras. [10] El algoritmo de Makanin se considera uno de los más conceptualmente difíciles que existen en la literatura, [6] y también es muy intratable , requiriendo (en su formulación inicial) un tiempo triplemente exponencial . [12] Por lo tanto, hubo muchos intentos de mejorarlo. [12] En 1999, Wojciech Plandowski introdujo un nuevo algoritmo, mostrando [13] que el problema de solubilidad para ecuaciones de palabras está en PSPACE .
En 2006, Plandowski y Wojciech Rytter demostraron [14] que las soluciones mínimas de ecuaciones de palabras son altamente (es decir, exponencialmente) compresibles usando la codificación Lempel-Ziv . Se conjetura [14] que la longitud de una solución mínima de una ecuación de palabras es (como máximo) simplemente exponencial en la longitud de . Si esta conjetura es verdadera, entonces el resultado de Plandowski y Rytter produce un algoritmo NP sencillo de "adivinar y verificar" para el problema de solubilidad: muestran que una solución puede verificarse mientras se trabaja solo con su representación comprimida LZ , y si la conjetura es verdadera implicaría que tiene un polinomio de tamaño en . Tal como está, la última parte del análisis de complejidad -la pregunta de si resolver ecuaciones de palabras es NP-completo- permanece abierta. ( La NP-dureza se desprende inmediatamente del hecho de que resolver ecuaciones de palabras generaliza el problema NP-completo de coincidencia de patrones [14] ).
No existe un algoritmo "elemental" para determinar si una ecuación dada admite una solución. [15] Los algoritmos mencionados anteriormente son todos de interés teórico, pero no sirven para resolver una ecuación de palabras a mano, por ejemplo. Sin embargo, existen algunos métodos que a veces pueden ayudar con esto:
Como una solución a una ecuación verbal debe unificar sus dos lados, se puede usar el multiconjunto de símbolos que aparecen en ambos lados de para deducir una igualdad lineal en las longitudes de las imágenes de las incógnitas. Por ejemplo, la forma de implica que sus soluciones deben satisfacer , lo que reduce el conjunto de posibles para comprobar. Argumentos similares pueden permitir que una ecuación verbal se "divida" en otras más pequeñas si se puede deducir que las posiciones dentro de los dos lados de deben alinearse en todas las soluciones de . Por ejemplo, los puntos medios de cada lado de se pueden detectar mediante un argumento de longitud y, por lo tanto, esa ecuación verbal se puede dividir en el sistema .
Otra herramienta útil para razonar sobre ecuaciones de palabras es el Lema de la Periodicidad de Fine y Wilf, [1] que describe lo que sucede si una determinada palabra tiene múltiples períodos (es decir, distancias en las que se repiten sus letras). Consideremos, por ejemplo, la ecuación de palabras . [15] Supongamos que es una de sus soluciones. Entonces . Al tomar una conjugación adecuada en esta identidad, se puede inferir que existe algún conjugado de que es tal que . Ahora bien, un argumento de longitud permite identificar aquí el punto medio de cada lado, y de esta observación se sigue que . Aquí está la ecuación de conmutación, de donde y son potencias de una palabra común. Ahora bien, las infinitas palabras y tienen un prefijo común de longitud . Puesto que , se puede aplicar el Lema de la Periodicidad. Su conclusión aquí es que y también son potencias de una palabra común. Por tanto, toda solución de se aplica a potencias de una palabra común.
Sea una ecuación verbal, tal que , y . Aquí se presentará un método conceptualmente simple (llamado algoritmo de transformaciones de Nielsen o método de Levi [16] ) para determinar si es soluble, con la salvedad de que el método termina solo en ecuaciones verbales cuadráticas (como se definió anteriormente). [5]
La idea del algoritmo es "adivinar" cómo se comparan las longitudes de y en alguna solución de . O bien , o bien . En el primer caso, se puede aplicar la regla de reescritura de cadenas a , donde (después de la reescritura) es una nueva cantidad cuyo significado es "lo que queda de la antigua se elimina". Simétricamente, en el segundo caso, se puede aplicar la regla , y en el tercer caso . El método presente en realidad realiza las tres suposiciones; para cada una de ellas (por separado) reescribe para tener en cuenta la suposición realizada.
Por construcción, habrá alguna cancelación al comienzo de después de aplicar cada regla de reescritura de cadenas. (Por ejemplo, al aplicar a la ecuación se obtiene , que se cancela hasta ). El método siempre aprovecha esta cancelación; la esperanza es que sea suficiente para contrarrestar la regla de reescritura de cadenas, que (en general) habrá hecho que la ecuación sea más larga.
El algoritmo, por tanto, equivale a aplicar exhaustivamente estas transformaciones. Es natural considerar el funcionamiento del algoritmo como la construcción de un grafo , [5] cuyos nodos son las ecuaciones alcanzadas y las aristas son las transformaciones entre ellas. Si la palabra trivial ecuación , (donde es la palabra vacía ) se encuentra alguna vez durante esta construcción, entonces es seguramente solucionable. Por el contrario, si es soluble, entonces debe aparecer en . Por tanto, mediante este método (suponiendo que es finito) se puede determinar si admite una solución.
Se pueden definir sistemas de ecuaciones de palabras de forma natural. [4] Una solución de un sistema de este tipo es un morfismo que resuelve simultáneamente cada ecuación en . Una extensión natural es considerar fórmulas booleanas de ecuaciones de palabras, [4] en las que también se permiten la negación y la disyunción . De hecho, cada sistema (e incluso cada fórmula booleana) de ecuaciones de palabras, es equivalente a una sola ecuación de palabras. [4] Por lo tanto, muchos resultados sobre ecuaciones de palabras se generalizan inmediatamente a tales sistemas (o fórmulas). Debe decirse, sin embargo, que la transformación en una sola ecuación de palabras puede introducir incógnitas adicionales, y esto es a veces por necesidad.
Dos ecuaciones de palabras (o sistemas de las mismas) se denominan equivalentes si tienen el mismo conjunto de soluciones. Un sistema de ecuaciones de palabras se denomina independiente si no es equivalente a ninguno de sus subsistemas propios. [15] Dicho de otro modo, un sistema independiente de ecuaciones de palabras es uno tal que cada una puede resolverse "independientemente", es decir, sin resolver ninguna de las otras . Un interesante teorema de compacidad , que suele llevar el nombre de Andrzej Ehrenfeucht , establece que un sistema infinito de ecuaciones de palabras, y con un número finito de incógnitas, es necesariamente equivalente a uno de sus subsistemas finitos. [17] De ello se deduce que cualquier sistema independiente de ecuaciones de palabras con un número finito de incógnitas es en sí mismo finito.
Las ecuaciones de palabras se pueden utilizar para caracterizar propiedades de (tuplas de) palabras. Por ejemplo, una palabra termina en si y solo si es la imagen en alguna solución de la ecuación de palabras . De manera similar, dos palabras conmutan si y solo si son las imágenes en alguna solución de la ecuación de palabras . En este sentido, las ecuaciones de palabras pueden considerarse como mecanismos para expresar lenguajes formales , [18] en analogía con los autómatas y las gramáticas formales . No se sabe exactamente qué propiedades de (tuplas de) palabras se pueden expresar mediante ecuaciones de palabras de esta manera. En particular, demostrar que una relación es inexpresable mediante ecuaciones de palabras suele ser bastante desafiante. [15] (Un ejemplo de una propiedad inexpresable es " es primitivo " [18] ).
También debe notarse que incluso caracterizar el conjunto de soluciones de una ecuación de una sola palabra es complicado. Hmelevskii [19] demostró que, aunque las soluciones de ecuaciones libres de constantes con tres incógnitas se pueden dar en términos de expresiones finitas con parámetros de palabras y enteros, esto no es cierto (en general) para ecuaciones libres de constantes con cuatro incógnitas. De hecho, es un ejemplo de una ecuación de palabras "no parametrizable".
Se pueden aumentar las ecuaciones de palabras con otros tipos de restricciones sobre los valores , . Por ejemplo, en 1968, Yuri Matiyasevich consideró [20] una extensión de las ecuaciones de palabras mediante "restricciones de longitud" como una posible herramienta para mostrar la insolubilidad del décimo problema de Hilbert. Estas restricciones de longitud equivalían a desigualdades lineales en las incógnitas , . A veces, permitir restricciones adicionales (junto con las ecuaciones de palabras) conduce a teorías con problemas de solubilidad indecidibles, pero también es posible agregar restricciones menos poderosas y terminar con una teoría que aún es decidible. Un ejemplo del primer tipo de restricción es requerir que algunos sean equivalentes abelianos (es decir, anagramas entre sí); [21] un ejemplo del último tipo es requerir que algunos pertenezcan a un lenguaje regular dado . [22] Para la extensión de Matiyasevich con las restricciones de longitud, el problema de solubilidad aún tiene un estado de decidibilidad abierto. [16]
Recientemente, ha habido un interés en la teoría de ecuaciones de palabras (y teorías más generales basadas en ella), desde el punto de vista práctico de quienes desarrollan herramientas de verificación de software llamadas solucionadores de cadenas . [23] Estas herramientas, que son cada vez más populares, [24] buscan resolver algorítmicamente problemas de satisfacción de restricciones sobre cadenas. Tales problemas toman la forma de un conjunto de restricciones, que un conjunto desconocido de cadenas debe satisfacer. El solucionador de cadenas debe determinar entonces si existen cadenas que satisfagan todas las restricciones dadas. Un objetivo típico de una herramienta de este tipo sería garantizar que una pieza particular de software esté libre de alguna vulnerabilidad relacionada con las cadenas, como secuencias de comandos entre sitios o inyección de código . [25]
Los componentes básicos de las restricciones utilizadas en estas herramientas son las preguntas estándar que uno podría hacer sobre las cadenas, como "¿es una subcadena de ?", "¿cuál es la longitud de la cadena ?" y "¿cuál es el índice de la cadena en la cadena ?". [24] Ostensiblemente, estas restricciones pueden ser modeladas por teorías basadas en ecuaciones de palabras y, como tales, las herramientas de resolución de cadenas deben ser capaces de lidiar con estas teorías algorítmicamente (al menos en el subcaso de aquellas ecuaciones y fórmulas que realmente surgen en la práctica).
El teorema del defecto es un resultado central de la combinatoria de palabras. [4] [5] Dice que, si un conjunto de palabras satisface una relación no trivial, entonces las palabras de pueden expresarse (simultáneamente) como potencias de palabras, donde . Se dice entonces que un conjunto de este tipo posee un "efecto de defecto" de orden . Los sistemas de ecuaciones de palabras (al menos los "no triviales") expresan el hecho de que un determinado conjunto finito de palabras (a saber, las imágenes de las incógnitas ), satisfacen alguna(s) relación(es) no trivial(es). Por lo tanto, se puede decir que los sistemas de ecuaciones de palabras causan un efecto de defecto en los conjuntos de palabras que provienen de soluciones de . [15]
Se ha estudiado el efecto de defecto causado por ciertos sistemas de ecuaciones de palabras [26] y existen algunos resultados sorprendentes al respecto que muestran que las " propiedades de dimensionalidad " de los conjuntos de palabras son en realidad bastante débiles. Por ejemplo, se sabe que aquí existe un sistema independiente de ecuaciones de tamaño , que contiene incógnitas, que es tal que causa únicamente un efecto de defecto de orden . [15]
Se han realizado muchas investigaciones sobre la formulación y resolución de ecuaciones dentro de diferentes estructuras del álgebra abstracta (por ejemplo, grupos y semigrupos ). [27] [28] Las ecuaciones de palabras, como se presentan aquí, son simplemente ecuaciones en monoides libres . Las ecuaciones en semigrupos libres están estrechamente relacionadas con estas; de hecho, son solo ecuaciones de palabras con el requisito adicional de que el morfismo de la solución no se borra. También se pueden considerar ecuaciones en grupos libres, aunque la teoría de tales objetos difiere en muchos aspectos de la discusión presentada aquí. Otro resultado de Makanin [29] establece que el problema de solubilidad para ecuaciones en grupos libres es nuevamente decidible.