• No se han encontrado resultados

TQBF resuelto en tiempo polinomial

N/A
N/A
Protected

Academic year: 2021

Share "TQBF resuelto en tiempo polinomial"

Copied!
11
0
0

Texto completo

(1)

TQBF resuelto en tiempo polinomial

Juan Manuel Dato Ruiz

Graduated in development of computers

[email protected]

Enero 2019

1

Introducci´

on

Este documento es una simplificaci´on de un documento mucho m´as largo donde se desvinculan las conclusiones del teorema de Cook a una filosof´ıa matem´atica que no aplicaremos para este documento y, por tanto, no trabajaremos bajo la complejidad N P − co. A lo largo de este documento se va a explicar c´omo se puede demostrar en tiempo polinomial si una expresi´on booleana cuantificada es un teorema.

Para trabajar con la idea de dependencia nos centraremos en los siguientes casos reconocidos por la ortodoxia en cuantificadores para la l´ogica:

1. ∀x∀y : P (x, y)

2. ∀x∃y : P (x, y)

3. ∃x∀y : P (x, y)

4. ∃x∃y : P (x, y)

De las cuatro combinaciones s´olo la segunda hace que y dependa de x. As´ı que usaremos una notaci´on en este documento: cuando queramos que en el caso 2 el par´ametro y no dependa de la variable x deberemos incorporar una expresi´on adicional: ∀x∃y : P (x, y) ∧ I(y, x)

Es decir:

Definici´on 1 I(K, x) es una f´ormula booleana: B × B 7→ B, y α es cualquier f´ormula que depende de K y x:

∀x, ∃K : I(K, x) ∧ α ⇐⇒ ∃K, ∀x : I(K, x) ∧ α (1) Hay que denotar que K siempre ser´a una variable existencial, mientras que x ser´a universal o un nuevo concepto que introducimos en este documento: una variable temporal.

El trabajo con variables temporales, la idea de independencia de variables trabajado de esta manera, la aportaci´on de una estructura con un operador

(2)

l´ogico nuevo que permite resolver cualquier f´ormula de la l´ogica en tiempo poli-nomial (corroborado en Python) y la no aceptaci´on del teorema de Cook para prop´ositos constructivistas es lo que caracterizan las ventajas de este documento frente al resto.

Para ello se va a explicar los distintos pasos mediante un ejemplo manual:

∀p, ∃K, ∀q, ∃R : (p → q ∨ R) ∧ p → q ∨ K ∀p, ∀q, ∃K, ∃R : I(K, q)

1. (p → q ∨ R) ∧ p → q ∨ K

∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)

2. τ1= (p → q ∨ R)

τ2= (p → q ∨ R)

(τ1∨ τ2) ∧ p → q ∨ K

∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)

τ1∧ p → q ∨ R 3. 1 → τ1∨ p q → τ1 R → τ1 τ1∧ p → q ∨ K τ2∧ p → q ∨ R 1 → τ2∨ p q → τ2 R → τ2 τ2∧ p → q ∨ K

∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)

(τ1= 0) ∨ (τ1= ¬p) ∨ (τ1=q) ∨ (R = 1) ∨ (R = p) ∨ (R = ¬q) ∨ (R = τ1) 4. (τ1= 1) ∨ (τ1= ¬p) (τ1= 1) ∨ (τ1= q) (R = 0) ∨ (R = τ1) ∨ (τ1= 0) (τ1= 0) ∨ (τ1= ¬p) ∨ (τ1= q) ∨ (K = 1) ∨ (K=p) (τ2= 0) ∨ (τ2= ¬p) ∨ (R = 1) ∨ (R = p) ∨ (R = ¬q) ∨ (R = τ2) (τ2= 1) ∨ (τ2= ¬p) (τ2 = 1) (R = 0) ∨ (R = τ2) ∨ (τ2= 0) (τ2= 0) ∨ (τ2= ¬p) ∨ (K = 1) ∨ (K=p) ∨ (K = τ2)

∀p, ∀q, ∃τ1, ∃τ2, ∃K, ∃R : I(K, q) ∧ I(τ2, q) ∧ I(K, τ1)

5. (τ1= q) ∧ (τ1= ¬p) ∧ (R = τ1) ∧ (K = p) ∧ (τ2= 1) ∧ (R = τ2)

∀p, ∀q, ∃K, ∃R : I(K, q) ∧ R = q ∨ ¬p ∧ K = p ∀p, ∃K, ∀q, ∃R : R = q ∨ ¬p ∧ K = p

