Upload
jose-rodriguez
View
406
Download
16
Embed Size (px)
Citation preview
Sistema Experto: Test Vocacional
Rodríguez Mantilla José Luis Estudiante de Ing. Informática
Universidad Nacional de Trujillo
Silva Coronado Oskar Hernando Estudiante de Ing. Informática
Universidad Nacional de Trujillo
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, orientación vocacional, árbol, interfaz gráfica de usuario.
I. Introducción
Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informáticos
que simulan el proceso de aprendizaje, de memorización, de razonamiento, de
comunicación y de acción en consecuencia de un experto humano en cualquier rama de la
ciencia.
Estas características le permiten almacenar datos y conocimiento, sacar
conclusiones lógicas, 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.
Técnicamente 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 situación 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
diseñados 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 métodos de inferencia. Para que un sistema
experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil,
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
extraído del experto en el dominio. El método más común para representar
el conocimiento es mediante reglas de producción. El dominio de
conocimiento representado se divide, pues, en pequeñas fracciones de
conocimiento o reglas. Una característica 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 fácil añadir 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 resolución de un problema. Contiene conocimiento sobre el caso
concreto en que se trabaja. También se registrarán 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 solución.
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 condición)
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 acción (esto último genera nuevos hechos que se añaden 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 acción de las reglas) y operará retrocediendo para ver cómo
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
información ofrecida. A la inversa, formula la información generada por el
sistema incluyendo respuestas a las preguntas, explicaciones y
justificaciones.
5. Módulo de Explicación
La mayoría de los sistemas expertos contienen un módulo de
explicación, diseñado para aclarar al usuario la línea de razonamiento
seguida en el proceso de inferencia. Si el usuario pregunta al sistema cómo
ha alcanzado una conclusión, éste le presentará la secuencia completa de
reglas usada
6. Módulo de Adquisición.
El módulo de adquisición del conocimiento permite que se puedan
añadir, eliminar o modificar elementos de conocimiento (en la mayoría 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 información, 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 información incluyendo las no útiles para de esta manera aportar una
decisión más sólida.
Otras ventajas son:
Permanencia: A diferencia de un experto humano un SE (sistema
experto) no envejece, y por tanto no sufre pérdida de facultades con
el paso del tiempo.
Replicación: Una vez programado un SE lo podemos replicar
infinidad de veces.
Rapidez: Un SE puede obtener información de una base de datos y
realizar cálculos numéricos mucho más rápido que cualquier ser
humano.
Bajo costo: A pesar de que el costo inicial pueda ser elevado,
gracias a la capacidad de duplicación el coste finalmente es bajo.
Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o
dañinos para el ser humano.
Fiabilidad: Los SE no se ven afectados por condiciones externas, un
humano sí (cansancio, presión, etc.).
Consolidar varios conocimientos.
Apoyo Académico.
2. Desventajas.
Es evidente que para actualizar se necesita de reprogramación de
estos (tal vez este sea una de sus limitaciones más acentuadas) otra de sus
limitaciones puede ser el elevado costo en dinero y tiempo, además que
estos programas son poco flexibles a cambios y de difícil acceso a
información 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. Además 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 común 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 obtención de cualquier tipo de beneficio.
Otras desventajas son:
Sentido común: Para un Sistema Experto no hay nada obvio. Por
ejemplo, un sistema experto sobre medicina podría 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
conversación 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 resolución de un problema.
Conocimiento no estructurado: Un SE no es capaz de manejar
conocimiento poco estructurado.
II. Sistema Experto para la Orientación Vocacional
A. Planeación y Diseño
Nuestra intención es diseñar e implementar un sistema experto que provea
una orientación vocacional de acuerdo con las capacidades, habilidades y aptitudes
con las que cumpla el usuario. Para lograr esto, hemos diseñado un gráfico en forma
de árbol que nos proporcionará una idea sobre cómo funciona el sistema experto.
Los nodos de este árbol representarán preguntas que el sistema experto hará al
usuario. Los hijos de un nodo serán la siguiente pregunta del sistema experto
dependiendo de si la respuesta del usuario es si o no. La raíz del árbol será la
primera pregunta que realiza el sistema experto. Las hojas serán 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:
C. Implementación
1. Base de conocimiento
Las carreras que se han tenido en cuenta para este Test Vocacional
son:
Administración
Economía
Ciencias de la Comunicación
Derecho
Estomatología
Bilogía
Ingeniería mecánica
Ingeniería Metalúrgica
Ingeniería Civil
Ingeniería Informática
El código 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
relación a “Si” y “No”, la decisión de que carrera será la más adecuada
dependerá de que todas las características correspondientes a esta sean
respondidas como “Si”, para esto se tiene que almacenar (assert) las tareas
conocidas a lo largo del proceso. El código en Prolog sobre el motor de
inferencia se puede apreciar en el Anexo B
IV. Referencias
1. http://es.wikipedia.org/wiki/Sistema_experto
2. http://www.monografias.com/trabajos30/sistemas-expertos/sistemas-
expertos.shtml
3. http://www.informaticaintegral.net/sisexp.html
V. Anexos
A. Anexo I: Código Prolog de la Base de Conocimiento