You are on page 1of 4

Laboratorio de Sistemas Basados en el Conocimiento Página: 1

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN 07:
Representación y Razonamiento del Conocimiento
I
OBJETIVOS

 Conocer la representación del conocimiento.


 Implementar la representación y razonamiento de conocimiento

II
TEMAS A TRATAR
 Representación del conocimiento
 Razonamiento del conocimiento
III
MARCO TEÓRICO
Representación del conocimiento

Existen dos grandes aproximaciones para abordar la representación del conocimiento que
se denominan de forma general simbólica y no simbólica.
La Inteligencia Artificial se desarrolla con un balance de técnicas simbólicas que han
dominado algunas épocas, y conexionistas, que se han aplicado con profusión en otras.
Ambos paradigmas tiene sus puntos débiles, pero los dos son necesarios para crear
máquinas inteligentes.
La representación interna del conocimiento mediante símbolos está bastante alejada del
lenguaje natural. Nuestro lenguaje natural es bastante complejo para ser representado con
precisión, entre otras cosas, por la ambigüedad inherente al mismo  Lógica difusa.
La representación matemática y lógica han sido dos de las primeras formas de
representación del lenguaje, muy cercanas a las máquinas, y por lo tanto, bastantes alejadas
del lenguaje natural.
La elección de la forma de representación del conocimiento es una tarea crucial.
Las reglas de producción, que se enuncian de la forma if-then, son la forma más popular de
representación del conocimiento dentro del paradigma declarativo. El conocimiento así
representado resulta muy cercano al operador humano y se puede entender fácilmente.

Razonamiento del conocimiento

Para cada formalismo de representación de conocimiento existen uno o varios métodos de


obtención de nuevo conocimiento. La mayoría de paradigmas responden a una estructura
en forma de reglas.
Laboratorio de Sistemas Basados en el Conocimiento Página: 2

Generalmente un SE contiene cientos e incluso miles de reglas para una determinada


situación, por lo tanto debe de tener un mecanismo de control para decidir qué reglas es
conveniente aplicar.
El motor de inferencia selecciona una determinada regla para ser disparada (activada) El
mecanismo de razonamiento es el que determina si las condiciones de la regla son
verificadas por los hechos presentes.

IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Cargue la aplicación Prolog de escritorio. En el menú File cree un nuevo (New)


programa
2. Escriba el siguiente código

:-use_module(library(pce)).
:-use_module(library(pce_style_item)).
main:-
new(Menu, dialog('Sistema basado en conocimiento', size(500,500))),
new(L,label(nombre,'Bienvenidoa su diagnostico')),
new(@texto,label(nombre,'segun la respuesta dadas tendra un resultado')),
new(@respl,label(nombre,'')),
new(Salir,button('SALIR',
and(message(Menu, destroy),message(Menu,free)))),
new(@boton,button('realizar test',message(@prolog,botones))),

send(Menu, append(L)),new(@btncarrera, button('Diagnostico?' )),


send(Menu,display,L,point(125,20)),
send(Menu,display,@boton,point(100,150)),
send(Menu,display,@texto,point(20,100)),
send(Menu,display,Salir,point(20,400)),
send(Menu,display,@respl,point(20,130)),
send(Menu,open_centered).
enfermedades(colesterol):-colesterol,!.
enfermedades(diabete):-diabete,!.
enfermedades(gastritis):-gastritis,!.
enfermedades('sin resultado').

colesterol:- tiene_colesterol,
pregunta('tiene inchazon en alguna extremidad del cuerpo?'),
pregunta('tiene perdida de equilibrio'),
pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t').

diabete:- tiene_diabete,
pregunta('padece de orinar con frecuencia'),
pregunta('t'),
Laboratorio de Sistemas Basados en el Conocimiento Página: 3

pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t').

gastritis:- tiene_gastritis,
pregunta('tos'),
pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t'),
pregunta('t').

desconocido:- se_deconoce_enfermedad.

tiene_colesterol:-pregunta('tiene perdida de equilibrio'),!.


tiene_diabete:-pregunta('padece de orinar con frecuencia'),!.
tiene_gastritis:-pregunta('tos'),!.

:-dynamic si/1,no/1.
preguntar(Problema):-
new(Di,dialog('exa')),
new(L2,label(texto,'Responde las siguientes preguntas')),
new(La,label(prob,Problema)),
new(B1,button(si,and(message(Di,return,si)))),
new(B2,button(no,and(message(Di,return,no)))),
send(Di,append(L2)),
send(Di,append(La)),
send(Di,append(B1)),
send(Di,append(B2)),
send(Di,default_button,si),
send(Di,open_centered),
get(Di,confirm,Answer),
write(Answer),send(Di,destroy),
( (Answer==si)->assert(si(Problema));
assert(no(Problema)),fail).

limpiar :- retract(si(_)),fail.
limpiar :- retract(no(_)),fail.
limpiar.
pregunta(S):-(si(S)->fail;preguntar(S)).
botones :- lim,
send(@boton,free),
send(@btncarrera,free),
enfermedades(Enfer),
send(@texto,selection('su diagnostico es: ')),

send(@respl,selection(Enfer)),
Laboratorio de Sistemas Basados en el Conocimiento Página: 4

new(@boton,button('inicia',message(@prolog,botones))),
send(Menu,display,@boton,point(40,50)),
send(Menu,display,@btncarrera,point(20,50)),
limpiar.
lim :- send(@respl, selection('')).

3. En el menu Compile ejecute la opción Make, luego Compile Buffer.

4. Luego vaya a la ventana de SWI-Prolog y escriba:


?- main.

V
EJERCICIOS
1. Explique el funcionamiento de la librería use_module(library(pce))
2. Explique el funcionamiento de la librería use_module(library(pce_style_item)).
3. Haga un nuevo programa que realice un diagnóstico para determinar si tiene conjuntivitis.
4. Realice el Sistema experto con lógica difusa de su proyecto a presentar en la 2da fase.

VI
CUESTIONARIO
1. ¿Qué es la representación de conocimiento?
2. ¿Qué tipo de representación de conocimiento existen?

VII
BIBLIOGRAFIA Y REFERENCIAS
1. Herrera Triguero, Francisco, Inteligencia Artificial, Inteligencia Computacional y Big Data,
Editorial Univ. De Jaén, 2014.
2. https://swish.swi-prolog.org/p/Tutorial%20de%20prolog.swinb

You might also like