Estudiante de Ing. Informtica Universidad Nacional de Trujillo jlrm1993@hotmail.com Silva Coronado Oskar Hernando Estudiante de Ing. Informtica Universidad Nacional de Trujillo oskar_hsc_510@hotmail.com
Resumen: Implementaremos un sistema experto usando el lenguaje Prolog, con la finalidad de recomendar a los usuarios una carrera profesional de acuerdo a sus habilidades, capacidades y aptitudes. Para esto, primero describiremos brevemente a los sistemas expertos y luego explicaremos como hemos desarrollado el sistema experto.
Palabras Clave: Prolog, sistema experto, orientacin vocacional, rbol, interfaz grfica de usuario.
I. Introduccin Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informticos que simulan el proceso de aprendizaje, de memorizacin, de razonamiento, de comunicacin y de accin en consecuencia de un experto humano en cualquier rama de la ciencia. Estas caractersticas le permiten almacenar datos y conocimiento, sacar conclusiones lgicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el porqu de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior. Tcnicamente un sistema experto, contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar sta base de conocimientos en una situacin particular que se le indica al programa. Cada vez el sistema se mejora con adiciones a la base de conocimientos o al conjunto de reglas. Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas de ordenador diseados para actuar como un especialista humano en un dominio particular o rea de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizar para ello el conocimiento que tenga almacenado y algunos mtodos de inferencia. Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fcil, reuniendo dos capacidades para poder cumplirlo:. A. Arquitectura de un Sistema Experto
Figura 1. Estructura de un Sistema Experto
1. Base de conocimiento La base de conocimientos contiene el conocimiento especializado extrado del experto en el dominio. El mtodo ms comn para representar el conocimiento es mediante reglas de produccin. El dominio de conocimiento representado se divide, pues, en pequeas fracciones de conocimiento o reglas. Una caracterstica muy importante es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fcil aadir reglas nuevas, eliminar las antiguas o corregir errores en las existentes. 2. Base de datos La base de datos o base de hechos es una parte de la memoria del ordenador que se utiliza para almacenar los datos recibidos inicialmente para la resolucin de un problema. Contiene conocimiento sobre el caso concreto en que se trabaja. Tambin se registrarn en ella las conclusiones intermedias y los datos generados en el proceso de inferencia. 3. Motor de Inferencia El motor de inferencias es un programa que controla el proceso de razonamiento que seguir el sistema experto. Utilizando los datos que se le suministran, recorre la base de conocimientos para alcanzar una solucin. La estrategia de control puede ser de encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos. Normalmente, el sistema sigue los siguientes pasos:
1. Evaluar las condiciones de todas las reglas respecto a la base de datos, identificando el conjunto de reglas que se pueden aplicar (aquellas que satisfacen su parte condicin) 2. Si no se puede aplicar ninguna regla, se termina sin xito; en caso contrario se elige cualquiera de las reglas aplicables y se ejecuta su parte accin (esto ltimo genera nuevos hechos que se aaden a la base de datos) 3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve al paso 1 Al encadenamiento regresivo se le suele llamar guiado por objetivos, ya que, el sistema comenzar por el objetivo (parte accin de las reglas) y operar retrocediendo para ver cmo se deduce ese objetivo partiendo de los datos. 4. Interfaz de Usuario El interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la informacin ofrecida. A la inversa, formula la informacin generada por el sistema incluyendo respuestas a las preguntas, explicaciones y justificaciones. 5. Mdulo de Explicacin La mayora de los sistemas expertos contienen un mdulo de explicacin, diseado para aclarar al usuario la lnea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cmo ha alcanzado una conclusin, ste le presentar la secuencia completa de reglas usada 6. Mdulo de Adquisicin. El mdulo de adquisicin del conocimiento permite que se puedan aadir, eliminar o modificar elementos de conocimiento (en la mayora de los casos reglas) en el sistema experto. B. Ventajas y Desventajas de un Sistema Experto 1. Ventajas Estos programas proporcionan la capacidad de trabajar con grandes cantidades de informacin, que son uno de los grandes problemas que enfrenta el analista humano que puede afectar negativamente a la toma de decisiones pues el analista humano puede depurar datos que no considere relevantes, mientras un SE debido a su gran velocidad de proceso analiza toda la informacin incluyendo las no tiles para de esta manera aportar una decisin ms slida. Otras ventajas son: Permanencia: A diferencia de un experto humano un SE (sistema experto) no envejece, y por tanto no sufre prdida de facultades con el paso del tiempo. Replicacin: Una vez programado un SE lo podemos replicar infinidad de veces. Rapidez: Un SE puede obtener informacin de una base de datos y realizar clculos numricos mucho ms rpido que cualquier ser humano. Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicacin el coste finalmente es bajo. Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dainos para el ser humano. Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano s (cansancio, presin, etc.). Consolidar varios conocimientos. Apoyo Acadmico. 2. Desventajas. Es evidente que para actualizar se necesita de reprogramacin de estos (tal vez este sea una de sus limitaciones ms acentuadas) otra de sus limitaciones puede ser el elevado costo en dinero y tiempo, adems que estos programas son poco flexibles a cambios y de difcil acceso a informacin no estructurada. Debido a la escasez de expertos humanos en determinadas reas, los SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. As mismo los SE pueden ser utilizados por personas no especializadas para resolver problemas. Adems si una persona utiliza con frecuencia un SE aprender de el. Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean capaces de resolver problemas de manera general, de aplicar el sentido comn para resolver situaciones complejas ni de controlar situaciones ambiguas. El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo elegido tenga la necesidad y/o presencia de un experto para la obtencin de cualquier tipo de beneficio. Otras desventajas son: Sentido comn: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podra admitir que un hombre lleva 40 meses embarazado, a no ser que se especifique que esto no es posible ya que un hombre no puede gestar hijos. Lenguaje natural: Con un experto humano podemos mantener una conversacin informal mientras que con un SE no podemos. Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y de errores ajenos, que un SE haga esto es muy complicado. Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones relevantes de un problema y separarlas de cuestiones secundarias. Capacidad sensorial: Un SE carece de sentidos. Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolucin de un problema. Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado. II. Sistema Experto para la Orientacin Vocacional A. Planeacin y Diseo Nuestra intencin es disear e implementar un sistema experto que provea una orientacin vocacional de acuerdo con las capacidades, habilidades y aptitudes con las que cumpla el usuario. Para lograr esto, hemos diseado un grfico en forma de rbol que nos proporcionar una idea sobre cmo funciona el sistema experto. Los nodos de este rbol representarn preguntas que el sistema experto har al usuario. Los hijos de un nodo sern la siguiente pregunta del sistema experto dependiendo de si la respuesta del usuario es si o no. La raz del rbol ser la primera pregunta que realiza el sistema experto. Las hojas sern las orientaciones. Se mostrar el rbol aplicado a un ejemplo concreto. Se inicia con una pregunta y dependiendo de la respuesta selecciona otra pregunta
Figura 2. Al responder si al nodo izquierdo, obtendremos el siguiente rbol:
Figura 3. Al responder si al nodo izquierdo, obtendremos el siguiente rbol:
Figura 4. Al responder si al nodo izquierdo, obtendremos el siguiente rbol:
Figura 5. Al responder si al nodo izquierdo, obtendremos el siguiente rbol:
Figura 6.
B. Interfaces Grafica de Usuario 1. Ventana Presentacin
Figura 7.
2. Ventana de Informacin sobre proyecto
Figura 8. 3. Ventana Principal
Figura 9. 4. Ventana de preguntas
Figura 10. 5. Ventana de fallo
Figura 11
C. Implementacin 1. Base de conocimiento Las carreras que se han tenido en cuenta para este Test Vocacional son: Administracin Economa Ciencias de la Comunicacin Derecho Estomatologa Biloga Ingeniera mecnica Ingeniera Metalrgica Ingeniera Civil Ingeniera Informtica El cdigo en Prolog sobre la base de conocimiento se puede apreciar en el Anexo A. 2. Motor de Inferencia. Como se explic el Sistema Experto solo realizara preguntas en relacin a Si y No, la decisin de que carrera ser la ms adecuada depender de que todas las caractersticas correspondientes a esta sean respondidas como Si, para esto se tiene que almacenar (assert) las tareas conocidas a lo largo del proceso. El cdigo en Prolog sobre el motor de inferencia se puede apreciar en el Anexo B III. Ejecucin A. Paso 1: Presentacin
Figura 12. B. Paso 2: Seleccin de presentacin
Figura 13. C. Paso 3: Preguntas Aqu todas las respuestas que brindaremos sern Si.