Vous êtes sur la page 1sur 36

Universidad Nacional de Trujillo

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS


ESCUELA INFORMATICA
TEMA:
SISTEMA EXPERTO SOBRE TEST PSICOLGICO
PARA DETECTAR TIPOS DE PERSONALIDAD DE
ACUERDO A LA EDAD BIOLGICA
ALUMNOS:
ESQUIVEL SALDAA, GIANCARLO
DOMINGUEZ HONORIO, EMERSON
DOCENTE:
ING. ARTURO DAZ PULIDO
CURSO:
PROGRAMACIN LGICA

CICLO:
VII
Trujillo Per
2014
1


RESUMEN
Un sistema experto es un programa informtico que simula el juicio y el
comportamiento de una persona o una organizacin que cuenta con
conocimientos especializados y experiencia en un campo particular.
Tpicamente, un sistema de este tipo contiene una base de conocimientos
que contiene la experiencia acumulada y un conjunto de reglas para la
aplicacin de la base de conocimientos a cada situacin particular que se
describe en el programa. Sistemas expertos sofisticados pueden ser
mejorados con adiciones a la base de conocimientos o al conjunto de
reglas.
La finalidad del proyecto es la del desarrollo de un Sistema Experto cuyo
objetivo es el diagnosticar de forma correcta el tipo de personalidad de un
paciente de acuerdo a su edad biolgica.
El desarrollo de esta aplicacin es el de proporcionar una herramienta
que permita diagnosticar, con una cierta antelacin a lo normal, cualquier
tipo de trastorno de la personalidad. Esta deteccin podr ser realizada
por el psiquiatra o mdico de familia que realice el test a un paciente o
por los propios pacientes que deseen auto diagnosticarse. Los
resultados que podrn visualizar la aplicacin son:

2


PALABRAS CLAVE
Ingeniero del conocimiento (IC): Profesional encargado de extraer el conocimiento
de un experto para transferirlo a la base de conocimiento del Sistema Experto.
Experto (EX): Profesional que transfiere el conocimiento al Sistema Experto.
Inteligencia artificial (IA): Es la rama de la informtica dedicada al diseo de
mquinas o programas que resuelvan problemas o lleven a cabo tareas que
requieran cierto grado de inteligencia. La IA se ramifica en una serie de sub ramas,
que podran ser la resolucin de problemas, el aprendizaje computacional, la
percepcin artificial, etc...
Sistema Experto: Un captulo de la inteligencia artificial que ejecuta, a partir de una
base de conocimientos o de reglas, algunas tareas que normalmente requieren
cierto nivel de experiencia por parte del hombre. Estos programas usualmente
logran satisfacer inferencias usando dicho conjunto de reglas para interpretar
inputs y generar un output que suene a inteligente.
Los Sistemas Expertos permiten el desarrollo de otros sistemas que representan el
conocimiento como una serie de reglas. Las distintas relaciones, conexiones y
afinidades sobre un tema pueden ser compilados en un Sistema Experto pudiendo
incluir relaciones altamente complejas y con mltiples interacciones.
Base de Conocimientos: Parte principal de un Sistema Experto, consistente en una
estructura de datos que contiene los conocimientos del experto del dominio
(experiencia, estrategias de razonamiento y conocimiento)
Base de hechos: Elemento de un Sistema Experto formado por una memoria
auxiliar que contiene simultneamente los hechos iniciales que describen el
problema a resolver y los resultados intermedios obtenidos en el proceso de
razonamiento y resolucin.
Adquisicin de Conocimiento: Proceso de creacin de la base de conocimiento de
un Sistema Experto.
Motor de Inferencia: Ncleo del Sistema Experto que contiene las estrategias de
control e inferencia.
Validacin: es el proceso de confirmacin que el modelo bajo estudio usa
percepciones o entradas mensurables y produce salidas usables para realizar
decisiones sobre el mundo real.
Marco: Mtodo de representacin del conocimiento.
3


NDICE
Contenido
RESUMEN ........................................................................................................................................ 1
PALABRAS CLAVE ............................................................................................................................. 2
NDICE .............................................................................................................................................. 3
INTRODUCCIN ............................................................................................................................... 4
1.1. USOS DE UN SISTEMA EXPERTO: .............................................................................................. 5
1.2. ARQUITECTURA Y FUNCIONAMIENTO DE UN SISTEMA EXPERTO: .......................................... 6
1.3. VENTAJAS E INCONVENIENTES DE UN SISTEMA EXPERTO: ..................................................... 8
1.3.1. VENTAJAS: ............................................................................................................................. 8
1.3.2. INCONVENIENTES: ................................................................................................................. 9
1.4. LENGUAJE DE PROGRAMACIN USADO: PROLOG................................................................. 10
1.4.1. INTRODUCCIN: .................................................................................................................. 10
1.4.2. CARACTERSTICAS:............................................................................................................... 10
1.4.3. DERIVADOS: ......................................................................................................................... 11
2. NOMBRE DEL SISTEMA EXPERTO: SISTEMA EXPERTO SOBRE TEST PSICOLGICO PARA
DETECTAR TIPOS DE PERSONALIDAD ............................................................................................ 11
2.1. PLANTEAMIENTO Y DISEO: ............................................................................................. 11
2.2. IMPLEMENTACIN: ........................................................................................................... 19
3. EJECUCIN:................................................................................................................................ 29
4. REFERENCIAS BIBLIOGRFICAS: ................................................................................................ 35






