Sistema Experto Para Sugerir Ramas de Carrera Afín a Estudiantes de La Carrera de Ing. Informática...

9
Sistema Experto para Sugerir Ramas de Carrera Afín a Estudiantes de la Carrera de Ing. Informática de la UNT Gian Vallejos Bardales Mayra Villanueva Ruíz Estudiante Ing. Informática Estudiante Ing. Informática Universidad Nacional de Trujillo Universidad Nacional de Trujillo [email protected]  [email protected]  RESÚMEN Vamos a implementar un sistema experto con el SWI Prolog haciendo uso de la librería XPCE, la cual ha sido desarrollada para el desarrollo en GUI Prolog desde el principio; que nos permite el desarrollo de aplicaciones graficas cuyo propósito será aconsejar a un estudiante recién ingresado a la carrera de Informática sobre los cursos o temas de su gusto y preferencia, y de acuerdo a ella recomendarle los cursos y toda la rama que implicaría llevar. Para ello primero haremos una breve descripción, con su respectiva importancia y luego el problema en sí. Términos Generales: Algorithms, Prolog. Palabras clave PCE, sistema experto, cursos, carrera, informática, rama de los cursos. 1. INTRODUCCIÓN La preocupación por el progreso del bienestar social, ha suscitado un creciente interés por los medios para lograr el ajuste adecuado del individuo en lo que estudia. El objetivo que se pretende es tener un alto rendimiento en la aplicación de pruebas de aptitudes con un bajo costo. Ésta puede medirse, conocerse y desarrollarse. De ahí nace el propósito de crear un Sistema Experto, que permita medir la capacidad intelectual de sujetos para diversos fines de la carrera que ingresó. La tecnología representada por los Sistemas Expertos actuales, surge de las técnicas de Inteligencia Artificial que han sido objeto de amplias e intensivas investigaciones desde finales de la década de 1950. La investigación específica en SE realmente comenzó a mediados de los años sesenta. Un SE es un conjunto de programas que son capaces, mediante la aplicación de conocimientos, de resolver problemas en un área determinada del conocimiento o saber que se requiere de la inteligencia humana. [1] Un SE es un programa que emula a un experto humano. Ahora bien, se considera que un experto humano es alguien que sabe mucho sobre un tema determinado y que puede dar un consejo adecuado. [2] Esta experiencia sólo se adquiere tras un largo aprendizaje y a base de mucha experiencia. En la tabla 1 se hace una comparación entre un sistema experto y un sistema clásico se puede apreciar que es más confiable la utilización de un sistema experto y se obtiene un resultado más rápido debido a que utiliza una base de conocimiento y un motor de inferencia.

Transcript of Sistema Experto Para Sugerir Ramas de Carrera Afín a Estudiantes de La Carrera de Ing. Informática...

Sistema Experto para Sugerir Ramas de Carrera Afn a Estudiantes de la Carrera de Ing. Informtica de la UNT

Gian Vallejos Bardales Mayra Villanueva Ruz Estudiante Ing. Informtica Estudiante Ing. Informtica Universidad Nacional de Trujillo Universidad Nacional de Trujillo [email protected] [email protected]

RESMENVamos a implementar un sistema experto con el SWI Prolog haciendo uso de la librera XPCE, la cual ha sido desarrollada para el desarrollo en GUI Prolog desde el principio; que nos permite el desarrollo de aplicaciones graficas cuyo propsito ser aconsejar a un estudiante recin ingresado a la carrera de Informtica sobre los cursos o temas de su gusto y preferencia, y de acuerdo a ella recomendarle los cursos y toda la rama que implicara llevar. Para ello primero haremos una breve descripcin, con su respectiva importancia y luego el problema en s.

Trminos Generales: Algorithms, Prolog.Palabras clavePCE, sistema experto, cursos, carrera, informtica, rama de los cursos.1. INTRODUCCINLa preocupacin por el progreso del bienestar social, ha suscitado un creciente inters por los medios para lograr el ajuste adecuado del individuo en lo que estudia. El objetivo que se pretende es tener un alto rendimiento en la aplicacin de pruebas de aptitudes con un bajo costo. sta puede medirse, conocerse y desarrollarse. De ah nace el propsito de crear un Sistema Experto, que permita medir la capacidad intelectual de sujetos para diversos fines de la carrera que ingres. La tecnologa representada por los Sistemas Expertos actuales, surge de las tcnicas de Inteligencia Artificial que han sido objeto de amplias e intensivas investigaciones desde finales de la dcada de 1950. La investigacin especfica en SE realmente comenz a mediados de los aos sesenta. Un SE es un conjunto de programas que son capaces, mediante la aplicacin de conocimientos, de resolver problemas en un rea determinada del conocimiento o saber que se requiere de la inteligencia humana. [1] Un SE es un programa que emula a un experto humano. Ahora bien, se considera que un experto humano es alguien que sabe mucho sobre un tema determinado y que puede dar un consejo adecuado.[2] Esta experiencia slo se adquiere tras un largo aprendizaje y a base de mucha experiencia.En la tabla 1 se hace una comparacin entre un sistema experto y un sistema clsico se puede apreciar que es ms confiable la utilizacin de un sistema experto y se obtiene un resultado ms rpido debido a que utiliza una base de conocimiento y un motor de inferencia.

