Problemas de Decisión - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2212/decision.pdf ·...

27
Problemas de Decisión La motivaci´ on de este cap´ ıtulo puede estar dado por lo siguiente: ¿Dado un conjunto Σ de f´ ormulas proposicionales en L(P ), existe un algoritmo general para determinar si Σ | = ϕ ¿Qu´ e pasa si la pregunta la hacemos para el caso de f´ ormulas de primer orden? ¿Qu´ e esperamos de un algoritmo que resuelva los dos problemas anteriores? El tipo de algoritmos a los que nos referimos son conocidos como algoritmos de decisi´ on, ya que son usados para “decidir”, dando una respuesta afirmativa o negativa. En nuestro ejemplo, queremos construir un algoritmo que, dada una f´ ormula arbitraria de L(P ), ϕ, y un conjunto de f´ ormulas en el mismo lenguaje, nos diga si Σ | = ϕ El algoritmo se ve como la siguiente m´ aquina: Jorge Baier Aranda, PUC << Atr´ as 223

Transcript of Problemas de Decisión - jabaier.sitios.ing.uc.cljabaier.sitios.ing.uc.cl/iic2212/decision.pdf ·...

Problemas de Decisión

• La motivacion de este capıtulo puede estar dado por lo siguiente:

• ¿Dado un conjunto Σ de formulas proposicionales en L(P ), existe un algoritmo general

para determinar si

Σ |= ϕ

• ¿Que pasa si la pregunta la hacemos para el caso de formulas de primer orden?

• ¿Que esperamos de un algoritmo que resuelva los dos problemas anteriores?

• El tipo de algoritmos a los que nos referimos son conocidos como algoritmos dedecision, ya que son usados para “decidir”, dando una respuesta afirmativa onegativa.

• En nuestro ejemplo, queremos construir un algoritmo que, dada una formulaarbitraria de L(P ), ϕ, y un conjunto de formulas en el mismo lenguaje, nos digasi

Σ |= ϕ

• El algoritmo se ve como la siguiente maquina:

Jorge Baier Aranda, PUC << Atras 223

Algoritmo

No

〈Σ, ϕ〉

• Si a esta maquina le pasamos como entrada cualquier par 〈Σ, ϕ〉, respondera SIsi Σ |= ϕ y NO si Σ 6|= ϕ.

• Alternativamente, si consideramos que 〈Σ, ϕ〉 se puede representar como unapalabra, entonces esta maquina sirve para decidir la pertenencia de una palabraarbitraria al lenguaje: L = {〈Σ, ϕ〉 |Σ ⊆ L(P ), ϕ ∈ L(P ),Σ |= ϕ}

• En general, un problema de decision cualquiera se puede representar por unlenguaje.

• ¿Cual es el lenguaje asociado al siguiente problema de decision?

Dados dos numeros enteros arbitrarios x e y, ¿son ellos soluciones para la ecuacion3x− 2y = 0?

Jorge Baier Aranda, PUC << Atras 224

El lenguaje debe contener una codificacion para todas las posibles instancias dela pregunta.

Una instancia de la pregunta es: ¿son x = 2 e y = 3 soluciones para la ecuacion?

• ¿Cual es el lenguaje para el siguiente problema?

Dada una formula arbitraria ϕ de logica proposicional, ¿es ϕ una tautologıa?

Jorge Baier Aranda, PUC << Atras 225

Problemas Decidibles

• Dado un problema de decision cualquiera P , con un lenguaje asociado L, diremosque P y L son dedicidibles, si es que es posible encontrar un algoritmo tal que,dada cualquier entrada w pueda responder SI, si w ∈ L y NO si w 6∈ L.

Graficamente el algoritmo se ve de la siguiente manera:

No

Algoritmo

w

w ∈ L

w 6∈ L

• Para analizar cuando un problema es decidible, necesitamos modelar, en formamatematica, que es un algoritmo.

• Mas precisamente, lo que haremos sera dar un modelo matematico para uncomputador.

