Está en la página 1de 13

LGICA MATEMTICA

1 Lgica matemtica.
1.1 Conceptos bsicos.
1.2 Resolucin y unificacin. Mtodos.

Lgica matemtica.
Dado que el Lenguaje Natural, aunque es potente, resulta muy ambiguo, nos interesa
encontrar un lenguaje ms sencillo, sin ambigedades que nos permita realizar
razonamientos y generalizaciones. Por ello, es necesario introducirnos en la formalizacin
del Clculo Proposicional, que, aunque no cuenta con toda la potencia necesaria para
describir el mundo, es vlido como primera aproximacin. Tambin veremos algunos
conceptos del Clculo de Predicados y, por supuesto, nos centraremos en definir y ver
cmo funciona el Mtodo de Resolucin.
[NDICE]
Conceptos bsicos.
Para comprender los principios de la lgica matemtica en el campo del Clculo
Proposicional, necesitamos conocer una serie de conceptos bsicos que se describen a
continuacin:
- tomo: Tambin llamado Frmula Atmica o Enunciado Simple. Permite la
formalizacin de una frase declarativa que no se puede descomponer en frases ms
simples. Para denotar tomos se utilizan las letras p, q, r, etc.
- Conectiva: Operador que permite construir sentencias compuestas a partir de
tomos. Las principales conectivas lgicas son: , . , v , .
- Enunciado: Tambin llamado Frmula. Es una expresin realizada con tomos y
conectivas lgicas, siguiendo unas determinadas normas. Para denotar enunciados
se utilizan las letras A, B, C, etc.
- Deduccin: Consiste en una lista de enunciados que, o bien son dados previamente,
en este caso se llaman Premisas, o bien se han obtenido de enunciados anteriores
mediante la utilizacin de un conjunto finito de reglas denominadas Reglas de
Inferencia.
Dada una serie de premisas, a travs de las reglas de inferencia, podemos llegar a un
enunciado que podemos denominar enunciado Conclusin. El conjunto de pasos para llegar
a este enunciado a partir de las premisas usando dichas reglas de inferencia, compone un
algoritmo general que permite automatizar el proceso de demostracin. De esta forma,
obtenemos un demostrador automtico de teoremas que es, justamente, en lo que consiste la
mquina PROLOG.
Aunque mediante la Lgica Proposicional podemos describir muchas situaciones, existen
otras imposibles de representar. Necesitamos introducirnos, adems, en la Lgica de
Predicados. Podemos considerar la Lgica Proposicional como un subconjunto de la
Lgica de Predicados o de Primer Orden. Por tanto, a las definiciones anteriores, hemos de
aadir otras nuevas que nos permitan comprender los mtodos que se explicarn en
apartados posteriores.
- Smbolos: Existen varios tipos:
- Individuales o Constantes: Representan valores concretos. C={a, b, c, d, e}.
- Variables: Se pueden sustituir por constantes. V={x, y, z, v, w}.
- Funciones: Aplicacin que asocia una serie de constantes con otra constante. F={f,
g, h}.
- Predicados: Funcin de resultado Verdadero o Falso. Pred={P, Q, R}.
- Relaciones: Representan relaciones o cuantificaciones. Rel={. , v , , , , ,
- }
- Signos de puntuacin: Permiten agrupar o separar otros smbolos. Pun={(, ), ,, [, ]}
- Trminos: Se pueden definir de varias maneras. A continuacin se exponen las
distintas formas de definicin de trminos:
- Una constante: a, c.
- Una variable: x, z.
- Si f es un smbolo de funcin y t
1
, t
2
,..., t
n
son trminos, entonces f (t
1
, t
2
,,..., t
n
) es un
trmino, por ejemplo g(a, f(x)).
- Frmulas: Se definen como:
- Si R es un smbolo de relacin y t
1
, t
2
,..., t
n
son trminos, entonces R (t
1
, t
2
,,..., t
n
) es
una frmula.
Ejemplo:
f(a, x) . g(x), x (g(x) v a) [f(a, v) . P(b
v c)]

- Si A y B son dos frmulas y R es un smbolo de relacin, entonces R(A, B) tambin
es una frmula.
Ejemplo:
[ x (g(x) v a) (f(a, v) . P(b v c))] v (f(a, x) .
g(z))