(3)

1. Se reordena la f´ormula dejando los cuantificadores universales antes que los existenciales, seguidos de la f´ormula a˜nadiendo cl´ausulas de independencia I(Ki, xj).

2. Se crean unas variables temporales para eliminar las anidaciones. Como la variable temporal depende de las variables que aparecen en su expresi´on, y K no puede depender de q entonces reconocemos que K no puede depender de τ1y que un clon de tal variable temporal τ2 no depende de q, para que

no haya conflicto con K.

3. Para cada asignaci´on de una variable temporal en una f´ormula equivale a expresarlo en cl´ausulas de Horn, lo cual evita literales en negativo sin perder potencia en la expresividad de la f´ormula original.

4. En este paso se aplica un teorema de esta documentaci´on para ver c´omo se convierte en sumas de cuatro cl´ausulas que se multiplican (formato SAT).

5. Se satisface la f´ormula anterior mediante otra t´ecnica que se incorpora exclusivamente en esta documentaci´on para que se haga en tiempo poli-nomial (O(n3) tiempo y O(n2) espacio).

Una vez satisfecha la f´ormula s´olo hay que presentar los resultados, para lo cual tambi´en se presentar´a alg´un lema que permita eliminar la variable tempo-ral y as´ı hacer que los existenciales dependan de las variables de las que sean dependientes.

Por tanto, lo que aqu´ı vemos es un m´etodo que nos permite determinar una condici´on necesaria para que una f´ormula QBF se justifique en una tau-tolog´ıa, proceso de resoluci´on que elaboraremos con la misma complejidad que el mecanismo que usemos para resolver SAT (que es necesario en el paso 4).

Si, por otro lado, nuestro inter´es es saber si la expresi´on que tenemos es una tautolog´ıa (porque no tiene existenciales), s´olo hay que hacer una simple conversi´on:

∀x1, . . . , xn: f (x1, . . . , xn) ⇐⇒

¬ ∃x1, . . . , xn: ¬f (x1, . . . , xn) ⇐⇒

¬SAT [¬f (x1, . . . , xn)]

Lo cual se reduce a formatear cualquier f´ormula del ´algebra de boole a un formato que podamos satisfacer: T QBF es equipolinomial a SAT .

1.1

Proceso de inserci´

on de variables temporales

Para llevar a cabo este proceso es necesario incorporar unas variables tempo-rales τi que nos permitan eliminar expresiones que se encierran entre par´entesis.

Para ello, considerando que trabajamos dentro del ´algebra de Bool la igualdad equivale al coimplicador y, de ah´ı, que nos interese convertirlo a un producto de dos implicadores.

M´as en concreto, partimos de una f´ormula bien formada del ´algebra de boole y cuantificada con universales ∀ y existenciales ∃ a lo largo de la f´ormula. El

(4)

objetivo consiste en convertir la f´ormula a la forma prenex donde todos los cuantificadores se ponen al principio de la f´ormula y, acto seguido, hacer que la f´ormula sea un producto de cl´ausulas de literales: V

iCi =Vi

W

jLai,j. Donde

cada literal ser´a una variable booleana afirmada o negada.

Una vez generadas las cl´ausulas trabajaremos sin las negaciones, para ello usaremos las siguiente regla cuando todos los literales est´en afirmados:

B1∨ · · · ∨ Bn ⇐⇒ 1 → B1∨ · · · ∨ Bn

La siguiente cuando todos los literales est´en negados:

¬A1∨ · · · ∨ ¬Am ⇐⇒ A1∧ · · · ∧ Am→ 0

Y, finalmente, en general: si tenemos en esa cl´ausula literales afirmados y ne-gados: _ i ¬Ai∨ _ j Bj ⇐⇒ ^ i Ai → _ j Bj

Finalmente, el mecanismo que incorporar´a las variables temporales τk dentro

del formatoV

iAi→

W

jBj, ser´a haciendo uso del siguiente secuente:

τk =  V iAi→ W jBj  τk∧ViAi→WjBj V i: (1 → Ai∨ τk) V j: (Bj→ τk)

Adem´as, para cada variable existencial R que incorpore en la f´ormula en alg´un n: I(R, An) ∨ I(R, Bn) ocurrir´a que la variable temporal se desdoblar´a de manera

que distinguiremos una k0que cumplir´a τk0 =

 V