Jorge Baier Aranda, PUC << Atras 226

Máquinas de Turing

• Las maquinas de Turing (en honor a Alan Turing, figura 2) son un modelomatematico de un computador.

Figure 2: Alan Turing, inventor de un modelo matematico para los computadores

• Una Maquina de Turing (MT) es una maquina de estado que posee una cintainfinita en la cual se puede leer y escribir.

Jorge Baier Aranda, PUC << Atras 227

• La maquina tiene los siguientes elementos:

– Un conjunto finito de estados Q.– Un alfabeto de entrada Σ (conjunto finito de sımbolos que podrıa tener una

entrada w).– Un alfabeto de la cinta Γ (conjunto finito de sımbolos en la cinta).– Un estado inicial q0 (q0 ∈ Q).– Una “funcion de transicion” δ que especifica, dado un estado y un sımbolo

leıdo desde la cinta:• el sımbolo que se escribira sobre la posicion de la cinta en la cual la cabeza se

encuentra, y

• si esta se movera a la derecha o a la izquierda.

– Un conjunto de estados finales QF ⊆ Q.Formalmente, es un mapeo desde Q× Γ hasta Q× Γ× {+,−}La funcion δ se puede describir como una tabla.La siguiente podrıa ser una definicion para δ.Estado/Sımbolo a b c 6 bq0 (qNO, a,+) (q0, b,+) (q1, c,+) (qNO, 6 b,+)q1 - - - (qSI, 6 b,+)qNO - - - -qSI - - - -

Jorge Baier Aranda, PUC << Atras 228

Aquı, − significa que la maquina se mueve a la izquierda y +, que se mueve ala derecha.

• La maquina puede ser alimentada con una palabra de entrada w, que se colocaal comienzo de la cinta.

Jorge Baier Aranda, PUC << Atras 229

• La siguiente figura muestra una MT que recibe como entrada a la palabraw = a0a1 · · · an.

Máquina de Estado

...

...

cabeza lectora/escritora

cinta infinitaa0a0 a1 a2 a3 a4 a5 an 6 b 6 b 6 b 6 b

• A partir del sımbolo que la MT lee desde la entrada determina que sımboloescribe sobre la cinta, y en que direccion moverse .

Jorge Baier Aranda, PUC << Atras 230

• Si no esta definida la movida de la maquina entonces diremos que la maquina seha detenido.

• Si la maquina se detuvo en un estado final, diremos que la maquina acepta (odice sı).

• En caso contrario, diremos que la maquina no acepta.

Jorge Baier Aranda, PUC << Atras 231

Ejemplo de MT

Supongamos una MT definida por:

• Q = {q0, q1, qSI, qNO}.

• Γ = {a, b, c, 6 b}

• QF = {qSI}.

Estado/Sımbolo a b c 6 bq0 (qNO, a,+) (q0, b,+) (q1, c,+) (qNO, 6 b,+)q1 - - - (qSI, 6 b,+)qNO - - - -qSI - - - -

• ¿Que lenguaje acepta esta maquina?

Jorge Baier Aranda, PUC << Atras 232

MT como computadoras de funciones

• Tambien es posible ver a las MTs como maquinas computadoras de funciones.

• En este caso, la palabra de entrada codifica al (o los) argumento.

• Al terminar la ejecucion, la maquina ha escrito en su cinta el resultado de lafuncion.

• Si la funcion esta definida para cualquier entrada, entonces decimos que es unafuncion recursiva. Si no esta definida para todas las entradas decimos que esuna funcion recursiva parcial.

• Tesis de Church-Turing o Hipotesis de Church:

“Las funciones computables corresponden precisamente a la clase de funcionesrecursivas parciales”

• Esta hipotesis no se puede demostrar pues el termino computable no es formal(no esta definido en terminos matematicos) sino que es intuitivo.

Jorge Baier Aranda, PUC << Atras 233

Un problema indecidible

• Al ingresar una entrada arbitraria a una MT, pueden ocurrir 3 cosas:

