La idea detrás de una reducción es que tienes dos problemas A y B. Sabes cómo resolver B, pero estás atascado en A. Luego te das cuenta de que hay un truco que puedes usar para transformar las instancias del problema A en instancias del problema. B de tal manera que pueda obtener la solución a la instancia del problema original de la instancia del problema transformado.
Las reducciones son importantes para la teoría de la complejidad computacional porque si puede resolver el problema A usando un algoritmo para el problema B, entonces es razonable decir que el problema B es al menos tan difícil como el problema A. Eso le da un pedido anticipado sobre la clase de todos los problemas, y puede convertirlo en un orden parcial identificando conjuntos de problemas que se reducen entre sí.
Creo que la reducción canónica es de SAT a 3SAT. Si recuerda cómo funciona eso, podrá comprender los conceptos sin demasiados problemas.
- ¿Existe una diferencia importante entre los vectores con forma (D,) y (D, 1) o (1, D) en numpy?
- ¿Qué cursos de matemáticas en la universidad son más importantes para la informática?
- ¿Cómo ayuda la máquina de Turing a comprender la mente?
- ¿Cómo debo estudiar combinatoria?
- ¿Una representación no discreta de información coexiste con nuestro uso discreto de BITS?