iAi→WjBj



y ´esta sustituir´a en f por la expresi´on τk∨ τk0 de manera que diremos que la variable es

inde-pendiente de τk (pues esta variable temporal puede depender de una variable

de la que R es independiente) y τk0 ser´a independiente de la variable conflictiva

X, ya sea An o Bn, por tanto: I(R, τk) ∧ I(τk0, X). El n´umero de clones de la

variable temporal ser´a igual al n´umero de par´ametros An o Bnconflictivos. Por

lo que esta operaci´on no sucumbe a una explosi´on combinatoria.

1.2

Proceso de eliminaci´

on de las variables temporales

Al terminar el proceso de resoluci´on, si existe un conjunto de asignaciones posi-bles entonces ya sabemos que la expresi´on es un teorema. Para obtener una expresi´on que lo convierta en tautolog´ıa, el proceso se hace ligeramente m´as complejo. Al obtener un conjunto de asignaciones de variables existenciales en variables universales, nos interesa que cada variable existencial tenga una ex-presi´on ´unica, de manera que las variables temporales puedan ser referenciadas por las variables existenciales de la f´ormula original.

La idea consiste en que no hace falta usar todas las asignaciones, sino s´olo alguna de ellas, sabiendo que ´estas se pueden combinar gracias al siguiente lema:

(5)

Lema 2

(A = x) ∧ (A = y) −→ (A = x ∨ y)

B´asicamente, lo que conseguimos con ese lema es poder transformar una ex-presi´on de la foma f ∧V

i(A = xi) = 1 en otra de la forma f ∧ (A =Wixi) = 1.

Ahora bien, si tenemos una expresi´on resultante de la forma (A = x) ∧ (A = y) tambi´en es factible usar el teorema de simplificaci´on mediante el cual decirmos (A = x) ∧ (A = y) −→ (A = x). Esto es debido a que la garantizaci´on del implicado, cuando se trata de una tautolog´ıa implica que el implicante tenga la misma potencia.

1.3

Proceso de asignaci´

on

El objeto de este proceso consiste en convertir una implicaci´on de variables universales, existenciales y temporales en una suma booleana de asignaciones de variables existenciales y temporales en variables universales y temporales. Pero que, en definitiva, consiste en aplicar este teorema:

Lema 3 ∀xi, ∀yi, ∃Ai, ∃Bi: V iAi∧Vixi→WiBi∨Wiyi ⇐⇒ W i(Ai= 0) ∨Wi,j(Ai = ¬xj) ∨Wi,j(Ai= yj)∨ ∨W

i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi= ¬yj)

• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj

• ∀j : I(Ai, yj): No se incorpora: Ai = yj

• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj

• ∀j : I(Bi, xj): No se incorpora: Bi= xj

• ∀j : I(Bi, yj): No se incorpora: Bi= ¬yj

Si analizamos sus partes, nos daremos cuenta de que usamos un nombre de variable en sustituci´on de que si la variable est´a afirmada o negada, as´ı si est´a cuantificada o es existencial. Si se han incorporado expresiones de la forma I(K, z), entonces observamos c´omo anulan la asignaci´on generada en la expresi´on anterior. Esto se hace para que en la unificaci´on la variable z no se pueda incorporar en la expresi´on del existencial K.

Entendiendo este formato, para incorporar las variables temporales, entonces el teorema pasa a convertirse a esta forma, que es la m´as general:

∀xi, ∀yi, ∃τi∃τi∗∃Ai, ∃Bi:

V

iAi∧VixiViτi→WiBi∨Wiyi∨Wiτi∗ ⇐⇒

W

i(Ai= 0) ∨Wi,j(Ai= ¬xj) ∨Wi,j(Ai= yj) ∨Wi,j(Ai= ¬τj) ∨Wi,j(Ai= τj∗)∨

∨W

i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi = ¬yj) ∨Wi,j(Bi= τj) ∨Wi,j(Bi= ¬τj∗)∨

W

i(τi= 0) ∨Wi,j(τi= ¬xj) ∨Wi,j(τi= yj)∨

∨W

i(τi∗= 1) ∨

W

(6)

• ∀j : I(Ai, xj) :No se incorpora: Ai= ¬xj

• ∀j : I(Ai, yj): No se incorpora: Ai = yj

• ∀j : I(Bi, xj): No se incorpora: Bi= xj

• ∀j : I(Bi, yj): No se incorpora: Bi= ¬yj

