Académique Documents
Professionnel Documents
Culture Documents
1.1 Usos de un SE
Resumen
Implementaremos un sistema experto
usando Prolog, cuyo objetivo ser aconsejar a
un usuario cliente sobre la mejor opcin que
puede tomar a la hora de elegir qu carrera
estudiar. Para ello primero haremos una
breve descripcin sobre los temas a tratar en
nuestro proyecto y luego desarrollaremos el
SE en prolog.
Trminos generales
Implementacin
Algoritmos,
Diseo,
Palabras Clave
Prolog, sistema experto, orientacin
vocacional, preguntas
1. Introduccin
Los sistemas expertos son llamados as
porque emulan el razonamiento de un
experto en un dominio concreto, y en
ocasiones son usados por stos. Con los
sistemas expertos se busca una mejor calidad
y rapidez en las respuestas, dando as lugar a
una mejora de la productividad del propio
experto al usar este tipo de sistemas
informticos.
1.3.2 Inconvenientes
Su elevado costo de desarrollo
No utilizan razonamiento por analoga.
No pueden decidir inmediatamente
algo que an no ha estudiado.
La complejidad a la hora de
representar el conocimiento humano
debido a que estn limitadas a tratar
problemas teniendo informacin an
incompleta.
1.4 Prolog
1.4.1 Introduccin a Prolog
Prolog es un lenguaje de programacin
creado para representar y utilizar el
conocimiento que se tiene sobre un
determinado dominio. Ms exactamente, el
dominio es un conjunto de objetos y el
conocimiento se representa por un conjunto
de relaciones que describen las propiedades
de los objetos y sus interrelaciones. Un
conjunto de reglas que describa estas
propiedades y estas relaciones es un
programa PROLOG. Una definicin ms
accesible para el usuario comn sera:
Prolog es un lenguaje de programacin que es
usado para resolver problemas que envuelven
objetos y las relaciones entre ellos.
Su definicin basada en la lgica formal,
permite ejecutar estatutos que no son otra
cosa que oraciones de un lenguaje lgico
elemental particular de clusulas. Prolog por
su naturaleza muestra una habilidad para
describir gramticas, en particular gramticas
libres de contexto.
ESTRUCTURA
Un programa Prolog est formado por una
secuencia de enunciados (clusulas): hechos,
reglas y variables.
Lo anterior se detalla a continuacin
Hechos
Expresan relaciones entre objetos.
Supongamos que queremos expresar el hecho
de que "un coche tiene ruedas". Este hecho,
consta de dos objetos, "coche" y "ruedas", y
de una relacin llamada "tiene".
Variables
Representan objetos que el mismo PROLOG
determina. Una variable puede estar
instanciada o no instanciada. Esta instanciada
cuando existe un objeto representado por una
variable. De este modo, cuando preguntamos
Un coche tiene X ?,
2. Orientacin Vocacional
2.2 Implementacin
esrespuesta('si').
esrespuesta('no').
% AREA I: ARTE Y CREATIVIDAD.
espregunta('Ilustrar, dibujar y animar digitalmente',X):esrespuesta(X).
espregunta('Tocar un instrumento y componer msica',X):esrespuesta(X).
espregunta('Disear logotipos y portadas de una revista',X):esrespuesta(X).
espregunta('Pintar, hacer esculturas, ilustrar libros de arte,
etctera',X):-esrespuesta(X).
espregunta('Prepararse para ser modelo profesional',X):esrespuesta(X).
espregunta('Disear juegos interactivos electrnicos para
computadora',X):-esrespuesta(X).
new(D,dialog('ORIENTACION VOCACIONAL')),
send(D,colour,colour(red)),
send(D,size,size(560,340)),
[ menu_item(autores, message(@display,
inform, 'Jhefersown Apreciado Rivera - George Castillo
Farfan'))
]),
mostrar('C:/Programa/inicio.jpg',D,Menu),
send(D,open,point(200,200)).
halt.qsave_program('c:/ejecutable.exe', [stand_alone(true),
goal(main)]).
%PRINCIPAL
send(D1,below(M)).
pho:-new(D,dialog('PREGUNTAS')),
%% VENTANA DE INICIO, PREGUNTA SI ES HOMBRE O MUJER.
pp:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('es hombre ?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('es mujer ?')),
send_list(Pre2,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
new(B,button(siguiente,and(message(@prolog,principal,Pre1
?selection,Pre2?selection),message(D,destroy)))),
send(D,append,B),
send(D,default_button,siguiente),
send(D,open,point(350,350)).
%% PRINCIPAL
principal(P1,P2):espregunta('es hombre ?',P1),P1='si',
espregunta('es mujer ?',P2),P2='no',
pho.
principal(P1,P2):espregunta('es hombre ?',P1),P1='no',
espregunta('es mujer ?',P2),P2='si',
send_list(Pre3,append,[si , no]),
new(Pre4,menu('Ilustrar, dibujar y animar
digitalmente')),
send_list(Pre4,append,[si , no]),
new(Pre5,menu('Seleccionar, capacitar y motivar al
personal de una organizacin/empresa')),
send_list(Pre5,append,[si , no]),
new(Pre6,menu('Realizar excavaciones para descubrir
restos del pasado')),
send_list(Pre6,append,[si , no]),
new(Pre7,menu('Resolver problemas de clculo para
construir un puente')),
send_list(Pre7,append,[si , no]),
new(Pre8,menu('Disear cursos para ensear a la gente
sobre temas de salud e higiene')),
send_list(Pre8,append,[si , no]),
new(Pre9,menu('Tocar un instrumento y componer
msica')),
pho.
send_list(Pre9,append,[si , no]),
principal(_,_):-new(D,dialog('ERROR')),
new(L,label(l,'DEBES ELEGIR SOLO UNA
OPCION',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).
send_list(Pre12,append,[si , no]),
new(Pre13,menu('Organizar eventos y atender a sus
asistentes')),
send(D,append,Pre10),
send(D,append,Pre11),
send(D,append,Pre12),
send_list(Pre13,append,[si , no]),
send(D,append,Pre13),
new(Pre14,menu('Atender la salud de personas
enfermas')),
send_list(Pre14,append,[si , no]),
new(Pre15,menu('Controlar ingresos y egresos de fondos
y presentar el balance final de una institucin')),
send_list(Pre15,append,[si , no]),
new(Pre16,menu('Hacer experimentos con plantas
(frutas, rboles, flores)')),
send_list(Pre16,append,[si , no]),
new(Pre17,menu('Concebir planos para viviendas,
edificios y ciudadelas')),
send(D,append,Pre14),
send(D,append,Pre15),
send(D,append,Pre16),
send(D,append,Pre17),
send(D,append,Pre18),
send(D,append,Pre19),
send(D,append,Pre20),
new(B1,button(atras,and(message(@prolog,pp),message(D,d
estroy)))),
send_list(Pre17,append,[si , no]),
new(Pre18,menu('Investigar y probar nuevos productos
farmacuticos')),
new(B,button(siguiente,message(@prolog,areaI,Pre1?selecti
on,Pre2?selection,Pre3?selection,
send_list(Pre18,append,[si , no]),
new(Pre19,menu('Hacer propuestas y formular
estrategias para aprovechar las relaciones econmicas entre
dos pases')),
send_list(Pre19,append,[si , no]),
new(Pre20,menu('Pintar, hacer esculturas, ilustrar libros
de arte, etctera')),
Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,
Pre8?selection,Pre9?selection,Pre10?selection,
Pre11?selection,Pre12?selection,Pre13?selection,Pre14?selec
tion,Pre15?selection,Pre16?selection,Pre17?selection,
Pre18?selection,Pre19?selection,Pre20?selection))),
send(D,append,B1),
send_list(Pre20,append,[si , no]),
send(D,append,B),
send(D,open,point(300,300)).
send(D,append(Pre1)),
send(D,append,Pre2),
%% AREA I: ARTE Y CREATIVIDAD.
send(D,append,Pre3),
areaI(_,_,_,P4,_,_,_,_,P9,_,_,P12,_,_,_,_,_,_,_,P20):send(D,append,Pre4),
send(D,append,Pre5),
send(D,append,Pre6),
send(D,append,Pre7),
send(D,append,Pre8),
send(D,append,Pre9),
pf3('C:/Programa/imagen4.jpg','Ciencia y
Tecnologa','C:/Programa/pinnaspist.bmp').
pf3('C:/Programa/imagen1.jpg','ARTE Y
CREATIVIDAD','C:/Programa/pinnaspist.bmp').
%% AREA V: Ciencias Ecolgicas, Biolgicas y de Salud
%% AREA II: CIENCIAS SOCIALES
areaI(_,P2,P3,_,_,_,_,P8,_,_,_,_,_,P14,_,P16,_,_,_,_):areaI(_,_,_,_,_,P6,_,_,_,_,_,_,P13,_,_,_,_,_,_,_):espregunta('Realizar excavaciones para descubrir restos del
pasado',P6),P6='si',
espregunta('Organizar eventos y atender a sus
asistentes',P13),P13='si',
pf3('C:/Programa/Imagen2.jpg','CIENCIAS
SOCIALES','C:/Programa/pinnaspist.bmp').
%% AREA III: Econmica, Administrativa y Financiera
areaI(_,_,_,_,P5,_,_,_,_,P10,_,_,_,_,P15,_,_,_,P19,_):espregunta('Seleccionar, capacitar y motivar al personal de
una organizacin/empresa',P5),P5='si',
areaI(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_):new(D,dialog('ERROR')),
send(D,append,L),
pf3('C:/Programa/imagen3.jpg','Econmica, Administrativa y
Financiera','C:/Programa/pinnaspist.bmp').
image(X):-new(D,dialog('PLAGA')),
send(D,open,point(350,350)).
mostrar1(X,D),
%
new(B,label(salir,message(D,destroy))),
%send(D,append,B),
send(D,open).
new(B, bitmap(I)),
pf3(X,Y,Z):-new(D,dialog('RESULTADOS TEST ORIENTACION
VOCACIONAL')),
new(F2, figure),
send(F2, display, B),
mostrar2(X,D,20,30),
new(D1, device),
new(L,label(n,'')),
send(D1, display, F2),
send(D, append(label(n,''))),
send(D, display, D1),
send(D, append(label(n,'RECOMENDACION DE AREA DE
VOCACION: '))),
send(D, append(label(n,Y))),
send(D,append,L),
%mostrar2(_,D,20,350),
send(D,open).
f3(X,Y):-new(F,frame('IMAGEN DE LA PLAGA')),
send(F,append(new(F1,browser))),
mostrar(X,F1),
send(new(D,dialog),below(F1)),
send(D, append(label(n,''))),
send(D, append(label(n,''))),
send(D, append(label(n,Y))),
send(F,open,point(300,300)).
send(D,display,D1,point(X,Y)).
3. Ejecucin
4. Referencias bibliogrficas
http://www.monografias.com/trabajos16/sist
emas-expertos/sistemas-expertos.shtml
http://www.redcientifica.com/doc/doc19990
8210001.html
http://es.wikipedia.org/wiki/Prolog
http://es.wikipedia.org/wiki/Sistema_experto
http://artemisa.unicauca.edu.co/~lgarreta/ele
nguajes/classes/logical/apuntes05lpprolog.pdf