- Sentencias: Se definen como frmulas en las que ninguna de las variables que la
componen tiene una o ms ocurrencias libres, o sea, todas las variables de la
frmula son ligadas. Es necesario que definamos, por tanto, lo que son variables
libres y ligadas.
o Una ocurrencia de una variable x es ligada en una frmula si y slo si se da
una de las siguientes condiciones:
1. La variable x est inmediatamente despus de un smbolo - .
2. La variable x est en el radio de accin de un cuantificador x - x.
- El radio de accin de un cuantificador en una frmula abarca al trmino
inmediatamente siguiente, hacindose imprescindible el uso de parntesis para
aumentar su radio de accin.
Ejemplos:
x (f(x) v g(z)). El cuantificador abarca a f(x) y g(z).
x h(x) v f(a, v, x). El cuantificador abarca slo a h(x).

- Una variable es libre en una frmula si no tiene ninguna ocurrencia ligada en la
misma. En el siguiente ejemplo, la variables v es libre, puesto que no tiene ninguna
ocurrencia ligada. Sin embargo, la x presenta una ocurrencia ligada, ya que g(x) cae
dentro del radio de accin del cuantificador x.
Ejemplo:
x [P(g(x)) v R(a)] [f(a, v) . Q(b v c)]

- Sustituciones: Dado el conjunto de variables V y el conjunto de trminos Term, una
sustitucin se define como la aplicacin que se muestra en la Ec 1 y se suele denotar
como s={x
1
/t
1
,...,x
n
/t
n
}. De dicha definicin podemos concluir dos cosas:
- Slo son vlidas aquellas sustituciones que transforman una variable en una
constante, en otra variable o en una funcin, es decir, en trminos.
- La sustitucin de una variable afecta a todas las ocurrencias de la misma.

Ec 1
[NDICE]
Resolucin y unificacin. Mtodos.
La Deduccin Natural consiste en un sistema de reglas de inferencia que permite construir
deducciones, es decir, a partir de "algo" podemos deducir o "llegar a" "otra cosa", hasta que
encontramos una conclusin. Se trata de un mtodo puramente sintctico donde slo nos
ocupamos de la manipulacin de smbolos. Es un mtodo interesante para construir
demostraciones, sin embargo es difcilmente mecanizable.
Por otro lado, como hemos visto, es fcil representar hechos del mundo real mediante la
lgica proposicional y mediante la lgica de predicados. Adems mediante la lgica de
predicados podemos representar el conocimiento que tenemos sobre un cierto mundo finito
ponindolo en forma de sentencias y disponemos de un mecanismo para razonar con ese
conocimiento. Sin embargo, lo que para el ser humano resulta trivial, deducir una sentencia
a partir de otra, para la mquina puede llegar a ser computacionalmente muy costoso e,
incluso, inviable. Los estudios, por tanto, se han centrado en conseguir un mtodo de
demostracin que se puede ejecutar en un tiempo finito, y que en dicho tiempo, de forma
eficiente, nos proporcione una solucin acertada.
El Mtodo de Resolucin [Robinson, 1965], es un intento de mecanizar el proceso de
deduccin natural de esa forma eficiente. Las demostraciones se consiguen utilizando el
mtodo refutativo (reduccin al absurdo), es decir lo que intentamos es encontrar
contradicciones. Para probar una sentencia nos basta con demostrar que su negacin nos
lleva a una contradiccin con las sentencias conocidas (es insatisfactible). Si la negacin de
una sentencia entra en contradiccin con los hechos de nuestra base de conocimiento es
porque lo contrario, es decir, la sentencia original era verdadera y se puede deducir
lgicamente de las sentencias que componen dicha base de conocimientos.
Existen distintas Estrategias de Resolucin: sistemtica, con conjunto soporte, unitaria,
primaria y lineal.
En este apartado formularemos detalladamente el mtodo de Resolucin por Refutacin
Lineal. Para ello, es necesario conocer el proceso de conversin a forma clausal, ya que las
clusulas con las que se trabaja en esta tcnica deben tener una forma especfica. Por otro
lado, hemos de definir tambin el proceso o algoritmo de Unificacin, paso imprescindible
en este mtodo de Resolucin.
[NDICE]
Conversin a forma clausal.
El proceso de conversin a forma clausal consiste en transformar las sentencias y frmulas
en clusulas, cuya principal caracterstica, al nivel de representacin, es la ausencia casi
total de smbolos de relacin. En una clusula slo aparecern disyunciones "v ".
De esta manera, el primer paso ser transformar todas las sentencias a una forma cannica
llamada forma normal conjuntiva [Davis y Putnam, 1960], a partir de la cual obtendremos
el conjunto de clusulas. As, podemos definir una clusula, ms formalmente, como una
frmula en forma normalizada conjuntiva que no tiene ninguna conectiva. Esta
transformacin la vamos a realizar en varios pasos:
1. Primero pasaremos las sentencias a Forma Normal Prenexa.
2. En el siguiente paso las transformaremos a Funciones de Skolem.
3. Finalmente llegaremos a una representacin en Forma de Clusulas.
[NDICE]
Forma Prenexa
Una frmula est en Forma Normal Prenexa si es de la forma: Q
1
x
1
...Q
n
x
n
Y donde Y es una
frmula desprovista de cuantificadores y escrita como conjuncin de disyunciones, Q
1,
...,Q
n