• ∀j : I(Ai, τj) :No se incorpora: Ai= ¬τj

• ∀j : I(Ai, τj∗): No se incorpora: Ai= τj∗

• ∀j : I(Bi, τj): No se incorpora: Bi= τj

• ∀j : I(Bi, τj∗): No se incorpora: Bi= ¬τj∗

• ∀j : I(τi, xj) :No se incorpora: τi= ¬xj

• ∀j : I(τi, yj): No se incorpora: τi= yj

• ∀j : I(τ∗

i, xj): No se incorpora: τi∗= xj

• ∀j : I(τ∗

i, yj): No se incorpora: τi∗= ¬yj

N´otese que s´olo se incorporan dos tipos de variables temporales: los que se incorporan en el implicante τiy los que se incorporan en el implicado τi∗, por lo

que s´olo hay que aplicar el mismo formato de antes. As´ımismo, observamos que lo que se hace es considerar las variables temporales como si fueran universales de cara a las existenciales, y existenciales de cara a las universales (si aplic´aramos la f´ormula anterior).

2

Demostraci´

on constructiva de que SAT ∈ P

Una manera que tenemos de corroborar la existencia de la estructura consiste en comprobar que s´ı existe un c´odigo escrito en Python basado en operar sobre una cantidad cuadr´atica de matrices con respecto al n´umero de cl´ausulas (sa-biendo que las dimensiones de las matrices lo establece el n´umero de literales en cada cl´ausula) a trav´es dos bucles anidados. Eso quiere decir que tanto la O grande como la o peque˜na coincidir´an, pues se trata de operaciones recursivas primitivas. Tanto este c´odigo como el que satisface f´ormulas cuantificadas est´an compartidos en Internet.

M´as all´a de la existencia de un c´odigo que nos justifica teoremas escrito en Python, o que nos da soluciones a cualquier expresi´on booleana, en esta secci´on procederemos a mostrar los mecanismos que se usan para sostener que cualquier f´ormula booleana puede expresarse dentro del formato que se exige para su resoluci´on matricial.

Empezaremos definiendo qu´e es una f´ormula booleana: consiste en una f´ormula algebraica negada o no y formada por productos de f´ormulas booleanas o por variables que pueden tomar el valor de 0 o 1. Con el fin de mejorar la ex-presividad l´ogica, diremos que estas variables son llamadas variables booleanas,

(7)

expresaremos la existencia de la suma l´ogica con el operador or (∨) , que de-vuelve 1 cuando alguno de sus operandos es 1, y 0 en caso contrario. Mientras que el producto l´ogico ser´a expresado con el operador and (∧), que coincide con el producto aritm´etico. Por otro lado la negaci´on se calcular´a con el operador not (¬), que devuelve el valor an´alogo. Tambi´en se aprovecha la definici´on de literal: que es ya sea una variablea booleana o su negada. Una f´ormula bien formada estar´a formada por el producto o suma de dos f´ormulas bien formadas. Una f´ormula bien formada puede ser la negaci´on de otra f´ormula bien formada o bien una variable booleana. Esta aritm´etica se sabe que es tan potente como la l´ogica simb´olica, donde los conectores implicaci´on, co-implicaci´on y xor pueden ser expresados en t´erminos de aritm´etica booleana f´acilmente.

Para conseguir el objeto de determinar qu´e valores deben tomar las vari-ables para que la f´ormula resultante se satisfaga (devuelva 1), o si no es posible encontrar tal asignaci´on, se debe presentar un nuevo operador que simplifique toda la gesti´on.

Para ello definimos un nuevo operador l´ogico, al que llamaremos alternan-cia. Pero para ello haremos uso de la suma aritm´etica + y de la definici´on de sumatorioP, que a partir de dos naturales devolver´an un natural, diferente a la operaci´on or.

Definici´on 4 Alternancia es una funci´on l´ogica Bn7→ B donde

(A0| · · · |An) ⇐⇒ n

X

i=0

Ai= 1 (2)

Es decir, podemos coger como ejemplos (1|0) = 1, (0|0|1|0) = 1, (1|0|1|0) = 0 De ah´ı es f´acil de comprender y demostrar los siguientes lemas por prueba de casos:

Lema 5 Dado A F´ormula Booleana, ∀A (¬A|A) = 1

Lema 6 Dados A, B, Z1, Z2 F´ormulas Booleanas, ∀A, B ∃Z1, Z2

