programaciÓn lÓgica192.100.170.1/~jjf/pl/tema4.pdf · 2016-01-23 · lógica matemática...

55
PROGRAMACIÓN LÓGICA INFERENCIA EN LA LÓGICA DE PRIMER ORDEN Juan Juárez Fuentes

Upload: others

Post on 18-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

PROGRAMACIÓN LÓGICA

INFERENCIA EN LA LÓGICA DE PRIMER ORDEN

Juan Juárez Fuentes

Page 2: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Lógica matemática

Dado que el Lenguaje Natural, aunque es potente, resulta muy ambiguo, por lo cual nos interesa encontrar un lenguaje más sencillo, sin ambigüedades que nos permita realizar razonamientos y generalizaciones.

Por ello, es necesario introducirnos en la formalización del Cálculo Proposicional y Cálculo de Predicados, que, aunque no cuenta con toda la potencia necesaria para describir el mundo, es válido como primera aproximación.

Page 3: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Lógica matemática Conceptos básicos

Para comprender los principios de la lógica matemática en el campo del Cálculo Proposicional, necesitamos conocer una serie de conceptos básicos como son:

Átomo: También llamado Fórmula Atómica o EnunciadoSimple. Permite la formalización de una frase declarativa que no se puede descomponer en frases más 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 conectivaslógicas son: ¬, ∧, ∨, →.

Page 4: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Lógica matemática Conceptos básicos

Enunciado: También llamado Fórmula. Es una expresión realizada con átomos y conectivas lógicas, siguiendo unas determinadas normas. Para denotar enunciados se utilizan las letras A, B, C, etc.

Deducción: 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 utilización de un conjunto finito de reglas denominadas Reglas de Inferencia.

Page 5: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Lógica matemática Conceptos básicos

Dada una serie de premisas, a través de las reglas de inferencia, podemos llegar a un enunciado que podemos denominar enunciado Conclusión.

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 demostración.

De esta forma, obtenemos un demostrador automático de teoremas que es, justamente, en lo que consiste la máquina PROLOG.

Page 6: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Lógica matemática Conceptos básicos

Aunque mediante la Lógica Proposicional podemos describir muchas situaciones, existen otras imposibles de representar, por lo que necesitamos introducir la nocion de Lógica de Predicados.

Se puede considerar a la Lógica Proposicional como un subconjunto de la Lógica de Predicados o de Primer Orden.

Por tanto, a las definiciones anteriores, hemos de añadir otras nuevas para poder manejar adecuadamente la lógica de predicados de primer orden.

Page 7: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónSímbolos: 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: Aplicación que asocia una serie de constantes con otra constante. F={f, g, h}.

Predicados: Función de resultado Verdadero o Falso. Pred={P, Q, R}.

Relaciones: Representan relaciones o cuantificaciones. Rel={∧, ∨, →, ↔ ,¬, ∀, ∃}

Signos de puntuación: Permiten agrupar o separar otros símbolos. Pun={(, ), ,, [, ]}

Page 8: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónTérminos

Una constante: a, c.

Una variable: x, z.

Si f es un símbolo de función y t1, t2,..., tn son términos, entonces f (t1, t2,,..., tn) es un término, por ejemplo g(a, f(x)).

Page 9: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónFórmulas

Si R es un símbolo de relación y t1, t2,..., tn son términos, entonces R (t1, t2,..., tn) es una fórmula.

Ejemplo:

Si A y B son dos fórmulas y R es un símbolo de relación, entonces R(A, B) también es una fórmula.

[∀ x (g(x) ∨ a) → (f(a, v) ∧ P(b ∨ c))] ∨ ¬ (f(a, x) ∧ ¬ g(z))

f(a, x) ∧ ¬ g(x), ∀ x (g(x) ∨ a) → [f(a, v) ∧ P(b ∨c)] 

Page 10: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Sintaxis y semánticaSentencias