e { , - } y x
1
,..., x
n
son variables.
Ejemplos:
x y - z v [(R(x) v T(y)) . Q(v, z)]
x - y (R(x, y) . Q(b, z))
x P(x, y)

Tenemos nuestro conocimiento en forma de sentencias, formadas por smbolos de relacin,
variables, constantes, cuantificadores, todos mezclados. Para transformar una frmula a
Forma Normal Prenexa seguiremos el siguiente algoritmo:
- Eliminar todos los smbolos de equivalencia ( ), sustituyndolos por una
implicacin a la derecha y una implicacin a la izquierda: P Q = (P Q) . (Q
P)
- Eliminar todas las implicaciones ( ), sabiendo que (a b) es equivalente a ( a
v b).
- Reducir el mbito de las negaciones ( ), a un nico trmino, usando las siguientes
propiedades:
- ( p)=p
- Leyes de Morgan: (a v b)= a . b y (a . b)= a v b
- x P(x) = - x P(x)
- - x P(x) = x P(x)
- Normalizar las variables de los cuantificadores, de forma que cada uno est ligado
con una nica variable. Para ello podemos, incluso, renombrar las variables.
Ejemplos:
x P(x) v x Q(x) y P(y) v x Q(x)
x [P(x) v Q(x)] . y R(y) v Q(x) z [P(z) v Q(z)] . y R(y)
v Q(x)

- Mover todos los cuantificadores a la izquierda de la frmula sin cambiar su orden
relativo.
Ejemplos:
x P(x) v x Q(x)
y x [P(y) v Q(x)]
( x R(x) v y T(y)) . - z v Q(v v z)
x y - z v [(R(x) v T(y)) . Q(v v z)]

[NDICE]
Funciones de Skolem
El siguiente paso es convertir las frmulas de Forma Normal Prenexa a Frmulas de
Skolem, que se caracterizan por no estar cuantificadas existencialmente. Por tanto, el
algoritmo de transformacin a forma de Skolem elimina los cuantificadores existenciales.
Partimos de una frmula: Q
1
x
1
...Q
n
x
n
Y. Se recorre la frmula en forma prenexa de izquierda
a derecha y se eliminan los cuantificadores existenciales segn los dos casos siguientes:
- Sea Q
r
un cuantificador existencial:
- Si no hay ningn cuantificador universal antes de Q
r
x
r
, elegir una nueva constante c
distinta de todas las que aparecen en Y, y reemplazar cada ocurrencia de x
r
en Y por
c. Borrar Q
r
x
r
del prefijo de la frmula.
- Si Q
s1
, Q
s2
,, Q
sk
son los cuantificadores universales que aparecen antes de Q
r
x
r
,
tomar un nuevo smbolo de funcin f distinto a todos los que aparecen en Y y
reemplazar cada ocurrencia de x
r
por f(x
s1
,x
s2
,...,x
sk
). Borrar Q
r
x
r
del prefijo de la
frmula.
Ejemplos:
1. Supongamos que tenemos:
x y - z [(R(x) v P(y)) . Q(b, z)]
nos queda como
x y [(R(x) v P(y)) . Q(b, f(x, y))]