Tabla 1: Comparacin de un sistema experto con un sistema clsico.

SISTEMA CLSICOSISTEMA EXPERTO

Conocimiento y procesamiento combinados en un programa.Base de conocimiento separada del mecanismo de Procesamiento.

No contiene errores.Puede contener errores.

No da explicaciones.Forma el mdulo de explicacin.

Los cambios son tediosos.Los cambios en las reglas son fciles.

Slo opera completo.Puede funcionar con pocas reglas.

Se ejecuta paso a paso.La ejecucin usa heursticas y lgica.

Representa y usa datos.Representa y usa conocimiento.

1.1 Usos de un sistema expertoLos sistemas expertos se desenvuelven en distintas reas del conocimiento; algunas de las ms utilizadas son la medicina, ingeniera, administracin, contabilidad, bolsa de valores.Veamos:> Cuando los expertos humanos, en una determinada materia son escasos. Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de informacin, interpretndola y proporcionando una recomendacin a partir de la misma. Un ejemplo es el anlisis financiero, donde se estudian las oportunidades de inversin, dependiendo de los datos financieros de un cliente y de sus propsitos.> En situaciones complejas, donde la subjetividad humana puede llevar a conclusiones errneas.> Para detectar y reparar fallos en equipos electrnicos, se utilizan los sistemas expertos de diagnstico y depuracin, que formulan listas de preguntas con las que obtienen los datos necesarios para llegar a una conclusin. Este tipo de sistemas se utilizan tambin en medicina (ej. MYCIN y PUFF), y para localizar problemas en sistemas informticos grandes y complejos.> Predecir resultados futuros a partir del conocimiento que tienen. Los sistemas meteorolgicos y de inversin en bolsa son ejemplos de utilizacin en este sentido. El sistema PROSPECTOR es de este tipo.> Gestionar proyectos de desarrollo, planes de produccin de fbricas, estrategia militar y configuracin de complejos sistemas informticos, entre otros.> Cuando se necesita controlar un proceso tomando decisiones como respuesta a su estado y no existe una solucin algortmica adecuada, es necesario usar un sistema experto. Este campo comprende el supervisar fbricas automatizadas, factoras qumicas o centrales nucleares.> Evaluar el nivel de conocimientos y comprensin de un estudiante, y ajustar el proceso de aprendizaje de acuerdo con sus necesidades.1.2 Arquitectura y funcionamiento de un sistema expertoNo existe una estructura de sistema experto comn. Sin embargo, la mayora de los sistemas expertos tienen unos componentes bsicos: base de conocimientos, motor de inferencia, base de datos e interfaz con el usuario. Muchos tienen, adems, un mdulo de explicacin y un mdulo de adquisicin del conocimiento.1.2.1 Base de conocimientos (BC)Aqu se encuentran los conocimientos del experto humano, en forma ordenada y estructurada, el tipo de conocimiento es permanente en el sistema. Dicho conocimiento se codifica segn una notacin especfica que incluye reglas, predicados, redes semnticas y objetos.1.2.2 Base de hechos (Base de datos)Memoria temporal de trabajo, que se utiliza para almacenar los datos recibidos inicialmente y contiene informacin sobre el problema particular del sistema debe resolver.1.2.3 Motor de inferenciaEl que combina los hechos y las preguntas particulares, utilizando la base de conocimiento, seleccionando los datos y pasos apropiados para presentar los resultados; es decir, Modela el proceso de razonamiento humano que controla el proceso de razonamiento que seguir el sistema experto.1.2.4 Interfaz de usuarioComunicacin entre el sistema experto y el usuario final por ello es necesario mostrar y obtener informacin de forma clara, fcil y agradable, sirve para que se pueda realizar una consulta en un lenguaje lo ms natural posible. Este componente es la forma en la que el sistema se presenta ante el usuario.Requisitos o Caractersticas de la interface que se presenta al usuario:a) Manejo rpido.b) Debe evitarse en lo posible la entrada de datos errneos.c) Los resultados deben presentarse en una forma clara para el usuario.d) Las preguntas y explicaciones debe ser comprensibles.1.2.5 Modulo de ExplicacinExplica al usuario la estrategia de solucin encontrada y el porqu de las decisiones tomadas las soluciones descubiertas por los expertos deben poder ser repetibles, esto es, las conclusiones deben de ser congruentes, exactas en los resultados. El usuario puede pedir explicacin de las conclusiones obtenidas o de las acciones que realiza el sistema experto.1.2.6 Mdulo de adquisicinPermite que se puedan aadir, eliminar o modificar elementos de conocimiento en el sistema experto.