Sentencias: Se definen como fórmulas en las que ninguna de las variables que la componen tiene una o más ocurrencias libres, o sea, todas las variables de la fórmula 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 fórmula si y sólo si se da una de las siguientes condiciones:

1 La variable x está inmediatamente después de un símbolo ∀ ó ∃ .

2. La variable x está en el radio de acción de un cuantificador ∀ x ó ∃ x.

Page 11: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónSentencias

El radio de acción de un cuantificador en una fórmula abarca al término inmediatamente siguiente, haciéndose imprescindible el uso de paréntesis para aumentar su radio de acción.

Ejemplos:

∀ x (f(x) ∨ g(z)). El cuantificador abarca a f(x) y g(z).

∀ x h(x) ∨ f(a, v, x). El cuantificador abarca sólo a h(x).

Page 12: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónSentencias

Una variable es libre en una fórmula 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 acción del cuantificador " ∀x.

Ejemplo:

∀ x [P(g(x)) ∨ R(a)] → [f(a, v) ∧ Q(b ∨ c)]

Page 13: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

IntroducciónSustituciones

Sustituciones: Dado el conjunto de variables V y el conjunto de términos Term, una sustitución se define como la aplicación que se muestra en la Ec 1 y se suele denotar como s={x1/t1,...,xn/tn}. De dicha definición podemos concluir dos cosas:

Sólo son válidas aquellas sustituciones que transforman una variable en una constante, en otra variable o en una función, esdecir, en términos.

La sustitución de una variable afecta a todas las ocurrencias dela misma.

Page 14: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución y unificaciónMétodos

La Deducción Natural consiste en un sistema de reglas de inferencia que permite construir deducciones, es decir, a partirde "algo" podemos deducir o "llegar a" "otra cosa", hasta que encontramos una conclusión.

Se trata de un método puramente sintáctico donde sólo nos ocupamos de la manipulación de símbolos. Es un método interesante para construir demostraciones, sin embargo es difícilmente mecanizable.

Page 15: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución y unificaciónMétodos

Es fácil representar hechos del mundo real mediante la lógica proposicional y mediante la lógica de predicados. Además mediante la lógica de predicados podemos representar el conocimiento que tenemos sobre un cierto mundo finito poniéndolo 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 máquina puede llegar a ser computacionalmente muy costoso e, incluso, inviable.

Los estudios, por tanto, se han centrado en conseguir un método de demostración que se puede ejecutar en un tiempo finito, y que en dicho tiempo, de forma eficiente, nos proporcione una solución acertada.

Page 16: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución y unificaciónMétodos

El Método de Resolución [Robinson, 1965], es un intento de mecanizar el proceso de deducción natural de esa forma eficiente.

Las demostraciones se consiguen utilizando el método refutativo (reducción al absurdo), es decir lo que intentamos es encontrar contradicciones. En donde para probar una sentencia nos basta con demostrar que su negación nos lleva a una contradicción con las sentencias conocidas (es insatisfactible).

Si la negación de una sentencia entra en contradicción con los hechos de nuestra base de conocimiento es porque lo contrario, es decir, la sentencia original era verdadera y se puede deducir lógicamente de las sentencias que componen dicha base de conocimientos.

Page 17: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución y unificaciónMétodo de Resolución por Refutación Lineal

Existen distintas Estrategias de Resolución: sistemática, con conjunto soporte, unitaria, primaria y lineal.

Método de Resolución por Refutación Lineal. Para utilizar éste método es necesario conocer el proceso de conversión a formaclausal, ya que las cláusulas con las que se trabaja en esta técnica deben tener una forma específica.

Así mismo es necesario definir también el proceso o algoritmo de Unificación, paso imprescindible en este método de Resolución.

Page 18: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealConversión a forma clausal

El proceso de conversión a forma clausal consiste en transformar las sentencias y fórmulas en cláusulas, cuya principal característica, al nivel de representación, es la ausencia casi total de símbolos de relación. En una cláusula sólo aparecerán disyunciones "∨".