2. Supongamos la siguiente sentencia:
- x y - w [R(a, w) v P(y) v P(f(x))]
sustituimos x por c (caso 1): y - w [R(a, w) v P(y) v
P(f(c))]
sustituimos w por g(y) (caso 2): y [R(a, g(y)) v P(y) v
P(f(c))]

- Representacin en forma de clusulas: El ltimo paso ser convertir las funciones
de Skolem a clusulas. Tenemos las frmulas cuantificadas universalmente,
entonces podemos eliminar todos los prefijos, de tal manera que la frmula
resultante est en forma de conjuncin de disyunciones (forma normal conjuntiva):
(a v b v c) . (d v e) . (j v l v m). Finalmente, por cada conjuncin obtenemos una
clusula: (a v b v c), (d v e) y (j v l v m).
Todos los pasos que hemos visto podemos resumirlos en el siguiente algoritmo, que es
justamente el algoritmo general de conversin a forma clausal:
1. Convertir la frmula a Forma Normal Prenexa.
2. Transformarla a Forma de Skolem.
3. Pasar a Forma Normal Conjuntiva.
4. Separar cada conjuncin en una clusula.
Ejemplo:
Vamos a partir de la sentencia:
x [(R(x) v C(x, a)) . [O(x, b) v (- y(- z O(y, z) L(x,y)))]]
Paso 1: Eliminamos los smbolos de implicacin:
x [(R(x) v C(x, a)) . [O(x, b) v (- y( - z O(y, z) v L(x,y)))]]
Paso 2: Reducimos el mbito de las negaciones:
x [(R(x) v C(x, a)) . [O(x, b) v (- y( z O(y, z) v L(x,y)))]]
Paso 3: En este caso no es necesario normalizar las variables de los cuantificadores por lo tanto
pasamos al paso siguiente
Paso 4: Movemos los cuantificadores a la izquierda:
x - y z [(R(x) v C(x, a)) . (O(x, b) v ( O(y, z) v L(x,y)))]
Paso 5: Eliminamos los cuantificadores existenciales:
x z [(R(x) v C(x, a)) . (O(x, b) v ( O(s(x), z) v L(x, s(x))))]
Paso 6: Eliminamos todos los cuantificadores: [(R(x) v C(x, a)) . (O(x, b) v ( O(s(x), z) v L(x,
s(x))))]
Paso 7: Separar una clusula por cada conjuncin:
(R(x) v C(x, a))
(O(x, b) v ( O(s(x), z) v L(x, s(x))))
[NDICE]
Algoritmo de Unificacin.
Podemos definir la Unificacin como un procedimiento de emparejamiento que compara
dos literales y descubre si existe un conjunto de sustituciones que los haga idnticos. La
idea bsica de la unificacin es muy sencilla. Para unificar dos literales vamos
recorrindolos de izquierda a derecha. En primer lugar se comprueba si los predicados
coinciden. Si es as, seguimos adelante; si no es que no son unificables. Si el predicado
concuerda, comenzamos a comparar los argumentos. Si el primero de ellos coincide en
ambos literales, continuamos con el siguiente... y as hasta completar todos los argumentos.
Como resulta obvio, ambos literales deben tener el mismo nmero de argumentos.
Para conseguir que cada argumento de un literal sea coincidente con su homlogo en el otro
literal, debemos buscar una sustitucin que nos permita emparejarlos. La nica condicin
que debe reunir esta sustitucin es que ha de aplicarse a todo el literal, es decir, que la
sustitucin afecta a todo el literal, y no slo al argumento en cuestin. Por decirlo de una
manera sencilla, las sustituciones se van arrastrando a lo largo del proceso de unificacin.
Ejemplo:
Vamos a unificar P(x, x) con P(y, z):
- Primera sustitucin: (y/x)
Resultado: P(y, y) P(y, z)
- Segunda sustitucin: (z/y)
Resultado: P(z, z) P (z, z)
La sustitucin resultante es la composicin de las sustituciones: s = { z/y , y/x}

