En la teoría de la complejidad computacional , una camarilla plantada o camarilla oculta en un grafo no dirigido es una camarilla formada a partir de otro grafo seleccionando un subconjunto de vértices y agregando aristas entre cada par de vértices en el subconjunto. El problema de la camarilla plantada es el problema algorítmico de distinguir grafos aleatorios de grafos que tienen una camarilla plantada. Esta es una variación del problema de la camarilla ; puede resolverse en tiempo cuasi-polinomial pero se conjetura que no es solucionable en tiempo polinomial para valores intermedios del tamaño de la camarilla. La conjetura de que no existe una solución en tiempo polinomial se llama conjetura de la camarilla plantada ; se ha utilizado como un supuesto de dureza computacional .
Una camarilla en un gráfico es un subconjunto de vértices, todos ellos adyacentes entre sí. Una camarilla plantada es una camarilla creada a partir de otro gráfico mediante la adición de aristas entre todos los pares de un subconjunto seleccionado de vértices.
El problema de la camarilla plantada se puede formalizar como un problema de decisión sobre una distribución aleatoria en grafos, parametrizados por dos números, n (el número de vértices) y k (el tamaño de la camarilla). Estos parámetros se pueden utilizar para generar un grafo, mediante el siguiente proceso aleatorio: [1]
El problema es entonces determinar algorítmicamente si uno de los gráficos resultantes de este proceso contiene una camarilla de al menos k vértices.
Existe una función tal que, de manera casi segura y asintótica, el tamaño de la camarilla más grande en un grafo aleatorio de n vértices es o bien , [2] y existe alguna constante tal que el número esperado de camarillas de tamaño converge a infinito. En consecuencia, se debería esperar que la plantación de una camarilla de tamaño no pueda detectarse con alta probabilidad.
Según el teorema del límite central , los grados de los vértices del gráfico aleatorio se distribuirían cerca de una distribución normal estándar con media y desviación estándar . En consecuencia, cuando está en el orden de , se crearía un cambio detectable en la forma de la distribución. Es decir, si se traza la distribución de los grados de los vértices, parecería una curva de campana deformada. Por lo tanto, el rango de valores más interesante para el parámetro k está entre estos dos valores, [1]
Para valores suficientemente grandes del parámetro k , el problema de la camarilla plantada se puede resolver (con alta probabilidad) en tiempo polinomial. [1]
Kučera (1995) observa que, cuando es casi seguro que todos los vértices de la camarilla plantada tienen un grado más alto que todos los vértices fuera de la camarilla, lo que hace que la camarilla sea muy fácil de encontrar. Describe una modificación del proceso aleatorio para generar instancias de camarilla plantada, que hace que los grados de los vértices sean más uniformes incluso para valores grandes de k , pero muestra que a pesar de esta modificación, la camarilla plantada aún se puede encontrar rápidamente. [3]
Alon, Krivelevich y Sudakov (1998) demuestran que es posible encontrar una camarilla plantada con alta probabilidad mediante el siguiente método:
Muestran cómo modificar esta técnica para que siga funcionando siempre que k sea al menos proporcional a algún múltiplo de la raíz cuadrada del número de vértices. [4] También se pueden encontrar grandes camarillas plantadas utilizando programación semidefinida . [5] Una técnica combinatoria basada en el muestreo aleatorio de vértices puede lograr el mismo límite en k y se ejecuta en tiempo lineal . [6]
También es posible resolver el problema de la camarilla plantada, independientemente de la elección de k , en tiempo cuasi-polinomial . [7] Debido a que la camarilla más grande en un gráfico aleatorio normalmente tiene un tamaño cercano a 2 log 2 n , [8] una camarilla plantada de tamaño k (si existe) se puede encontrar con alta probabilidad mediante el siguiente método:
El tiempo de ejecución de este algoritmo es cuasipolinómico, porque hay cuasipolinómicamente muchas opciones de S para recorrer. Se garantiza que este método probará un conjunto S que sea un subconjunto del grupo seleccionado; con alta probabilidad, el conjunto T estará formado únicamente por otros miembros del grupo seleccionado.
Existen dos versiones de la conjetura de la camarilla plantada: una basada en encontrar la camarilla (búsqueda) y otra basada en determinar si existe una camarilla (decisión). La conjetura de búsqueda establece que ningún algoritmo de tiempo polinomial puede encontrar (con alta probabilidad) una camarilla oculta de tamaño << en un grafo aleatorio con nodos. [9]
La conjetura de decisión es más sutil. Supongamos que se nos dan dos grafos aleatorios de nodos, exactamente uno de los cuales tiene una camarilla plantada, pero no sabemos cuál. En promedio, un grafo aleatorio con una camarilla plantada tendrá más aristas que un grafo puramente aleatorio, ya que se espera que el acto de plantar una camarilla de tamaño agregue aristas. Por lo tanto, podemos determinar correctamente cuál de los dos grafos contiene la camarilla plantada con probabilidad simplemente contando el número de aristas en cada grafo. La conjetura de decisión de la camarilla plantada establece que esto es esencialmente óptimo: postula que ningún algoritmo de tiempo polinomial puede distinguir entre los dos grafos con probabilidad mayor que . [9] [10]
Hazan y Krauthgamer (2011) utilizaron el supuesto de que encontrar camarillas plantadas es difícil como un supuesto de dificultad computacional para demostrar que, si es así, también es difícil aproximarse al mejor equilibrio de Nash en un juego de dos jugadores. [7] La conjetura de la camarilla plantada también se ha utilizado como un supuesto de dificultad para mostrar la dificultad de probar la propiedad de la k -independencia de distribuciones aleatorias, [11] encontrar grupos en redes sociales, [12] y aprendizaje automático . [13]