4


INTRODUCCIN

Se podra describir el proyecto como el desarrollo de un Sistema Experto cuyo
resultado esperado es el de lograr realizar un diagnstico, de forma correcta,
de los trastornos de la personalidad. La aplicacin deber poder diferenciar
segn la sintomatologa del paciente los tipos de trastornos ms probables en
l y as comunicrselo.
Para ello se tratar de recoger el mximo de informacin necesaria para poder
realizarlo con eficacia. La informacin adquirida no estar acotada slo a los
sntomas, sino que deber proceder a adquirir los diferentes tratamientos que
se llevan a cabo hoy en da de cada trastorno, as como de sus efectos
secundarios.
Adems se realizar un interfaz amistoso con el usuario, ya que se trata de un
usuario no familiarizado en temas informticos y la iteracin entre usuario y
aplicacin debe ser sencilla y fcil de asimilar.
El resultado del diagnstico se conservar en un historial en el que se
reflejarn resultados anteriores del paciente, para as poder seguir su evolucin
guardando, adems cada una de las consultas realizadas. Estos informes
podrn ser utilizados por el profesional para un estudio ms determinado y
especfico que se va fuera de los objetivos del proyecto.


5


1.1. USOS DE UN SISTEMA EXPERTO:
En un primer nivel muy sencillo, se pueden incluir aplicaciones que slo requieren un
nmero limitado de tcnicas de Ingeniera del Conocimiento, las cuales se basan en
incorporar reglas heursticas de decisin a una aplicacin convencional. En el nivel ms
sofisticado, se encuentran los sistemas que van ms all de las recomendaciones y deciden
qu acciones tomar en cada caso. Entre estos dos niveles, se encuentran sistemas basados
en la experiencia (SS.EE) en sus dos facetas de recomendacin y de consejo. El rango se
establece sobre una escala cualitativa en cuanto a la categora y otra cuantitativa en lo
referente al esfuerzo de construccin relativo a cada categora.
La aplicacin de Sistemas Expertos est proliferando a gran velocidad, especialmente en
los siguientes sectores:
Banca.
Industria.
Comercio y Servicios.
Centrndonos en el sector industrial, los campos de aplicacin ms propios de los
Sistemas Expertos son:
Control de procesos.
Diseo de productos e instalaciones.
Diagnstico de fallos en equipos industriales.
Mantenimiento de equipos industriales.
Planificacin de proyectos.
Asesoramiento y formacin
La figura siguiente muestra algunos ejemplos que motivan la aplicacin de los sistemas
expertos en algunos de estos campos.






Aplicacin de los Sistemas Expertos en otros campos
6


1.2. ARQUITECTURA Y FUNCIONAMIENTO DE UN SISTEMA
EXPERTO:
Un esquema bsico de la arquitectura de un Sistema Experto podra ser el siguiente:







Pero existen ms componentes de un Sistema Experto que presentamos y explicamos a
continuacin con ms detenimiento.
1. 2. 1. B. C. (Base de conocimiento):
Contiene los elementos de conocimiento que se consideran necesarios para resolver un
determinado problema, lo que equivaldra a los algoritmos en programacin algortmica.
1. 2. 2. M. I. (Motor de inferencia): Es el mecanismo capaz de aplicar el conocimiento
que se encuentra en la base de conocimiento para resolver un problema. Se encarga de
buscar y seleccionar las piezas de conocimiento ms adecuadas en cada instante para su
utilizacin en la resolucin del problema, as como de aplicarlas.








Ciclo base del motor de inferencias
Esquema bsico de la arquitectura de un Sistema Experto
7



1. 2. 3. B. D. (Base de datos): En ella se encuentra la informacin relevante del problema
que se est tratando. Su contenido va variando segn se va aplicando el conocimiento
contenido en la base de conocimiento. En cada instante contendr una descripcin de la
situacin en la que se encuentra el proceso de resolucin del problema. Corresponde a las
variables, ficheros, bases de datos, de la programacin algortmica.
Otros elementos no imprescindibles en un Sistema Experto:
1. 2. 4. Interfaz de usuario: Es el componente que permite a una persona interactuar con
el SBC. Ha de ser fcil de usar por personal no especializado. Debe interactuar
principalmente con el motor de inferencia y con la base de datos para poder introducir el
estado inicial y los intermedios que se pueden ir produciendo.

1. 2. 5. Subsistema de explicacin (Mdulo de explicacin): Es capaz de explicar
las lneas de actuacin seguidas por el SBC. Es frecuente que pueda explicar dos cosas: Por
qu se ha aplicado un determinado sistema de conocimiento y el cmo se ha llegado a una
determinada conclusin.
1. 2. 6. S. A. C. (Subsistema de adquisicin de conocimiento) o (Mdulo de
adquisicin): Permite que el SBC adquiera conocimiento y lo almacene en su base de
conocimiento de un modo ms o menos automatizado.
Todo ello forma parte del esqueleto extendido de un Sistema Experto, que se muestra a
continuacin:

