Sunteți pe pagina 1din 17

SISTEMAS EXPERTOS

Sistemas Expertos y modelos probabilísticos


Enrique Castillo, José Manuel Gutiérrez

Ing. Santos Pavon


Email: ing.spavon@gmail.com
Tema 1: Búsqueda Heurística

Objetivo
 Crear programas que simulen la lógica y el
razonamiento
Programación lógica: Prolog

 Database Esquema básico


 Domains de un programa
en PROLOG
 Predicates
 Clauses
 goal
Prolog: Componentes

DATABASE
 Utilizado para la simulación del aprendizaje
automático. Generalmente es idéntico al
predicado original, con alguna diferencia.
Database /*aprendizaje automático */
xesposo(symbol, symbol)
xmadre(symbol, symbol)
xmujer(symbol)
Prolog: Componentes
DOMAINS (Opcional)
 Define las variables de dominio que se
utilizaran, pudiendo ser string, real, integer,
symbol

Domain
/* declaración tipos de variables */
a = symbol
num = integer
moneda = real
nombre = string
Prolog: Componentes
PREDICATES
 Define los hechos y bases de conocimiento que
se utilizaran en el programa. Deben estar
definidos de lo contrario ocurrirá un error. Los
hechos pueden definirse con o sin parámetros

Predicates
nondeterm esposo(symbol, symbol)
nondeterm madre(symbol, symbol)
nondeterm hombre(symbol)
nondeterm verificasexo(symbol, symbol)
nondeterm inicio
Prolog: Componentes
CLAUSES
 Definición de reglas de producción para
inferencias sobre las bases de conocimientos
Clauses
esposo(luis, luisa). Define base de conocimiento base
esposo(juan, juana). o primaria
esposo(pedro, pedra).
esposo(carla, carlos).

inicio:- write("\n\n Introduzca nombre: "), readln(N1),


write("\n\n Introduzca otro nombre: "), readln(N2),
verificasexo(N1, N2), nl. Define reglas de inferencia

verificasexo(N1, N2):- mujer(N1), hombre(N2), nl,


verifica(N1, N2).
Prolog: Componentes

GOAL
 Inicia el programa. Este es el punto de
partida, luego hará las implicaciones
necesarias para obtener o que se busca.

goal
inicio. /* hecho que inicia el programa*/
Relaciones Genealógicas
Ejemplo: árbol genealógico

 ¿Cuál es el conocimiento base?


 Este es aquel que debemos saber para poder
hacer inferencias
 Por ejemplo
esposo(X,Y)
 X es esposo de Y padre(X,Y)
 X es el padre de Y madre(X)
 X es la madre de Y genero(X)
 X es mujer o varón
Ejemplo: árbol genealógico

 Reglas que simulen razonamiento en la


inferencia de relaciones existentes
 En una árbol familiar podemos ver las
siguientes relaciones:
 X es prim@ de Y
primo(X,Y)
 X es cuñad@ de Y cuñada(X,Y)
 X es herman@ de Y hermano(X)
 Etc, etc. suegro(X)
Ejemplo: árbol genealógico
 Para saber si X es hermano de Y, debemos conocer si
tienen padres en común, al menos uno de ellos.
 Por tanto:
 Hermano(X,Y) :- padre(X,Z), padre(Y,Z).

 Con esta regla podemos determinar si X es herman@


de Y.
 Se interpreta
 X es hermano de Y, si el padre de X, que es Z, es el
mismo padre de Y
Ejemplo: árbol genealógico
Los predicados serían:
 Predicates
/*Esto sería conocimiento base*/
 nondeterm esposo(symbol, symbol)
 nondeterm madre(symbol, symbol)
 nondeterm padre(symbol, symbol)
 nondeterm hombre(symbol)
 nondeterm mujer(symbol)
/*Esto sería reglas de producción */
 nondeterm verificasexo(symbol, symbol)
 nondeterm inicio
Resumen

 Las reglas de inferencia deben estar bien definidas. El uso


de implicaciones es fundamental para lograr que el
programa sea lo mas sencillo posible.
A -> B
B -> C
----------
A -> B

 Esto, sin embargo, puede llegar a ser muy complejo, sino se


tiene completo dominio de la lógica de predicados.
Próxima clase

 Ejercicios propuestos de PROLOG


Actividad: Automatización

 ¿Cómo construir un SE que auxilie a un


estudiante y que le sugiera una carrera
según sus habilidades, características y
afinidades?
SISTEMAS EXPERTOS
Sistemas Expertos y modelos probabilísticos
Enrique Castillo, José Manuel Gutiérrez

Ing. Santos Pavon


Email: ing.spavon@gmail.com

S-ar putea să vă placă și