De esta manera, el primer paso será transformar todas las sentencias a una forma canónica llamada forma normal conjuntiva [Davis y Putnam, 1960], a partir de la cual obtendremos el conjunto de cláusulas.

Así, podemos definir una cláusula, más formalmente, como una fórmula en forma normalizada conjuntiva que no tiene ninguna conectiva. Esta transformación se realiza en varios pasos:

Page 19: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealConversión a forma clausal

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 representación en Forma de Cláusulas.

Page 20: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa

Una fórmula está en Forma Normal Prenexa si es de la forma:

Q1x1...QnxnY

donde Y es una fórmula desprovista de cuantificadores y escrita como conjunción de disyunciones, tales como Q1,...,Qn ∈ {∀ , ∃ } y en donde x1,..., xn son variables.

Page 21: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa

Ejemplos:

∀ x ∀ y ∃ z ∀ v [(R(x) ∨ T(y)) ∧ Q(v, z)]

∀ x ∃ y (R(x, y) ∧ Q(b, z))

∀ x P(x, y)

Page 22: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa

Tenemos nuestro conocimiento en forma de sentencias, formadas por símbolos de relación, variables, constantes, cuantificadores, todos mezclados.

Para transformar una fórmula a Forma Normal Prenexa seguiremos el siguiente algoritmo:

1. Eliminar todos los símbolos de equivalencia (↔), sustituyéndolos por una implicación a la derecha y una implicación a la izquierda:

P↔ Q = (P→ Q) ∧ (Q→ P)

Page 23: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa

2. Eliminar todas las implicaciones (→), sabiendo que (a → b) es equivalente a (¬ a ∨ b)

3. Reducir el ámbito de las negaciones (¬ ), a un único término, usando las siguientes propiedades:

4. ¬ (¬ p)=p

5. Leyes de Morgan: ¬ (a ∨ b)= ¬ a ∧ ¬ b y ¬ (a ∧ b)= ¬ a ∨ ¬ b

Page 24: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa6. ¬ ∀ x P(x) = ∃ x ¬ P(x)

7. ¬ ∃ x P(x) =∀ x ¬ P(x)

8. Normalizar las variables de los cuantificadores, de forma que cada uno esté ligado con una única variable. Para ello podemos, incluso, renombrar las variables.

Page 25: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma PrenexaEjemplos:

∀ x P(x) ∨ ∀ x Q(x) ≡ ∀ y P(y) ∨ ∀ x Q(x)

∀ x [P(x) ∨ Q(x)] ∧ ∀ y R(y) ∨ Q(x) ≡ ∀ z [P(z) ∨ Q(z)] ∧ ∀ y R(y) ∨Q(x)

Page 26: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa

9. Mover todos los cuantificadores a la izquierda de la fórmula sin cambiar su orden relativo.

Ejemplos:

∀ x P(x) ∨ ∀ x Q(x)∀ y ∀ x [P(y) ∨ Q(x)](∀ x R(x) ∨ ∀ y T(y)) ∧ ∃ z ∀ v Q(v ∨ z)

∀ x ∀ y ∃ z∀ v [(R(x) ∨ T(y)) ∧ Q(v ∨ z)]

Page 27: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealFunciones de Skolem

El siguiente paso es convertir las fórmulas de Forma Normal Prenexa a Fórmulas de Skolem, que se caracterizan por no estar cuantificadas existencialmente.

Por lo tanto, el algoritmo de transformación a forma de Skolem elimina los cuantificadores existenciales.

Partimos de una fórmula: Q1x1...QnxnY. Se recorre la fórmula en forma prenexa de izquierda a derecha y se eliminan los cuantificadores existenciales según los dos casos siguientes:

Page 28: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealFunciones de Skolem

Sea Qr un cuantificador existencial:

