reglas y encadenamiento de reglas m.c. juan carlos olivares rojas

51
Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Upload: demetrio-checo

Post on 24-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Reglas y Encadenamiento de Reglas

M.C. Juan Carlos Olivares Rojas

Page 2: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Agenda

Sistemas de Deducción

Sistemas de Reacción

Encadenamiento Progresivo y Regresivo

Modelamiento Cognitivo

Modelos para la Resolución de Problemas

Page 3: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Sistemas de Deducción

• Los sistemas de deducción pueden variar dependiendo del problema pero en general se utiliza el método de resolución visto en la unidad pasada.

• Los lenguajes utilizados en IA como LISP y PROLOG tienen su propio motor de inferencia y están sujetos a reglas muy particulares.

Page 4: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Sistemas de Deducción• ¿Cuál es la diferencia entre un hecho y una

afirmación?

• Un hecho es algo que se considera verdadero, una afirmación es una proposición afirmativa que necesita ser demostrada.

• Ejemplos de reglas para identificar animales:

Page 5: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Sistemas de Deducción• Z1 Si X tiene pelo entonces X es mamífero• Z2 Si X da leche entonces X es mamífero• Z3 Si X tiene plumas entonces X es ave

• Z4 Si X vuela y X come carne entonces es mamífero

• Z5 Si X es mamífero y X come carne entonces X es carnívoro

Page 6: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Sistemas de Reacción• Los sistemas de reacción permite inferir conocimiento

a través de una concatenación de reglas, las cuales pueden ser Progresivas o Regresivas.

• Los sistemas de reacción tratar de anclar consecuentes con antecedentes de las reglas teniendo así sistemas más inteligentes.

• Los sistemas de reacción implican la ejecución de acciones.

Page 7: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Sistemas Reacción

B1 Si el paso es la verificación de la ordenPapas fritas se van a empacarNo se va a empacar PepsiEntonces pregunte al cliente si no le gustarían llevar

una botella de Pepsi.

• Otras reglas por definir son eliminar y añadir elementos.

Page 8: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Encadenamiento Progresivo y Regresivo

• El encadenamiento de reglas puede ser hacia adelante. En ésta, se inicia con cláusulas atómicas de la base de conocimiento. Luego se aplica el modus Ponens Generalizado hacia delante hasta que ya no se puedan obtener nuevas cláusulas atómicas.

• Las inferencias realizadas son de la forma:• Situación Respuesta⇒

Page 9: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Encadenamiento Progresivo o Regresivo

• Reglas:• R1: si A entonces B.• R2: si B entonces C.• R3: si C entonces Z

• Hechos:• H1: A (dato de partida)• H3: Z (objetivo a alcanzar)

Page 10: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Encadenamiento Progresivo y Regresivo

• En el encadenamiento regresivo se aplica todo lo contrario; es decir, dado un objetivo se pretende llegar al hecho para dar una solución a un problema.

• El encadenamiento regresivo o backtracking permite regresar a una opción anterior en caso de que existieran varios encadenamientos de regla que no llevan a la resolución

Page 11: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Modelamiento Cognitivo• Los sistemas basados en reglas pueden verse

como sustratos, de esta forma se puede tener una forma de introspección del como obtuvieron la deducción; es decir, muestran como se formaron las reglas.

• Los sistemas basados en reglas se les conoce como sabios idiotas, ya que sólo respondan a preguntas fáciles y carecen de muchas de las características del experto del dominio.

Page 12: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Modelos para la Resolución de Problemas

• Los sistemas basados en reglas pueden funcionar como sistemas de producción.

• Siendo sistemas de producción pueden utilizarse para generar nuevo conocimiento de las reglas ya existentes.

Page 13: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Hechos:• las aves vuelan • los pingüinos no vuelan • "pichurri" es un ave • "sandokan" es un perro • "alegría" es un ave

Page 14: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Reglas o Restricciones:

• una mascota vuela si es un ave y no es un pingüino