(¬A|Z1|A ∧ B) ∧ (¬B|Z2|A ∧ B) ∧ (Z1|Z2|A = B) = 1

Los anteriores lemas nos sirven para poder convertir cualquier f´ormula bien for-mada en un producto de alternancias de hasta tres variables. Es decir que medi-ante productos de la forma (A|B|C) ya podemos representar cualquier f´ormula bien formada, sabiendo que (A|B|0) = (A|B). De ah´ı ya definimos una f´ormula como un producto de cl´ausulas de este tipo:

Definici´on 7 Una conjunci´on de cl´ausulas de alternancias AI de una F´ormula

Booleana f es una correspondencia Bn7→ B que es verdad si todas las cl´ausulas

AI son verdad. Adem´as distinguimos la AI

k como la variable booleana k-´esima

dentro de la alternancia I. f =^ I AI = (A00| · · · |A0 n) ∧ · · · ∧ (A M 0 | · · · |A M t ) (3)

(8)

Es decir, la notaci´on escogida establece el siguiente principio: si tenemos que AIi = 1, significar´a que estamos atribuyendo que es verdad la variable booleana que se ubica en la posici´on i-´esima alternando dentro de la cl´ausula que se ubica en la posici´on I-´esima multiplicando dentro de la f´ormula y, adem´as, ello implicar´a que el resto de las variables boolenas dentro de la cl´ausula I ser´an falsas (∀k 6= i : AI

k = 0).

Sin embargo, necesitamos un operador de asignaci´on, es inc´omodo ir definiendo una trinca de la manera AI

i = 1 y, considerando el bucle que resolver´a el

algo-ritmo, se define el operador σ de la siguiente manera:

Definici´on 8 Dada una conjunci´on de cl´ausulas de alternancias AI de una

F´ormula Booleana f , la asignaci´on σℵ I Ji j devuelve 1 si f se satisface al

asig-narle 1 a la i-´esima variable de la cl´ausula I y a la j-´esima variables de la cl´ausula J en f . σℵ I J i j  = f ∧ AIi ∧ AJj (4)

N´otese cuando se expresa σ I Ji j lo que hacemos es seleccionar una soluci´on para eliminar dos cl´ausulas de la f´ormula. As´ı que cuando esto es coherente el sub´ındice ℵ se hace irrelevante, esto es debido a que m´as adelante usaremos este ´ındice como variante del bucle. Sin ir m´as lejos, al par I, J le daremos como tratamiento de una matriz y, si tomamos en cuenta una valoraci´on en un tiempo t resultar´a, por las definiciones anteriores que:

Definici´on 9 Dada una conjunci´on de cl´ausulas de alternancias AI de una

F´ormula Booleana f , si para alg´un t: ∃I, J con AI y AJ cl´ausulas de f de

manera que ∀i, j : σt I Ji j = 0 entonces f no se satisface en t.

Mediante un algoritmo adecuado, el hecho de que la f´ormula no pueda satisfac-erse en la iteraci´on t implicar´a que la f´ormula es inconsistente.

Con el fin de entender mejor la definici´on de asignaci´on, podemos extender un poco la notaci´on a m´as cl´ausulas:

Definici´on 10 Dada una conjunci´on de cl´ausulas de alternancias AI de una

F´ormula Booleana f en alg´un t, ∀K1, · · · , Kn donde AKi son n cl´ausulas de f

σt K1 · · · Kn k1 · · · kn  ⇐⇒ f ∧^ i AKi ki

Esto significa que si t alcanza ℵ y las cl´ausulas son todas las de f entonces tendremos representados en los kiuna soluci´on cercana a la asignaci´on necesaria

para satisfacer f . Si en alg´un t resultara que la asignaci´on se hace 0 entonces para t mayores seguir´a valiendo 0.

Ahora veamos c´omo se combinan dos matrices para formar una asignaci´on de m´as cl´ausulas:

Lema 11 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula

Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas

(9)

∀i, j, k : σt I J K i j k  ⇐⇒ σt I J i j  ∧ σt I K i k 

Gracias a este principio podremos asegurar que las matrices son suficientes para representar soluciones que incorporen m´as cl´ausulas y, por tanto, cuando tengamos la siguiente afirmaci´on: σ I J Ki j k = 1, se deduce necesariamente que σ I Ji j ∧ σ I K

i k ∧ σ J K

j k