– Que la maquina se detenga, aceptando (dice SI).– Que la maquina se detenga, no aceptando (dice NO). Esto ocurre cuando

la maquina queda en un estado no final, en el cual no puede realizar mastransiciones.

– No se detiene (no dice nada), es decir, queda ejecutando transicioneseternamente.

• Si un problema P es decidible, podremos construir una maquina en la cual solopuedan ocurrir los dos primeros casos y nunca el tercero.

• Como una MT se puede representar por un numero finito de elementos, podemossuponer que esta representacion se puede codificar como un string.

• De esta manera #(M) representara la codificacion de una maquina M .

• Supongamos el siguiente problema de decision:

Jorge Baier Aranda, PUC << Atras 234

Dada una maquina arbitraria M , ¿es cierto que M no acepta su propiocodigo?

• El lenguaje asociado a este problema es el siguiente9:

Ld = {#(M) |M(#(M)) no acepta}

• Supongamos Ld es decidible y que Md acepta a Ld.

• ¿Que sucede si alimentamos a Md con #(Md)?.

• Solo hay dos posibilidades, que diga SI o que diga NO.

Supongamos que dice SI.

En este caso tenemos que #(Md) ∈ Ld, por lo que Md(#(Md)) no acepta, pordefinicion. ⇒ no puede decir SI, lo que contradice nuestra suposicion inicial.

Supongamos que dice que NO.9M(w) se usa para decir que M es alimentada con w

Jorge Baier Aranda, PUC << Atras 235

En este caso tenemos que #(Md) 6∈ Ld, con lo que, por definicion, Md(#(Md))dice SI, que nuevamente contradice la suposicion inicial.

• El hecho que no podamos ni decir SI ni decir NO significa que tampoco podemosdecidir el siguiente lenguaje:

Ld = {#(M) |M(#(M)) acepta}

¿por que?

• Podemos concluir de esto que un algoritmo de tales caracterısticas no puedeexistir.

• El siguiente problema tambien es indecidible:

Dada una maquina M y una palabra w, ¿para M alimentada w?

• El lenguaje asociado a este problema es el siguiente:

Lu = {〈#(M), w〉 |M(w) para}

Jorge Baier Aranda, PUC << Atras 236

Suponiendo que tal algoritmo existe construiremos un algoritmo M ′ para decidirLd.

Supongamos M ′′ que, dada la codificacion de una maquina M , entrega el codigode una maquina M0 que dice SI para las mismas entradas que M , pero que nopara cuando M dice que NO y cuando M no para.

Construir ese algoritmo es sencillo, lo que debemos hacer es “copiar” la funcion detransicion y estados de M a M0. Ademas, agregamos a M0 un estado adicional,ql. Para cada estado no final que no tenga una transicion a ningun otro estadoen un sımbolo cualquiera a, agregamos a δ una transicion a ql. ql sera un estadoen el cual la maquina entra en un loop infinito.

La maquina resultante M0 funciona igual que M , con la diferencia que cada vezM dice NO, M0 entra en un loop infinito.

Jorge Baier Aranda, PUC << Atras 237

El siguiente esquema muestra un algoritmo para aceptar Ld.

No

SiSi

No

Maquina M ′Algoritmo quedecide Lu

Algoritmo que decide Ld

#(M)〈#(M0), #(M)〉

Jorge Baier Aranda, PUC << Atras 238

Reducción

• Es interesante que analicemos un poco mas el metodo que utilizamos en lasolucion del problema anterior.

• Para demostrar que el lenguaje Lu es indecidible, supusimos que existıa unaalgoritmo para decidir Lu y luego demostramos que podıamos construir otroalgoritmo para decidir Ld.

• En otras palabras, hemos transformado un problema en el otro.

• En terminos abstractos, para decidir la pertenencia de una palabra w a Ld,nuestra maquina transforma dicha palabra a traves de una funcion, digamos f(·),y luego se pregunta por la pertenencia de f(w) en Lu.

• La funcion f(·) es computable y se puede computar para cualquier entrada.

• Cada vez que podamos determinar tal funcion y que se cumpla que

w ∈ L1 ssi f(w) ∈ L2

Jorge Baier Aranda, PUC << Atras 239

• Diremos que L1 es reducible a L2, o bien, L1 ≤ L2

• En nuestro caso sabemos que Ld ≤ Lu. Notese que la salida de Mu y Md estanintercambiadas.

• La forma mas sencilla de entender

L1 ≤ L2

es recordando que:

Si podemos decidir L2 entonces podemos decidir L1.

o equivalentemente,

Si no podemos decidir L1 entonces no podemos decidir L2.

Ejercicio: Demuestre, por reduccion, que el problema de determinar si unamaquina de Turing acepta el lenguaje vacıo es indecidible.

Jorge Baier Aranda, PUC << Atras 240

Lenguajes Recursivos y Recursivamente Enumerables

• Hemos visto que si L es un lenguaje decidible, existe una maquina M que siemprese detiene y que responde si una palabra cualquiera w pertenece a L.

• Los lenguajes decidibles tambien son conocidos como lenguajes recursivos

• Sin embargo, existe una calificacion menos restrictiva.

• Un lenguaje L es recursivamente enumerable si existe una MT M , cuando esalimentada con alguna palabra w ∈ L, se detiene diciendo SI.

• El comportamiento no esta definido cuando w 6∈ L.

• Una maquina que decide un lenguaje recursivamente enumerable se ve de lasiguente manera:

Jorge Baier Aranda, PUC << Atras 241

SíMT

w

w ∈ L

• El problema de la parada de una maquina de Turing es recursivamente enumerable.

En efecto, podemos construir una maquina M ′ que recibe un par 〈#(M), w〉 ysimula la ejecucion de M con w. Si M se detiene con w responde SI.

• De la definicion de lenguaje recurisivamente enumerable, se obtiene claramenteque todo lenguaje recursivo (decidible) es recursivamente enumerable, yaque un lenguaje recursivo es un caso particular de los lenguajes recursivamenteenumerables.

Jorge Baier Aranda, PUC << Atras 242

¿Por qué enumerable?

• El concepto de enumerabilidad recursiva nace del hecho de que, si se tiene unlenguaje recursivamente enumerable, es posible construir una MT que corre sinentrada y que genera como salida a todas las palabras del lenguaje.

• Evidentemente, esta maquina no para si el lenguaje es infinito.

• De todas formas tenemos como garantıa que toda palabra w del lenguaje esgenerada como salida en tiempo finito.

• La maquina que genera esta salida es una maquina enumeradora.

• Supongamos que tenemos una maquinaM que acepta un lenguaje recursivamenteenumerable, L. ¿Como construimos una maquina enumeradora para L?

• La idea es numerar todas las posibles entradas, de tal forma que w0, w1, . . . sontodas las posibles entradas.

• Primer intento: Simulamos a M alimentada con w0. Si M acepta a w0 se anotaen la cinta como salida.

Jorge Baier Aranda, PUC << Atras 243

Escribimos un # (que se usa solamente como separador) y seguimos con w1.

¿Que pasa si M no para con wi?

No podremos seguir generando las palabras que vienen a continuacion.

• Segundo intento: Recorrer la siguiente matriz:

w0 w1 w2 . . .1 (1, w0) (1, w1) (1, w2) · · ·2 (2, w0) (2, w1) (2, w2) · · ·3 (3, w0) (3, w1) (3, w2) · · ·... . . . · · ·

De tal forma que para cada par (i, wj) nuestra maquina simula i movidas de Mcon entrada wj. Si M acepta en a lo mas j movidas, escribe la salida en la cinta.

El recorrido se realiza de tal manera que i+ j = constante. Es decir, se recorrenprimero los pares (i, wj) tales que i+ j = 1, luego los pares con i+ j = 2 y asısucesivamente.

Con esto garantizamos que en tiempo finito recorreremos todas las palabrasposibles, tardando un tiempo finito con cada una de ellas.

Jorge Baier Aranda, PUC << Atras 244

Eventualmente, todas las palabras de L apareceran en la cinta de salida.

Jorge Baier Aranda, PUC << Atras 245

Indecidibilidad de Lógica de Predicados

• Hasta ahora hemos visto que todas las propiedades que se cumplıan en logicaproposicional, tambien se cumplen en logica de primer orden.

• Consideremos el siguiente problema de decision:

Dada una formula proposicional arbitraria ϕ, ¿es ϕ una tautologıa?

• Claramente este problema es decidible, porque podemos construir un algoritmoque haga un tabla de verdad y verifique que la formula es verdadera para todaslas valuaciones posibles.

• ¿Que hacemos para el caso de primer orden?

¡No podemos usar tablas de verdad!

• Supongamos el siguiente lenguaje:

V U = {ϕ ∈ L(S) | |= ϕ}

Jorge Baier Aranda, PUC << Atras 246

• En 1936 Turing y Church demostraron que este lenguaje es indecidible.

• Esto se da dado que es muy sencillo escribir una oracion de primer orden ϕM,w

que describe el comportamiento de una Maquina de Turing al recibir una palabraw como entrada. La formula es universalmente verdadera si y solo si la maquinaacepta a w.

La idea de la demostracion es representar las palabras como funciones del lenguaje.Ası, la palabra abbc se anota como a(b(b(c(ε))))10.

Para describir el comportamiento de la maquina se define un predicado Fq porcada estado q de la maquina tal que Fq(x, y) es verdadero cuando la maquina seencuentra en el estado q con su cabezal sobre el primer sımbolo de y y con lapalabra xry sobre la cinta 11.

Sea M una maquina cualquiera, con q0 su estado inicial y qf un estado final.

Si δ(q, a) = (p, b,+) entonces la siguiente formula debe ser verdadera:

∀x∀y (Fq(x, a(y)) → Fp(b(x), y))10ε representa a la palabra vacıa.11xr es el reverso de la palabra x

Jorge Baier Aranda, PUC << Atras 247

Si δ(q, a) = (p, b,−) entonces las siguientes formulas deben ser verdaderas:

∀x∀y (Fq(c(x), a(y)) → Fp(x, c(b(y))),

para todo c ∈ Σ.

Finalmente, se agregan formulas similares para cuando la maquina se encuentraal final de la entrada o al principio de la cinta (las omitimos).

Sea ψ la oracion que corresponde a la conjuncion de las formulas ya mencionadasmas algunos axiomas de nombres unicos, entonces,

M acepta a w si la siguiente formula es universalmente verdadera:

Fq0(ε, w) ∧ ψ → ∃x∃y Fqf(x, y),

con w escrita en la notacion requerida, forman una oracion que es universalmenteverdadera sı y solo sı M para con la entrada w.

• Sin duda, este lenguaje es recursivamente enumerable, por, al menos, dos razonesconocidas. ¿Cuales son ellas?

Jorge Baier Aranda, PUC << Atras 248

• Por reduccion podemos demostrar que el problema de determinar si una formulaarbitraria es satisfactible tambien es indecidible.

• ¿Como podemos demostrarlo?

Si tenemos un algoritmo para verificar si una formula arbitraria es satisfactible,podemos construir un algoritmo para verificar si una formula ϕ es universalmentevalida de la siguiente manera. Alimentamos el algoritmo con ¬ϕ. Si el algoritmodice SI, respondemos NO, y si dice NO, respondemos SI.

Esto se puede hacer porque una formula ϕ es universalmente verdadera sı y solosı ¬ϕ es insatisfactible.

Podrıamos establecer todas estas equivalencias:

ϕ es universalmente valida ⇔ ¬ϕ es insatisfactible.

¬ϕ es universalmente valida ⇔ ϕ es insatisfactible.

¬ϕ no es universalmente valida ⇔ ϕ es satisfactible.

Jorge Baier Aranda, PUC << Atras 249