sistema experto para orientación vocacional

17
Sistema Experto: Test Vocacional Rodríguez Mantilla José Luis Estudiante de Ing. Informática Universidad Nacional de Trujillo [email protected] Silva Coronado Oskar Hernando Estudiante de Ing. Informática Universidad Nacional de Trujillo [email protected] 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

Upload: jose-rodriguez

Post on 27-Dec-2015

404 views

Category:

Documents


16 download

TRANSCRIPT

Sistema Experto: Test Vocacional

Rodríguez Mantilla José Luis Estudiante de Ing. Informática

Universidad Nacional de Trujillo

[email protected]

Silva Coronado Oskar Hernando Estudiante de Ing. Informática

Universidad Nacional de Trujillo

[email protected]

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:

Figura 6.

B. Interfaces Grafica de Usuario

1. Ventana Presentación

Figura 7.

2. Ventana de Información sobre proyecto

Figura 8.

3. Ventana Principal

Figura 9.

4. Ventana de preguntas

Figura 10.

5. Ventana de fallo

Figura 11

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

III. Ejecución

A. Paso 1: Presentación

Figura 12.

B. Paso 2: Selección de presentación

Figura 13.

C. Paso 3: Preguntas

Aquí todas las respuestas que brindaremos serán “Si”.

Figuras 13 y 14.

Figuras 15 y 16.

Figuras 17

D. Paso 4: Respuesta afirmativa.

Figuras 18.

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

B. Código Prolog del Motor de Inferencia y Modulo de

Explicación