¿Hay problemas en CS donde no se conocen algoritmos eficientes, a pesar de los teoremas de existencia que demuestran que tales algoritmos eficientes deben existir?
¿Cómo se llaman estos problemas? ¿Dónde puedo encontrar más?
¿Hay problemas en CS donde no se conocen algoritmos eficientes, a pesar de los teoremas de existencia que demuestran que tales algoritmos eficientes deben existir?
¿Cómo se llaman estos problemas? ¿Dónde puedo encontrar más?
Respuestas:
Como ejemplo, Shelby Kimmel utiliza el método adversario en este documento para mostrar que tiene que existir el algoritmo de consulta para un determinado problema para el que no conocemos una solución de consulta constante. Ella hace esto de una manera particularmente hábil al encontrar la complejidad de la consulta del problema compuesto consigo mismo d veces y luego encuentra la complejidad de la consulta Q de la función compuesta, y observa que la complejidad de la consulta de la función original es el orden Q 1 .
Claro, hay muchos ejemplos, al menos en el espíritu de su pregunta.
A menudo uno obtiene ese resultado del método probabilístico . Por ejemplo, un artículo que me gusta que se encuentra con el problema es en la reconstrucción de gráficos en el modelo aditivo . Aquí, los autores muestran que existe un conjunto de consultas que (óptimamente) aprenderán el gráfico objetivo. Dado este conjunto, el algoritmo es eficiente. Sin embargo, utilizan el método probabilístico para mostrar la existencia de este pequeño conjunto (para cada tamaño de problema) que funcionará en todas las entradas, pero no lo construyen explícitamente. Entonces, lo mejor que pueden hacer es solo una búsqueda de fuerza bruta a través de una familia exponencial de consultas porque no tienen una construcción explícita.
No, siempre puede usar el algoritmo más rápido y más corto para todos los problemas bien definidos . ;)
Editar: La respuesta a continuación es registrar la existencia de soluciones a un problema computacional dado, no la existencia de algoritmos. Inicialmente, interpreté mal la pregunta.
Responder
Hay una clase de complejidad que captura este tipo de problemas computacionales. Es conocido como TFNP . Se definió en este documento:
Nimrod Megiddo y Christos Papadimitriou. Sobre funciones totales, teoremas de existencia y complejidad computacional . Informática teórica 81 (2): 317-324.
Aquí encontrará problemas como el Triángulo tricromático, para el cual la existencia de una solución está garantizada por el Lema de Sperner (consulte el documento para la definición de este problema).
También tienes el siguiente documento:
Christos Papadimitriou. Sobre la complejidad del argumento de paridad y otras pruebas ineficaces de existencia . Journal of Computer and Systems Science 48 (3), 1990.
En este artículo encontrarás:
El documento tiene muchos ejemplos de este tipo de problemas. Así que recomiendo echarle un vistazo.