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
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
%%%%---------------------------- %%% 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)))),
%------------------------------------------------------------------------------- % ------------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)))),
%------------------------------------------------------------------------------- % ------------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).
%------------------------------------------------------------------------ % ------------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
%-------------------------------------------------------------- % 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',
%------------------------------------------------------- %% 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
%------------------------------------------------------- %% 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)).
%-------------------------- % 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).
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