Sunteți pe pagina 1din 5

Orgenes

La Programacin Lgica tiene sus orgenes ms cercanos en los trabajos de prueba


automtica de teoremas de los aos sesenta. J. A. Robinson propone en 1965 una regla de
inferencia a la que llama resolucin, mediante la cual la demostracin de un teorema puede
ser llevada a cabo de manera automtica.
La resolucin es una regla que se aplica sobre cierto tipo de frmulas del Clculo de
Predicados de Primer Orden, llamadas clusulas y la demostracin de teoremas bajo esta
regla de inferencia se lleva a cabo por reduccin al absurdo.
Otros trabajos importantes de esa poca que influyeron en la programacin lgica, fueron
los de Loveland , Kowalski y Green. Este ltimo, por ejemplo, disea un probador de
teoremas que extrae de la prueba, el valor de las variables para las cuales el teorema es
vlido.
Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una poca,
pero, por su ineficiencia, fueron relegados hasta el nacimiento de Prolog, que surge en 1971
en la Universidad de Marsella, Francia, en el seno de un grupo de investigacin en el
campo de la Inteligencia Artificial Colmerauer 73.
La Lgica de Primer Orden, es uno de los formalismos ms utilizados para representar
conocimiento en IA. La Lgica cuenta con un lenguaje formal mediante el cual es posible
representar frmulas llamadas axiomas, que permiten describir fragmentos del
conocimiento y, adems consta de un conjunto de reglas de inferencia que aplicadas a los
axiomas, permiten derivar nuevo conocimiento.

Resolucin en Primer Orden

Tal como en Lgica Proposicional (LP), nos interesa encontrar un algoritmo implementable
que permita hacer demostraciones de teoremas de primer orden en forma automtica.
El mtodo es bastante parecido al de resolucin de LP.
Supongamos que tenemos las siguientes dos clusulas de primer orden:
P(x)Q(y,z)R(x,(w))
y la clausula
S(y) P(u)
Observemos que:
Las variables en ambas clusulas aparecen como libres.
Buscamos encontrar una correspondencia entre resolucin y consecuencia lgica por lo
cual supondremos que todas las frmulas estn implcitamente cuantificadas
universalmente (no queremos variables libres).
Dado que la primera frmula se cumple para todo x, podramos inferir que,particular, se
cumple para un objeto cualquiera C.
Si lo mismo decimos acerca de la segunda clusula tendremos que, se cumple que:
P Q(y, z) R(C, (w))
y la clusula
S(y) P
Dada tal sustitucin, podemos utilizar la regla de resolucin que ya conocemos y generar la
siguiente clusula:
S(y) Q(y, z) R(C, (w))
Por qu?
El proceso de asignar un valor a una variable, reemplazndola en toda la forma se llama
sustitucin.
Si = {x/b, y/(a)} y es una formula, entonces corresponde a la misma formula con
todas las ocurrencias de x reemplazadas por b y todas las ocurrencias de y reemplazadas
por (a).
Formalmente, una sustitucin es una funcin parcialmente definida : Var T(S), donde
T(S) es el conjunto de trminos de un conjunto de smbolos S.
Una sustitucin que hace que dos frmulas atmicas se hagan iguales se conoce como
unificador.

Ejemplo:

La sustitucin = {x/f(A), y/g(u), z/A} es un unificador para los literales (Nota):
L
1
R(x, g(u)) L
1
R((z), y)
porque L
1
L
2
.
Nota:Tal como en LP, un literal es una frmula atmica o la negacin de una.
El sentido de igualdad () usado aqu es meramente sintctico y quiere decir que las
expresiones son iguales caracter a caracter.
Si es unificador, se usa
{E
1
,E
2
, . . . ,E
n
}
para expresar el conjunto
{E
1
,E
2
, . . . ,E
n
}
Dos literales que unifican, pueden ser hechos unificar por muchas sustituciones.
En nuestro ejemplo anterior, todas las siguientes sustituciones son unificadores de L
1
y L
2
:
1 = {x/(A), y/g(u), z/A}

2 = {x/(z), y/g(u)}

3 = {x/((B)), y/g(A), z/(B), u/A}
De todos los unificadores posibles siempre existe al menos uno que es el menos restrictivo,
en el sentido que es el que menos restringe futuras unificaciones.
Este tipo de unificador se conoce como unificador ms general (UMG).
Un UMG asigna la menor cantidad de sustituciones posibles.
Formalmente, un UMG de el conjunto de expresiones E es tal que cualquier otro
unificador de E se puede obtener primero mediante la aplicacin de y despus de
alguna otra sustitucin . Es decr,
E = E

En nuestro ejemplo, 2 es el unificador ms general. De hecho, si E= {R(x, g(u)),R((z),
y)},
E1 = (E2){z/A}

E3 = (E2){z/(B), u/A}
Ahora estamos listos para formalizar una regla de resolucin:
Sean l
1
l
2
. . . l
n
y l
1
l
2
. . . l
m
clusulas de primer orden. La regla de resolucin es
aplicable si existen l
i
(1 i n) y l
k
(1 k m) tales que l
i
y l
k
son uno la negacin del
otro (literales complementarios).
En este caso, la regla de resolucin es la siguiente:
l
1
l
2
. . . l
n


l
1
l
2
. . . l
m



_______________________________________




Vi{1,,n} {j}l
i
Vi{1,,m} {k}l
i

Hasta el momento, tenemos un mtodo de resolucin sirve para frmulas de primer orden
cuantificadas universalmente.
Que podemos hacer cuando queremos demostrar un hecho a partir de un conjunto de
formulas con cuantificadores existenciales?
La respuesta est en transformar una frmula con cuantificadores varios a una que slo
tenga cuantificadores universales.
Esto se puede hacer mediante skolemizacin.

Ejemplo:

Las lineas 17 contienen clausulas no satisfasible. Esto esta mostrado en las lineas 815 las
cuales son una refutacin por el procedimiento de resolucin. Cada linea contiene el
resolvente, el MGU y el numero de las clausulas padre
1. p(x)q(x)q(x)r(x,(x))
2. p(x)q(x)q(x)s((x))
3. t(a)
4. p(a)
5. r(a,y)t(y)
6. t(x)&notq(x)
7. t(x)&nots(x)
8. q(a) xa 3,6
9. q(a)s((a)) xa 2,4
10. s((a)) 8,9
11. q(a)r(a,(a)) xa 1,4
12. r(a,(a)) 8,11
13. t((a)) y(a) 5,12
14. s((a)) x 7,13
15. 10,14

S-ar putea să vă placă și