= 1. Mientras que si, por otro lado, se diera que σ I J Ki j k = 0, es porque alguna de las tres asignaciones debe ser 0. Now then:

Lema 12 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas

de f satisfacible por una ´unica soluci´on, se cumple la siguiente propiedad tran-sitiva: ∀i, j, k : σt I J i j  ∧ σt I K i k  =⇒ σt J K j k 

Este enunciado hace f´acil mantener el siguiente corolario:

Lema 13 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula

Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas

de f satisfacible por una ´unica soluci´on:

∀i, j, k : σt I J i j  + σt I K i k  + σt J K j k  6= 2

Esta afirmaci´on es fundamental porque si comprobamos que la suma de esas tres asignaciones es 2 entonces eso debe ser o porque es inconsistente (sabiendo que el bucle se encarga de asegurarnos de que no lo es hasta el paso t) o tiene m´as de una soluci´on, la cual en este nudo es donde quedar´ıan enmara˜nadas para determinar siquiera si en un paso t0> t la f´ormula podr´ıa ser no satisfacible. Lema 14 Dada una conjunci´on de cl´ausulas de alternancias AI de una F´ormula

Booleana f en alg´un t, ∀I, J, K donde I > J > K con AI, AJ y AK cl´ausulas de f ∀i, j : σt I J i j  =_ k σt I K i k  ∧ σt J K j k 

Proof. Dado que σ I Ji j = f ∧ AI

i∧ AJj, para cada cl´ausula K de la f´ormula f ,

el considerar σ I Ji j como parte de las soluciones de f implica que debe haber alg´un literal k para el que se cumpla σ I J Ki j k = 1, lo cual encaja con lo que dice el lema. Por otro lado, si σ I Ji j = 0, entonces σ I J K

i j k = 0, para cualquier

k, por lo que tambi´en se confirma el lema.

A partir de este lema deducimos el siguiente corolario:

Lema 15 Dados t0 y t con t0 > t ´ındices de σ, que son asignaciones de una conjunci´on de alternancias f , donde ∀I, J, i, j

(10)

σt0 I J i j  = σt I J i j  ∧^ K _ k σt I K i k  ∧ σt J K j k  (5)

Esto significa que si se asegurara que σta´un es satisfacible, entonces σt0tambi´en

lo debe ser. Sin ir m´as lejos, ´este ser´a nuestro invariante de bucle; as´ı que s´olo hay que dise˜nar en nuestro algoritmo el estado inicial de cada una de las matrices; este estado consistir´a en evaluar si encarando dos cl´ausulas hay en ellas dos menciones a la misma variable; para as´ı poner como sub´ındice t = 2 para decir que la f´ormula sigue siendo consistente hasta evaluar 2 cl´ausulas. Por tanto:

σ2 I J i j  = ¬∃k : AIk= AIi ∧ i 6= k ∨ AJ k = A J j ∧ j 6= k (6) σt+1 I J i j  = σt I J i j  ∧^ K _ k σt I K i k  ∧ σt J K j k  (7)

Definici´on 16 Se define el siguiente algoritmo para las AI cl´ausulas de la f´ormula: ( σ2 I Ji j = ¬∃k : AIk = A I i |i6=k∨AJk = A J j |j6=k σt+1 I Ji j = σt I Ji j ∧ VK W kσt I Ki k ∧ σt J Kj k  (8)

Lema 17 Dado un σtdefinido por el algoritmo anterior para el periodo t y dado

σℵ soluciones de f , que es conjunci´on de n alternancias, entonces σn= σℵ

Proof. a) Si la f´ormula f tuviera dos cl´ausulas la demostraci´on ser´ıa trivial. b) Si la f´ormula no se satisfaciera, entonces habr´a alg´un I, K donde en alg´un momento t de la iteraci´on: W

kσt I K

i k = 0, por lo que para cualquier n ≥ t

seguir´a manteni´endose la asignacion, de ah´ı σt= σ.

c) Si la f´ormula se satisface, para cada iteraci´on t vemos que en alg´un I, J, K se calcula: R = σt I Ji j + σt I Ki k + σt J Kj k.

c1) Si R < 2, entonces i, j, k no puede ser soluci´on.

c2) Si R = 3, entonces i, j, k es parte de la soluci´on si se trata de una soluci´on ´

unica en toda la f´ormula.