1. Si no hay ningún cuantificador universal antes de Qrxr , elegir una nueva constante c distinta de todas las que aparecen en Y, y reemplazar cada ocurrencia de xr en Y por c. Borrar Qrxr del prefijo de la fórmula.

2. Si Qs1, Qs2,…, Qsk son los cuantificadores universales que aparecen antes de Qrxr , tomar un nuevo símbolo de función f distinto a todos los que aparecen en Y y reemplazar cada ocurrencia de xr por por f(xs1,xs2,...,xsk). Borrar Qrxr del prefijo de la fórmula.

Page 29: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealFunciones de Skolem

Ejemplos:

1. Supongamos que tenemos: ∀ x ∀ y ∃ z [(R(x) ∨ P(y)) ∧ Q(b, z)]

Nos queda como: ∀ x ∀ y [(R(x) ∨ P(y)) ∧ Q(b, f(x, y))]

2. Supongamos que tenemos: ∃ x ∀ y ∃ w [R(a, w) ∨ P(y) ∨ P(f(x))]

Sustituimos x por c (caso 1): ∀ y ∃ w [R(a, w) ∨ P(y) ∨ P(f(c))]

Sustituimos w por g(y) (caso 2): ∀ y [R(a, g(y)) ∨ P(y) ∨ P(f(c))]

Page 30: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealForma Prenexa10. Representación en forma de cláusulas: El último paso será

convertir las funciones de Skolem a cláusulas.

Tenemos las fórmulas cuantificadas universalmente, entonces podemos eliminar todos los prefijos, de tal manera que la fórmula resultante está en forma de conjunción de disyunciones (forma normal conjuntiva):

(a ∨ b ∨ c) ∧ (d ∨ e) ∧ (j ∨ l ∨ m)

Finalmente, por cada conjunción obtenemos una cláusula:

(a ∨ b ∨ c), (d ∨ e) y (j ∨ l ∨ m).

Page 31: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealResumen del algoritmo

Todos los pasos se pueden resumir en el siguiente algoritmo, que es justamente el algoritmo general de conversión a forma clausal:

1. Convertir la fórmula a Forma Normal Prenexa.

2. Transformarla a Forma de Skolem.

3. Pasar a Forma Normal Conjuntiva.

4. Separar cada conjunción en una cláusula.

Page 32: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo

Ejemplo:

Partimos de la sentencia:∀ x [(R(x) ∨ C(x, a)) ∧ [O(x, b) ∨ (∃ y(∃ z O(y, z) → L(x,y)))]]

Paso 1: Eliminamos los símbolos de implicación:∀ x [(R(x) ∨ C(x, a)) ∧ [O(x, b) ∨ (∃ y(¬ ∃ z O(y, z) ∨ L(x,y)))]]

Paso 2: Reducimos el ámbito de las negaciones:∀ x [(R(x) ∨ C(x, a)) ∧ [O(x, b) ∨ (∃ y(∀ z ¬ O(y, z) ∨ L(x,y)))]]

Page 33: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemploPaso 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) ∨ C(x, a)) ∧ (O(x, b) ∨ (¬ O(y, z) ∨ L(x,y)))]

Paso 5: Eliminamos los cuantificadores existenciales:∀ x ∀ z [(R(x) ∨ C(x, a)) ∧ (O(x, b) ∨ (¬ O(s(x), z) ∨ L(x, s(x))))]

Paso 6: Eliminamos todos los cuantificadores:[(R(x) ∨ C(x, a)) ∧ (O(x, b) ∨ (¬ O(s(x), z) ∨ L(x, s(x))))]

Page 34: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemploPaso 7: Separar una cláusula por cada conjunción:

(R(x) ∨ C(x, a))

(O(x, b) ∨ (¬ O(s(x), z) ∨ L(x, s(x))))

Page 35: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealAlgoritmo de Unificación

Podemos definir la Unificación como un procedimiento de emparejamiento que compara dos literales y descubre si existe un conjunto de sustituciones que los haga idénticos.

