Ejercicios y soluciones de teoría de la complejidad computacional

Ejercicios y soluciones de teoría de la complejidad computacional

Curso de Complejidad Computacional Este curso tiene un total de 48 horas y las ideas que contiene deben saborearse lentamente. Debo admitir que solo aprendí algunas cosas superficiales y no entendí muchas cosas. Las siguientes son las respuestas de la tarea que resolví: debe haber muchos errores y son solo como referencia.

Capítulo 1 Teoría de la Computación

Pregunta 1

Diseñe una máquina de Turing que calcule la multiplicación de dos números naturales.

respuesta:

Diseñar una máquina de Turing de tres bandas. La primera cinta es la cinta de entrada, la segunda cinta es la cinta de borrador y la tercera cinta se utiliza para guardar los resultados. Una máquina de Turing convierte operaciones de multiplicación de números naturales en operaciones de desplazamiento y operaciones de suma. Primero, copie el multiplicador a la segunda cinta, lea el bit alto del multiplicando, si el bit alto del multiplicando es 1, realice la operación de desplazamiento correspondiente en el multiplicando, de lo contrario, lea el bit alto del multiplicando La siguiente persona. Una vez completada la operación de cambio en la segunda cinta, se agrega al resultado guardado en la tercera cinta.

Pregunta 2

En la página 14, lo que se define como máquina de Turing M \mathbb{M}M resuelve un problemaf : { 0 , 1 } ∗ → { 0 , 1 } ∗ f:\{0,1\}^{*}\rightarrow\{0,1\}^{*}F:{ 0 ,1 }{ 0 ,1 } . Demuestre que la mayoría de los problemas no son computables.

respuesta:

Mi respuesta es ridículamente incorrecta, así que no la escribiré.

Comentarios del asistente docente: Esta pregunta es para que usted demuestre que el número de problemas computables es contable (igual potencial con números naturales) y la suma de todos los problemas es incontable (igual potencial con números reales).

Pregunta 3

Diseñar una máquina que convierta el número unario 1 n 1^{n}1n convertido a número binario⌞ n ⌟ \llcorner n\lrcornern Máquina de Turing. ¿Cuál es la función temporal de la máquina de Turing que diseñó? ¿Qué pasa con la conversión de números binarios a unarios?

respuesta:

  • Convertir números unarios a números binarios:

    • Diseñar una máquina de Turing de dos bandas. Una de las cintas es la cinta de entrada y la otra se utiliza para guardar resultados y realizar borradores. Inicializado a 0 en la segunda banda. Escanea los números unarios ingresados ​​de izquierda a derecha. Si la entrada no se ha leído, la segunda cinta se escanea de izquierda a derecha. Si la posición señalada por el cabezal de lectura y escritura en la segunda cinta es 1, entonces establezca 0 y el cabezal de lectura y escritura se mueve un espacio hacia la derecha; si la posición señalada por el cabezal de lectura y escritura en la segunda cinta es 0 , luego establezca 1 y lea El cabezal de escritura se mueve hacia el extremo izquierdo.
    • La función de tiempo es nlog ( n ) nlog(n)n l o g ( n ) , donde,nnn es la longitud de entrada.
  • Convertir números binarios a unario:

    • Diseñar una máquina de Turing de tres bandas. Una de las cintas es la cinta de entrada, la segunda es para redactar y la tercera es para guardar los resultados. Escanea el número binario ingresado de izquierda a derecha. Registre la posición del cabezal de lectura/escritura de la cinta de entrada en la segunda cinta. Si la posición indicada por el cabezal de lectura y escritura de la cinta de entrada es 1, escriba un número correspondiente de unos en la tercera cinta de acuerdo con la posición del cabezal de lectura y escritura grabada en la segunda cinta.
    • La función del tiempo es n 2 n n2^{n}n2_ _n , donde,nnn es la longitud de entrada.

Pregunta 7

Sea T ( n ) , T ′ ( n ) T(n), T'(n)T ( n ) ,t (n)es construible en el tiempo. Demuestre queT ( n ) + T ′ ( n ) T(n)+T'(n)T ( n )+t (norte)T ( norte ) ⋅ T ′ ( norte ) T(n){\cdot}T'(n)T ( norte ) T (norte)T ( norte ) T ′ ( norte ) T(n)^{T'(n)}T ( n )t (n)son construibles en el tiempo. Se puede demostrar queT ( n ) / T ′ ( n ) T(n)/T'(n)T ( n ) / T (n)¿es el tiempo construible? Iniciar sesión ⁡ T ( norte ) \log T (n)iniciar sesión¿Qué pasa con T ( n ) ?

