En el estudio de los algoritmos de gráficos , el teorema de Courcelle es la afirmación de que cada propiedad del gráfico definible en la lógica monádica de segundo orden de los gráficos se puede decidir en tiempo lineal en gráficos de ancho de árbol acotado . [1] [2] [3] El resultado fue probado por primera vez por Bruno Courcelle en 1990 [4] y redescubierto de forma independiente por Borie, Parker y Tovey (1992). [5] Se considera el arquetipo de los metateoremas algorítmicos . [6] [7]
En una variación de la lógica monádica de grafos de segundo orden conocida como MSO 1 , el grafo se describe mediante un conjunto de vértices y una relación de adyacencia binaria , y la restricción a la lógica monádica significa que la propiedad del grafo en cuestión puede definirse en términos de conjuntos. de vértices del gráfico dado, pero no en términos de conjuntos de aristas o conjuntos de tuplas de vértices.
Como ejemplo, la propiedad de que un gráfico se pueda colorear con tres colores (representados por tres conjuntos de vértices , y ) puede definirse mediante la fórmula monádica de segundo orden.
Para esta variación de la lógica gráfica, el teorema de Courcelle se puede extender desde el ancho del árbol hasta el ancho de la camarilla : para cada propiedad MSO 1 fija y cada límite fijo en el ancho de la camarilla de un gráfico, existe un algoritmo de tiempo lineal para probar si una El gráfico de ancho de camarilla como máximo tiene la propiedad . [8] La formulación original de este resultado requería que el gráfico de entrada se proporcionara junto con una construcción que demostrara que tiene un ancho de camarilla limitado, pero los algoritmos de aproximación posteriores para el ancho de camarilla eliminaron este requisito. [9]
El teorema de Courcelle también se puede utilizar con una variación más fuerte de la lógica monádica de segundo orden conocida como MSO 2 . En esta formulación, un gráfico está representado por un conjunto V de vértices, un conjunto E de aristas y una relación de incidencia entre vértices y aristas. Esta variación permite la cuantificación sobre conjuntos de vértices o aristas, pero no sobre relaciones más complejas sobre tuplas de vértices o aristas.
Por ejemplo, la propiedad de tener un ciclo hamiltoniano se puede expresar en MSO 2 describiendo el ciclo como un conjunto de aristas que incluye exactamente dos aristas incidentes en cada vértice, de modo que cada subconjunto propio no vacío de vértices tenga una arista en el ciclo putativo. con exactamente un punto final en el subconjunto. Sin embargo, la hamiltonicidad no se puede expresar en MSO 1 . [10]
Es posible aplicar los mismos resultados a gráficos en los que los vértices o aristas tienen etiquetas de un conjunto finito fijo, ya sea aumentando la lógica del gráfico para incorporar predicados que describen las etiquetas, o representando las etiquetas mediante variables de conjunto de vértices o conjuntos de aristas no cuantificadas. . [11]
Otra dirección para ampliar el teorema de Courcelle se refiere a fórmulas lógicas que incluyen predicados para contar el tamaño de la prueba. En este contexto, no es posible realizar operaciones aritméticas arbitrarias en tamaños de conjuntos, ni siquiera probar si dos conjuntos tienen el mismo tamaño. Sin embargo, MSO 1 y MSO 2 se pueden extender a lógicas llamadas CMSO 1 y CMSO 2 , que incluyen para cada dos constantes q y r un predicado que prueba si la cardinalidad del conjunto S es congruente con r módulo q . El teorema de Courcelle puede extenderse a estas lógicas. [4]
Como se indicó anteriormente, el teorema de Courcelle se aplica principalmente a problemas de decisión : ¿una gráfica tiene una propiedad o no? Sin embargo, los mismos métodos también permiten la solución de problemas de optimización en los que los vértices o aristas de un gráfico tienen pesos enteros, y se busca el conjunto de vértices de peso mínimo o máximo que satisface una propiedad determinada, expresada en lógica de segundo orden. Estos problemas de optimización se pueden resolver en tiempo lineal en gráficos de ancho de camarilla acotado. [8] [11]
En lugar de limitar la complejidad temporal de un algoritmo que reconoce una propiedad MSO en gráficos de ancho de árbol limitado, también es posible analizar la complejidad espacial de dicho algoritmo; es decir, la cantidad de memoria necesaria más allá del tamaño de la propia entrada (que se supone que está representada en forma de sólo lectura para que sus requisitos de espacio no puedan destinarse a otros fines). En particular, es posible reconocer las gráficas de ancho de árbol acotado y cualquier propiedad MSO en estas gráficas mediante una máquina determinista de Turing que utiliza solo espacio logarítmico . [12]
El enfoque típico para demostrar el teorema de Courcelle implica la construcción de un árbol autómata finito de abajo hacia arriba que actúa sobre las descomposiciones de los árboles del gráfico dado. [6]
Con más detalle, dos gráficos G 1 y G 2 , cada uno con un subconjunto específico T de vértices llamados terminales, pueden definirse como equivalentes con respecto a una fórmula MSO F si, para todos los demás gráficos H cuya intersección con G 1 y G 2 consta solo de vértices en T , los dos gráficos G 1 ∪ H y G 2 ∪ H se comportan igual con respecto a F : o ambos modelan F o ambos no modelan F. Esta es una relación de equivalencia , y se puede demostrar por inducción sobre la longitud de F que (cuando los tamaños de T y F están acotados) tiene un número finito de clases de equivalencia . [13]
Una descomposición en árbol de un gráfico G dado consta de un árbol y, para cada nodo del árbol, un subconjunto de los vértices de G llamado bolsa. Debe satisfacer dos propiedades: para cada vértice v de G , las bolsas que contienen v deben estar asociadas con un subárbol contiguo del árbol, y para cada arista uv de G , debe haber una bolsa que contenga tanto u como v . Los vértices de una bolsa pueden considerarse como las terminales de un subgrafo de G , representado por el subárbol de la descomposición del árbol que desciende de esa bolsa. Cuando G tiene un ancho de árbol acotado, tiene una descomposición de árbol en la que todas las bolsas tienen un tamaño acotado, y dicha descomposición se puede encontrar en un tiempo manejable de parámetros fijos. [14] Además, es posible elegir esta descomposición de árbol para que forme un árbol binario , con solo dos subárboles secundarios por bolsa. Por lo tanto, es posible realizar un cálculo ascendente en esta descomposición de árbol, calculando un identificador para la clase de equivalencia del subárbol enraizado en cada bolsa combinando los bordes representados dentro de la bolsa con los dos identificadores para las clases de equivalencia de sus dos niños. [15]
El tamaño del autómata construido de esta manera no es una función elemental del tamaño de la fórmula MSO de entrada. Esta complejidad no elemental es necesaria, en el sentido de que (a menos que P = NP ) no es posible probar las propiedades de MSO en árboles en un tiempo que sea manejable con parámetros fijos y con una dependencia elemental del parámetro. [dieciséis]
Las pruebas del teorema de Courcelle muestran un resultado más sólido: no sólo se puede reconocer cada propiedad monádica de segundo orden (contando) en tiempo lineal para gráficos de ancho de árbol acotado, sino que también se puede reconocer mediante un autómata de árbol de estado finito . Courcelle conjeturó lo contrario: si un autómata de árbol reconoce una propiedad de los gráficos de ancho de árbol acotado, entonces se puede definir contando lógica monádica de segundo orden. En 1998, Lapoire (1998) afirmó una resolución de la conjetura. [17] Sin embargo, la prueba se considera en general insatisfactoria. [18] [19] Hasta 2016, solo se resolvieron unos pocos casos especiales: en particular, la conjetura se ha demostrado para gráficos de ancho de árbol como máximo tres, [20] para gráficos k-conexos de ancho de árbol k, para gráficos de ancho de árbol constante y cordalidad, y para gráficos k-planares exteriores. La versión general de la conjetura fue finalmente demostrada por Mikołaj Bojańczyk y Michał Pilipczuk. [21]
Además, para los gráficos de Halin (un caso especial de gráficos de tres anchos de árbol) no es necesario contar: para estos gráficos, cada propiedad que puede reconocer un autómata de árbol también se puede definir en lógica monádica de segundo orden. Lo mismo es cierto de manera más general para ciertas clases de gráficos en los que una descomposición de árbol puede describirse en MSOL. Sin embargo, no puede ser cierto para todos los gráficos de ancho de árbol acotado, porque en general contar agrega poder adicional sobre la lógica monádica de segundo orden sin contar. Por ejemplo, los gráficos con un número par de vértices se pueden reconocer mediante el conteo, pero no sin hacerlo. [19]
El problema de satisfacibilidad de una fórmula de lógica monádica de segundo orden es el problema de determinar si existe al menos un grafo (posiblemente dentro de una familia restringida de grafos) para el cual la fórmula es verdadera. Para familias de gráficos arbitrarios y fórmulas arbitrarias, este problema es indecidible . Sin embargo, la satisfacibilidad de las fórmulas MSO 2 es decidible para los gráficos de ancho de árbol acotado, y la satisfacibilidad de las fórmulas MSO 1 es decidible para los gráficos de ancho de camarilla acotado. La prueba implica construir un árbol autómata para la fórmula y luego probar si el autómata tiene una ruta de aceptación.
Como recíproco parcial, Seese (1991) demostró que, siempre que una familia de grafos tiene un problema de satisfacibilidad de MSO 2 decidible , la familia debe tener un ancho de árbol acotado. La prueba se basa en un teorema de Robertson y Seymour de que las familias de gráficos con ancho de árbol ilimitado tienen grillas menores arbitrariamente grandes . [22] Seese también conjeturó que cada familia de gráficos con un problema de satisfacibilidad MSO 1 decidible debe tener un ancho de camarilla acotado; Esto no ha sido probado, pero es cierta una debilitación de la conjetura que reemplaza MSO 1 por CMSO 1 . [23]
Grohe (2001) utilizó el teorema de Courcelle para demostrar que calcular el número de cruce de un gráfico G es manejable con parámetros fijos con una dependencia cuadrática del tamaño de G , mejorando un algoritmo de tiempo cúbico basado en el teorema de Robertson-Seymour . Una mejora adicional posterior al tiempo lineal realizada por Kawarabayashi y Reed (2007) sigue el mismo enfoque. Si el gráfico dado G tiene un ancho de árbol pequeño, el teorema de Courcelle se puede aplicar directamente a este problema. Por otro lado, si G tiene un ancho de árbol grande, entonces contiene una cuadrícula menor grande , dentro de la cual el gráfico se puede simplificar sin cambiar el número de cruce. El algoritmo de Grohe realiza estas simplificaciones hasta que el gráfico restante tiene un ancho de árbol pequeño y luego aplica el teorema de Courcelle para resolver el subproblema reducido. [24] [25]
Gottlob y Lee (2007) observaron que el teorema de Courcelle se aplica a varios problemas de encontrar cortes mínimos de múltiples vías en un gráfico, cuando la estructura formada por el gráfico y el conjunto de pares de cortes tiene un ancho de árbol acotado. Como resultado, obtienen un algoritmo manejable de parámetros fijos para estos problemas, parametrizado por un único parámetro, el ancho del árbol, mejorando soluciones anteriores que habían combinado múltiples parámetros. [26]
En topología computacional, Burton y Downey (2014) extienden el teorema de Courcelle de MSO 2 a una forma de lógica monádica de segundo orden en complejos simpliciales de dimensión limitada que permite la cuantificación de simples de cualquier dimensión fija. Como consecuencia, muestran cómo calcular ciertos invariantes cuánticos de 3 variedades , así como cómo resolver ciertos problemas en la teoría Morse discreta de manera eficiente, cuando la variedad tiene una triangulación (evitando simples degenerados) cuyo gráfico dual tiene un ancho de árbol pequeño. [27]
Los métodos basados en el teorema de Courcelle también se han aplicado a la teoría de bases de datos , [28] representación y razonamiento del conocimiento , [29] teoría de autómatas , [30] y verificación de modelos . [31]