Para unificar dos literales vamos recorriéndolos 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 número de argumentos.

Page 36: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealAlgoritmo de Unificación

Para conseguir que cada argumento de un literal sea coincidente con su homólogo en el otro literal, debemos buscar una sustitución que nos permita emparejarlos.

La única condición que debe reunir esta sustitución es que ha de aplicarse a todo el literal, es decir, que la sustitución afecta a todo el literal, y no sólo al argumento en cuestión.

Por decirlo de una manera sencilla, las sustituciones se van arrastrando a lo largo del proceso de unificación.

Page 37: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo de Unificación

Ejemplo: Se va a unificar P(x, x) con P(y, z):

Primera sustitución: (y/x)Resultado: P(y, y) P(y, z)

Segunda sustitución: (z/y)Resultado: P(z, z) P (z, z)

La sustitución resultante es la composición de las sustituciones:

s = { z/y , y/x}

Page 38: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealPasos básicos del algoritmo de Unificación

Tomamos como entrada dos cláusulas, R y S.

1. Si R = S entonces R y S son unificables.

2. Si no, localizar el símbolo más a la izquierda de R que se diferencia de su homólogo en S.

1. Si es el primero (predicado), entonces R y S no son unificables.

2. Si es uno de los argumentos, entonces sean t1, t2 lostérminos en los que difieren.

Page 39: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealPasos básicos del algoritmo de Unificación

a) Si ninguno de los dos (t1, t2) es una variable, entonces las cláusulas no son unificables. Tampoco lo serán si siendo uno de ellos una variable, está presente en las variables del otro.

b) Si t1 es una variable x y no está entre las variables del otro t2, entonces haremos la sustitución: s = {x/t2}

3. Volver al paso 1.

Page 40: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo de Unificación

A partir del algoritmo de unificación podemos extraer las siguientes conclusiones:

Podemos señalar como unificables todas aquellas cláusulas que no coincidan en su predicado y número de argumentos.

Antes de intentar la unificación debemos asegurarnos que no existen variables comunes en ambas cláusulas.

Debemos recordar siempre las condiciones que debe reunir una sustitución y que ésta debe ser única.

Page 41: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo de Unificación

Unificación de las sentencias R (x, f(g(x)), a) y R (b, y, z)

Términos desiguales Sustitución 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 cláusulas son unificables y la sustitución resultante es:

s = { z/a , y/f(g(b)) , x/b }

Page 42: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

El procedimiento de resolución consiste en un proceso iterativo en el cual comparamos (resolvemos), dos cláusulas llamadas cláusulas padres y producimos una nueva cláusula que se ha inferido (deducido), de ellas.

Por tanto, lo que hacemos es combinar las cláusulas padres para dar lugar a una nueva cláusula, en la que podemos simplificar alguno de sus términos.

Por ejemplo, supongamos que tenemos las cláusulas siguientes (ambas verdaderas):

1. invierno ∨ verano (es invierno o es verano).2. ¬ invierno ∨ frío (hace frío o no es invierno).

Page 43: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

Aplicando resolución, podemos combinar ambas cláusulas y obtener:

invierno ∨ verano ∨ ¬ invierno ∨ frío.

Ahora podemos hacer una simplificación, ya que (invierno ∧ ¬ invierno) es una tautología, con lo que nos queda:

verano ∨ frío (es verano o hace frío).

Que también deberá ser verdadera, pues hemos seguido puntualmente todas las propiedades de la lógica de primer orden.

Page 44: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

La resolución opera tomando dos cláusulas tales que cada una contenga un mismo literal, en una cláusula en forma positiva y en la otra en forma negativa.

El resolvente se obtiene combinando todos los literales de las cláusulas padres y eliminando aquellos que se cancelan.

Si la cláusula resultante es la cláusula vacía “{ }”, entonces es que hemos llegado a una contradicción.

