P. 1
METODO ROBINSON

METODO ROBINSON

|Views: 857|Likes:
Publicado porhuichichi

More info:

Published by: huichichi on Apr 05, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

09/23/2013

pdf

text

original

Orígenes

La Programación Lógica tiene sus orígenes más cercanos en los trabajos de prueba automática de teoremas de los años sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de manera automática. La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo. Otros trabajos importantes de esa época que influyeron en la programación lógica, fueron los de Loveland , Kowalski y Green. Este último, por ejemplo, diseña un probador de teoremas que extrae de la prueba, el valor de las variables para las cuales el teorema es válido. 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 investigación en el campo de la Inteligencia Artificial Colmerauer 73. La Lógica de Primer Orden, es uno de los formalismos más utilizados para representar conocimiento en IA. La Lógica cuenta con un lenguaje formal mediante el cual es posible representar fórmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, además consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento.

Resolución en Primer Orden

Tal como en Lógica Proposicional (LP), nos interesa encontrar un algoritmo implementable que permita hacer demostraciones de teoremas de primer orden en forma automática. El método es bastante parecido al de resolución de LP. Supongamos que tenemos las siguientes dos cláusulas de primer orden:

Si = {x/b. y/ (a)} y es una formula. (w)) y la clausula S(y) Observemos que: Las variables en ambas cláusulas aparecen como libres. Dado que la primera fórmula se cumple para todo x. entonces corresponde a la misma formula con todas las ocurrencias de x reemplazadas por b y todas las ocurrencias de y reemplazadas por (a). z) R(C. reemplazándola en toda la forma se llama sustitución. z) R(C.z) R(x. podemos utilizar la regla de resolución que ya conocemos y generar la siguiente cláusula: S(y) Q(y.P(x) Q(y. se cumple para un objeto cualquiera C. se cumple que: P© Q(y. donde . una sustitución es una función parcialmente definida : Var T(S) es el conjunto de términos de un conjunto de símbolos S. (w)) ¿Por qué? El proceso de asignar un valor a una variable. Buscamos encontrar una correspondencia entre resolución y consecuencia lógica por lo cual supondremos que todas las fórmulas están implícitamente cuantificadas universalmente (no queremos variables libres). podríamos inferir que. Formalmente. Si lo mismo decimos acerca de la segunda cláusula tendremos que. T(S).particular. (w)) y la cláusula S(y) ¬P© ¬P(u) Dada tal sustitución.

un literal es una fórmula atómica o la negación de una. g(u)) porque L1 L2 . y/g(A).E2 . y/g(u). y) R(x. En nuestro ejemplo anterior. El sentido de igualdad ( ) usado aquí es meramente sintáctico y quiere decir que las expresiones son iguales caracter a caracter. todas las siguientes sustituciones son unificadores de L1 y L2: 1 = {x/ (A). .E2.En } Dos literales que unifican. . en el sentido que es el que menos restringe futuras unificaciones. y/g(u).En} para expresar el conjunto {E1 . Ejemplo: La sustitución L1 = {x/f(A). . Si es unificador. . se usa {E1. Un UMG asigna la menor cantidad de sustituciones posibles. z/A} 2 = {x/ (z).Una sustitución que hace que dos fórmulas atómicas se hagan iguales se conoce como unificador. z/A} es un unificador para los literales (Nota): L1 R( (z). y/g(u)} 3 = {x/ ( (B)). z/ (B). Nota:Tal como en LP. u/A} De todos los unificadores posibles siempre existe al menos uno que es el menos restrictivo. . . . . . Este tipo de unificador se conoce como unificador más general (UMG). pueden ser hechos unificar por muchas sustituciones.

l´m cláusulas de primer orden. La regla de resolución es aplicable si existen li(1 ” i ” n) y l´k (1 ” k ” m) tales que li y l´k son uno la negación del otro (literales complementarios). . .n} í {j}li Vi {1. De hecho.«. . . Esto se puede hacer mediante skolemización. tenemos un método de resolución sirve para fórmulas de primer orden cuantificadas universalmente.«. la regla de resolución es la siguiente: l1 l2 . . . . un UMG de el conjunto de expresiones E es tal que cualquier otro unificador ´ de E se puede obtener primero mediante la aplicación de y después de alguna otra sustitución . ¿Que podemos hacer cuando queremos demostrar un hecho a partir de un conjunto de formulas con cuantificadores existenciales? La respuesta está en transformar una fórmula con cuantificadores varios a una que sólo tenga cuantificadores universales. u/A} Ahora estamos listos para formalizar una regla de resolución: Sean l1 l2 . En este caso.m} í {k}l´i Hasta el momento.Formalmente. E ´ = E En nuestro ejemplo. si E= {R(x.R( (z). g(u)). E 1 = (E 2){z/A} E 3 = (E 2){z/ (B). 2 es el unificador más general. . Es decír. ln l´1 l´2 . l´m _______________________________________ Vi {1. ln y l´1 l´2 . y)}. .

13 x a 3.4 8. t(a) 4. Cada linea contiene el resolvente.11 (a) 5. ¬t(x) &notq(x) 7.12 7. t( (a)) 14. p(a) 5.9 x a 1.14 y x 8. ¸ 10. s( (a)) 11. (a)) 13. ¬q(a) 9. ¬t(x) &nots(x) 8. el MGU y el numero de las clausulas padre 1. q(a) s( (a)) 10. r(a. ¬p(x) q(x) q(x) s( (x)) 3. (a)) 12.y) t(y) 6. q(a) r(a.Ejemplo: Las lineas 1±7 contienen clausulas no satisfasible. Esto esta mostrado en las lineas 8±15 las cuales son una refutación por el procedimiento de resolución.6 x a 2. ¬p(x) q(x) q(x) r(x. (x)) 2. ¬s( (a)) 15. ¬r(a.4 .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->