Estudia el uso de la lógica para el planteamiento de problemas y el control sobre las reglas de inferencia para alcanzar la solución
automática.
La Programación Lógica
Programación
Declarativa
Indicar como resolver un problema mediante sentencias
Programa= lógica + control
Lógica (programador): hechos y
reglas para representar
conocimiento
Control (interprete): deducción
lógica para dar respuestas
(soluciones)
Semántica de los programas lógicos
Semántica Operacional
Semántica Declarativa
Semántica de Punto Fijo
Representación clausada del conocimiento
El componente principal de un sistema basado en conocimiento (en adelante, SBC)
es su base de conocimientos, o BC.
Las oraciones se representan en un lenguaje llamado
lenguaje para la representación del conocimiento.
Espacios de búsqueda
El espacio de búsqueda de soluciones se puede representar
mediante un árbol, donde cada rama representa una posible
refutación SLD.
Programación lógica con números, listas y árboles.
Listas: Muy utilizadas en PROLOG para
almacenar series de términos (e incluso otras
listas):
Árboles: Puesto que los términos
pueden ser recursivos es fácil
crear estructuras de datos
recurrentes.
Control de búsqueda en programas lógicos
Prolog está definido para usar la estrategia de
búsqueda de primero en profundidad.
Manipulación de términos.
Son predicados que se refieren a objetos Prolog como tales
objetos del lenguaje, no en su calidad de representación de la
realidad.
Predicados mitológicos.
Annotations:
var(X)
« X es
una variable.
atom(X)
« X es
un átomo.
integer(X) « X es
un entero.
atomic(X) « X es
un átomo o número.
float(X)
« X es
un número real .
number(X) « X es
un número.
var(X) X es una variable. atom(X) X es un átomo. integer(X) X es un entero.