Describamos a continuacin los pasos bsicos del algoritmo de unificacin:
Tomamos como entrada dos clusulas, R y S.
1. Si R = S entonces R y S son unificables.
2. Si no, localizar el smbolo ms a la izquierda de R que se diferencia de su
homlogo en S
1. Si es el primero (predicado), entonces R y S no son unificables.
2. Si es uno de los argumentos, entonces sean t
1
, t
2
los trminos en los que
difieren.
1. Si ninguno de los dos (t
1
, t
2
) es una variable, entonces las clusulas
no son unificables. Tampoco lo sern si siendo uno de ellos una
variable, est presente en las variables del otro.
2. Si t
1
es una variable x y no est entre las variables del otro t
2
,
entonces haremos la sustitucin: s = {x/t
2
}
3. Volver al paso 1.
A partir del algoritmo de unificacin podemos extraer las siguientes conclusiones:
a. Podemos sealar como unificables todas aquellas clusulas que no coincidan en su
predicado y nmero de argumentos.
b. Antes de intentar la unificacin debemos asegurarnos que no existen variables
comunes en ambas clusulas.
c. Debemos recordar siempre las condiciones que debe reunir una sustitucin y que
sta debe ser nica.
Ejemplo:
Unificacin de las sentencias R (x, f(g(x)), a) y R (b, y, z)
Trminos desiguales Sustitucin Resultado

t1 = x t2 = b x/b - R(b, f(g(b)), a) , R(b, y, z)

t1 = f(g(b)) t2 = y y/f(g(b)) - R(b, f(g(b)), a), R(b, f(g(b)), z)

t1 = a t2 = z z/a - R(b, f(g(b)), a) , R(b, f(g(b)), a)
Las dos clusulas son unificables y la sustitucin resultante es: s = { z/a , y/f(g(b)) , x/b }

