¿Cuál es la explicación laica del problema de la satisfacción booleana?

Imagine que tiene un montón de interruptores frente a usted, cada uno de los cuales puede estar arriba o abajo.

Imagine que también tiene un montón de bombillas, cada una de las cuales está controlada por unos pocos (por ejemplo, tres) interruptores. La quinta bombilla podría encenderse si alguno de los interruptores tercero, 13 o 33 está encendido, o la séptima bombilla podría encenderse si el segundo interruptor está arriba y / o el tercer interruptor está abajo.

El problema de la satisfacción booleana (SAT) es encontrar una manera, examinando el cableado entre los interruptores y las bombillas, para saber si hay alguna configuración de interruptores de manera que todas las bombillas se enciendan más rápido que simplemente probar todas las configuraciones posibles del interruptor .

Probar todas las combinaciones de interruptores es “lento” porque el número de combinaciones posibles aumenta rápidamente con el número de interruptores: para 2 interruptores, hay 4 combinaciones; para 3, hay 8; para 10, hay alrededor de 1000; para 20, hay alrededor de un millón. Para 333 interruptores, hay más de un googol ([matemática] 10 ^ {100} [/ matemática]), más que el número de partículas en el universo.

El problema es importante porque pertenece a una clase de problemas llamados problemas “NP”. Los problemas de NP tienen la propiedad de saber rápidamente si una solución determinada funciona (en este caso, puede verificar si una configuración determinada de conmutadores funciona configurándolos y mirando para ver si es correcta), pero no se sabe Cómo encontrar una solución rápidamente.

Otro problema de NP es el problema del vendedor ambulante, dado un conjunto de ciudades y las distancias entre ellas, ¿es posible que un vendedor visite cada ciudad una vez y regrese a casa mientras viaja a menos de una distancia especificada? Dada una ruta, puede verificar fácilmente que cumple con los criterios, pero es difícil encontrar una ruta.

SAT (and Travelling Salesman) es parte de un subconjunto más pequeño de problemas de NP llamado “NP-Complete”, que tiene la propiedad adicional de que cualquier instancia de un problema de NP se puede convertir en una instancia de un problema de NP-Complete de tal manera que resolver El problema NP-Complete puede ayudarlo a resolver rápidamente el problema NP original.

Puede “codificar” ingeniosamente un problema de vendedor ambulante en un cableado de un grupo de interruptores y bombillas para obtener un problema SAT, y resolver el problema SAT (¿hay una configuración de interruptor que encienda todas las bombillas?) Resolverá el vendedor ambulante problema (¿puede el vendedor completar su ruta y llegar a casa sin poner demasiadas millas en su automóvil?).

Hay muchos problemas de NP-Complete, y descubrir cómo resolver cualquiera de ellos rápidamente le permitirá resolverlos rápidamente.

Digamos que quieres hacer una lista de regalos de navidad. Por cada regalo posible (consideramos que hay muchos), arregle una variable [math] g_i [/ ​​math]. [math] g_i [/ ​​math] puede ser verdadero o falso. Si [math] g_i [/ ​​math] es verdadero, debería estar en la lista y de lo contrario no debería.
Ahora recibe el deseo de alguien: “Quiero el regalo [matemáticas] g_0 [/ matemáticas] y el regalo [matemáticas] g_1 [/ matemáticas] o el regalo [matemáticas] g_2 [/ matemáticas] y el regalo [matemáticas] g_3 [/ matemáticas] (pero solo si también recibo [matemáticas] g_4 [/ matemáticas], pero no [matemáticas] g_5) … “.
[/ math] El problema de la satisfacción ahora es decidir si se puede cumplir el deseo, es decir, si hay una lista de regalos de manera que no se violen ninguno de los requisitos de la lista.

Por un lado, este problema parece fácil. Dado que solo hay muchas listas de regalos, podemos iterar a través de todas ellas y volver verdadero si encontramos una lista que satisfaga el deseo. Por otro lado, este algoritmo es muy ineficiente (en tiempo exponencial) porque tienes que considerar muchas combinaciones.

Encontrar un algoritmo eficiente (un algoritmo de tiempo polinómico) para él o demostrar que no existe es un problema muy difícil que nadie ha podido resolver hasta ahora; ¡este es realmente el problema de P-NP!

More Interesting

¿Cómo se comparan las capacidades y trayectorias de aprendizaje automático de Facebook y Google? ¿Por qué esto importa en términos del desempeño futuro de las dos compañías?

La mayoría de la gente dice que Windows tiene fugas de seguridad. ¿Qué tan cierto es eso?

¿Sería útil para un estudiante de CS estudiar Señales y Sistemas, así como el Procesamiento de Señal Digital?

¿Cuál será el código para contar a las personas que entraron o salieron de la sala en Mega 8?

¿Debería un curso de introducción a la universidad CS enseñar con o sin IDE?

¿Qué campos se volverán populares después de que la inteligencia artificial domine el mundo entero?

¿Cuál es el escenario actual de la investigación que invita tanto a las finanzas como al aprendizaje automático, si existe tal investigación?

¿Cuáles son las tendencias en el desarrollo de la interfaz computadora humana?

¿Los usuarios de Quora usarían Dice.com para encontrar un trabajo tecnológico?

¿Por qué todo lo relacionado con TI en India?

¿Es posible hackear los mercados financieros y eliminar la deuda estudiantil de todos?

Dejé caer mi iPhone 4s y muestra el modo de recuperación, cuando estoy conectado a iTunes. ¿Todavía puedo recuperar los datos?

¿Por qué la computadora usa el complemento de 2 para almacenar el número negativo en lugar del complemento de 1?

¿Qué equipos indios participarán en las finales mundiales de ACM-ICPC 2016-2017?

¿Tiene sentido combinar NoSQL y SQL? ¿Por qué?