El proceso de resolución podemos resumirlo formalmente en los pasos siguientes, basados en el algoritmo de resolución lineal:

Page 45: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

Se inicia a partir de un conjunto de cláusulas. El objetivo es probar una sentencia mediante la demostración de que su negación nos lleva a una contradicción con las sentencias conocidas (es insatisfacible):

1. Convertimos todas las proposiciones a forma clausal.

2. Negamos la proposición que queremos demostrar y convertimos el resultado a forma clausal añadiendo la cláusula resultante al conjunto obtenido en el paso anterior.

3. Hasta que se encuentre una contradicción o no se pueda seguir avanzando, repetimos lo siguiente:

Page 46: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

a) Seleccionamos dos cláusulas (cláusulas padres) que contengan un literal común pero con signos contrarios y unificamos esos dos literales.

b) Las resolvemos juntas. La cláusula resultante llamada resolvente, será la disyunción de los literales de las dos cláusulas padres, una vez realizadas las sustituciones apropiadas. El par de literales L y ¬ L, que provienen de cada una de las cláusulas padres, se pueden eliminar de la resolvente.

c) Si la resolvente es la cláusula vacía, es que se ha encontrado una contradicción. Si no, añadimos la resolvente al conjunto de cláusulas disponibles.

Page 47: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

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 mayoría de los casos no están basadas en aserciones infalibles, pueden facilitar el proceso general de resolución:

Aunque no sea un criterio estricto, suele dar buenos resultados comenzar a resolver por las cláusulas de mayor tamaño, es decir, las que poseen mayor número de literales.

La cláusula resolvente se añade al conjunto de cláusulas disponible y, en teoría, se puede continuar el proceso tomando dos cláusulas padre cualesquiera. Sin embargo, al igual que en el caso anterior, suele dar buen resultado continuar el proceso de resolución a partir de la nueva cláusula resultante.

Page 48: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

De igual forma, aunque no existe ninguna limitación en cuanto al número de veces que se puede usar una cláusula para resolver, se recomienda probar primero a no usar dos veces la misma cláusula antes de usar todas las cláusulas disponibles.

Si es posible llegar a la cláusula vacía resolviendo únicamente con las cláusulas del conjunto inicial sin usar en ningún momento la o las cláusulas provenientes de la hipótesis, es porque existe una inconsistencia dentro del conjunto inicial de cláusulas. Ésta puede ser una forma de detectar errores en el diseño de la base de conocimiento.

Si en la cláusula resolvente existen dos literales iguales, ésta se puede simplificar eliminando uno de los dos literales. Puede ser necesaria una sustitución previa a fin de que esos literales sean unificables y, por tanto, completamente iguales.

Page 49: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Algoritmo de Resolución

Si en la cláusula resolvente existen dos literales iguales, ésta se puede simplificar eliminando uno de los dos literales. Puede ser necesaria una sustitución previa a fin de que esos literales sean unificables y, por tanto, completamente iguales.

No es necesario usar todas las cláusulas en el proceso de resolución. En la mayoría de los casos basta con usar algunas de las cláusulas de la base de conocimiento y alguna o algunas de las cláusulas proveniente de la hipótesis.

Page 50: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Ejemplo

A partir de la base de conocimiento siguiente, compuesta por 5 cláusulas, aplicar resolución para demostrar que la hipótesis V(z) es cierta:

P(x) ∨ Q(c, x) ∨ ¬ S(y, x) y P(a) ∨ ¬ R(z) ∨ S(b, a) y ¬ Q(z, a) ∨ V(a) y R(x) ∨ V(y) y ¬ P(y) ∨ Q(x, y)

Ya tenemos las proposiciones en forma de cláusulas, luego sólo nos falta agregar la hipótesis, transformarla en cláusula y añadirla al conjunto de sentencias anterior:

V(z) negada nos queda ¬ V(z). (Como vemos está en forma de cláusula).

