¿Cómo se prueba algo (desde cero) que es NP-hard?

Para mostrar que un problema de decisión dado * [matemática] A [/ matemática] es [matemática] \ mathbf {NP} [/ matemática] -duro, usted toma un problema arbitrario [matemática] B \ in \ mathbf {NP} [/ matemática], que por definición significa que debe existir un verificador de tiempo polinomial ** Máquina de Turing [matemática] V [/ matemática] para [matemática] B [/ matemática] – y usted demuestra que el polinomio [matemático] B [/ matemático] -tiempo se reduce a [matemática] A [/ matemática], utilizando solo la suposición de que [matemática] V [/ matemática] existe.

Un ejemplo “prototípico” es la satisfacción del circuito booleano, también conocido como CSAT. Una prueba de que CSAT es [math] \ mathbf {NP} [/ math] -hard especifica una reducción que convierte la instancia [math] x [/ math] de [math] B [/ math] en un circuito booleano que simula [math ] V [/ math], con la instancia [math] x [/ math] “cableada” en el circuito y las entradas abiertas restantes del circuito destinadas a aceptar un certificado para [math] x [/ math] (usted puede usar la complejidad temporal de [math] V [/ math] y la longitud de [math] x [/ math] para vincular el número de entradas que necesita proporcionar en el circuito). El circuito simula [matemática] V [/ matemática] en [matemática] x [/ matemática] en el sentido de que las entradas [matemática] c_1, c_2,…, c_k [/ matemática] satisfacen el circuito si y solo si [ matemática] V (x, c) [/ matemática] genera “sí”, donde [matemática] c = c_1c_2 … c_k [/ matemática] es la concatenación de dichas entradas de circuito.
Vale la pena buscar los detalles de cómo codificar, por ejemplo, una máquina de Turing como un circuito booleano (es básicamente el contenido del Teorema de Cook-Levin, que dio origen a la teoría de [math] \ mathbf {NP} [/ math] -hardness ), pero incluso sabiendo intuitivamente que prácticamente implementamos todos nuestros dispositivos informáticos utilizando tecnología de circuito booleano debería proporcionarle alguna evidencia de que todo esto se puede hacer.

* Un problema de decisión es cualquier problema donde la solución que estamos buscando es simplemente un “sí” o un “no”. La investigación de trazabilidad computacional generalmente se enfoca en problemas de decisión por conveniencia, pero cualquier problema más general puede ser “refundido” como un problema de decisión adecuado.
** Un verificador [matemático] V [/ matemático] problema [matemático] B [/ matemático] es una máquina de Turing tal que para cualquier caso [matemático] x [/ matemático] del problema [matemático] B [/ matemático], [ math] x [/ math] es una instancia de “sí” si y solo si existe alguna información [math] c [/ math], conocida como certificado para [math] x [/ math], de modo que [math] V (x, c) [/ math] genera “sí”.

Se muestra que la mayoría de los problemas son NP difíciles al reducirlos a otro problema difícil conocido de NP. El algoritmo de reducción debe ser polinómico por definición de NP duro.

Obviamente, debe haber un problema que originalmente era NP difícil. La satisfacción booleana (evaluar si una expresión booleana es verdadera o falsa) es uno de los problemas propuestos por Steven Cook, que luego se formalizó como teorema de Levin Cook. Puede Google con estos punteros. AFAIK la prueba no implicaba teoría de categorías.

More Interesting

Alguien me dijo que me especializara en un dominio CS para evitar quedar desempleado cuando envejeciera, ¿es cierto?

¿Cómo funciona la pila de recursión en la generación de una cadena binaria de n bits?

¿Cuál es la diferencia entre matemática y ciencia?

Matemática discreta: ¿Cuál es la diferencia entre ser un elemento de un conjunto o ser un subconjunto de un conjunto?

¿Cuáles son tus 10 idiomas favoritos?

¿Practicar las matemáticas es bueno para la programación competitiva?

¿Los programadores de computadoras usan Pi para crear un número 'aleatorio'?

¿Qué conceptos matemáticos son cruciales para un informático?

Para un número binario [matemático] n [/ matemático], ¿cuál es la probabilidad de que los dígitos contengan 1 consecutivos? Por ejemplo, un número binario de 3 dígitos tiene 8 posibilidades, y 110, 011 y 111 son los 3 escenarios donde hay 1s consecutivos.

¿Cuál es la justificación rigurosa de la exactitud de la segunda formulación de la solución DP de corte de varillas en CLRS?

¿Por qué las máquinas de Turing son un equivalente teórico tan prolífico de lo que puede hacer una computadora real?

¿Qué problemas originalmente se pensaban que solo podían resolverse con una computadora pero luego tenían una prueba de papel y lápiz?

Si hubiera un algoritmo de tiempo polinómico para algo como 3SAT, ¿qué tan probable es que sea algo elegante y / o simple?

¿Qué se usó antes de LaTeX para escribir documentos matemáticos? ¿Cómo se dibujaron las figuras? ¿Cómo se generaron y posicionaron las ecuaciones matemáticas con notación complicada en el documento? ¿Quién hizo la composición en su forma final para imprimir después de que fue aceptada?

¿Cuáles son algunas aplicaciones reales de la teoría de las subastas?