1.3 Ventajas e Inconvenientes de un Sistema Experto1.3.1 Ventajas* 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.* Duplicacin: Una vez programado un SE lo podemos duplicar 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.)

1.3.2 Inconvenientes* Creatividad: los humanos pueden responder creativamente a situaciones inusuales, los sistemas expertos no pueden. * Experiencia Sensorial: los humanos tienen un amplio rango de disponibilidad de experiencia sensorial. Y los sistemas expertos actualmente dependen de una entrada simblica. * Degradacin: los sistemas expertos no son bueno para reconocer cuando no existen respuestas o cuando los problemas estn fuera de su rea.* Elevado costo en dinero y tiempo.* Son poco flexibles a cambios y de difcil acceso a informacin no estructurada.

1.4 Programacin Lgica (Prolog)1.4.1 IntroduccinPROLOG est orientado a la resolucin de problemas mediante el clculo de predicados, basado en: preguntas a la base de datos y pruebas matemticas. El programa PROLOG especfica cmo debe ser la solucin, en vez de dar el algoritmo para su resolucin; dicha solucin se obtiene mediante bsqueda aplicando la lgica de predicados. El programa PROLOG se compone de unos hechos (datos) y un conjunto de reglas, es decir, relaciones entre objetos de la base de datos.La ejecucin del programa cargado en memoria consiste en realizar una pregunta de forma interactiva: el intrprete generar por inferencia los resultados que se deducen a partir del contenido de la base de datos.PROLOG tiene una sintaxis y semntica simples. Slo busca relaciones entre los objetos creados, las variables y las listas, que son sus estructuras bsicas.1.4.2 CaractersticasPROLOG hace ms eficiente el tratamiento simblico, y el sistema de representacin de conocimiento, as como la estructura de control o motor de inferencia y parte del sistema de entrada/salida de un lenguaje general de programacin de tareas.Prolog cuenta con: Un sistema de representacin del conocimiento en forma de clusulas (hechos y reglas) tambin llamado reglas de produccin. Un motor de inferencia de orden 1 que es el propio intrprete o compilador PROLOG, basado en la unificacin y la bsqueda en profundidad y la marcha atrs. Un sistema sencillo de dialogo. As que la realizacin de un SE en PROLOG se reduce a la presentacin y a los mdulos de justificacin de los resultados y explicacin del proceso.1.4.3 Derivados* ALF (Another logical framework) Este lenguaje combina la programacin lgica con la programacin funcional (funcional basado en la evaluacin de expresiones y funciones matemticas ms que en la utilizacin de comandos como , ).* Mercury programming languageMercury es un lenguaje de alto nivel (es decir, no se preocupa de problemas como la reserva y liberacin de memoria) derivado de Prolog, pero con una implementacin que le hace ser ms til para representar y tratar problemas del mundo real. Combina toda la expresividad del lenguaje declarativo con avanzadas tcnicas de anlisis esttico y deteccin de errores.* ACE, PALS: And/Or-Parallel Implementation of Prolog Es una implementacin de Prolog, pero que soporta una arquitectura multiprocesador

2. RAMAS DE CARRERA AFN2.1.Planteamiento y DiseoQueremos realizar un sistema experto en el que de acuerdo a los gustos y habilidades en la informtica de los estudiantes de esta carrera, les sugiera una rama de especializacin. Para realizar este diseo hemos partido del diagrama de un rbol, en el que cada nodo tiene una pregunta asociada que se imprimir por pantalla y que el alumno tendr que responder, segn la respuesta que responda el programa se encaminar a la rama del nodo correspondiente a la respuesta elegida por el alumno. Una vez recorrido todo el rbol se llegar a una de las hojas del rbol que contendr la respuesta final.Hemos planteado el diseo de manera que el rbol sea binario, es decir a que el rbol tendr dos respuesta si o no. A continuacin se muestra una imagen (Figura 01) de una de las ramas que se han considerado. En este caso, tenemos como raz la pregunta Te gusta la geometra?, si la respuesta es si, se evala el siguiente nodo que consiste en otra pregunta Eres bueno en vectores?, en el caso de que la respuesta sea afirmativa, vamos a un ltimo nodo con la pregunta Te gustara hacer grficos en computadora?, obteniendo una pregunta afirmativa se concluir que la rama que el estudiante debe seguir es Computacin Grfica. En el caso de que alguna respuesta haya sido negativa se proceder a ir a otro rbol con preguntas diferentes.

Figura 01. rbol de la Rama Computacin Grfica.2.2.Implementacin2.1.1.Hiptesis: Inicializamos nuestro sistema experto creando la hiptesis, en donde si llega a la respuesta de cada rbol, realiza un corte.hipotesis(ingenieria_de_software)