Page 51: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación Lineal Ejemplo

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 sustitución afecte a muchas ocurrencias de una variable podemos intentar renombrarlas.

Pero para evitar tener todas las variables renombradas y, por tanto, evitar la complicación del procedimiento, estableceremos un uso especial de las sustituciones. Sólo afectarán a las cláusulas padres en el momento de la resolución, y a la cláusula resolvente, quedando el resto inalteradas.

Page 52: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo

Comenzamos el proceso por las cláusulas de mayor tamaño:P(x) ∨ Q(c, x) ∨ ¬ S(y, x) y P(a) ∨ ¬ R(z) ∨ S(b, a)

con la sustitución σ = {y/b, x/a} nos queda:

P(x) ∨ Q(c, x) ∨ ¬ S(y, x) ∨ P(a) ∨ ¬ R(z) ∨ S(b, a) = P(a) ∨ Q(c, a) ∨ ¬ R(z).

Combinamos la resolvente con ¬ P(y) ∨ Q(x, y)

con la sustitución σ = {y/a} nos queda:

P(a) ∨ Q(c, a) ∨ ¬ R(z) ∨ ¬ P(y) ∨ Q(x, y) = Q(c, a) ∨ ¬ R(z) ∨ Q(x, a).

Page 53: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Resolución por Refutación LinealEjemplo

Aplicamos a la resolvente la sustitución σ = {x/c} y nos queda:Q(c, a) ∨ ¬ R(z).

Combinamos la resolvente con ¬ Q(z, a) ∨ V(a) con la sustitución σ = {z/c} nos queda:Q(c, a) ∨ ¬ R(z) ∨ ¬ Q(z, a) ∨ V(a) = ¬ R(c) ∨ V(a).

Combinamos la resolvente con R(x) ∨ V(y) con la sustitución σ = {x/c} nos queda:¬ R(c) ∨ V(a) ∨ R(x) ∨ V(y) = V(a) ∨ V(y).

Aplicamos la sustitución σ = {y/a} y nos queda V(a) que podemos combinar con ¬ V(z) obteniendo la cláusula vacía.

Page 54: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Bibliografíahttp://www.uhu.es/nieves.pavon/pprogramacion/temario/anexo/anexo.html

Genesereth, Michael and Kao, Eric. Introduction to logic. Morgan \& Claypool Publishers. 2013.

David Barker-Plummer, Jon Barwise, and John Etchemendy. CSLI Publications, Stanford, CA, USA, 2nd edition.

Armin Biere, Marijn J. H. Heule, Hans van Maaren, and TobyWalsh, editors. Handbook of Satisfiability, volume 185 ofFrontiers in Artificial Intelligence and Applications. IOS Press, Lansdale, PA, USA, February 2009.

Hans K. Buning and T. Letterman. Propositional Logic: Deduction and Algorithms. Cambridge University Press, NewYork, NY, USA, 1999.

Page 55: PROGRAMACIÓN LÓGICA192.100.170.1/~jjf/pl/TEMA4.pdf · 2016-01-23 · Lógica matemática Conceptos básicos Para comprender los principios de la lógica matemática en el campo

Bibliografía (2)Chin-Liang Chang and Richard C. Lee. Symbolic Logic andMechanicalTheorem Proving (Computer Science Classics). AcademicPress, Salt Lake City, UT, USA, May 1973.

Herbert B. Enderton. A Mathematical Introduction to Logic. AcademicPress, Salt Lake City, UT, USA, 2nd edition, 2001.

Timothy Hinrichs and Michael Genesereth. Herbrand logic. TechnicalReport LG-2006-02, Stanford University, Stanford, CA, USA, 2006. http://logic.stanford.edu/reports/LG-2006-02.pdf.

John Alan Robinson and Andrei Voronkov, editors. Handbook ofAutomated Reasoning (in 2 volumes). MIT Press, Cambridge, MA, USA, 2001.