1. Sistema Experto: Test Orientación Vocacional
Harry, Garro Portales
Ing. Informática
Universidad Nacional de Trujillo
Portales_harry@outlook.com
RESUMEN
Implementaremos un sistema experto con
Prolog cuya finalidad será orientar a las
personas que aún no definen su perfil
académico y poder ayudarles en su elección, la
persona utilizara el Tés, interactuara con el
Sistema Experto, brindándole opciones de
elección por medio de preguntas, que
permitirán definir el perfil vocacional del
Usuario.
Palabras clave
Prolog, sistema experto, Test Vocacional
1. INTRODUCION
Se puede entender a un Sistema Experto
como una rama de la Inteligencia Artificial.
Estos imitan las actividades de un humano para
resolver problemas. También se dice que un SE,
se basa en el conocimiento declarativo (hechos,
reglas, situaciones) y el conocimiento de
control o guía (información sobre el
conocimiento humano).
Para que un sistema experto sea herramienta
efectiva, los usuarios deben interactuar de una
forma fácil, reuniendo dos capacidades para
poder cumplirlo:
Explicar sus razonamientos o base del
conocimiento: los sistemas expertos se
deben
realizar siguiendo ciertas reglas o pasos
comprensibles de manera que se pueda
generar la explicación para cada una de
estas reglas, que a la vez se basan en hechos.
Adquisición de nuevos conocimientos o
integrador del sistema: son mecanismos de
razonamiento que sirven para modificar los
conocimientos anteriores. Sobre la base de
lo anterior se puede decir que los sistemas
expertos son el producto de investigaciones
en el campo de la inteligencia artificial ya
que esta no intenta sustituir a los expertos
humanos, sino que se desea ayudarlos a
realizar con más rapidez y eficacia todas las
tareas que realiza.
Para el desarrollo del Sistema Experto de Test
de Orientación Vocacional, elaboraremos uno
del tipo basado en reglas las cuales se definirán
de acuerdo a un conjunto de hechos.
1.1 Usos de un Sistema Experto
a) Un sistema experto puede ayudar a
personas con poca experiencia pueden
2. resolver problemas que requieren un
conocimiento formal especializado.
b) Los Sistemas Expertos pueden obtener
conclusiones y resolver problemas de forma
más rápida que los expertos humanos.
c) Los sistemas expertos son buenos para
predecir resultados futuros a partir del
conocimiento que tienen.
1.2 Arquitectura y funcionamiento de un
sistema experto.
Los Sistemas expertos comúnmente están
conformados por:
1.2.1 Base Conocimiento
Contiene conocimiento modelado
extraído del diálogo con el experto.
1.2.2 Base de Hechos
Contiene los hechos sobre un
problema que se ha descubierto durante el
análisis.
1.2.3 Motor de inferencia:
Modela el proceso de razonamiento
humano.
1.2.4 Módulos de justificación
Explica el razonamiento utilizado por
el sistema para llegar a una determinada
conclusión.
1.2.5 Interfaz de usuario
Es la interacción entre el SE y el
usuario, y se realiza mediante el lenguaje
natural.
1.3 Ventajas e inconvenientes de un sistema
experto.
1.3.1 Ventajas
a) Los conocimientos de un sistema
experto pueden ser copiados y
almacenados fácilmente, siendo muy
difícil la pérdida de éstos.
b) El Sistema Experto (SE)
computarizado siempre está a pleno
rendimiento. Cuando un humano se
cansa, la exactitud de sus consejos
puede decaer.
c) La ventaja de un sistema experto está
en que después de que un experto
computarizado exista, usted puede crear
un nuevo experto simplemente
copiando el programa de una máquina a
otra. Un humano necesita mucho tiempo
para convertirse en un especialista.
1.3.2 Inconvenientes
a) Los humanos pueden responder
creativamente a situaciones inusuales,
los sistemas expertos no pueden.
b) los humanos tienen un amplio rango
de disponibilidad de experiencia
3. sensorial. Y los sistemas expertos
actualmente dependen de una entrada
simbólica.
c) los sistemas expertos no son bueno
para reconocer cuando no existen
respuestas o cuando los problemas están
fuera de su área.
1.4 Prolog
1.4.1 Introducción a Prolog
Prolog es un lenguaje declarativo e
interpretado, esto quiere decir que el lenguaje
se usa para representar conocimientos sobre un
determinado dominio y las relaciones entre
objetos de ese dominio, un programa en Prolog
consiste de una base de hechos de relaciones ,
dicha base de datos no tiene una estructura
impuesta, ni un procedimiento o clase principal.
Consiste en declarar el conocimiento disponible
acerca de los objetivos, además de sus
relaciones y sus reglas.
En lugar de correr en un programa para
obtener una solución, se hace una pregunta, el
programa revisa la base de datos para encontrar
la solución a la pregunta.
1.4.2 Caracteristicas de Prolog
Basado en lógica y programación
declarativa.
No se especifica cómo debe hacerse, sino
qué debe lograrse.
Una característica importante en Prolog y
que lo diferencia de otros lenguajes de
programación, es que una variable sólo
puede tener un valor mientras se cumple el
objetivo.
El programador se concentra más en el
conocimiento que en los algoritmos.
-¿Qué es conocido? (hechos, reglas)
-¿Qué preguntar? (Cómo resolverlo)
En Prolog, se llega a una solución infiriéndola
desde algo ya conocido (conocimiento).
2. TEST ORIENTACION VOCACIONAL
2.1 Planteamiento y diseño
Queremos resolver la problemática que se
enfrenta las personas al elegir el área en donde
desarrollarse, le es difícil decidirse por una
carrera profesional porque no tienen muy
claro las definiciones de estas. Por ello
decidimos realizar este sistema experto de test
de orientación vocacional.
La ausencia de experiencia laboral, el
desconocimiento de las propias habilidades y
capacidades, la falta de conocimientos sobre
el mercado laboral y el auto concepto de la
persona, son algunos de los factores que
conducen a una orientación vocacional. Para
realizar el diseño hemos partido del
diagrama de un árbol binario, el nodo raíz
contiene la pregunta principal, y a partir de
este se derivan las demás preguntas, tanto para
el nodo del lado izquierdo como para el nodo
derecho, una vez recorrido todo el árbol, se
llegaran solo a una de las hojas que contendrá
la respuesta final, de acuerdo a lo que marco
el usuario.
Figura 1
Dependiendo de la respuesta se ira por un
nodo diferente y preguntas diferentes.
¿Que eres?
Hombre Mujer
4. Figura 2
P1= Te gusta la ciencia y tecnología
P2= Te gusta resolver problemas
P3= Te gusta la computación
P4=Te gustaría diseñar aplicaciones
P5= Tu actividad Física es sedentaria
Figura 3
P1=Te gusta aprender cosas nuevas
P2=Tienes paciencia
P3= Ayudarías sin recibir nada a cambio
P4= Te gusta ayudar a las personas
P5= Te gusta cuidar a persona mayores
Bueno como apreciamos en los arboles
anteriores Figura1 y Figura 2, partimos desde
el nodo, dependiendo de nuestra elección
iremos por dos caminos diferentes, Las 5
preguntas principales del nodo izquierdo o
derecho tienen que cumplirse
obligatoriamente, puede haber muchas más,
en el programa que se ha implementado con
10 preguntas de las cuales 5 dan la respuesta
al TEST vocacional.
2.2 Implementación
Para la implementación el programa tiene
una base de conocimientos ya declaradas
y en base al conocimiento que tiene da una
respuesta.
esrespuesta('si').
esrespuesta('no').
%HOMBRE
espregunta('Te gusta la ciencia y
tecnologia?',X):-esrespuesta(X).
espregunta('Te gusta ser autoempleado?',X):-
esrespuesta(X).
…..
%PRINCIPAL
espregunta('Eres hombre?',X):-
esrespuesta(X).
espregunta('Eres mujer?',X):-esrespuesta(X).
%PrincipalVENTANA
principal(P1,P2):-
espregunta('Eres hombre?',P1),P1='si',
Hombre
P1
P2 P4
P5
P3
Informático
Mujer
P1
P2
P5
P3
P4
Enfermera
5. espregunta('Eres mujer?',P2),P2='no',
pHombre,!.
mujer(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):-
espregunta('Te gusta enseñar?',P1),P1='si',
espregunta('Te gusta tener un
negocio?',P2),P2='no',
espregunta('Te gusta aprender nuevas
cosas?',P3),P3='si',
…..
…..
espregunta('Te gusta vender
productos?',P10),P10='no',
ventanaMensaje('profesora'),!.
En el ejemplo declaramos dependiendo de la
elección del usuario sí o no, luego de esto
definimos las preguntas y luego de elegir entre
las serie de preguntas que hay el sistema con el
conocimiento que tiene da la respuesta.
3. Ejecución
1) Ejecutamos en Prolog Setes.pl y en la
consola ingresamos (main.) y se mostrara la
interfaz.
Luego hacemos clic en la pestaña Iniciar y se
abrirá para elegir:
En esta parta solo podemos elegir una solo “si”
y el otro debe ser no. Y se abrirá el TEST.
Procedemos a marcar clic siguiente .Dará el
resultado del TEST (F1). De lo contrario saldrá
no hay suficiente conocimiento y mostrara el
mensaje “no se puede determinar carrera” (F2).