• Preguntas• ¿ "pichurri" vuela ? • ¿ qué mascotas vuelan ?

Page 15: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Términos: constantes (a), variables (X), funciones

(f(X, Y ))

pepe, juan, Cliente, cliente-de(X, Y )

• Fórmulas atómicas: predicados definidos sobre términos

tipo-cliente(X,bueno)

Page 16: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Fórmulas bien formadas (wff): fórmulas atómicas

unidas por conectivas (^, _,!, ¬) y cuantificadas (1A universal, 1B existencial)

• 1AX, 1BZ cliente(X) ^ compra(X, Z) ^ caro(Z) tipo-cliente(X, bueno)

• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).• 1AX, Y 1BZ padre(X, Z) ^ padre(Z, Y) abuelo(X, Y )

Page 17: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• abuelo(X,Y) :- padre(X,Z), madre(Z,Y).• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).

• abuelo(X, Y) = {(pepe, juan), (pepe, ana), … , (luis, javier)}

• progenitor(X, Y ) :- padre(X, Y ).• progenitor(X, Y ) :- madre(X, Y ).

Page 18: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• abuelo(X,Y) :- padre(X,Z), madre(Z,Y).• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).

• abuelo(X,Y) :- padre(X,Z), progenitor(Z,Y).

• hechos: A. (A átomo)• reglas: A :- A1, ..., An. (n>0, y A, A1, ..., An

átomos)

Page 19: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Hechos:– padece(jon, gripe). – padece(jon, hepatitis). – padece(ana, gripe). – padece(carlos, alergia).– es-síntoma(fiebre, gripe).– es-síntoma(cansancio, gripe).– es-síntoma(estornudos, alergia).– suprime(paracetamol, fiebre).– suprime(antihistamínico, estornudos).

Page 20: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Reglas:– debe-tomar(Per, Far) :- padece(Per, Enf), alivia(Far,

Enf).– alivia(Far, Enf) :- es-síntoma(Sin, Enf), suprime(Far,

Sin).

• Preguntas:– ? padece(carlos, gripe).– ? padece(jon, Z).– ? alivia(paracetamol, gripe).

Page 21: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG– ? alivia(X, gripe).– ? debe-tomar(Y, antihistamínico).– ? alivia(X, Y).– ? suprime(X, fiebre), suprime(X, estornudos).

• ¿Qué devuelve cada pregunta como resultado?

Page 22: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• hija (*A, *B) <- mujer (*A), padre (*B, *A). • hija (*A, *B) <- mujer (*A), madre (*B, *A).

• A continuación se muestra un programa completo en PROLOG:

%% declaracionespadrede('juan', 'maria'). padrede('pablo', 'juan').

Page 23: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOGpadrede('pablo', 'marcela'). padrede('carlos', 'debora'). %%Reglas% A es hijo de B si B es padre de A hijode(A,B) :-

padrede(B,A). abuelode(A,B) :- padrede(A,C), padrede(C,B). hermanode(A,B) :- padrede(C,A) , padrede(C,B), A \

== B. familiarde(A,B) :- padrede(A,B).

Page 24: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG

familiarde(A,B) :- hijode(A,B). familiarde(A,B) :- hermanode(A,B). %% consultas % juan es hermano de marcela? ?- hermanode('juan', 'marcela'). Yes?- hermanode('carlos', 'juan'). No?- abuelode('pablo', 'maria'). Yes?- abuelode('maria', 'pablo'). no

Page 25: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG

%unificación con evaluación. ?- X is 3+5.X = 8

%unificación simbólica ?- X = 3+5. X = 3+5

Page 26: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG

%comparación con evaluación ?- 3+5 =:= 2+6. yes

%comparación simbólica. ?- 3+5 == 2+6. no ?- 3+5 == 3+5. yes

Page 27: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Los programas en PROLOG se definen a través de

Algoritmos, Lógica y Control.

• En caso de que una consulta de más de un resultado, el prompt no aparece en la shell. Se puede utilizar el operador . Para terminar el resultado, o bien, el operador ; para continuar con los emparejamientos de resultados.

