Capítulo V: Programación Lógica

Anuncio
Capítulo V:
Programación Lógica
5.1 Breve Introducción al
Cálculo de Predicados
1
Definiciones Básicas
Proposición: sentencia lógica que puede ser
verdadera o falsa.
Se construye de objetos y relaciones.
Lógica formal provee métodos para verificar su validez
Lógica Simbólica: permite expresar
proposiciones, relaciones entre proposiciones y cómo inferir nuevas proposiciones que son
verdaderas.
Cálculo de Predicado: Forma particular de lógica
simbólica usada en programación lógica.
Objetos y Términos Compuestos
Objetos se representan como un único término, que
puede ser:
constante : representa un único objeto
variable : puede representar diferentes objetos
Término compuesto: consiste de functor y una
lista de parámetros
Un término con n parámetros se denomina n-tupla.
El término padre(maria, jesús) es una 2-tupla.
2
Proposiciones
Proposiciones pueden ser:
Atómicas: corresponde a un único término compuesto
Compuestas: dos o más proposiciones atómicas
conectadas por operadores lógicos.
Una proposiciones puede ser:
Hecho: se define como una verdad (axioma)
Consulta: la verdad debe ser probada (teorema)
Conectores Lógicos
NOMBRE
SIMBOLO
EJEMPLO
¬
¬a
conjunción
∩ (∧)
a∧b
disjunción
∪ (∨)
a∨b
equivalencia
≡ (⇔)
a≡b
implicancia
⊃ (⇒)
⊂ (⇐)
a⊃b
b⊂a
negación
3
Cuantificadores
Cuantificador Universal
∀X.P
: Para todo X, P es verdadero
Cuantificador Existencial
∃X.P
: Existe un valor X tal que P es
verdadero
EJEMPLOS
∀X.(mujer(X) ⊃ humano(X))
∃X.(madre(maria, X) ∩ masculino(X))
Forma de Cláusula
Para automatizar se requiere reducir redundancia
en la expresión de proposiciones.
La forma de cláusula simplifica proposiciones, sin
pérdida de generalidad.
Una cláusula tiene la siguiente forma:
B1 ∪ B2 ∪ … ∪ Bn ⊂ A1 ∩ A2 ∩ … ∩ Am
Donde As y Bs son términos
Una cláusula significa: “Si todos los As son
verdaderos, entonces al menos un B es verdadero”
4
Características de Cláusulas
Una forma clausal no requiere de cuantificadores
existenciales.
Cuantificadores universales están implícitos en el
uso de variables de proposiciones atómicas.
No se requiere de otro conector que la conjunción y
disjunción, apareciendo sólo en el orden definido
por una cláusula (derecha e izquierda).
Cualquier proposición de cálculo de predicado se
puede transformar en una cláusula.
Ejemplo de Cláusula
gusta(ana, fiesta)
consecuencia
padre(luis, juan) ∪
padre(luis, maria)
⊂ gusta(joven, fiesta) ∩ joven(ana)
antecedente
⊂ padre(juan, pepe) ∩
madre(maria, pepe) ∩ abuelo(luis, pepe)
5
Resolución
Cálculo de Predicado provee método para
expresar conjunto de proposiciones
Aplicación interesante o útil es inferir de las
proposiciones dadas nuevos hechos.
Una aplicación es descubrir nuevos teoremas
Resolución es proceso que permite inferir
proposiciones de proposiciones dadas.
Ejemplo de Resolución
Si se tiene:
papa(juan, pato) ∪ mama(juan, pato) ⊂ padre(juan, pato)
abuelo(juan, roro)
⊂ papa(juan, pato) ∩ papa(pato, roro)
Se puede resolver que:
abuelo(juan, roro) ∪ mama(juan, pato)
⊂ padre(juan, pato) ∩ papa(pato, roro)
¡Proceso de resolución consiste en conectar términos de la
izquierda y de la derecha, y luego eliminar términos redundantes!
6
Tautologías Importantes
para Resolución
A⊂B
C⊂D
A∪C⊂B∩D
A∪B⊂C∩B
A⊂C
Proceso de Resolución
La resolución es un proceso complejo
Presencia de variables requiere de un proceso de
calce (matching) que al reemplazar sus valores
produce una verdad (éxito).
Este proceso se denomina unificación.
Asignación temporal de valores a variables se
denomina instanciación.
Fallas (no éxito) en la instanciación requiere de
backtracking.
7
Cláusulas de Horn
Cláusulas de Horn simplifican el proceso de
resolución, y permiten representar la mayoría de las
proposiciones lógicas.
Sólo permite dos tipos de formas:
Existe sólo una proposición atómica en la izquierda de la
cláusula (cláusula con cabeza)
El lado izquierdo está vacío (cláusula sin cabeza)
Cláusulas con cabeza se usan para definir reglas,
en cambio cláusulas sin cabezas sólo establecen
ciertos hechos.
Conclusiones
Programación Lógica consiste básicamente
en definir un conjunto de reglas y hechos
(hipótesis).
El sistema luego debe ser capaz de inferir si
una determinada proposición (meta) es una
verdad.
Prolog está basado en el uso de cláusulas de
Horn.
8
Descargar