Una vez que hemos comprendido como funciona el algoritmo de unificacin y cmo
debemos especificar adecuadamente las sentencias para llevar a cabo el algoritmo de
resolucin por refutacin, vamos a describir los pasos del mismo detenidamente.
[NDICE]
Algoritmo de Resolucin
El procedimiento de resolucin consiste en un proceso iterativo en el cual comparamos
(resolvemos), dos clusulas llamadas clusulas padres y producimos una nueva clusula
que se ha inferido (deducido), de ellas. Por tanto, lo que hacemos es combinar las clusulas
padres para dar lugar a una nueva clusula, en la que podemos simplificar alguno de sus
trminos.
Por ejemplo, supongamos que tenemos las clusulas siguientes (ambas verdaderas):
- invierno v verano (es invierno o es verano).
- invierno v fro (hace fro o no es invierno).
Aplicando resolucin, podemos combinar ambas clusulas y obtener:
- invierno v verano v invierno v fro.
Ahora podemos hacer una simplificacin, ya que (invierno . invierno) es una tautologa,
con lo que nos queda:
- verano v fro (es verano o hace fro).
Que tambin deber ser verdadera, pues hemos seguido puntualmente todas las propiedades
de la lgica de primer orden.
La resolucin opera tomando dos clusulas tales que cada una contenga un mismo literal,
en una clusula en forma positiva y en la otra en forma negativa. El resolvente se obtiene
combinando todos los literales de las clusulas padres y eliminando aquellos que se
cancelan.
Si la clusula resultante es la clusula vaca (), entonces es que hemos llegado a una
contradiccin.
Como observamos el proceso de resolucin parece sencillo. Podemos resumirlo
formalmente en los pasos siguientes, basados en el algoritmo de resolucin lineal:
Vamos a partir de un conjunto de clusulas. Nuestro objetivo es probar una sentencia
mediante la demostracin de que su negacin nos lleva a una contradiccin con las
sentencias conocidas (es insatisfacible):
1. Convertimos todas las proposiciones a forma clausal.
2. Negamos la proposicin que queremos demostrar y convertimos el resultado a
forma clausal aadiendo la clusula resultante al conjunto obtenido en el paso
anterior.
3. Hasta que se encuentre una contradiccin o no se pueda seguir avanzando,
repetimos lo siguiente:
1. Seleccionamos dos clusulas (clusulas padres) que contengan un literal
comn pero con signos contrarios y unificamos esos dos literales.
2. Las resolvemos juntas. La clusula resultante llamada resolvente, ser la
disyuncin de los literales de las dos clusulas padres, una vez realizadas
las sustituciones apropiadas. El par de literales L y L, que provienen de
cada una de las clusulas padres, se pueden eliminar de la resolvente.
3. Si la resolvente es la clusula vaca, es que se ha encontrado una
contradiccin. Si no, aadimos la resolvente al conjunto de clusulas
disponibles.
El algoritmo que acabamos de ver est definido de una forma muy general. Sin embargo,
para su uso cotidiano se pueden hacer una serie de sugerencias que, si bien en la mayora de
los casos no estn basadas en aserciones infalibles, pueden facilitar el proceso general de
resolucin:
- Aunque no sea un criterio estricto, suele dar buenos resultados comenzar a resolver
por las clusulas de mayor tamao, es decir, las que poseen mayor nmero de
literales.
- La clusula resolvente se aade al conjunto de clusulas disponible y, en teora, se
puede continuar el proceso tomando dos clusulas padre cualesquiera. Sin embargo,
al igual que en el caso anterior, suele dar buen resultado continuar el proceso de
resolucin a partir de la nueva clusula resultante.
- De igual forma, aunque no existe ninguna limitacin en cuanto al nmero de veces
que se puede usar una clusula para resolver, se recomienda probar primero a no
usar dos veces la misma clusula antes de usar todas las clusulas disponibles.
- Si es posible llegar a la clusula vaca resolviendo nicamente con las clusulas del
conjunto inicial sin usar en ningn momento la o las clusulas provenientes de la
hiptesis, es porque existe una inconsistencia dentro del conjunto inicial de
clusulas. sta puede ser una forma de detectar errores en el diseo de la base de
conocimiento.
- Si en la clusula resolvente existen dos literales iguales, sta se puede simplificar
eliminando uno de los dos literales. Puede ser necesaria una sustitucin previa a fin
de que esos literales sean unificables y, por tanto, completamente iguales.
- No es necesario usar todas las clusulas en el proceso de resolucin. En la mayora
de los casos basta con usar algunas de las clusulas de la base de conocimiento y
alguna o algunas de las clusulas proveniente de la hiptesis.
Ejemplo:
A partir de la base de conocimiento siguiente, compuesta por 5 clusulas, aplicar
resolucin para demostrar que la hiptesis V(z) es cierta:
P(x) v Q(c, x) v S(y, x) y P(a) v R(z) v S(b, a) y Q(z, a) v V(a) y R(x) v V(y) y
P(y) v Q(x, y)
Ya tenemos las proposiciones en forma de clusulas, luego slo nos falta agregar la
hiptesis, transformarla en clusula y aadirla al conjunto de sentencias anterior:
V(z) negada nos queda V(z). (Como vemos est en forma de clusula).
Dado que las sustituciones afectan a todas las ocurrencias de la variable que se pretende
sustituir en toda la base de conocimientos, si queremos que dicha sustitucin afecte a
muchas ocurrencias de una variable podemos intentar renombrarlas. Pero para evitar
tener todas las variables renombradas y, por tanto, evitar la complicacin del
procedimiento, estableceremos un uso especial de las sustituciones. Slo afectarn a las
clusulas padres en el momento de la resolucin, y a la clusula resolvente, quedando el
resto inalteradas.
Comenzamos el proceso por las clusulas de mayor tamao:
P(x) v Q(c, x) v S(y, x) y P(a) v R(z) v S(b, a) con la sustitucin o = {y/b, x/a} nos
queda:
P(x) v Q(c, x) v S(y, x) v P(a) v R(z) v S(b, a) = P(a) v Q(c, a) v R(z).
Combinamos la resolvente con P(y) v Q(x, y) con la sustitucin o = {y/a} nos queda:
P(a) v Q(c, a) v R(z) v P(y) v Q(x, y) = Q(c, a) v R(z) v Q(x, a).
Aplicamos a la resolvente la sustitucin o = {x/c} y nos queda:
Q(c, a) v R(z).
Combinamos la resolvente con Q(z, a) v V(a) con la sustitucin o = {z/c} nos queda:
Q(c, a) v R(z) v Q(z, a) v V(a) = R(c) v V(a).
Combinamos la resolvente con R(x) v V(y) con la sustitucin o = {x/c} nos queda:
R(c) v V(a) v R(x) v V(y) = V(a) v V(y).
Aplicamos la sustitucin o = {y/a} y nos queda V(a) que podemos combinar con V(z)
obteniendo la clusula vaca.

También podría gustarte