• Se pueden combinar preguntas para obtener respuestas más exactas.

Page 28: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• %Combinación de preguntas• legusta(pepe, pesca).• legusta(maria, bailar).• legusta(ana, pesca).• legusta(pepe, musica).• legusta(maria, musica).• legusta(ana, bailar).

• %preguntas

Page 29: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• ¿Le gusta la música a Pepé y a María?• ?_ legusta(pepe,musica), legusta(maria, musica).

• ¿Le gusta bailar a Pepé o le gusta la música a maria?• ?_ legusta(pepe,bailar); legusta(maria, musica).

• ¿Le gusta bailar a Pepé y a maria no le gusta la música?

• legusta(pepe,bailar), not(legusta(maria,musica)).

Page 30: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• El portal de redes sociales de la UVAQ desea

diseñar un Sistema Experto para encontrar la pareja ideal de cada estudiante si es que existiere. Para lograr esto, se tienen en la base de conocimientos registrados los gustos de cada usuario (color de ojos, altura, complexión, carro, etc.). Se da un punto por cada coincidencia. Diseñar la regla o reglas que determinen la mejor pareja de cada usuario. (Se deben tener al menos 2 hombres y 2 mujeres con 5 gustos c/u).

Page 31: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Se puede aplicar recursividad en PROLOG además

de que algunos programas en programación estructurada pueden ser implementados.

• %Sucesiones• sucesor(1,2).• sucesor(2,3).• sucesor(3,4).• sucesor(4,5).• sucesor(5,6).

Page 32: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• sucesor(6,7).• suma(1,X,R):-sucesor(X,R).• suma(N,X,R):-sucesor(M,N), suma(M,X, R1),

sucesor(R1, R).

• %Como se crearía una consulta?• %¿Qué es lo que el programa haría?

Page 33: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Una lista es una secuencia lineal de objetos en

donde todas las manipulaciones se hacen del lado izquierdo de la lista.

• La lista vacía se representa []. Una lista que no es vacía debe contener al menos dos elementos, uno del lado izquierdo y otro del lado derecho. Ejemplo: [X | Y], [X, Y | Z].

Page 34: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• agregar([], L, L).• agregar([A|R], L, [A|T]):-agregar(R, L, T).

• %Como se realiza la consulta?• ?- agregar([1,2,3 | [] ], [1, 5,7 | [] ], R).

• Dos predicados com el mismo nombre pero diferente aridad (numero de argumentos) son diferentes.

Page 35: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• %Programa aridad• ama(juan).• ama(pepe, maria).

• La unificación es el proceso en el cual uma variable toma un valor.

• Cuando una variable tiene un valor, este no cambia.

Page 36: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Dos términos se ejecutan cuando existe una posible

ligadura en sus variables y en sus valores. Ejemplo: a(X, 3) = a(2, Y).

• edad(luis,25).• edad(hugo,32).• edad(paco,29).• edad(jaime,67).• edad(laura,85).• es_viejo(Persona) :- edad(Persona,Valor), valor > 60.

Page 37: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

Ejercicio• padre(X,Y) – X es padre de Y• madre(X,Y) – X es madre de Y• es_padre(X) – X es un padre• es_madre(X) – X es una madre• es_hijo(X) – X es un hijo (hombre)• hermana(X,Y) – X es hermana de Y• abuelo(X,Y) – X es abuelo (hombre) de Y• tia(X,Y) – X es tía de Y• primo(X,Y) – X es primo (hombre) de Y

Page 38: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Prolog tiene la característica de ser reversible; es

decir, los argumentos pueden ser de entrada y salida. Si se tiene un predicado abuelo se puede saber quienes son los nietos de ese abuelo.

• Esto no sucede con los operadores aritméticos.

• Otro tipo de datos utilizado en Prolog es el registro. El cual es una combinación de elementos.

Page 39: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Por ejemplo: persona(‘Eva’, ‘López’, ‘Cárdenas’,

25)