c3) Si R = 2, entonces el n´umero de soluciones ni es 0 si es 1, y tenemos datos enmara˜nados. Esto significa que debemos cancelar una de las asignaciones σt I Ki k o σt J Kj k haciendo que pase de valer 1 a valer 0, as´ı eliminamos una

soluci´on de f para hacer que el resultado colapse iterativamente hacia una ´unica soluci´on. Por lo que si el algoritmo se recalcula para el momento t con esta cancelaci´on entonces al menos en este punto no se dar´a el caso R = 2.

(d) No hay otros casos posibles.

Adem´as, es f´acil de deducir que el algoritmo trabaja bajo una complejidad cuatr´atica en el tiempo, siendo n el n´umero de cl´ausulas de f , por lo que con un sistema que es cuadr´atico en el espacio s´olo es necesario un tiempo c´ubico para deducir la satisfacci´on de f , mientras que un tiempo O(n4) cuando queremos

colapsar todas las soluciones a un caso particular. De ah´ı se deduce que SAT ∈ P .

(11)

3

Anexos

Se puede encontrar c´odigo testeable en Python que encuentra soluciones a cualquier f´ormula bien formada mediante el operador de alternancias en la di-recci´on:

https://archive.org/details/alternancias,

as´ımismo se encuentra todo compilado con aplicaciones para evaluar expre-siones QBF en la direcci´on:

https://archive.org/details/TQBFInP 201802.

• Lema 12

Proof. Dada la soluci´on S = σ K1··· Kn

k1··· kn then ∀I, J, K, i, j, k tenemos las

sigu-ientes posibilidades:

a) Si el par (I, i) no corresponde con S entonces el lema se satisface porque 0 → 1.

b) Si el par (J, j) o el par (K, k) no corresponde con S entonces se satisface porque 0 → 0.

c) Si corresponden con S tanto (I, i) = (Kx, kx), as´ı como (J, j) = (Ky, ky)

y (K, k) = (Kz, kz) entonces tambi´en se cumple porque 1 → 1.

d) No hay m´as posibilidades. • Lema 2 Proof (A = x) ∧( A = y) → ( A = x ∨ y) 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 • Lema 3 ∀xi, ∀yi, ∃Ai, ∃Bi: V iAi∧Vixi→WiBi∨Wiyi ⇐⇒ W i(Ai= 0) ∨Wi,j(Ai = ¬xj) ∨Wi,j(Ai= yj)∨ ∨W

i(Bi= 1) ∨Wi,j(Bi= xj) ∨Wi,j(Bi= ¬yj)

Proof           

∃i : Ai= 0 → (T rue ⇐⇒ T rue)

∀i : Ai= 1 ∧ ∃i : Bi= 1 → (T rue ⇐⇒ T rue)

∀i : Ai= 1 ∧ ∀i : Bi= 0 ∧ ∃j : xj= 0 → (T rue ⇐⇒ T rue)

∀i : Ai= 1 ∧ ∀i : Bi= 0 ∧ ∀j : xj= 1 ∧ ∃j : yj= 1 → (T rue ⇐⇒ T rue)

Referencias

Documento similar

Por otra parte, para comparar los diferentes m´etodos, consideramos tambi´en el concep- to de ´ındice de eficiencia (ver [3]) definido como p 1/d , donde p es el orden de convergencia

Como Coopeuch renovamos nuestro compromiso con mejorar la calidad de vida de todos nuestros socios, tratando siempre de aportar al desarrollo de Chile y continuaremos mostrando

c) Probabilidad de que esté de baja más de 20 días y pertenezca al sector B d) Probabilidad de que esté de baja más de 20 días o que pertenezca al sector B e) Dado que pertenece

La herramienta m´ as sencilla para domar al infinito es, probablemente, la inducci´ on matem´ atica , que consiste en llegar al infinito pasito a pasito, como en un efecto domin´

Preliminares Los procesos infinitos y sus paradojas ¿Cu´ antos infinitos hay?. ¿C´ omo se miden

cada recubrimiento tiene infinitos rect´ angulos, hay infinitos recubrimientos, por lo que tomar la mejor medici´ on requiere un proceso infinito.. Preliminares Los procesos infinitos

Lomo de salmón glaseado al mango y asado al horno de carbón, servido con un topping de pico de gallo y mango fresco, una guarnición de ensalada mézclum y verdura asada de

Por ello, y habida cuenta que la reserva puede implicar la suspensión, modificación o re- vocación de un acto de apertura de la cosa al uso público y, en todo caso, la denegación