Reducciones - Elisa Schaeffer

Anuncio
Análisis de Algoritmos
Reducciones
Dra. Elisa Schaeffer
[email protected]
PISIS / FIME / UANL
Reducciones– p. 1
Diferencias entre clases
clase de complejidad ⊂ lenguajes
Reducciones– p. 2
Diferencias entre clases
clase de complejidad ⊂ lenguajes
{S AT, H ORNSAT, R EACHABILITY, C LIQUE } ⊂ NP
Reducciones– p. 2
Diferencias entre clases
clase de complejidad ⊂ lenguajes
{S AT, H ORNSAT, R EACHABILITY, C LIQUE } ⊂ NP
no todas las problemas en la misma clase parecen
igualmente difíciles
Reducciones– p. 2
Diferencias entre clases
clase de complejidad ⊂ lenguajes
{S AT, H ORNSAT, R EACHABILITY, C LIQUE } ⊂ NP
no todas las problemas en la misma clase parecen
igualmente difíciles
un método para establecer un ordenamiento de
problemas por dificultad: la construcción de
reducciones
Reducciones– p. 2
Diferencias entre clases
clase de complejidad ⊂ lenguajes
{S AT, H ORNSAT, R EACHABILITY, C LIQUE } ⊂ NP
no todas las problemas en la misma clase parecen
igualmente difíciles
un método para establecer un ordenamiento de
problemas por dificultad: la construcción de
reducciones
un problema A es por lo menos tan difı́cil como
otro problema B si existe una reducción del
problema B al problema A
Reducciones– p. 2
Reducciones
Un problema B reduce al problema A si ∃ una
transformación R que ∀ entrada x del problema B produce
una entrada equivalente y de A así que y = R(x).
Reducciones– p. 3
Reducciones
Un problema B reduce al problema A si ∃ una
transformación R que ∀ entrada x del problema B produce
una entrada equivalente y de A así que y = R(x).
La entrada y de A es equivalente a la entrada x de B si la
respuesta (“sí” o “no”) al problema A con la entrada y es la
misma que la del problema B con la entrada x,
x ∈ B si y sólo si R(x) ∈ A.
Reducciones– p. 3
Aplicación de la reducción
Para resolver el problema B con la entrada x, habrá que
construir R(x).
Reducciones– p. 4
Aplicación de la reducción
Para resolver el problema B con la entrada x, habrá que
construir R(x).
Después se resuelve el problema A para descubrir la
respuesta que aplica para los dos problemas con sus
entradas respectivas.
Reducciones– p. 4
Aplicación de la reducción
Para resolver el problema B con la entrada x, habrá que
construir R(x).
Después se resuelve el problema A para descubrir la
respuesta que aplica para los dos problemas con sus
entradas respectivas.
Si contamos con un algoritmo para el problema A y un
algoritmo para construir R(x), la combinación nos da un
algoritmo para el problema B.
Reducciones– p. 4
Caracterización de dificultad
Si R(x) es fácilmente construida, parece razonable que A
es por lo menos tan difícil como B.
Reducciones– p. 5
Caracterización de dificultad
Si R(x) es fácilmente construida, parece razonable que A
es por lo menos tan difícil como B.
Para poder establecer resultados formales, hay que
clasificar las reducciones según los recursos
computacionales utilizados por sus transformaciones.
Reducciones– p. 5
Tipos de reducciones
Cook: permite que R(x) sea computada por una TM
polinomial
Reducciones– p. 6
Tipos de reducciones
Cook: permite que R(x) sea computada por una TM
polinomial
Karp: una reducción con una función de
transformación de tiempo polinomial
Reducciones– p. 6
Tipos de reducciones
Cook: permite que R(x) sea computada por una TM
polinomial
Karp: una reducción con una función de
transformación de tiempo polinomial
Espacio logarı́tmico: L es reducible a L′ , denotado
por L ≤L L′ , si y sólo si ∃ una función R que
estácomputada por una TM determinista en espacio
O (log n) así que ∀x
x ∈ L si y sólo si R(x) ∈ L′ ,
donde la función R es la reducción de L a L′ .
Reducciones– p. 6
Teorema
Si R es una reducción computada por una TM determinista
M , M para ∀x después de un número polinomial de pasos.
Reducciones– p. 7
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
M es determinista y para ∀x
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
M es determinista y para ∀x
⇒ no es posible que se repita ninguna configuración
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
M es determinista y para ∀x
⇒ no es posible que se repita ninguna configuración
∃k así que M para en tiempo
′
c nc
log n
′
= c nn
log c
=O n
k
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
M es determinista y para ∀x
⇒ no es posible que se repita ninguna configuración
∃k así que M para en tiempo
′
c nc
log n
′
= c nn
log c
=O n
k
la cinta de salida de M , que al final contiene R(x),
está computada en tiempo polinomial
Reducciones– p. 8
Demostración (en nivel de ideas)
M utiliza O (log n) espacio
log n
⇒ hay O nc
configuraciones posibles
M es determinista y para ∀x
⇒ no es posible que se repita ninguna configuración
∃k así que M para en tiempo
′
c nc
log n
′
= c nn
log c
=O n
k
la cinta de salida de M , que al final contiene R(x),
está computada en tiempo polinomial
⇒ |R(x)| es polinomial en n = |x|
Reducciones– p. 8
Problemas sin solución
Para mostrar que un problema A sea sin solución, hay
que mostrar que si existe un algoritmo para A,
necesariamente tiene que existir un algoritmo para para
decidir H ALTING.
Reducciones– p. 9
Problemas sin solución
Para mostrar que un problema A sea sin solución, hay
que mostrar que si existe un algoritmo para A,
necesariamente tiene que existir un algoritmo para para
decidir H ALTING.
La técnica para mostrarlo es por construir una reducción
del problema H ALTING al problema A.
Reducciones– p. 9
Problema sin solución
Una reducción de B a A es una transformación de la
entrada IB del problema B a una entrada IA = t(IB ) para
A así que IB ∈ B ⇔ IA ∈ A y ∃ una TM T así que
t(IB ) = T (IB ).
Reducciones– p. 10
Problema sin solución
Una reducción de B a A es una transformación de la
entrada IB del problema B a una entrada IA = t(IB ) para
A así que IB ∈ B ⇔ IA ∈ A y ∃ una TM T así que
t(IB ) = T (IB ).
Para mostrar que A no tenga solución, se transforma la
entrada Mb ; x de H ALTING a una entrada t(Mb ; x) de A así
que
Mb ; x ∈ H ⇔ t(Mb ; x) ∈ A.
Reducciones– p. 10
Ejemplos de lenguajes no recursivos
(I) {Mb | M para con cada entrada}
(II) {Mb ; x | ∃y : M (x) = y}
para computar M (x)
(III) Mb ; x |
se usa todos los estados de M
(IV) {Mb ; x; y | M (x) = y}
Reducciones– p. 11
Reducción para el primero
Dada la entrada Mb ; x, se construye una TM M ′ así que
M (x), si x = y,
′
M (y) =
“alto” en otro caso.
para la cual aplica que
Mb ; x ∈ H ⇐⇒ M para con x
⇐⇒ M ′ para con toda entrada
⇐⇒ M ′ ∈ A.
Reducciones– p. 12
Reducciones entre problemas
Una reducción R del lenguaje LB del problema B al
lenguaje LA del problema A tal que para ∀x del alfabeto
de B
(I) x ∈ LB si y sólo si R(x) ∈ LA y
(II) se puede computar R(x) en espacio O (log n).
Reducciones– p. 13
Reducción de H AMILTON PATH a S AT
S AT es por lo menos tan difícil que H AMILTON PATH:
Para G = (V, E), R(G) es una expresión en C NF así que G
es un camino de Hamilton si y sólo si R(G) es satisfactible.
La construcción no es nada obvia sin conocer los trucos típicos
del diseño de reducciones. Veremos...
Reducciones– p. 14
Construcción de R(G)
Etiquetamos los n vértices de G = (V, E) con los
enteros: V = {1, 2, . . . , n}.
Reducciones– p. 15
Construcción de R(G)
Etiquetamos los n vértices de G = (V, E) con los
enteros: V = {1, 2, . . . , n}.
Representamos cada par de vértices con una variable
booleana xij donde i ∈ V y j ∈ [1, n].
Reducciones– p. 15
Construcción de R(G)
Etiquetamos los n vértices de G = (V, E) con los
enteros: V = {1, 2, . . . , n}.
Representamos cada par de vértices con una variable
booleana xij donde i ∈ V y j ∈ [1, n].
Asignamos a la variable xij el valor ⊤ si y sólo si el
vértice número i en el camino C construido en
H AMILTON PATH es el vértice j.
Reducciones– p. 15
Construcción de R(G)
Etiquetamos los n vértices de G = (V, E) con los
enteros: V = {1, 2, . . . , n}.
Representamos cada par de vértices con una variable
booleana xij donde i ∈ V y j ∈ [1, n].
Asignamos a la variable xij el valor ⊤ si y sólo si el
vértice número i en el camino C construido en
H AMILTON PATH es el vértice j.
Son en total n2 variables, como el largo del camino es
necesariamente n.
Reducciones– p. 15
Cláusulas de R(G)
(I) Cada vértice está incluido: ∀j ∈ V : x1j ∨ · · · ∨ xnj .
(II) Cada vértice está incluida una sola vez en C:
∀i, k ∈ V, ∀j ∈ [1, n], i 6= k : ¬xij ∨ ¬xkj .
(III) En cada posición hay un vértice: ∀i ∈ V : xi1 ∨ · · · ∨ xin .
(IV) Dos vértices no pueden ocupar la misma posición:
∀i ∈ V, ∀j, k ∈ [1, n], j 6= k : ¬xij ∨ ¬xik .
(V) Un vértice puede seguir a su vecino:
∀(i, j) ∈
/ E, ∀k ∈ [1, n − 1] : ¬xki ∨ ¬x(k+1)j .
Reducciones– p. 16
Asignación T
Hay que mostrar que si R(G) tiene una asignación T que
satisface a R(G), este corresponde a C del problema
H AMILTON PATH:
Por I y
II
existe un sólo vértice i tal que T (xij ) = ⊤.
Reducciones– p. 17
Asignación T
Hay que mostrar que si R(G) tiene una asignación T que
satisface a R(G), este corresponde a C del problema
H AMILTON PATH:
Por I y
II
Por III y
existe un sólo vértice i tal que T (xij ) = ⊤.
IV
existe una sola posición j tal que T (xij ) = ⊤.
Reducciones– p. 17
Asignación T
Hay que mostrar que si R(G) tiene una asignación T que
satisface a R(G), este corresponde a C del problema
H AMILTON PATH:
Por I y
II
Por III y
existe un sólo vértice i tal que T (xij ) = ⊤.
IV
existe una sola posición j tal que T (xij ) = ⊤.
⇒ T da una a permutación π(1), . . . , π(n) de los vértices:
π(i) = j ⇔ T (xij ) = ⊤.
Reducciones– p. 17
Llegando al camino
Por V, {π(k), π(k + 1)} ∈ E para todo k ∈ [1, n − 1].
Reducciones– p. 18
Llegando al camino
Por V, {π(k), π(k + 1)} ∈ E para todo k ∈ [1, n − 1].
⇒ Las aristas que corresponden a las visitas en orden
(π(1), . . . , π(n)) es un camino de Hamilton.
Reducciones– p. 18
Llegando al camino
Por V, {π(k), π(k + 1)} ∈ E para todo k ∈ [1, n − 1].
⇒ Las aristas que corresponden a las visitas en orden
(π(1), . . . , π(n)) es un camino de Hamilton.
Estamos bien en una dirección de la demostración...
Reducciones– p. 18
Desde los caminos...
Hay que establecer que si (π(1), . . . , π(n)) es una
secuencia de visitas a los vértices del grafo G = (V, E) que
corresponde a un camino de Hamilton, necesariamente
está satisfecha R(G) por una asignación T tal que
⊤ si π(i) = j,
T (xij ) =
⊥ en otro caso.
Reducciones– p. 19
Espacio ocupado
Queda mostrar que la computación de R(G) ocupa
O (log n) espacio.
Dada G como la entrada de una TM M , M construye a
R(G).
Veremos cómo...
Reducciones– p. 20
M que construye a R(G)
M imprime las cláusulas de las primeras cuatro clases
uno por uno a través de tres contadores i, j y k.
Reducciones– p. 21
M que construye a R(G)
M imprime las cláusulas de las primeras cuatro clases
uno por uno a través de tres contadores i, j y k.
La representación binaria de cada contador con el
rango [1, n] es posible en log n espacio.
Reducciones– p. 21
M que construye a R(G)
M imprime las cláusulas de las primeras cuatro clases
uno por uno a través de tres contadores i, j y k.
La representación binaria de cada contador con el
rango [1, n] es posible en log n espacio.
Esto depende solamente de |V |.
Reducciones– p. 21
M que construye a R(G)
M imprime las cláusulas de las primeras cuatro clases
uno por uno a través de tres contadores i, j y k.
La representación binaria de cada contador con el
rango [1, n] es posible en log n espacio.
Esto depende solamente de |V |.
M genera las cláusulas V por considerar cada (i, j): M
verifica si (i, j) ∈ E, y si no lo es, se añade para todo
k ∈ [1, n − 1] la cláusula ¬xki ∨ ¬x(k+1)j .
Reducciones– p. 21
Uso de espacio
Espacio adicional aparte de la entrada misma es
solamente necesario para los contadores i, j y k.
El espacio ocupado simultaneamente es al máximo 3 log n.
⇒ La computación de R(G) es en espacio O (log n).
¡Listo!
Reducciones– p. 22
De R EACHABILITY a C IRCUITVALUE
Para un grafo G, el resultado R(G) es un circuito tal que la
salida del circuito R(G) es ⊤ si y sólo si existe un camino
del vértice 1 al vértice n en G = (V, E).
Reducciones– p. 23
Puertas de R(G)
(I) gijk donde 1 ≤ i, j ≤ n y 0 ≤ k ≤ n — es ⊤ si y sólo si
existe un camino en G de i a j sin pasar por ningún
vértice con etiqueta > k.
(II) hijk donde 1 ≤ i, j, k ≤ n — es ⊤ si y sólo si existe un
camino en G de i a j sin usar ningún vértice
intermedio > k pero sí utilizando k.
Reducciones– p. 24
La estructura del circuito R(G)
Para k = 0, la puerta gijk es una entrada en R(G).
La puerta gij0 es una puerta tipo ⊤ si i = j o {i, j} ∈ E
y en otro caso una puerta tipo ⊥.
Para k = 1, 2, . . . , n, las conexiones entre las
puertas en R(G) son las siguientes:
Cada hijk es una puerta tipo ∧ con entradas de
gik(k−1) y de gkj(k−1) .
Cada gijk es una puerta tipo ∨ con entradas de
gij(k−1) y de hijk .
La puerta g1nn es la salida del circuito R(G).
Reducciones– p. 25
Asignación correcta
R(G) es no cíclico y libre de variables
Reducciones– p. 26
Asignación correcta
R(G) es no cíclico y libre de variables
Llegaremos a una T para hijk y gijk por inducción en
k = 0, 1, . . . , n
Reducciones– p. 26
Asignación correcta
R(G) es no cíclico y libre de variables
Llegaremos a una T para hijk y gijk por inducción en
k = 0, 1, . . . , n
El caso básico k = 0 aplica por definición
Reducciones– p. 26
Asignación correcta
R(G) es no cíclico y libre de variables
Llegaremos a una T para hijk y gijk por inducción en
k = 0, 1, . . . , n
El caso básico k = 0 aplica por definición
Para k > 0, el circuito asigna hijk = gik(k−1) ∧ gkj(k−1) .
Reducciones– p. 26
Hipótesis de inducción
hijk es ⊤ si y sólo si haya un camino de i a k y además un
camino de k a j sin usar vértices intermedios con
etiquetas > k − 1.
Reducciones– p. 27
Hipótesis de inducción
hijk es ⊤ si y sólo si haya un camino de i a k y además un
camino de k a j sin usar vértices intermedios con
etiquetas > k − 1.
Esto aplica si y sólo si haya un camino de i a j que no
utiliza ningún vértice intermedio > k pero sí pasa por k.
Reducciones– p. 27
Inducción
Para k > 0, el circuito asigna por definición
gijk = gij(k−1) ∨ hijk .
Reducciones– p. 28
Inducción
Para k > 0, el circuito asigna por definición
gijk = gij(k−1) ∨ hijk .
Por el hipótesis, gijk es ⊤ si y sólo si existe un camino de i
a j sin usar ningún vértice > k − 1 o si existe un camino
entre los vértices que no utilice ningún vértice > k pero
pasando por k mismo.
Reducciones– p. 28
Inducción
Para k > 0, el circuito asigna por definición
gijk = gij(k−1) ∨ hijk .
Por el hipótesis, gijk es ⊤ si y sólo si existe un camino de i
a j sin usar ningún vértice > k − 1 o si existe un camino
entre los vértices que no utilice ningún vértice > k pero
pasando por k mismo.
Entonces, tiene el valor ⊤ solamente en el caso que existe
una camino del vértice i al vértice j sin pasar por ningún
vértice con etiqueta mayor a k.
Reducciones– p. 28
Análisis del circuito
Resulta que el circuito R(G) de hecho implementa el
algoritmo Floyd-Warshall para el problema de
alcance.
Reducciones– p. 29
Análisis del circuito
Resulta que el circuito R(G) de hecho implementa el
algoritmo Floyd-Warshall para el problema de
alcance.
La salida del circuito R(G) es ⊤ si y sólo si g1nn es ⊤.
Esto aplica si y sólo si existe un camino de 1 a n en G sin
vértices intermedios con etiquetas mayores a n (que ni
siquiera existen).
Esto que implica que existe un camino de 1 a n en G.
Reducciones– p. 29
Uso de la reducción
Dado v, u ∈ V para R EACHABILITY, etiquetar v = 1 y u = n
y la reducción está completa.
Reducciones– p. 30
Uso de la reducción
Dado v, u ∈ V para R EACHABILITY, etiquetar v = 1 y u = n
y la reducción está completa.
Entonces, lo único que necesitamos son tres contadores
para computar el circuito R(G): se puede hacer esto en
O (log n) espacio.
Reducciones– p. 30
Circuito monótono
R(G) es un circuito monótono: no contiene ninguna ¬.
Reducciones– p. 31
Circuito monótono
R(G) es un circuito monótono: no contiene ninguna ¬.
Cada circuito C sin variables de puede convertir monótono
con las leyes De Morgan
¬(a ∧ b) ⇔ (¬a) ∨ (¬b)
¬(a ∨ b) ⇔ (¬a) ∧ (¬b)
Reducciones– p. 31
Circuito monótono
R(G) es un circuito monótono: no contiene ninguna ¬.
Cada circuito C sin variables de puede convertir monótono
con las leyes De Morgan
¬(a ∧ b) ⇔ (¬a) ∨ (¬b)
¬(a ∨ b) ⇔ (¬a) ∧ (¬b)
Como cada puerta de entrada es de tipo ⊤ o de tipo ⊥ en
la ausencia de variables, aplicamos ¬⊤ = ⊥ y ¬⊥ = ⊤ y
ya no hay puertas de negación.
Reducciones– p. 31
Función booleana monótona
Un circuito monótono solamente puede computar
funciones booleanas monótonas: si el valor de una se
sus entradas cambia de ⊥ a ⊤, el valor de la función no
puede cambiar de ⊤ a ⊥.
Reducciones– p. 32
Reducción de C IRCUITSAT a S AT
Dado un circuito booleano C, habrá que construir una
expresión booleana R(C) en C NF tal que C es satisfactible
si y soló si R(C) lo es.
Reducciones– p. 33
Reducción de C IRCUITSAT a S AT
Dado un circuito booleano C, habrá que construir una
expresión booleana R(C) en C NF tal que C es satisfactible
si y soló si R(C) lo es.
La expresión R(C) usará todas las variables xi de C y
incorpora una variable adicional yj para cada puerta de C.
Reducciones– p. 33
Cláusulas de R(C)
Si la puerta número j es de tipo variable con xi , yj y xi
en R(C) tienen que tener el mismo valor, yi ↔ x:
(yj ∨ ¬xi ) y (¬yj ∨ xi ).
Reducciones– p. 34
Cláusulas de R(C)
Si la puerta número j es de tipo variable con xi , yj y xi
en R(C) tienen que tener el mismo valor, yi ↔ x:
(yj ∨ ¬xi ) y (¬yj ∨ xi ).
Si la puerta j es de tipo ⊤: (yj ).
Reducciones– p. 34
Cláusulas de R(C)
Si la puerta número j es de tipo variable con xi , yj y xi
en R(C) tienen que tener el mismo valor, yi ↔ x:
(yj ∨ ¬xi ) y (¬yj ∨ xi ).
Si la puerta j es de tipo ⊤: (yj ).
Si la puerta j es de tipo ⊥: incluir (¬yj ).
Reducciones– p. 34
Cláusulas de R(C)
Si la puerta número j es de tipo variable con xi , yj y xi
en R(C) tienen que tener el mismo valor, yi ↔ x:
(yj ∨ ¬xi ) y (¬yj ∨ xi ).
Si la puerta j es de tipo ⊤: (yj ).
Si la puerta j es de tipo ⊥: incluir (¬yj ).
Si la puerta j es de tipo ¬ y su entrada es la puerta h,
habrá que asegurar que yj es ⊤ si y sólo si yh es ⊥,
yj ↔ ¬yh :
(¬yj ∨ ¬yh ) y (yj ∨ yh ).
Reducciones– p. 34
Más cláusulas
Si la puerta j es de tipo ∧ con las entradas h y k,
habrá que asegurar que yj ↔ (yh ∧ yk ):
(¬yj ∨ yh ), (¬yj ∨ yk ) y (yj ∨ ¬yh ∨ ¬yk ).
Reducciones– p. 35
Más cláusulas
Si la puerta j es de tipo ∧ con las entradas h y k,
habrá que asegurar que yj ↔ (yh ∧ yk ):
(¬yj ∨ yh ), (¬yj ∨ yk ) y (yj ∨ ¬yh ∨ ¬yk ).
Si la puerta j es una puerta tipo ∨ con las puertas de
entrada h y k, habrá que asegurar que yj ↔ (yh ∨ yk ):
(¬yj ∨ yh ∨ yk ), (yj ∨ ¬yk ) y (yj ∨ ¬yh ).
Reducciones– p. 35
Más cláusulas
Si la puerta j es de tipo ∧ con las entradas h y k,
habrá que asegurar que yj ↔ (yh ∧ yk ):
(¬yj ∨ yh ), (¬yj ∨ yk ) y (yj ∨ ¬yh ∨ ¬yk ).
Si la puerta j es una puerta tipo ∨ con las puertas de
entrada h y k, habrá que asegurar que yj ↔ (yh ∨ yk ):
(¬yj ∨ yh ∨ yk ), (yj ∨ ¬yk ) y (yj ∨ ¬yh ).
Si la puerta j es una salida: (yj ).
Reducciones– p. 35
De C IRCUITVALUE a C IRCUITSAT
C IRCUITVALUE es un caso especial de C IRCUITSAT
Reducciones– p. 36
De C IRCUITVALUE a C IRCUITSAT
C IRCUITVALUE es un caso especial de C IRCUITSAT
Cada entrada de C IRCUITVALUE es también una
entrada valida de C IRCUITSAT.
Reducciones– p. 36
De C IRCUITVALUE a C IRCUITSAT
C IRCUITVALUE es un caso especial de C IRCUITSAT
Cada entrada de C IRCUITVALUE es también una
entrada valida de C IRCUITSAT.
Para las instancias de C IRCUITVALUE, las soluciones
de C IRCUITVALUE y C IRCUITSAT coinciden.
Reducciones– p. 36
De C IRCUITVALUE a C IRCUITSAT
C IRCUITVALUE es un caso especial de C IRCUITSAT
Cada entrada de C IRCUITVALUE es también una
entrada valida de C IRCUITSAT.
Para las instancias de C IRCUITVALUE, las soluciones
de C IRCUITVALUE y C IRCUITSAT coinciden.
Entonces, C IRCUITSAT es una generalización de
C IRCUITVALUE.
Reducciones– p. 36
De C IRCUITVALUE a C IRCUITSAT
C IRCUITVALUE es un caso especial de C IRCUITSAT
Cada entrada de C IRCUITVALUE es también una
entrada valida de C IRCUITSAT.
Para las instancias de C IRCUITVALUE, las soluciones
de C IRCUITVALUE y C IRCUITSAT coinciden.
Entonces, C IRCUITSAT es una generalización de
C IRCUITVALUE.
La reducción es trivial: la función de identidad I(x) = x
de C IRCUITVALUE a C IRCUITSAT.
Reducciones– p. 36
Cadenas de reducciones
R EACHABILITY ≤L C IRCUITVALUE ≤L C IRCUITSAT ≤L S AT.
¿Es la relación ≤L
transitiva?
Reducciones– p. 37
Teorema de transitividad
Si R es una reducción del lenguaje L a lenguaje L′ y R′ es
una reducción del lenguaje L′ al lenguaje L′′ , la
composición R · R′ es una reducción de L a L′′ .
Reducciones– p. 38
Demostración
x ∈ L ⇔ R(x) ∈ L′ ⇔ R′ (R(x)) ∈ L′′
Hay mostrar es que es posible computar R′ (R(x)) en
espacio O (log n), |x| = n.
Reducciones– p. 39
Las TM involucradas
Dos TM MR y MR′
Reducciones– p. 40
Las TM involucradas
Dos TM MR y MR′
Construyamos una TM M para R · R′
Reducciones– p. 40
Las TM involucradas
Dos TM MR y MR′
Construyamos una TM M para R · R′
El resultado de MR puede ser más largo que log n
Reducciones– p. 40
Las TM involucradas
Dos TM MR y MR′
Construyamos una TM M para R · R′
El resultado de MR puede ser más largo que log n
⇒ No se puede guardar sin romper el requisito de
espacio logarítmico
Reducciones– p. 40
La simulación
M necesita simular a MR′ con la entrada R(x) por
recordar la posición del cursor i en la cinta de
entrada de MR′
Reducciones– p. 41
La simulación
M necesita simular a MR′ con la entrada R(x) por
recordar la posición del cursor i en la cinta de
entrada de MR′
La cinta de entrada de MR′ es la cinta de salida de MR
Reducciones– p. 41
La simulación
M necesita simular a MR′ con la entrada R(x) por
recordar la posición del cursor i en la cinta de
entrada de MR′
La cinta de entrada de MR′ es la cinta de salida de MR
Guardamos solamente el índice i en binaria y el
símbolo actualmente leído
Reducciones– p. 41
La simulación
M necesita simular a MR′ con la entrada R(x) por
recordar la posición del cursor i en la cinta de
entrada de MR′
La cinta de entrada de MR′ es la cinta de salida de MR
Guardamos solamente el índice i en binaria y el
símbolo actualmente leído
⇒ Podemos asegurar usar no más que O (log n)
espacio.
Reducciones– p. 41
Función de M
Inicialmente i = 1 y el primer símbolo escaneado es ⊲
Reducciones– p. 42
Función de M
Inicialmente i = 1 y el primer símbolo escaneado es ⊲
Cuando MR′ mueve a la derecha, M corre a MR para
generar el símbolo de salida de esa posición y
incrementa i := i + 1
Reducciones– p. 42
Función de M
Inicialmente i = 1 y el primer símbolo escaneado es ⊲
Cuando MR′ mueve a la derecha, M corre a MR para
generar el símbolo de salida de esa posición y
incrementa i := i + 1
Si MR′ mueve a la izquierda, M asigna i := i − 1 y
vuelve a correr a MR con x desde el comienzo,
contando los símbolos de salida y parando al generar
la posición i de la salida.
Reducciones– p. 42
Estamos listos
La entrada de MR es x y |x| = n
Reducciones– p. 43
Estamos listos
La entrada de MR es x y |x| = n
La entrada de MR′ es R(x)
Reducciones– p. 43
Estamos listos
La entrada de MR es x y |x| = n
La entrada de MR′ es R(x)
Estamos guardando un índice binario de una cadena
del largo |R(x)| = O nk
Reducciones– p. 43
Estamos listos
La entrada de MR es x y |x| = n
La entrada de MR′ es R(x)
Estamos guardando un índice binario de una cadena
del largo |R(x)| = O nk
⇒ El espacio necesario para tal seguimiento de la
salida de MR con la entrada x es O (log n)
Reducciones– p. 43
Estamos listos
La entrada de MR es x y |x| = n
La entrada de MR′ es R(x)
Estamos guardando un índice binario de una cadena
del largo |R(x)| = O nk
⇒ El espacio necesario para tal seguimiento de la
salida de MR con la entrada x es O (log n)
Como las ambas TMs MR y MR′ operan en espacio
O (log n), también M usa O (log n) espacio
Reducciones– p. 43
Tareas para entregar el martes
1. Define una reducción de H AMILTON PATH al problema
siguiente: dada un grafo no dirigido G = (V, E) y un
entero k ≤ n, ¿existe en G un camino simple (que no
repita vértices) con k aristas o más?
2. Define una reducción de C LIQUE al problema de
isomorfismo de subgrafo.
¿Qué nos dice sobre la complejidad de estos problemas
la existencia de tales reducciones?
Reducciones– p. 44
Descargar