respuesta:

  • Porque T ( n ) T(n)T ( n ) es construible en el tiempo, por lo tanto,∃ M \exists MM enCT ( n ) CT(n)Deténgase dentro de los pasos CT ( n ) . Dado queT ′ ( n ) T'(n)t (n)es construible en el tiempo, por lo tanto,∃ M ′ \exists M'METRO' enCT' ( n ) CT'(n)CT _ (n)pasos para detenerse.

  • O ( T ( n ) + T ′ ( n ) ) = O ( T ( n ) ) ∣ O ( T ′ ( n ) ) O(T(n)+T'(n))=O(T(n) ) | O(T'(n))O ( T ( norte )+t (n))=O ( T ( norte )) O ( T (n)), entonces,M ∣ M ′ M | M'METRO METROCT ( T ( n ) + T ′ ( n ) ) CT(T(n)+T'(n))TC ( T ( n )+t (n))se detiene en un paso. Por lo tanto,T ( n ) + T ′ ( n ) T(n)+T'(n)T ( n )+t (n)se puede construir el tiempo.

  • Construir una máquina de Turing TTT ,TTT combinado conMMM yM'M'METRO ,MMCada vez que M ejecuta un paso,M ′ M'METRO , cuandoMMM yM'M'METRO cuando ambos se detienen,TTT apagado. TTTCT ( n ) ⋅ T ′ ( n ) CT(n){\cdot}T'(n)CT ( norte ) T (n)pasos para detenerse. Por lo tanto,T ( n ) ⋅ T ′ ( n ) T(n){\cdot}T'(n)T ( norte ) T (n)se puede construir el tiempo.

  • Construir una máquina de Turing TTT , ejecuta M, M ′ M, M'secuencialmenteM ,METRO , registra el número de pasos en ejecuciónx , yx,yx ,y . TTCada vez que T ejecuta un paso, generaráxxx funciones de transferencia, elija una función detransferencia.TTT ejecutayyDespués de y pasos, regrese al nodo raíz hasta atravesar el árbol completo. TTTT ( n ) T ′ ( n ) T(n)^{T'(n)}T ( n )t (n)pasos para detenerse. Por lo tanto,T ( n ) T ′ ( n ) T(n)^{T'(n)}T ( n )t (n)se puede construir el tiempo.

  • T ( n ) = n , T ′ ( n ) = n 2 T(n)=n,T'(n)=n^2T ( n )=norte ,t (n)=norte2 , $\frac{1}{n}se puede construir sin tiempo, se puede construir sin tiempo,es construible independientemente del tiempo, y log(n)es construible independientemente del tiempo. Por lo tanto, es construible independientemente del tiempo. Por lo tanto,es construible independientemente del tiempo . Por lo tanto, T(n)/T'(n)es construible independientemente del tiempo, y es construible independientemente del tiempo,Construible sin tiempo, \log T(n)$ Construible sin tiempo.

pregunta 8

Si en la demostración del Teorema 1.2, dejamos ∣ R i ∣ = 2 ⋅ 2 i 2 |R_i|=2{\cdot}2^{i^{2}}∣R _yo=2 2i2 . ¿En qué paso sale mal la prueba? ¡Al menos tendríamos una máquina de Turing universal mucho más eficiente!

respuesta:

Implica el intervalo L i , ⋯ , L 0 , R 0 , ⋯ , R i L_i,\cdots,L_0,R_0,\cdots,R_ilyo,,l0,R0,,RyoHabrá un problema con el cálculo del número de ajustes.

Pregunta 10

Demuestre el Corolario 1.3.

respuesta:

Máquina de Turing MMLa longitud en M es mmLa cadena de símbolos de m usa la máquina de TuringM ′ M'METRO' está representado por un símbolo en . M'M'METRO el tiempo de cálculo no exceden + 2 + nm + 5 m T ( n ) n+2+\frac{n}{m}+\frac{5}{m}T(n)norte+2+metronorte+metro5T ( n ) .

T(n) T(n)La tasa de crecimiento de T ( n ) es estrictamente mayor que la función lineal,n + 2 + nm + 5 m T ( n ) < 6 m T ( n ) n+2+\frac{n}{m}+\frac {5}{m}T(n)<\frac{6}{m}T(n)norte+2+metronorte+metro5T ( n )<metro6T ( n ) .

Por lo tanto, para ∀ ϵ > 0 \forall \epsilon >0ϵ>0 , existe una máquina de TuringM ′ M'METROM ′ M'METRO puede estar enϵ T ( n ) \epsilon T(n)ϵ T ( n ) pasos para determinarLLl .

Pregunta 11

利用分配律x ∧ ( y ∨ z ) = ( x ∧ y ) ∨ ( x ∧ z ) x\wedge(y\vee z)=(x\wedge y)\vee(x\wedge z)X( yz )=( xy )( xz )x ∨ ( y ∧ z ) = ( x ∨ y ) ∧ ( x ∨ z ) x\vee(y\wedge z)=(x\vee y)\wedge(x\vee z)X( yz )=( xy )( xz ) , ¿es posible transformar la forma normal de conjunción (disyunción) en forma normal de disyunción (conjunción) en tiempo polinomial?

respuesta:

No, a menos que P=NP.

Tenga en cuenta que el problema DNF-SAT es P: sólo se requiere que una cláusula sea satisfactoria. Y si CNF puede transformarse en DNF en tiempo polinomial, entonces CNF-SAT también es P, una contradicción.

Comentarios del asistente docente: El resultado de esta pregunta no necesita basarse en el supuesto de que P no es igual a NP. Considere el 2CNF más simple, suponiendo que contenga n literales, si se expande mediante la ley de distribución, el DNF resultante tendrá 2 n 2^n2n términos, por lo que el proceso de conversión lleva un tiempo exponencial.

Pregunta 13

Explicación: La máquina de Turing "universal" no determinista definida en la página 35 es correcta si se ignora la no terminación.

respuesta:

La secuencia adivinada de instantáneas refleja N α ( x ) \mathbb{N}_\alpha (x)norteaUna ruta de cálculo de los estados de terminación y aceptación de ( x ) puede simular el funcionamiento de la máquina de Turing de entrada.

Pregunta 14

La proposición 1 está demostrada.

respuesta:

A ≤ KB ≤ KCA \le _K B \le _K CAkBkC , luego deAAA aBBB tiene un polinomio que calculammm - Función computablef ( x ) f(x)f ( x ) , deBBB aCCC tiene un polinomio que puede calcularmmm - la función computableg ( x ) g(x)g ( x ) . DeAAA aCCC tiene un polinomio que puede calcularmmm - Función computableg ( f ( x ) ) g(f(x))g ( f ( x )) ,因此,A ≤ KCA \le _K CAkC. _

A ≤ CB ≤ CCA \le _C B \le _C CACBCC ,则A ∈ PBA \en P^{B}APAGB ,B ∈ PCB \en P^{C}BPAGC. _ 显然,A ∈ PCA \in P^{C}APAGC ,因此,A ≤ CCA \le _C CACC

Pregunta 15

pruebaEXPEXP = 2 \mathbf{EXP}^{\mathbf{EXP}}=2ExpExp=2 -EXP\mathbf{EXP}experiencia .

respuesta:

L ∈ EXPEXPL \in \mathbf{EXP}^{\mathbf{EXP}}lExpEXP ,LLL de la máquina de TuringEEE se determina en tiempo exponencial,EEE usará un EXP \mathbf{EXP}al calcularOracle OOen EXPO. Para longitudnnn entrada, llamada a OracleOOCuando O , la longitud de entrada correspondiente es2 n 2 2^{\frac{n}{2} }22norte. En este punto, se puede determinar que 2 22 -EXP\mathbf{EXP}El problema con EXP . Por lo tanto,EXPEXP = 2 \mathbf{EXP}^{\mathbf{EXP}}=2ExpExp=2 -EXP\mathbf{EXP}experiencia .

Opinión del profesor asistente: Es necesario demostrar otra dirección 2 − EXP ∈ EXPEXP 2-EXP \in EXP^{EXP}2ExpEXP _EXP . Supongamosque M ∈ 2 − EXPM \en 2-EXPMETRO2EXP , necesitamos construirM ' ∈ EXPEXP M'\in EXP^{EXP}m 'EXP _EXP para emularMMMM ′ M'METRO' entraráxxLlene el final de x con múltiples bits redundantes para obteneryyy , luego usa el nuevoyyy para invocar OracleAAA A ( y ) A(y) A ( y ) para simularM ( x ) M(x)M ( x ) se ejecuta y genera el resultado correspondiente (tenga en cuenta la entradayyy es exponencialmente largo y el tiempo de ejecución es doble exponencial, por lo que pertenece aEXP EXPclase EXP ).

Pregunta 16

Resolver2 SAT ∈ P 2\texttt{SAT}\in\mathbf{P}2 sábadoP. _

respuesta:

Supuesto 2 - NN en el problema SATN variables, luego construya un gráfico dirigido que contenga2 N 2N2 N nodos. Cada nodo representa una variable o la negación de una variable (es decir, representa un literal). Para cada cláusulaa ∨ ba \vee bab , agrega 2 aristas dirigidas en el camino (¬ a \neg a¬ a ,bbb ) y (¬ b \neg b¬ b ,aaa ). Luego encuentre los componentes fuertemente conectados de este gráfico dirigido y trate cada componente fuertemente conectado como un punto (punto de contracción), de modo que el nuevo gráfico dirigido sea acíclico (un gráfico dirigido acíclico también se llama DAG). Si un componente fuertemente conexo contiene la misma variable y su negación, el problema original es insatisfactorio. De lo contrario, podemos construir una solución, realizar una clasificación topológica en este DAG y realizar las siguientes operaciones en el orden inverso al orden de clasificación topológica de los nodos: encontrar el primer nodo sin marcar en este orden, marcar este nodo como verdadero y combinar los Nodos con nodos contradictorios (un nodo contieneaaa , otro nodo contiene¬ a \neg a¬ a , se dice que son contradictorios), y la bandera ancestral es falsa, hasta que todos los nodos tengan banderas, finaliza. Estas etiquetas también corresponden a los valores de las variables.

El algoritmo puede encontrar un conjunto de soluciones factibles de 2-SAT o juzgar que no hay solución.

La complejidad del algoritmo: encontrar componentes fuertemente conectados, ordenar topológicamente y recorrer gráficos son todos O ( mmm ), dondemmm es el número de lados.

Por lo tanto, 2 SAT ∈ P 2\texttt{SAT}\in\mathbf{P}2 sábadoPAG

Pregunta 17

Escriba un programa de espacio logarítmico que resuelva el problema MULP \texttt{MULP} definido en (1.16.1)MULP .

respuesta:

c=0;
while(b>0){
    
    
	c=c*2;
	if(b%2){
    
    
		c=c+a;
	}
	b=b/2;
}

Pregunta 18

Demuestre el teorema 1.13.

respuesta:

M′M'METRO se puede obtener deM = ( Q , Γ , δ ) M=(Q,\Gamma ,\delta )METRO=( Q ,c ,δ ) se construye. Una idea simple es:M ′ = ( Q ′ , Γ ′ , δ ′ ) M'=(Q',\Gamma ',\delta ')METRO=( Q ,C ,d )debe incluir $\Gammay el conjunto cartesiano y el conjunto cartesianoy el conjunto cartesiano \Gamma ^{m}; en otras palabras, de longitud ; en otras palabras, de longitud;En otras palabras, una longitud mdeSe pueden utilizar las cadenas de símbolos en \Gamma ^{*}La cadena de símbolos en se puede representar mediante un símbolo en\Gamma 'Un símbolo en el orden representa. hacerUn símbolo en . Sea m=1/\epsilon, entonces, entonces,Entonces M'puede estar enSe puede juzgar en el espacio de juicio en el espacio\epsilon S(n)+1Determine L$ en el espacio.

Pregunta 21

Explique el φ x \varphi_x construido en la demostración del Teorema 1.17Fixes computable en espacio logarítmico.

respuesta:

Para generar φ x \varphi_xFix, sólo recuerda qué φ i \varphi_i se está generandoFiyo. Entonces solo es necesario mantener una longitud que sea log S ( ∣ x ∣ ) log S(|x|)contador log S ( x ) . _

Pregunta 23

pruebaPSPACEPSPACE = PSPACE \mathbf{PSPACE}^{\mathbf{PSPACE}}=\mathbf{PSPACE}ESPACIOESPACIO=ESPACIO

respuesta:

L ∈ PSPACEPSPACEL \in \mathbf{PSPACE}^{\mathbf{PSPACE}}lESPACIOESPACIO ,LLL por la máquina de TuringMMM se determina en el espacio polinomial,MMM utilizará un PSPACE \mathbf{PSPACE}en el cálculoOracle OOen PSPACEO. A lo largo de la ejecución, solo se sigue utilizando el espacio polinomial. Por lo tanto,PSPACEPSPACE = PSPACE \mathbf{PSPACE}^{\mathbf{PSPACE}}=\mathbf{PSPACE}ESPACIOESPACIO=ESPACIO

Comentarios de TA: Gracias a PSPACE PSPACELa máquina de Turing de PSP A CE puede llamar PSPACE PSPACEEl índice de Oracle de PSP A CE es múltiple, por lo que es necesario señalar la propiedad clave de que el espacio se puede reutilizar.

Capítulo 2 Incomprensibilidad

Pregunta 1

Prueba: supongamos que NP ≠ P \mathbf{NP}\ne\mathbf{P}notario público=P , no existe un algoritmo de tiempo polinómico que preserve la satisfacibilidad para convertir la forma normal conjuntiva en forma normal disyuntiva.

respuesta:

Supongamos que existe un algoritmo de tiempo polinómico que preserva la satisfacibilidad para convertir la forma normal conjuntiva en forma normal disyuntiva. Tenga en cuenta que el problema DNF-SAT es P \mathbf{P}P , y el problema CNF-SAT esNP \mathbf{NP}NP 's. Debido a que existe un algoritmo de tiempo polinomial que mantiene la satisfacibilidad para convertir el paradigma de conjunción en un paradigma de disyunción, Karp puede reducir el problema CNF-SAT al problema DNF-SAT, entonces el problema CNF-SAT también es P \mathbf{P}P 's. PorqueNP ≠ P \mathbf{NP}\ne\mathbf{P}notario público=P , contradictorio. Por lo tanto, no existe ningún algoritmo de tiempo polinomial que preserve la satisfacibilidad para convertir la forma normal conjuntiva en forma normal disyuntiva.

Pregunta 2

Prueba: Si A , B ∈ NPA, B\in\mathbf{NP}un ,BNP,则A ∪ B , A ∩ B , AB ∈ NPA\cup B,A\cap B,AB\in\mathbf{NP}AB ,AB ,un bNP .

respuesta:

A , B ∈ NPA,B\in\mathbf{NP}un ,BNP,即
x 1 ∈ A , ∃ u 1 ∈ { 0 , 1 } p 1 ( ∣ x 1 ∣ ) . M 1 ( x 1 , u 1 ) = 1 x_1 \in A ,\exists u_1 \in \left \{ 0,1 \right \} ^{p_1(|x_1|)}.\mathbb{M}_1 (x_1 ,u_1)=1X1un ,tu1{ 0 ,1 }pag1( x1). METRO1( x1,tu1)=1

x 2 ∈ B , ∃ tu 2 ∈ { 0 , 1 } p 2 ( ∣ x 2 ∣ ) . M 2 ( x 2 , u 2 ) = 1 x_2 \in B ,\exists u_2 \in \left \{ 0,1 \right \} ^{p_2(|x_2|)}.\mathbb{M}_2 (x_2 ,u_2)=1X2B ,tu2{ 0 ,1 }pag2( x2). METRO2( x2,tu2)=1
ejemplo:
x ∈ A ∪ B , ∃ u ∈ { 0 , 1 } p ( ∣ x ∣ ) . M ( x , u ) = 1 x \in A\cup B, \exists u \in \left \{ 0,1 \right \} ^{p(|x|)}.\mathbb{M} (x, tu)=1XAB ,tu{ 0 ,1 }pag ( x ). M ( x ,)=1
donde,págs.p esp 1 , p 2 p_1, p_2pag1,pag2compuesto. M \mathbb{M}M esM 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Compuesto, si M 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Hay una salida 1 en , entonces M \mathbb{M}M salidas 1. páginasp es un polinomio,M \mathbb{M}M es una máquina de Turing de tiempo polinomial. Por lo tanto,A ∪ B ∈ NPA\cup B\in\mathbf{NP}ABNP .

可以得到:
x ∈ A ∩ B , ∃ u ∈ { 0 , 1 } p ( ∣ x ∣ ) . M ( x , u ) = 1 x \in A\cap B, \exists u \in \left \{ 0,1 \right \} ^{p(|x|)}.\mathbb{M} (x, tu)=1XAB ,tu{ 0 ,1 }pag ( x ). M ( x ,)=1
donde,págs.p esp 1 , p 2 p_1, p_2pag1,pag2compuesto. M \mathbb{M}M esM 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Compuesto, si M 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Ambos generan 1, luego M \mathbb{M}M salidas 1. páginasp es un polinomio,M \mathbb{M}M es una máquina de Turing de tiempo polinomial. Por lo tanto,A ∩ B ∈ NPA\cap B\in\mathbf{NP}ABNP .

可以得到:
x ∈ AB , ∃ u ∈ { 0 , 1 } p ( ∣ x ∣ ) . M ( x , u ) = 1 x \in AB, \exists u \in \left \{ 0,1 \right \} ^{p(|x|)}.\mathbb{M} (x,u)= 1XA B ,tu{ 0 ,1 }pag ( x ). M ( x ,)=1
donde,págs.p esp 1 , p 2 p_1, p_2pag1,pag2compuesto. M \mathbb{M}M esM 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Compuesto, si M 1 \mathbb{M}_1METRO1y M 2 \mathbb{M}_2METRO2Ambos generan 1, luego M \mathbb{M}M salidas 1. páginasp es un polinomio,M \mathbb{M}M es una máquina de Turing de tiempo polinomial. Por lo tanto,AB ∈ NP AB\in\mathbf{NP}un bNP .

La opinión dada por el profesor asistente: M es la ambigüedad compuesta de M_1 y M_2, y la máquina de Turing M que juzga el segundo caso (A \ cap B) y el tercer caso (AB, que indica operación de concatenación) es obviamente diferente.

Pregunta 3

A ∈ NPCA\in\mathbf{NPC}ANPCB ∈ PB\in\mathbf{P}BP._ _ Prueba: SiA ∩ B = ∅ A\cap B=\emptysetAB=,则A ∪ B ∈ NPCA\cup B\in\mathbf{NPC}ABPNJ .

respuesta:

A ∈ NPCA\in\mathbf{NPC}ANPC , por lo tanto,∀ L ∈ NP , L ≤ KA \forall L \in \mathbf{NP},L \le _K A∀L _NP ,lkA , yA ∈ NPA \in \mathbf{NP}ANP。若A ∩ B = ∅ A\cap B=\emptysetAB= , obviamente,A ≤ KA ∪ BA \le _K A\cup BAkAB , yA ∪ B ∈ NPA\cup B\in\mathbf{NP}ABNP .

∀ L ∈ NP , L ≤ KA ∪ B , A ∪ B ∈ NP \forall L \in \mathbf{NP},L \le _K A\cup B,A\cup B\in\mathbf{NP}∀L _NP ,lkAB ,ABNP . Por lo tanto,A ∪ B ∈ NPCA\cup B\in\mathbf{NPC}ABPNJ .

La opinión del profesor asistente: en su prueba, debe indicar la función de reducción de A a AUB y explicar su exactitud.

Cambio: para AAPara juzgar el problema A , ingresexxx , puedes llamar a BBprimeroLa máquina de Turing correspondiente a B , si está en BBEn B , significax ∉ A x \notin AX/A , salida 0; si está enBBEn B , llame directamentea A ∪ BA\cup BALa máquina de Turing correspondiente a B. Este proceso de reducción es tiempo polinómico, por lo queA ≤ KA ∪ BA \le _K A\cup BAkAB. _

Pregunta 4

Prueba: SAT ≤ K IP \texttt{SAT}\le_{K}\texttt{IP}SE SENTÓkIP .

respuesta:

IP \texttt{IP}El problema de IP es un problema de programación entera,A x ≥ b Ax\ge buna xsegundo _ Entre ellos,AAA esm × nm × nmetro×matriz entera de n , bbb esmmvector entero m- dimensional, xxx esnnn- vector dimensional de números enteros.

Podemos realizar un escaneo del CNF y configurar la matriz AA.A. mm_m es el número de cláusulas del CNF,nnn es el número de literales diferentes en CNF. aaaLos elementos en A son 0 o 1,bbLos elementos en b son todos 1. Así, elSAT \texttt{SAT}El problema SAT se transforma en un problema de programación entera 0,1. La función de reducción de tiempo polinomial se utiliza en el proceso de reducción, por lo tanto,SAT ≤ K IP \texttt{SAT}\le_{K}\texttt{IP}SE SENTÓkIP .

Opinión del asistente docente: Es necesario explicar cómo se implementa el estatuto, es decir, cuáles son las restricciones en el problema de programación entera correspondiente, y explicar con más detalle la exactitud del estatuto.

Pregunta 7

Dejar TMEXP \texttt{TMEXP}TMEXP es el lenguaje{ ⟨ α , x , 1 n ⟩ ∣ M α ( x ) genera 1 en 2 n pasos } \{\langle\alpha,x,1^{n}\rangle \mid \mathbb{M}_ {\alpha}(x)\text{salidas en}2^n\text{pasos}1\}{ ⟨una ,x ,1norteMETROa( x ) en 2Salida1} dentro de n pasos . Demuestre queTMEXP \texttt{TMEXP}TMEXP esEXP \mathbf{EXP}EXP - Exacto. ¿Es este método general de construcción de problemas completos de clases de complejidad temporal aplicable a clases de complejidad espacial comoPSPACE \mathbf{PSPACE}¿ ESPACIO ?

respuesta:

L ∈ EXPL \in \mathbf{EXP}lEXP puede generarse mediante una máquina de Turing de tiempo exponencialM \mathbb{M}Cálculo M , MMM en2 ∣ x ∣ c 2^{|x|^c}2x Deténgase dentro del paso c . Fácil deLLÁngulo de línea⟨ ⌞ M ⌟ , x , 1 ∣ x ∣ c ⟩ ∈ TMEXP \angle \llcorner \mathbb{M}\lrcorner,x,1^{|x|^c}\angle \in \texttt{TMEXP } }M ,x ,1x cTMEXP . El tiempo de reducción es polinómico. Obviamente,TMEXP ∈ EXP \texttt{TMEXP} \in \mathbf{EXP}TMEXPEXP . Por lo tanto,TMEXP \texttt{TMEXP}TMEXP esEXP \mathbf{EXP}EXP - Exacto.

¿Es este enfoque general para construir problemas completos de clases de complejidad temporal aplicable a clases de complejidad espacial?

Comentarios de TA: Una construcción similar funciona para la complejidad del espacio. Lo único que hay que tener en cuenta es que M α ( x ) M_{\alpha}(x)METROa( x ) La operación en un espacio que no exceda un cierto tamaño S puede tener bucles sin detenerse. En este momento, necesitamos introducir un contador sobre la longitud del polinomio S para limitar el tiempo de ejecución de la máquina de Turing simulada a no más que un paso exponencial (si excede, significa que debe haber un ciclo).

Pregunta 9

Señale el error en la siguiente "prueba": Suponiendo NP = P \mathbf{NP}=\mathbf{P}notario público=P , entoncesNPO = PO \mathbf{NP}^O=\mathbf{P}^Onotario públicooh=PAGO a cualquier oráculoOOO fue establecido. Según el teorema 2.6, existe un oráculoBBB tal queNPB ≠ PB \mathbf{NP}^B\ne\mathbf{P}^Bnotario públicoB=PAGB._ _ contradicción. Por lo tantoNP ≠ P \mathbf{NP}\not=\mathbf{P}notario público=P. _

respuesta:

NP = P \mathbf{NP}=\mathbf{P}notario público=La prueba de P no es relativizable. NP = P \mathbf{NP}=\mathbf{P}notario público=P no se puede deducir aNPO = PO \mathbf{NP}^O=\mathbf{P}^Onotario públicooh=PAGO. _

Pregunta 13

Descripción: Σ ip = Σ i + 1 p \Sigma_i^p=\Sigma_{i+1}^pSipag=Syo + 1pagIP predeterminada = PH \ sigma_i^p=\mathbf{PH}Sipag=PH .

Descripción:
∑ ip = ∑ i + 1 p = NP ∑ ip = NP ∑ i + 1 p = ∑ i + 2 p = ∑ i + 3 p ⋯ = ∑ i + np = PH {\textstyle \sum_{i}^ {p}}= {\textstyle \sum_{i+1}^{p}} =NP^{ { \textstyle \sum_{i}^{p}}} =NP^{ { \textstyle \sum_{i+ 1}^{p}}} = {\textstyle \sum_{i+2}^{p}} = {\textstyle \sum_{i+3}^{p}} \dots = {\textstyle \sum_{i +n}^{p}} =\mathbf{PH}ipag=yo + 1pag=n pipag=n pyo + 1pag=yo + 2pag=yo + 3pag=yo + nortepag=PH

Pregunta 14

Definir un oráculo AAA,使得PHA = PA \mathbf{PH}^{A}=\mathbf{P}^{A}PHA=PAGSe establece A.

respuesta:

Automóvil club británicoA paraPH \mathbf{PH}PHPHPH = PPH \mathbf{PH}^{PH}=\mathbf{P}^{PH}PHPH _=PAGPH _

Pregunta 16

Descripción: A , B ∈ Σ ip A,B\in\Sigma_i^pun ,BSipag,必有A ∪ B , A ∩ B ∈ Σ ip A\cup B,A\cap B\in\Sigma_i^pAB ,ABSipag

respuesta:

Supongamos que A, BA y B se juzganun ,Las máquinas de Turing correspondientes a B son M 1 , M 2 \mathbb{M}_1,\mathbb{M}_2METRO1,METRO2

Para el problema A ∪ BA\taza BAB , sóloM 1 , M 2 \mathbb{M}_1,\mathbb{M}_2METRO1,METRO2Cada ejecución una vez, si M 1 , M 2 \mathbb{M}_1,\mathbb{M}_2METRO1,METRO2Si uno de ellos genera 1, entonces juzgue A ∪ BA\cup BALa máquina de Turing de B produce 1.

Para el problema A ∩ BA\cap BAB , sóloM 1 , M 2 \mathbb{M}_1,\mathbb{M}_2METRO1,METRO2Cada ejecución una vez, si M 1 , M 2 \mathbb{M}_1,\mathbb{M}_2METRO1,METRO2Ambos generan 1, luego juzgan A ∩ BA\cap BALa máquina de Turing de B produce 1.

因此,若A , B ∈ Σ ip A,B\in\Sigma_i^pun ,BSipag,必有A ∪ B , A ∩ B ∈ Σ ip A\cup B,A\cap B\in\Sigma_i^pAB ,ABSipag

Capítulo 3 Complejidad del circuito

Pregunta 1

Una variable de entrada es x 1 , … , xn x_1,\ldots,x_nX1,,XnorteEl programa booleano de no transición (programa de línea recta) es una secuencia de instrucciones en las que el iiDirectiva del artículo i o to yi = zi ∧ zi ′ y_i=z_i\wedge z_i'yyo=zyozi,或为yi = zi ∨ zi ′ y_i=z_i\vee z_i'yyo=zyozi. Este ri zi z_izyosuma zi ′ z_i'ziO es la variable de entrada, o es la inversa de la variable de entrada, o satisface j < i j<ij<Un subíndiceyj y_j de iyj. El valor de la variable calculada por la última instrucción del programa es la salida del programa. Prueba: si una función booleana puede estar compuesta por SSCalculada por un circuito con puertas S , la función se puede calcular incluyendoSSCálculo de programas no ramificados para instrucciones S.

respuesta:

Un circuito es un gráfico acíclico dirigido, todas las puertas se pueden atravesar mediante el método de recorrido en profundidad primero y se puede calcular el valor de salida de la puerta visitada.

Es necesario utilizar una longitud de log ( n ) \mathbf{log}(n)El contador de registro ( n ) recuerda la posición de la puerta visitada actualmente.

El número de puertas atravesadas es SS.S , por lo tanto, la función puede estar compuesta porSSCálculo de programas no ramificados para instrucciones S.

Pregunta 2

Por inducción del número de variables de entrada de una función booleana, se demuestra que una función booleana puede calcularse mediante un circuito monótono sólo si la función booleana es monótona.

respuesta:

Supongamos que hay una variable de entrada x 1 , … , xn x_1,\ldots,x_nX1,,XnorteLa función booleana monótona ffF. _

cuando n = 1 n=1norte=1 , después de la verificación, es obvio que la función booleana se puede calcular mediante un circuito monótono.

Supongamos que cuando n = kn=knorte=k , la función booleana se puede calcular mediante un circuito monótono.

cuando n = k + 1 n=k+1norte=k+1 °,f ( x 1 , ⋯ , xk , xk + 1 ) = f ( x 1 , ⋯ , xk , 0 ) ∨ ( xk + 1 ∧ f ( x 1 , ⋯ , xk , 1 ) ) f(x_1, \cdots,x_k,x_k+1)=f(x_1,\cdots,x_k,0)\vee (x_{k+1}\wedge f(x_1,\cdots,x_k,1))f ( x1,,Xk,Xk+1 )=f ( x1,,Xk,0 )( xk + 1f ( x1,,Xk,1 )) . 注意,f ( x 1 , ⋯ , xk , 0 ) f(x_1,\cdots,x_k,0)f ( x1,,Xk,0 ) yf ( x 1 , ⋯ , xk , 1 ) f(x_1,\cdots,x_k,1)f ( x1,,Xk,1 ) se puede calcular mediante un circuito monótono. En este punto, solo es necesario agregar una puerta AND y una puerta OR,f ( x 1 , ⋯ , xk , xk + 1 ) f(x_1,\cdots,x_k,x_k+1)f ( x1,,Xk,Xk+1 ) se puede calcular mediante un circuito monótono. Por lo tanto, las funciones booleanas monótonas se pueden calcular mediante un circuito monótono.

Si una función booleana puede calcularse mediante un circuito monótono, es decir, no hay una puerta NOT en el circuito, obviamente, la función es una función monótona.

Por lo tanto, una función booleana puede calcularse mediante un circuito monótono sólo si la función booleana es monótona.

Pregunta 3

Prueba: Si NP ⊆ P / log \mathbf{NP}\subseteq\mathbf{P}_{/\mathbf{log}}notario públicoPAG/ registro, NP = P \mathbf{NP}=\mathbf{P}notario público=P. _

respuesta:

si NP ⊆ P / log \mathbf{NP}\subseteq\mathbf{P}_{/\mathbf{log}}notario públicoPAG/ registro,则∀ L ∈ NP \forall L \in \mathbf{NP}∀L _NP ,LLL es decidible mediante una máquina de Turing de tiempo polinomial con tipo de propuesta logarítmica. Es decir, la estructura computacional que se muestra en la Figura 1.5 en las notas de la clase se puede generar a partir de la sugerencia del tamaño de un logaritmo. Debido a que el consejo es de tamaño logarítmico y la fórmula booleana es la misma en la estructura de cálculo generada, es posible generar la estructura de cálculo en tiempo polinómico y luego completar el cálculo en tiempo polinómico. Por lo tanto,L ∈ PL \en PlP,即NP ⊆ P \mathbf{NP}\subseteq\mathbf{P}notario públicopag _

Obviamente, P ⊆ NP \mathbf{P}\subseteq\mathbf{NP}PAGnotario público

Por lo tanto, si NP ⊆ P / log \mathbf{NP}\subseteq\mathbf{P}_{/\mathbf{log}}notario públicoPAG/ registro, NP = P \mathbf{NP}=\mathbf{P}notario público=P. _

Pregunta 4

Explique que la operación de resta binaria está en NC 1 \mathbf{NC}^1CAROLINA DEL NORTE1 pulg.

respuesta:

La resta binaria paralela se puede producir simplemente modificando la suma binaria paralela.

假设anan − 1 ⋯ a 1 a 0 a_{n}a_{n-1}\cdots a_{1}a_{0}anorteanorte 1a1a0bnbn − 1 ⋯ b 1 b 0 b_{n}b_{n-1}\cdots b_{1}b_{0}bnortebnorte 1b1b0Para números binarios, use xi x_iXyoIndica el iiPréstamo generado por resta de i bits. Defina
gi = ai ∧ bi, el bit de préstamo genera un bit g_i=a_i \wedge b_i,\text{el bit de préstamo genera un bit}gramoyo=ayobyo,pedir prestado un poco

gi = ai ∧ bi , pedir prestado bit g_i=a_i \wedge b_i,\text{pedir prestado bit}gramoyo=ayobyo,pedir prestado un poco

Usando el prealgoritmo paralelo, es posible en 2 log ( n ) 2log(n)2 l o g ( n ) pasos para calcularx 0 , x 1 , ⋯ , xn − 1 x_0,x_1,\cdots,x_{n-1}X0,X1,,Xnorte 1disculpe.

Finalmente, el resultado de la resta binaria se calcula en paralelo mediante pasos constantes.

Por lo tanto, la operación de resta binaria en NC 1 \mathbf{NC}^1CAROLINA DEL NORTE1 pulg.

Pregunta 5

Demuestre que NC 1 \mathbf{NC}^1CAROLINA DEL NORTE1 °PSPACE \mathbf{PSPACE}Una subclase estricta de PSPACE .

respuesta:

Un circuito es un ciclo acíclico dirigido, que puede utilizar la profundidad primero para atravesar todas las puertas y calcular el valor de salida de las puertas visitadas. Es necesario utilizar una longitud de log ( n ) log(n)El contador log ( n ) recuerda la posición de la puerta visitada actualmente . Por lo tanto,NC 1 ⊆ L \mathbf{NC}^1 \subseteq \mathbf{L}CAROLINA DEL NORTE1l

Según el teorema del pedigrí espacial, si la función espacial f , gf,gf ,g es construible en el espacio, yf ( n ) = o ( g ( n ) ) f(n)=o(g(n))f ( n )=o ( gramo ( norte ) ) . Relación de inclusiónESPACIO ( f ( n ) ) ⊆ ESPACIO ( g ( n ) ) \mathbf{ESPACIO}(f(n)) \subseteq \mathbf{ESPACIO}(g(n))ESPACIO ( f ( n ))SPACE ( g ( n ) ) es estricto.

Por lo tanto, L ⊆ PSPACE \mathbf{L} \subseteq \mathbf{PSPACE}lPSPACE es estricto.

Obviamente, NC 1 \mathbf{NC}^1CAROLINA DEL NORTE1 °PSPACE \mathbf{PSPACE}Una subclase estricta de PSPACE .

Pregunta 6

Prueba: NC i = NC i + 1 \mathbf{NC}^{i}=\mathbf{NC}^{i+1}CAROLINA DEL NORTEi=CAROLINA DEL NORTEi + 1,刪NC i = NC \mathbf{NC}^{i}=\mathbf{NC}CAROLINA DEL NORTEi=Carolina del Norte .

respuesta:

Podemos usar NC i \mathbf{NC}^{i}CAROLINA DEL NORTEiNC 1 \mathbf{NC}^{1}CAROLINA DEL NORTEEl circuito correspondiente a 1 se combina para obtenerNC i + 1 \mathbf{NC}^{i+1}CAROLINA DEL NORTEEl circuito correspondiente a i + 1
se registra como NC i + 1 = NC 1 NC i \mathbf{NC}^{i+1}={\mathbf{NC}^{1}}^{\mathbf{NC}^ {yo}}CAROLINA DEL NORTEyo + 1=CAROLINA DEL NORTE1CAROLINA DEL NORTEi
N C i = N C i + 1 \mathbf{NC}^{i}=\mathbf{NC}^{i+1} CAROLINA DEL NORTEi=CAROLINA DEL NORTEi + 1
NC i + 1 = NC 1 NC i = NC 1 NC i + 1 = NC i + 2 = NC i + N \mathbf{NC}^{i+1}={\mathbf{NC}^{1 }}^{\mathbf{NC}^{i}} ={\mathbf{NC}^{1}}^{\mathbf{NC}^{i+1}}=\mathbf{NC}^{i+ 2 }=\mathbf{NC}^{i+N}CAROLINA DEL NORTEyo + 1=CAROLINA DEL NORTE1CAROLINA DEL NORTEi=CAROLINA DEL NORTE1CAROLINA DEL NORTEyo + 1=CAROLINA DEL NORTEyo + 2=CAROLINA DEL NORTEi+N
因此,若 N C i = N C i + 1 \mathbf{NC}^{i}=\mathbf{NC}^{i+1} CAROLINA DEL NORTEi=CAROLINA DEL NORTEi + 1,刪NC i = NC \mathbf{NC}^{i}=\mathbf{NC}CAROLINA DEL NORTEi=Carolina del Norte .

Pregunta 7

Prueba: Si NC \mathbf{NC}NC tiene un problema completo, entoncesNC 1 ⊆ NC 2 ⊆ … ⊆ NC i ⊆ … \mathbf{NC}^{1}\subseteq\mathbf{NC}^{2}\subseteq\ldots \subseteq\mathbf{NC} ^{i}\subseteq\ldotsCAROLINA DEL NORTE1CAROLINA DEL NORTE2CAROLINA DEL NORTEi colapsó.

respuesta:

si NC \mathbf{NC}NC tiene un completo problemaLLL,则L ∈ NC i L \in \mathbf{NC}^{i}lCAROLINA DEL NORTEyo ,yo ∈ norte yo \en norteinorte .

NC i + 1 \mathbf{NC}^{i+1}CAROLINA DEL NORTETodos los problemas en i + 1 se pueden reducir al problema completo LLL,因此, N C i = N C i + 1 \mathbf{NC}^{i}=\mathbf{NC}^{i+1} CAROLINA DEL NORTEi=CAROLINA DEL NORTEyo + 1

Según la conclusión de la pregunta 6, NC i = NC \mathbf{NC}^{i}=\mathbf{NC}CAROLINA DEL NORTEi=Carolina del Norte .

si NC \mathbf{NC}NC tiene un problema completo, entoncesNC 1 ⊆ NC 2 ⊆ … ⊆ NC i ⊆ … \mathbf{NC}^{1}\subseteq\mathbf{NC}^{2}\subseteq\ldots \subseteq\mathbf{NC} ^{i}\subseteq\ldotsCAROLINA DEL NORTE1CAROLINA DEL NORTE2CAROLINA DEL NORTEi colapsó.

pregunta 8

Si hay un polinomio p ( n ) p(n)p ( n ) , para cualquiernnn , existe una desigualdad∣ L ∩ { 0 , 1 } n ∣ ≤ p ( n ) |L\cap\{0,1\}^n|\le p(n)∣L _{ 0 ,1 }nortep ( n ) , llamadoLLL es escaso. Demuestre que todo lenguaje disperso está enP / poly \mathbf{P}_{/\mathbf{poly}}PAG/ poliadentro.

respuesta:

L ∈ P / poli L \in \mathbf{P}_{/\mathbf{poly}}lPAG/ poli, cuando y sólo cuando LLL es decidible mediante una máquina de Turing de tiempo polinómico con tipo de propuesta polinomial.

LLL es escaso, obviamente,LLL solo contiene entradas múltiples polinómicas de longitud arbitraria. Utilice una tabla de búsqueda que contenga todas las entradas aceptables. El tamaño de esta tabla de búsqueda es polinómico, como se sugiere. Para cada entradaxxx , puedes consultarxxSi x está en la tabla de búsqueda, si es así, genera 1; de lo contrario, genera 0. LLL es decidible mediante una máquina de Turing de tiempo polinomial de este tipo de propuesta polinomial. Por lo tanto, todo lenguaje disperso está enP / poly \mathbf{P}_{/\mathbf{poly}}PAG/ poliadentro.

Pregunta 9

Demuestre que NC 0 \mathbf{NC}^0CAROLINA DEL NORTE0 está estrictamente contenido enAC 0 \mathbf{AC}^0C.A.0 pulg.

respuesta:

Un fan-in es kkLa puerta AND de k se puede realizar mediante un circuito que consta de una puerta AND con un ventilador de entrada de 2, cuya altura eslog (k) log(k)log ( k ) _ _ _ Valor,NC 0 ⊆ AC 0 ⊆ NC 1 \mathbf{NC}^0 \subset \mathbf{AC}^0 \subset \mathbf{NC}^1CAROLINA DEL NORTE0C.A.0CAROLINA DEL NORTE1

Para altura constante NC NCLa familia de circuitos NC , obviamente, no puede determinar∣ x ∣ |x|x es un caso polinómico y la familia de circuitos en $\mathbf{AC}^0 $ puede determinar este tipo de problema.

Por lo tanto, NC 0 \mathbf{NC}^0CAROLINA DEL NORTE0 está estrictamente contenido enAC 0 \mathbf{AC}^0C.A.0 pulg.

Supongo que te gusta

Origin blog.csdn.net/qq_49588762/article/details/128864482
Recomendado
Clasificación