Esquema de un Sistema Experto
8


1.3. VENTAJAS E INCONVENIENTES DE UN SISTEMA EXPERTO:
1.3.1. VENTAJAS:

PERMANENCI A: Los expertos humanos pueden morir, cambiar de empresa o
perder facultades lo que no puede ocurrir con un Sistema Experto.

DUPLICACIN: El experto humano se encuentra en un nico lugar fsico y es
irreproducible, mientras que una vez construido un Sistema Experto, se pueden
fabricar un nmero ilimitado de copias destinadas a todos los lugares donde sean
necesarias.

EFICIENCIA:
- El Sistema Experto puede ayudar de manera importante y con un menor
costo a la capacitacin y adiestramiento del personal sin experiencia.
- Aunque los sistemas expertos son caros de construir y mantener, son baratos
de operar.
- Los costes de desarrollo y mantenimiento se pueden dividir entre muchos
usuarios.
- El coste global puede ser bastante razonable si se le compara con expertos
humanos.
CONSISTENCIA:
Con los Sistemas Expertos, transacciones similares se ejecutan de la misma manera.
El sistema har recomendaciones para situaciones parecidas. Los Sistemas Expertos
razonan sobre la base de un conocimiento adquirido y no tienen sitio para la
subjetividad.
DOCUMENTACIN:
Un Sistema Experto puede suministrar documentacin del proceso de decisin. Y
sta puede permanecer.
CAPACIDAD:
Un Sistema Experto puede revisar todas las transacciones y un experto humano slo
una muestra. En algunos casos, la complejidad de un problema hace que un experto
humano no pueda obtener una conclusin. Debido a la capacidad de los ordenadores
de procesar una gran cantidad de informacin y de realizar un gran nmero de
operaciones en poco tiempo, los Sistemas Expertos pueden obtener conclusiones
realistas en situaciones donde los expertos humanos no pueden.

9


TIEMPO:
El fraude y los errores pueden ser prevenidos. La informacin est disponible antes
para la toma de decisiones.
FIABILIDAD:
Un Sistema Experto responder siempre de la misma manera ante cierto problema,
mientras que un experto humano puede estar condicionado por factores
emocionales, prejuicios personales, tensin, fatiga, etc.
REDUCCIN DE RIESGOS:
Consistencia de toma de decisiones, Documentacin y Nivel de Experto.
BARRERAS DE ENTRADA:
Los Sistemas Expertos pueden ayudar a una empresa a crear barreras de entrada
para potenciales competidores.
DIFERENCIACIN:
En algunos casos, un Sistema Experto puede diferenciar un producto o puede
referirse al nombre de la empresa.
Los Sistemas Expertos son mejores en aquellas situaciones donde hay una estructura
notoria previa.
BAJO COSTO:
Aunque puede resultar caro inicialmente construir un sistema experto, una vez
construido produce grandes beneficios.
1.3.2. INCONVENIENTES:
Por otro lado, los Sistemas Expertos presentan grandes carencias frente a los seres
humanos:
Sentido comn: Para un ordenador no hay nada obvio.
Lenguaje natural: Todava nos encontramos muy lejos de tener un sistema que
pueda formular preguntas flexibles y mantener una conversacin informal con un
usuario o con un paciente.
Experiencia sensorial: Los Sistemas Expertos, en la actualidad, se limitan a recibir
informacin.
Perspectiva global: Un experto humano es capaz de detectar inmediatamente cules
son las cuestiones principales y cules son secundarias (separando los datos
relevantes de los detalles insignificantes).

10


Adems de otras limitaciones:
Falta de capacidad de aprendizaje: Los expertos humanos son capaces de aprender
de la experiencia.
Capacidad de manejar conocimiento no estructurado: El experto humano organiza y
usa la informacin y el conocimiento presentados de forma poco ordenada.
Funciones genuinamente humanas: por ejemplo, todo lo relacionado con el lenguaje
natural, la formacin de conceptos, el conocimiento de sentido comn y la creacin
quedan fuera de los Sistemas Expertos, al menos, en el estado actual del
conocimiento.
La extraccin del conocimiento es el problema ms complejo que se les plantea a
los Ingenieros de Conocimientos.
Los Sistemas Expertos son incapaces de reconocer un problema para el que su
propio conocimiento es inaplicable o insuficiente.
Los motores de inferencia poseen algunos lmites.
Falta personal competente para investigar y desarrollar aplicaciones.
1.4. LENGUAJE DE PROGRAMACIN USADO: PROLOG

