1. Sistemas Expertos
Resumen Prolog
Andrade Zambrano David Alejandro
10 A Informática
2. Paradigma de la programación basada en reglas
Los hechos son las pieza básica de información , mientras que las reglas describen el
comportamiento del programa en función de los hechos existentes.
Ejemplo de una regla: <Condiciones> => <Acciones>
Las condiciones pueden darse por la: Existencia de cierta información, Ausencia de cierta
información y Relación entre datos; mientras que las acciones pueden Incluir nueva
información, Eliminar información o Mostrar información en Pantalla.
Estructura de una hecho: (<símbolo><datos>*)
1. Ej.: (conjunto a b 1 2 3)
2. (1 2 3 4) no es un hecho valido.
La acción de añadir hechos: (assert <hecho>*)
Hechos iniciales: (deffacts <nombre><hecho>*)
3. Definición de reglas
Estructura de una regla
(defrule <nombre><condición>*=><acción>*)
<condición> := <hecho>
Ej.:
(defrule mamifero-1 (tiene-pelos)=>(assert (es-mamífero)))
Cargar el contenido de un archivo
Se utiliza la siguiente metodología: (load <archivo>)
Trazas
Hechos añadidos y eliminados: (watch facts)
Activación y desactivación de reglas: (watch activations)
Utilización de reglas: (watch rules).
Inicialización: (reset)
Ejecución: (run)
Limpiar base de conocimiento: (clear)
Ayuda del Sistema: (help)
4. Ejemplo de base de conocimiento
(deffacts hechos-iniciales
(tiene-pelos)
(tiene-pezuñas)
(tiene-rayas-negras))
(defrule mamifero-1
(tiene-pelos)
=>
(assert (es-mamífero)))
(defrule mamifero-2
(da-leche)
=>
(assert (es-mamífero)))
(defrule ungulado-1
(es-mamífero)
(tiene-pezuñas)
=>
(assert (es-ungulado)))
5.
6. Restricciones:
Son condiciones sobre las variables que se comprueban en el momento de velicar las
condiciones de una regla.
Algunos tipos de restricciones:
Negativas: (dato ?x&~a)
Disyuntivas: (dato ?x&a|b)
Conjuntivas: (dato ?x&~a&~b)
La acción de presentar información en pantalla:
(printout t <dato>*)
7. Restricciones:
Son condiciones sobre las variables que se comprueban en el momento de velicar las
condiciones de una regla.
Algunos tipos de restricciones:
Negativas: (dato ?x&~a)
Disyuntivas: (dato ?x&a|b)
Conjuntivas: (dato ?x&~a&~b)
La acción de presentar información en pantalla:
(printout t <dato>*)