En teoría de la complejidad computacional , una camarilla plantada o una camarilla oculta en un gráfico no dirigido es una camarilla formada a partir de otro gráfico 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 gráficos aleatorios de gráficos que tienen una camarilla plantada. Ésta es una variación del problema de la camarilla ; puede resolverse en tiempo cuasipolinomial, pero se conjetura que no se puede resolver en tiempo polinómico para valores intermedios del tamaño de la camarilla. La conjetura de que no existe una solución temporal 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 los cuales son adyacentes entre sí. Una camarilla plantada es una camarilla creada a partir de otro gráfico agregando 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 gráficos, parametrizado 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 gráfico mediante el siguiente proceso aleatorio: [1]
El problema es entonces determinar algorítmicamente si uno de los grafos resultantes de este proceso contiene una camarilla de al menos k vértices.
Existe una función tal que asintóticamente casi con seguridad, el tamaño de la camarilla más grande en un gráfico aleatorio de n -vértices es o , [2] y existe alguna constante tal que el número esperado de camarillas de tamaño converge al infinito. En consecuencia, se debe esperar que la plantación de un grupo 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 crearía un cambio detectable en la forma de la distribución. Es decir, si traza la distribución de grados del vértice, parecería una curva de campana deformada. Por tanto, el rango de valores más interesante para el parámetro k se encuentra 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 polinómico. [1]
Kučera (1995) observa que, entonces, casi seguramente 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 una camarilla plantada se puede encontrar con alta probabilidad mediante el siguiente método:
Muestran cómo modificar esta técnica para que continúe 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 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 un tiempo cuasipolinomial . [7] Debido a que la camarilla más grande en un gráfico aleatorio generalmente 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 cuasipolinomial, porque hay muchas opciones cuasipolinomiales de S para recorrer. Se garantiza que este método probará un conjunto S que sea un subconjunto de la camarilla plantada; con alta probabilidad, el conjunto T estará formado únicamente por otros miembros de la camarilla plantada.
La conjetura de la camarilla plantada es la conjetura de que no existe un algoritmo de tiempo polinómico que tome como entrada los gráficos producidos por el proceso de la camarilla plantada y distinga los que tienen camarillas plantadas de los que no las tienen con una probabilidad significativamente mejor que el azar. [9]
Hazan y Krauthgamer (2011) utilizaron el supuesto de que encontrar camarillas plantadas es difícil como supuesto de dureza computacional para demostrar que, de ser 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 dureza para mostrar la dificultad de probar la propiedad k -independencia de distribuciones aleatorias, [10] encontrar clústeres en redes sociales, [11] y el aprendizaje automático . [12]