1.4.1. INTRODUCCIN:
Su nombre viene de Programacin en Lgica, creado a comienzos de los 70: Robert
Kowalski (Edimburgo), lado terico; Maarten van Emden(Edimburgo), demostracin
prctica; Alain Colmerauer (Marsella), implementacin.
Prolog es un lenguaje de programacin de alto nivel basado en la lgica formal. A
diferencia de los lenguajes de programacin tradicionales que se basan en la realizacin de
secuencias de comandos, Prolog se basa en definir y luego resolver frmulas lgicas.
Prolog es a veces llamado un lenguaje declarativo o un lenguaje basado en reglas, porque
sus programas consisten en una lista de hechos y reglas. Prolog se usa ampliamente para
aplicaciones de inteligencia artificial, en particular de los sistemas expertos.
1.4.2. CARACTERSTICAS:
Basado en lgica y programacin declarativa.
Produce estilo de programacin orientado a metas.
No se especifica cmo debe hacerse, sino qu debe lograrse (alto nivel).
El programador se concentra ms en el conocimiento que en los algoritmos.
Qu es conocido? (Hechos y relaciones), Qu preguntar? (Cmo resolverlo)

11


1.4.3. DERIVADOS:
La influencia de micro-PROLOG ha sido escasa en lenguajes posteriores, si bien algunos
han adoptado algunas de sus caractersticas. El FRIL (Fuzzy Relational Inference
Language) es una notable excepcin, ya que basa explcitamente su sintaxis en l, sin ser no
obstante plenamente compatible con el micro-PROLOG. Desarrollado en el seno de la
Universidad de Bristol, la versin ms reciente de este lenguaje es la 4.9, aunque desde
2003 no ha sido actualizado.
Su continuador ms reciente ha sido hasta ahora el EDULOG, desarrollado a partir de 1999
y basado en la experiencia adquirida tras trabajar en el rea educativa durante aos con
micro-PROLOG. Creado por el Grupo de Programacin Funcional y Lgica, un equipo de
trabajo integrado por docentes y alumnos de la Universidad Nacional de Lujn y de la
Universidad Nacional de la Pampa, ambas de Argentina, pretende superar los
inconvenientes que plantea la utilizacin del habitualmente empleado interface SIMPLE y
otros problemas observados en el aprendizaje que derivan de las caractersticas sintcticas
propias del lenguaje, como el abundante uso de parntesis o el formato rgido de algunas
consultas.
Dada la relacin entre el Lisp y el micro-PROLOG, algunas implementaciones de Prolog en
Lisp y en Scheme (un dialecto del Lisp) muestran gran similitud con el micro-PROLOG.
Tambin es aparentemente similar, aunque en mucha mayor medida, el Schelog, lenguaje
que fusiona caractersticas del Scheme y del PROLOG.
2. NOMBRE DEL SISTEMA EXPERTO: SISTEMA EXPERTO SOBRE TEST
PSICOLGICO PARA DETECTAR TIPOS DE PERSONALIDAD
2.1. PLANTEAMIENTO Y DISEO:
Para realizar un diagnstico de la personalidad, ser necesario que nuestra
aplicacin siga determinados procedimientos. Estos procedimientos se ajustarn a
un sistema de clasificacin de edades inicialmente, que en este caso sern diferentes
rangos: 5-12, 13-30 y de 31 a ms aos.
La implementacin de la base de conocimiento y el desarrollo del motor de
inferencia, nos permitir extraer conclusiones partiendo de la informacin que
hemos extrado anteriormente segn un mtodo fijo de determinacin de un tipo de
personalidad de acuerdo a las preguntas afirmativas de las presentadas en el test,
que est configurado imitando el procedimiento humano de los expertos, con el que
estableceremos la solucin.


12


EDAD DE 5-
12?
En este sistema experto, el usuario empieza eligiendo su edad biolgica (edad
dentro de rangos establecidos).







EDAD DE 13-
30?
EDAD DE 31
A MS?
SI NO
SI
NO
PREGUNTAS
DE NIEZ
PREGUNTAS
DE JOVEN
PREGUNTAS
DE ADULTO
SI
rbol inicial del Sistema Experto, Rango de Edades Biolgicas
13


Las preguntas de niez mencionadas en el esquema anterior son las siguientes:

Se siente bien estando solo?
Tiene menos de 3 amigos en clase?
Tiene ms de 3 amigos en clase?
Presenta problemas de
comportamiento?
Presenta problemas de
comportamiento?
Tiene problemas de autoestima?
Es callado en clase?
Le gusta formar grupos en clase?
Es ordenado?
Es optimista?
Es solidario con sus compaeros?
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
SI
SI
SI
SI
SI
SEGN
CARL JUNG
ESTE TPO
DE
PERSONAS
SON
EMOCIONAL
MNETE
INESTABLES
E
INTROVERTI
DAS
14


Las preguntas de niez mencionadas en el esquema anterior son las siguientes:

Se siente bien estando solo?
Tiene menos de 3 amigos en clase?
Tiene ms de 3 amigos en clase?
Presenta problemas de
comportamiento?
Presenta problemas de
comportamiento?
Tiene problemas de autoestima?
Es callado en clase?
Le gusta formar grupos en clase?
Es ordenado?
Es optimista?
Es solidario con sus compaeros?
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
SI
SI
SI
SEGN
CARL JUNG
ESTE TPO
DE
PERSONAS
SON
EMOCIONAL
MNETE
ESTABLES Y
EXTROVERTI
DAS
15