• Define a una persona teniendo como atributos su nombre, sus apellidos y su edad. Dado que los términos son anidados se pueden tener registros como:

• Persona(“Helena”, edad(22), dirección(‘Miguel Hidalgo 33’, ‘Centro’, ‘Morelia’))

Page 40: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Se pueden utilizar estructuras de datos

recurrentes como árboles, en donde el primer elemento podría ser un nodo, el segundo el hijo izquierdo y el tercer elemento, el hijo derecho.

• arbol(dato1, temp, temp)• arbol(dato1, arbol(dato2, temp, temp), temp)

• En donde temp indica un campo vacío.

Page 41: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• ¿Qué diferencia existe entre las siguientes listas?• L= [1, 2, 3, 4, 5],• M = [0, L].

• L = [1, 2, 3, 4, 5],• M = [0 | L].

• Las listas pueden ser de elementos heterogéneos como: [1, p(a), [a, b], f(g(h))]

Page 42: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• El predicado member nos permite saber si un

elemento existe en la lista• ?- member(3, [1,2,3,4,5,6]). %regresa true

• El método append/3 sirve para concatenar listas• ?- append([1,2,3], [a, b, c], X).

• Las cadenas pueden ser tratadas como listas cuando se escriben con comillas dobles.

Page 43: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Por ejemplo la cadena X=“ABC” es equivalente a

X=[65, 66, 67].

• Los predicados utilizados para listas, también nos sirven para cadenas.

• La función number_codes/2 convierte un número a cadena.

• ? number_codes(12, X). % X=[49, 50].

Page 44: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• La función atom_codes/2 proporciona el código

equivalente de una cadena.

• ?- atom_codes(juan, X).• X = [106, 117, 97, 110].

• //Comprobación de tipos• es_lista([]).• es_lista([_|B]):-es_lista(B).

Page 45: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• ?- es_lista([a]).

• Existen ya predicados definidos para la comprobación de tipos de datos básicos como: integer/1, float/1, number/1, atom/1, var/1, novar/1, ground/1.

Page 46: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• % Ejemplo • entrada(paella). • entrada(gazpacho). • entrada(consome). • carne(filete_de_cerdo). • carne(pollo_asado). • pescado(trucha). • pescado(bacalao). • postre(flan).

Page 47: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• postre(nueces_con_miel). • postre(naranja). • calorias(paella, 200). • calorias(gazpacho, 150). • calorias(consome, 300). • calorias(filete_de_cerdo, 400). • calorias(pollo_asado, 280). • calorias(trucha, 160). • calorias(bacalao, 300).

Page 48: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• calorias(flan, 200). • calorias(nueces_con_miel, 500). • calorias(naranja, 50). • plato_principal(P):- carne(P); pescado(P). • comida(Entrada, Principal, Postre):-

entrada(Entrada), plato_principal(Principal), postre(Postre).

• valor(Entrada, Principal, Postre, Valor):- calorias(Entrada, X), calorias(Principal, Y), calorias(Postre, Z), sumar(X, Y, Z, Valor).

Page 49: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• comida_equilibrada(Entrada, Principal, Postre):-

comida(Entrada, Principal, Postre), valor(Entrada, Principal, Postre, Valor), menor(Valor, 800).

• sumar(X, Y, Z, Res):- Res is X + Y + Z. • menor(X, Y):- X < Y. • dif(X, Y):- X \==Y. • • Encontrar: ¿Cuántas calorías tiene la combinación

paella, trucha, naranja? ¿Qué comida que tiene cónsome de entrada es la más balanceada?

Page 50: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

PROLOG• Se pueden definir funciones recursivas como el

factorial:

• fac(0,1).• fac(N,F) :- N > 0, M is N - 1, fac(M,Fm), F is N *

Fm.

• ¿Cómo se expresa la serie de fibonnaci?

Page 51: Reglas y Encadenamiento de Reglas M.C. Juan Carlos Olivares Rojas

¿Preguntas, dudas y comentarios?