Las preguntas de joven mencionadas en el esquema anterior son las siguientes:

Presenta algn vicio?
Sufre de algn complejo de la
sociedad?
Tiene independencia familiar?
Le gusta trabajar en grupos?
Tiene autoestima baja?
Es impulsivo?
NO
NO
NO
NO
NO
NO
SI
SI
SEGN
CARL JUNG
ESTE TPO
DE
PERSONAS
SON
ALTAMENTE
INTROVERTI
DAS
SI
16


Las preguntas de joven mencionadas en el esquema anterior son las siguientes:

Presenta algn vicio?
Sufre de algn complejo de la
sociedad?
Tiene independencia familiar?
Le gusta trabajar en grupos?
Tiene autoestima baja?
Es impulsivo?
NO
NO
NO
NO
NO
NO
SI
SI
SEGN
CARL JUNG
ESTE TPO
DE
PERSONAS
SON
ALTAMENTE
EXTROVERTI
DAS
SI
17


Las preguntas de adulto mencionadas en el esquema anterior son las siguientes

A formado alguna familia?
Tuvo una vida agitada?
Tiene problemas con la
depresin?
Tiene algn vicio?
Su situacin econmica es
favorable?
NO
NO
NO
NO
NO
SI
PROBABILID
AD DE VEJEZ
SOLITARIA
SI
Toma medicamentos?
NO
18


Las preguntas de adulto mencionadas en el esquema anterior son las siguientes

A formado alguna familia?
Tuvo una vida agitada?
Tiene problemas con la
depresin?
Tiene algn vicio?
Su situacin econmica es
favorable?
NO
NO
NO
NO
NO
SI
PROBABILID
AD DE VEJEZ
EN
COMUNIN
CON SU
FAMILIA
SI
Toma medicamentos?
NO
19


2.2. IMPLEMENTACIN:
esrespuesta('si').
esrespuesta('no').

espregunta('Tiene mas de 3 amigos en clase?',X):-esrespuesta(X).
espregunta('Es optimista?',X):-esrespuesta(X).
espregunta('Presenta problemas de comportamiento',X):-esrespuesta(X).
espregunta('Es solidario con sus compaeros?',X):-esrespuesta(X).

espregunta('tiene problema con la depresion?',X):-esrespuesta(X).
espregunta('a formado alguna familia?',X):-esrespuesta(X).
espregunta('tiene algun vicio?',X):-esrespuesta(X).
espregunta('tuvo una vida ajitada?',X):-esrespuesta(X).
espregunta('su situacion economica es favorable?',X):-esrespuesta(X).
espregunta('toma medicamentos?',X):-esrespuesta(X).

espregunta('sufre de algun complejo de la sociedad?',X):-esrespuesta(X).
espregunta('tiene autestima baja?',X):-esrespuesta(X).
espregunta('es impulsivo?',X):-esrespuesta(X).

espregunta('presenta algun vicio?',X):-esrespuesta(X).
espregunta('le gusta trabajar en grupos?',X):-esrespuesta(X).
espregunta('tiene independencia familiar?',X):-esrespuesta(X).
espregunta('se siente bien estando solo?',X):-esrespuesta(X).
espregunta('Tiene problemas de autoestima?',X):-esrespuesta(X).
espregunta('Es callado en clase?',X):-esrespuesta(X).

espregunta('Tiene menos de 3 amigos en clase?',X):-esrespuesta(X).
espregunta('le gusta formar grupos en clase?',X):-esrespuesta(X).
espregunta('Es ordenado?',X):-esrespuesta(X).

%PRINCIPAL-----------------pregunts de inicio

espregunta('EDAD DE 5-12 ?',X):-esrespuesta(X).
espregunta('EDAD DE 13-30 ?',X):-esrespuesta(X).
espregunta('EDAD DE 31-MAS ?',X):-esrespuesta(X).

main:-
new(D,dialog('TEST PSICOLOGICO')), % TITULO
send(D,size,size(560,400)), %% TAMAO
send(D,colour,colour(red)),
send(D, append, new(Menu, menu_bar)), %% MENU BAR
send(Menu, append, new(Iniciar, popup(consultar))), % acaaa agrego al meu
send(Menu, append, new(Ayuda, popup(ayuda))), % acaaa agrego al meu
send_list(Iniciar, append,
[ menu_item(iniciar, message(@prolog,pp)) % prolog
]), % aca llamo al menu item
send_list(Ayuda, append,
20


[ menu_item(autores, message(@display, inform, 'Dominguez honorio
Emerson ,Esquivel Saldaa Giancarlo'))
]),
mostrar('C:/Programa/talla.bmp',D,Menu),
send(D,open,point(200,200)).


halt.qsave_program('c:/ejecutable.exe', [stand_alone(true), goal(main)]).

mostrar(V,D,M):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1),
send(D1,below(M)).
%----------------------------------
%% aca llamo despuesde la vetana
%----------------------------------
pp:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('EDAD DE 5-12 ?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('EDAD DE 13-30 ?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('EDAD DE 31-MAS ?')),
send_list(Pre3,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),


new(B,button(siguiente,and(message(@prolog,principal,Pre1?selection,Pre2?selection,Pre
3?selection),message(D,destroy)))),
send(D,append,B),
send(D,default_button,siguiente),
send(D,open,point(350,350)).




%%%%----------------------------
%%% aca hago lo de las preguntas
%%%-----------------------------
principal(P1,P2,P3):- espregunta('EDAD DE 5-12 ?',P1),P1='si', espregunta('EDAD DE 13-30
?',P2),P2='no',
espregunta('EDAD DE 31-MAS ?',P3),P3='no',pl.

21


principal(P1,P2,P3):- espregunta('EDAD DE 5-12 ?',P1),P1='no', espregunta('EDAD DE 13-30
?',P2),P2='si',
espregunta('EDAD DE 31-MAS ?',P3),P3='no', ph.

principal(P1,P2,P3):- espregunta('EDAD DE 5-12 ?',P1),P1='no', espregunta('EDAD DE 13-30
?',P2),P2='no',
espregunta('EDAD DE 31-MAS ?',P3),P3='si', pho.

principal(_,_,_):-new(D,dialog('ERROR')), new(L,label(l,'ELIJA SOLO UNA
OPCION',font('times','roman',16))),
send(D,append,L),send(D,open,point(350,350)).

%-------------------------------------------------------------
%--------- aca se encuentra la tercera ocion------------------
%--------------------------------------------------------------
pho:-new(D,dialog('PREGUNTAS')),
mostrar2('C:/Programa/adulto.jpg',D,30,40),
new(Pre1,menu('a formado alguna familia?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('tuvo una vida ajitada?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('tiene problema con la depresion?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('tiene algun vicio?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('su situacion economica es favorable?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('toma medicamentos?')),
send_list(Pre6,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append(Pre6)),
new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,adul,Pre1?selection,Pre2?selection,Pre3?selecti
on,Pre4?selection,Pre5?selection,Pre6?selection))),
send(D,append,B1),
send(D,append,B),

send(D,open,point(300,300)).


%-------------------------------------------------------------------------------
% ------------aca se enuentra la primera alternativa de la tercera opcion ----
%-------------------------------------------------------------------------------
22



adul(P1,P2,P3,P4,P5,P6):- espregunta('a formado alguna familia?',P1),P1='no',
espregunta('tuvo una vida ajitada?',P2),P2='si',
espregunta('tiene problema con la
depresion?',P3),P3='si',espregunta('tiene algun vicio?',P4),P4='no',
espregunta('su situacion economica es
favorable?',P5),P5='no',espregunta('toma medicamentos?',P6),P6='no',
diag_solitario('C:/Programa/anci_soli.jpg','POSIBLE ANCIANIDAD
SOLITARIA','C:/Programa/vej_solo.jpg').
%-------------------------------------------------------------------------------
% ------------aca se enuentra la segunda alternativa de la tercera opcion ----
%-------------------------------------------------------------------------------

adul(P1,P2,P3,P4,P5,P6):- espregunta('a formado alguna familia?',P1),P1='si',
espregunta('tuvo una vida ajitada?',P2),P2='no',
espregunta('tiene problema con la
depresion?',P3),P3='no',espregunta('tiene algun vicio?',P4),P4='no',
espregunta('su situacion economica es
favorable?',P5),P5='si',espregunta('toma medicamentos?',P6),P6='no',
diag_alegre('C:/Programa/anci_alegre.jpg','POSIBLE ANCIANIDAD
SOLITARIA','C:/Programa/vej_alegre.jpg').

% %------------------------------------------------------------------
% ------------aca no cincide alternativa de la tercera opcion ----
%------------------------------------------------------------------


adul(_,_,_,_,_,_):-new(D,dialog('ERROR')), new(L,label(l,'CONSULTA NO
DETERMINADA',font('times','roman',16))),
send(D,append,L), send(D,open,point(350,350)).

%--------------------------
% diagnostico de adulto solitario
%---------------------------

diag_solitario(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PRONOSTICO :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'CON POSIBILIDAD DE ANCIANIDAD SOLITARIA'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,60,450),
send(D,open).

%--------------------------
% diagnostico de adultao acomapaado
%---------------------------
23



diag_alegre(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PRONOSTICO :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'CON POSIBILIDAD DE ANCIANIDAD SOLITARIA'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,70,450),
send(D,open).



%-------------------------------------------------------------------------------
% ------------si coincide repuesta llamo a la ventana de la tercera opcion ----
%-------------------------------------------------------------------------------

%---------------------------------------------------------------------
% ------------aca se encuentra la seguna opcion
%---------------------------------------------------------------------

ph:-new(D,dialog('PREGUNTAS')),
mostrar2('C:/Programa/juventud.jpg',D,20,40),
new(Pre1,menu('presenta algun vicio?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('sufre de algun complejo de la sociedad?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('tiene independencia familiar?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('le gusta trabajar en grupos?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('tiene autestima baja?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('es impulsivo?')),
send_list(Pre6,append,[si,no]),
send(D,append(Pre1)),send(D,append,Pre2),send(D,append,Pre3),
send(D,append,Pre4),send(D,append,Pre5),send(D,append(Pre6)),
new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,jov,Pre1?selection,Pre2?selection,Pre3?selectio
n,Pre4?selection,Pre5?selection,Pre6?selection))),
send(D,append,B1),
send(D,append,B),
send(D,open,point(300,300)).




24




%-------------------------------------------------------------------------------
% ------------aca se enuentra la primera alternativa de la segunda opcion ----
%-------------------------------------------------------------------------------
jov(P1,P2,P3,P4,P5,P6):-espregunta('presenta algun vicio?',P1),P1='si',espregunta('sufre de
algun complejo de la sociedad?',P2),P2='si',
espregunta('tiene independencia familiar?',P3),P3='no',espregunta('le gusta
trabajar en grupos?',P4),P4='no',
espregunta('tiene autestima baja?',P5),P5='si',espregunta('es
impulsivo?',P6),P6='no',
diag_intr('C:/Programa/adol_intro.jpg','ALTAMENTE
INTROVERTIDO','C:/Programa/adolecente_introvertido.jpg').
%Mosca minadora terminado
%-------------------------------------------------------------------------------
% ------------aca se enuentra la segunda alternativa de la segunda opcion ----
%-------------------------------------------------------------------------------
jov(P1,P2,P3,P4,P5,P6):-espregunta('presenta algun vicio?',P1),P1='no',espregunta('sufre
de algun complejo de la sociedad?',P2),P2='no',
espregunta('tiene independencia familiar?',P3),P3='si',espregunta('le gusta
trabajar en grupos?',P4),P4='si',
espregunta('tiene autestima baja?',P5),P5='no',espregunta('es
impulsivo?',P6),P6='si',
diag_extro('C:/Programa/adol_extro.jpg','ALTAMENTE
EXTROVERTIDO','C:/Programa/adolecente_extrovertido.jpg').

% %-------------------------------------------------------------------------------
% ------------cuando no encuntra alternativa de la segunda opcion ----
%-------------------------------------------------------------------------------

jov(_,_,_,_,_,_):-new(D,dialog('ERROR')), new(L,label(l,'DIAGNOSTICO NO
DETERMINADO',font('times','roman',16))),
send(D,append,L),send(D,open,point(350,350)).

%--------------------------
% diagnostico de joven
%---------------------------

diag_intr(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PERSONALIDAD :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'APAGRA Y/O TRISTE CON GRAN PROBABILIDADE DE FRACASAR
EN LA SOCIEDAD'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,20,430),
send(D,open).
25



%--------------------------
% diagnostico de joven extrovertido
%---------------------------

diag_extro(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PERSONALIDAD :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'CON GRAN FACILIDAD PARA LOS NEGOCIOS'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,60,450),
send(D,open).


%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++ separador

%------------------------------------------------------------------------
% ------------aca se encuentra la primera opcion ----------------------
%-----------------------------------------------------------------------

pl:-new(D,dialog('PREGUNTAS PARA TEST DE NIES')),
mostrar2('C:/Programa/niez.jpg',D,20,40) ,
new(Pre1,menu('se siente bien estando solo ? ')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('Tiene menos de 3 amigos en clase? ')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('Tiene mas de 3 amigos en clase? ')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('Presenta problemas de comportamiento')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('Tiene problemas de autoestima ? ')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('Es callado en clase ? ')),
send_list(Pre6,append,[si , no]),
new(Pre7,menu('le gusta formar grupos en clase ? ')),
send_list(Pre7,append,[si,no]),
new(Pre8,menu('Es ordenado ? ')),
send_list(Pre8,append,[si,no]),
new(Pre9,menu('Es optimista? ')),
send_list(Pre9,append,[si,no]),
new(Pre10,menu('Es solidario con sus compaeros ? ')),
send_list(Pre10,append,[si,no]),
send(D,append(Pre1)),
26



send(D,append,Pre2),send(D,append,Pre3),send(D,append,Pre4),send(D,append,Pre5),sen
d(D,append(Pre6)),

send(D,append,Pre7),send(D,append,Pre8),send(D,append,Pre9),send(D,append,Pre10),

new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,peque,Pre1?selection,Pre2?selection,Pre3?sele
ction,Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,Pre8?selection,Pre9?sel
ection,Pre10?selection))),
send(D,append,B1),
send(D,append,B),

send(D,open,point(300,300)).


%--------------------------------------------------------------
% aca van las primera alternativa de la primera opcion para veificarlo
%---------------------------------------------------------------
peque(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):- espregunta('se siente bien estando
solo?',P1),P1='no',espregunta('Tiene menos de 3 amigos en clase?',P2),P2='no',
espregunta('Tiene mas de 3 amigos en
clase?',P3),P3='si',espregunta('Presenta problemas de comportamiento',P4),P4='no',
espregunta('Tiene problemas de autoestima?',P5),P5='no',espregunta('Es
callado en clase?',P6),P6='no',
espregunta('le gusta formar grupos en clase?',P7),P7='no',espregunta('Es
ordenado?',P8),P8='no',
espregunta('Es optimista?',P9),P9='si',espregunta('Es solidario con sus
compaeros?',P10),P10='si',

pf3('C:/Programa/extrovertido.jpg','EXTROVERTIDO','C:/Programa/pinnaspist.bmp').

%-------------------------------------------------------
%% segunda alternativa para responder la pimera opcion
%------------------------------------------------------

peque(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):- espregunta('se siente bien estando
solo?',P1),P1='si',espregunta('Tiene menos de 3 amigos en clase?',P2),P2='si',
espregunta('Tiene mas de 3 amigos en
clase?',P3),P3='no',espregunta('Presenta problemas de comportamiento',P4),P4='no',
espregunta('Tiene problemas de autoestima?',P5),P5='si',espregunta('Es
callado en clase?',P6),P6='si',
espregunta('le gusta formar grupos en clase?',P7),P7='no',espregunta('Es
ordenado?',P8),P8='si',
espregunta('Es optimista?',P9),P9='no',espregunta('Es solidario con sus
compaeros?',P10),P10='no',
27



introvertido('C:/Programa/introvertido.jpg','INTROVERTIDO','C:/Programa/des_intro.jpg').


%-------------------------------------------------------
%% tercera alternativa para responder la pimera opcion
%------------------------------------------------------

peque(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):- espregunta('se siente bien estando
solo?',P1),P1='no',espregunta('Tiene menos de 3 amigos en clase?',P2),P2='no',
espregunta('Tiene mas de 3 amigos en
clase?',P3),P3='si',espregunta('Presenta problemas de comportamiento',P4),P4='si',
espregunta('Tiene problemas de autoestima?',P5),P5='no',espregunta('Es
callado en clase?',P6),P6='no',
espregunta('le gusta formar grupos en clase?',P7),P7='no',espregunta('Es
ordenado?',P8),P8='no',
espregunta('Es optimista?',P9),P9='no',espregunta('Es solidario con sus
compaeros?',P10),P10='no',
violento('C:/Programa/violento.jpg','VIOLENTO','C:/Programa/vio_intro.jpg').

%-------------------------------------------------------
%% cuando no coincide ocion para responder la pimera opcion
%------------------------------------------------------
peque(_,_,_,_,_,_,_,_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'PLAGA NO DETERMINADA',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).

image(X):-new(D,dialog('PLAGA')),
mostrar1(X,D),
% new(B,label(salir,message(D,destroy))),
%send(D,append,B),
send(D,open).

mostrar1(V,D):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1).

%--------------------------
% exrovertido en la nies
%---------------------------
pf3(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PERSONALIDAD :')),
28


send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'ALEGRE'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,20,350),
send(D,open).
%--------------------------
% introvertido en la nies
%---------------------------

introvertido(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PERSONALIDAD :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'APAGRA Y/O TRISTE'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,20,400),
send(D,open).
%--------------------------
% VIOLENTO en la nies
%---------------------------
violento(X,Y,Z):-new(D,dialog('RESULTADOS DE TEST ')),
mostrar2(X,D,20,30),
new(L,label(n,'PERSONALIDAD :')),
send(D, append(label(n,'PERSONA :'))),
send(D, append(label(n,'AGRECIVA CON LOS NIOS DEL ENTORNO'))),
send(D,append,L),
send(D, append(label(n,Y))),
mostrar2(Z,D,20,400),
send(D,open).

mostrar(V,D):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1).

mostrar2(V,D,X,Y):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1),
send(D,display,D1,point(X,Y)).
29


3. EJECUCIN:
3.1. Al ejecutar nuestro programa se tendr que ir a CONSULTAR y luego en INICIAR













3.2. A continuacin se escoger el rango de edad del Usuario que est pasando el Test










30


A) NIO









A continuacin se mostrarn las preguntas de acuerdo a la Niez.































31




En este caso el resultado es:













Para este caso el resultado es:

























32


Para este caso el resultado es:






















B) JOVEN











33



Para este caso el resultado es:















Para este caso el resultado es:









34


C) ADULTO



Para este caso el resultado es:











Para este caso el resultado es:









35


4. REFERENCIAS BIBLIOGRFICAS:

- E.Rich, Knight. Inteligencia Artificial, Gustavo-Gili, eds., 1995
- Jose Angel Olivas Varela Apuntes de la asignatura de Sistemas Expertos,ICAI,
2004.
- Universidad Complutense de Madrid Apuntes de Ingeniera del Conocimiento,
UC3M, 2005.
- http://www.iit.upcomillas.es/pfc/resumenes/42bbe5095b837.pdf
- http://jesusgonzalezfonseca.blogspot.com/2010/12/la-introversion-y-la-
extroversion-segun.html
- http://es.wikipedia.org/wiki/Sistema_experto
- https://www.google.com.pe/?gws_rd=ssl#q=prolog

Vous aimerez peut-être aussi