Está en la página 1de 9

DESARROLLO DE UN SISTEMA EXPERTO GENERADOR DE

EXAMENES PREUNIVERSITARIOS
Autores:
Paz Ramos, Alison
Rodrguez Zavaleta, Kevin

Pereda Santos, Oscar


Salirrosas Rodrguez, Anthony

Ramrez vila, Diani


Villanueva Prez Estephanie

Docente Asesor(s): Arturo Daz Pulido

Resumen
Mediante el presente trabajo se busca el
desarrollo e implementacin de un sistema
experto en Programacion lgica utilizando el
programa Prolog con una conexin con el
entorno de desarrollo NetBeans cuyo objetivo
es la creacin de un sistema generador de
evaluacin con una valoracin cuantitativa
que permita evaluar y medir el grado alcanzo
por los alumnos en su preparacin
preuniversitaria.
Para
un
mejor
entendimiento, primero haremos una
introduccin al tema de sistemas expertos y
luego se desarrollara de manera detallada el
sistema experto planteado.
Palabras Clave: sistema experto, lenguaje
basado en reglas

Ingeniera del Proyecto


1. Introduccin
Un sistema experto es un sistema que emplea
conocimiento humano capturado en una
computadora para resolver problemas que
normalmente requieran de expertos humanos. Los
sistemas bien diseados imitan el proceso de
razonamiento que los expertos utilizan para
resolver problemas especficos
Se destacan entre las herramientas de soporte para
la toma de decisiones puesto que han sido

diseados para facilitar tareas en mltiples campos


de aplicacin y proporcionar equivalentes
resultados que un especialista, emulando la
capacidad humana de tomar decisiones de acuerdo
a las condiciones del contexto. Generalmente
estos sistemas aplican sus conocimientos de forma
lgica a travs de reglas de tipo IF-THEN (si pasa
esto entonces haga esto otro).

1.1. Usos de un Sistema Experto


Los sistemas expertos tienen muchas
aplicaciones, entre las cuales tenemos:
Simulacin o prediccin:
Infieren las consecuencias probables a partir
de un conjunto de situaciones dadas. Por
ejemplo: Los sistemas de informacin
Geogrfica (GIS) y modelos de manejo de
recursos acuticos son dos muy usados en
este mbito, usados para captar informacin
del terreno y depsitos acuferos ya si
planificar el sistema de manejo de agua
empleado.
Control:
Usados para determinar en cada momento el
estado de funcionamiento de sistemas
complejos, anticipndose a los posibles
incidentes que pudieran acontecer. Relaciona
irregularidades
del
comportamiento
observado con causas posibles.
Planeacin:

Son sistemas destinados a disear planes de


accin. Por ejemplo el diseo de rutas,
creacin de planes de vuelo.

Diseo:

Desarrollan configuraciones de objetos basados en


restricciones o exigencias del problema. Despus
de construidas, verifican que cumplan las
especificaciones. Por ejemplo el diseo de
edificios,
configuracin
de
equipos
computacionales.
Casi todas las empresas disponen de un
computador que realiza las funciones bsicas de
tratamiento de la informacin: contabilidad
general, decisiones financieras, gestin de la
tesorera, planificacin entre otras.
Tambin se aplica en la contabilidad en apartados
como auditoria (es el campo en el que ms
aplicaciones de sistema experto se est realizando)
Fiscalidad, planificacin, anlisis financiero y la
contabilidad.

1.2. Arquitectura y Funcionamiento de un


SE
La estructura de un SE est organizada
alrededor de tres elementos principales

1.2.2. Base de Datos


Es una memoria de trabajo que contiene los
hechos sobre un problema, alberga los datos
propios correspondientes a los problemas que se
desean tratar.
1.2.3.

Motor de Inferencias

Es el cerebro del SE, tambin conocido como


estructura de control o interpretador de reglas.
Este componente es esencialmente un programa
de computadora que provee metodologas para
razonamientos de informacin en la base de
conocimiento.
Este
componente
provee
direcciones sobre cmo usar el conocimiento del
sistema para armar la agenda que organiza y
controla los pasos para resolver el problema
cuando se realiza una consulta. Tiene tres
elementos principales:
1. Interprete:
ejecuta
la
agenda
seleccionada.
2. Programador: mantiene el control sobre
la agenda.
3. Control de consistencia: intenta
mantener una representacin consistente
de las soluciones encontradas.
1.2.4.

Interfaz con el Usuario

La interfaz de usuario es el medio con que el


usuario puede comunicarse con una mquina, un
equipo o una computadora, y comprende todos los
puntos de contacto entre el usuario y el equipo.
Normalmente suelen ser fciles de entender y
fciles de accionar.
1.2.1.

Base de Conocimientos

Contiene el conocimiento necesario para


comprender, formular y resolver problemas.
Incluye dos elementos bsicos: heurstica especial
y reglas que dirigen el uso del conocimiento para
resolver problemas especficos en un dominio
particular.

El interfaz de usuario permite que el usuario pueda


describir el problema al sistema. 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. Es
decir, posibilita que la respuesta proporcionada

por el sistema sea inteligible para el interesado.


Tambin puede solicitar ms informacin si le es
necesaria al sistema experto. En algunos sistemas
se utilizan tcnicas de tratamiento del lenguaje
natural para mejorar la comunicacin entre el
usuario y el sistema experto.

1.2.5. Mdulo de Explicacin


El mdulo de explicacin justifica el proceso de
razonamiento que ha seguido el sistema experto
para llegar a sus conclusiones.
En muchos dominios es necesaria la explicacin
de las conclusiones debido a los riesgos asociados
con las acciones a ejecutar.

1.2.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.
El mdulo de adquisicin de conocimiento
permite a los expertos modificar la base de
conocimiento ya sea para corregir errores en la
base de conocimiento o debido a que el
conocimiento se encuentra en constante cambio
debe ser actualizado.

1.3. Ventajas e Inconvenientes de un SE


1.3.1. Ventajas
Es una herramienta estable para su
entorno y fiable porque sus actividades
son completamente replicables (siempre
contesta de la misma manera a menos que
se le cambie el diseo).
Velocidad de procesamiento que es mayor
al de un ser humano.
Debido a la escasez de expertos humanos
en determinadas reas, los SE pueden
almacenar su conocimiento para cuando
sea necesario poder aplicarlo.

Pueden ser utilizados por personas no


especializadas para resolver problemas.
Si se evala el costo total del empleo de
esta tecnologa, la replicabilidad y
estabilidad, asociado a la seguridad que
provee, resulta una ecuacin favorable.
1.3.2.

Inconvenientes

Si se requiere actualizar es necesaria la


reprogramacin.
Son poco flexibles a cambios y de difcil
acceso a informacin no estructurada.
Carecen de sentido comn, para un
sistema experto no hay nada obvio.
Para un sistema experto es muy
complicado de aprender de sus errores y
de errores ajenos.
No son capaces de distinguir cuales son
las cuestiones relevantes de un problema
y separarlas de cuestiones secundarias.

1.4. Prolog
1.4.1. Introduccin a Prolog
PROLOG es un lenguaje de programacin
declarativo. Los lenguajes declarativos se
diferencian de los lenguajes imperativos o
procedurales en que estn basados en formalismos
abstractos; est basado en la lgica de predicados
de primer orden y por tanto su semntica no
depende de la mquina en la que se ejecutan.
Es un lenguaje de programacin muy til para
resolver problemas que implican objetos y
relaciones entre objetos. La sintaxis del lenguaje
consiste en lo siguiente:

Declarar hechos sobre objetos y sus


relaciones.
Hacer preguntas sobre objetos y sus
relaciones.
Definir reglas sobre objetos y sus
relaciones.

La Lgica de Primer Orden analiza las frases


sencillas del lenguaje (frmulas atmicas o
elementales) separndolas en Trminos y
Predicados. Los trminos hacen referencia a los
objetos que intervienen y los predicados a las
propiedades o relaciones entre estos objetos.
Adems, dichas frmulas atmicas se pueden
combinar mediante Conectivas permitindonos
construir frmulas ms complejas, llamadas
frmulas moleculares.
1.4.2.

Caractersticas de Prolog

Las caractersticas principales de Prolog son:


Basado en lgica y programacin
declarativa.
No se especifica cmo debe hacerse, sino
que debe lograrse.
Una caracterstica importante en Prolog y
que lo diferencia de otros lenguajes de
programacin, es que una variable solo
puede tener un valor mientras se cumple
el objetivo.
El programador se concentra ms en el
conocimiento que en los algoritmos.
Qu es conocido? (hechos, reglas)
Qu preguntar? (Cmo resolverlo)
En ProLog, se llega a una solucin
infirindola desde algo ya conocido.

2. Sistema Experto Generador de


exmenes para la evaluacin en una
academia Pre-universitaria
2.1. Planteamiento
Se pretende desarrollar un sistema experto
generador de exmenes permitiendo de este modo
la evaluacin de los conocimientos de estudiantes
preuniversitarios
en
determinadas
reas
(razonamiento lgico, razonamiento verbal,
razonamiento matemtico, fsica, qumica y
biologa) dichos tems estan basados en exmenes
de admisin a la Universidad Nacional de Trujillo
aplicados en procesos de admisin en aos
anteriores. Asimismo hay tres niveles de

preguntas por cada rea (bsico, intermedio y


avanzado) adems cada pregunta tiene un tiempo
predefinido para poder ser contestada.

Fig 2.logo de SiEx

2.2. Diseo
El primer paso que se dio para el desarrollo de
este sistema experto, luego de reunir la
informacin necesaria y analizarla fue el
diseo de la base de datos, utilizando el SGBD
MySql Worbench. Ver figura n3 (anexo 1)
2.3. Implementacin
El presente sistema experto generador de
exmenes para academias preuniversitarias,
es una herramienta innovadora para la
simulacin de exmenes de admisin en sus
diferentes reas.
Para el desarrollo de este aplicativo, se emple
tecnologa como MySQL, Java de NetBeans y
SWI-Prolog, con la finalidad de facilitar los
servicios prestados, simplificando as el
acceso del usuario al sistema. Este manual
permitir al administrador o usuario hacer uso
de todas las funcionalidades bsicas as como
los requerimientos necesarios para un buen
funcionamiento del software a usar, a la vez
permite tener una visin global del mismo y
brinda pautas para poner en marcha la
simulacin de los exmenes.
1.-Requisitos de instalacin
Sistema operativo: windows7/vista/XP

Uso de red local


Resolucin de pantalla de 1366 por 768
pixeles.
Procesador de texto Microsoft Office
(lectura de manual)
2.- Herramientas necesarias:
MySQL: Es un sistema de gestin de base de
datos relacional o SGBD. Este gestor de base
de datos en multihilo y multiusuario, lo que le
permite ser utilizado por varias personas al
mismo tiempo, e incluso, realizar varias
consultas a la vez.Para el correcto
funcionamiento del software, utilizaremos
este gestor de base de datos MySQL, donde
tendremos almacenados nuestras bases sobre
los productos, clientes, ventas, etc.
Netbeeans: es un entorno de desarrollo
gratuito y de cdigo abierto. Permite el uso
de un amplio rango de tecnologas de
desarrollo tanto para escritorio, como
aplicaciones Web, o para dispositivos
mviles. Suele dar soporte a casi todas las
novedades en el lenguaje Java. Cualquier
preview del lenguaje es rpidamente
soportada por Netbeans.
Para nuestro trabajo utilizaremos el
NetBeans IDE 7.3.1 quien da soporte al
lenguaje java, lo cual nuestro trabajo est
realizado en este lenguaje. Y a l misma vez se
conectara con MySQL para nuestras bases de
datos que requerimos.
SWI-Prolog: es una aplicacin verstil del
lenguaje Prolog. Su robusta multi-threading,
extendida tipos de datos, la aritmtica sin
lmites y representacin Unicode de texto
permite la representacin natural de los
documentos (por ejemplo, XML, JSON, RDF)
y el intercambio de datos con otros
paradigmas de programacin. Su completa
interfaz de bajo nivel a C es la base para las
interfaces de alto nivel a C ++, Java (incluido),
C #, Python, etc (disponible externamente).
SWI-Prolog est equipado con una extensa
servidor web (HTTP) marco que puede ser

utilizado tanto para la prestacin de servicios


(REST) y aplicaciones de usuario final basado
en HTML5 + CSS + JavaScript. Pengines
(motores de Prolog) permiten a los clientes
ejecutar consultas en un programa clienteproporcionado en un servidor remoto
utilizando una API genrica. Tales programas
se pueden ejecutar en un entorno limitado.
2.2.1

Elaboracin de
Conocimiento:

la

base

de

SiEx es un sistema especfico para la evaluacin


y est estructurado por materias o asignaturas
independientes, cada una de las cuales tiene una
base de conocimiento distinta. La base de
conocimiento de SiEx est formada por:
a) Los conceptos, que son los items que
conforman cada asignatura.
b) Los tests, que representan las sesiones
de evaluacin y cada uno de ellos est
formado por un conjunto de items.

2.2.2

Motor de inferencias:

En este bloque definimos las reglas encargadas de


inicializar, finalizar el programa, generar las
preguntas.
abrir_conexion
odbc_connect('swiprolog',_,
[user(root),
password(''),
alias(swiprolog),
open(once)]).

:-

cerrar_conexion:odbc_disconnect('swiprolog')
selectPregunta(IDAREA,IDNIVEL,CAN
T,CONSULTA) :concat('SELECT
idPregunta
FROM
pregunta
WHERE
idArea=',IDAREA,CAD1),
concat(CAD1,'
AND
idNivel=',CAD2),
concat(CAD2,IDNIVEL,CAD3),

concat(CAD3,' ORDER BY
RAND() LIMIT ',CAD4),
concat(CAD4,CANT,CONSULT
A).

en el cual encontraremos nuestro programa


que tiene como nombre SistemaExperto, asi
como la imagen que veremos a continuacin.

% generar alternativas para UNA


pregunta %
generar_alternativas(IDPREGUNTA,
selectAlternativas(IDPREGUNTA,CONSULTA)
,
findall(Fila,
odbc_query(swiprolog,
CONSULTA,
row(Fila)),
ALTERNATIVAS).
%genera la pregunta y sus alternativas%
generar_preguntasconalternativas(IDAREA,IDNI
VEL,CANT,LPREGUNTASYCLAVES) :generar_preguntas(IDAREA,IDNIVEL,C
ANT,LPREG),
apilar_preguntasconalternativas(LPREG,
[],LPREGUNTASYCLAVES).
%% Pregunta respondida correctamente%
calificar_pregunta(IDPREGUNTA,IDCLAVE,P
UNTAJE) :obtener_clave(IDPREGUNTA,IDCLAV
ECORRECTA),
IDCLAVECORRECTA = IDCLAVE,
PUNTAJE is 10.

3. Ejecucin
Insertar CD:

Copiar Archivo:

Una vez ubicado el archivo procedemos a


copiarlo en la unidad que deseemos ya sea en
el disco C o en el D, donde el usuario ms de
facilite para la ubicacin rpida de este
archivo.

Ejecutar Programa:

Ya ubicado el programa en el disco que


queramos, procedemos abrir el programa
NetBeans Que ya fue instalado anteriormente
en nuestra pc, para desde ah abrir nuestra
carpeta que contiene nuestro programa de
SistemaExperto, como vemos en la imagen.
Ya nuestro programa est listo para su
respectiva ejecucin. Al ejecutarlo nos
mostrara la primera ventana de usuario para
empezar a trabajar en l.
1.- Vista Administrador:

Men Principal:

Ejecutar el Sistema Experto generador de


exmenes preuniversitarios. El sistema
comienza mostrndose la siguiente pantalla, el
cual tiene una barra de men inicial.

En este CD va a estar el programa. Lo


dirigimos a la unidad DVD RW

Ubicamos el archivo:

Dentro del Cd vamos a encontrar una carpeta


que lleva como nombre PROYECTO FINAL

Al dar clic en el Botn archivo se presentara


la primera opcin Nueva Pregunta, a travs
de la cual se comenzara el proceso de llenado

de preguntas.La segunda opcin Salir es para


dar por finalizado y cerrar el sistema

2.- Vista Alumno:


Men de alumno: el alumno podr llenar su
propio examen para resolver.

ANEXOS
[1] Diseo de la Base de datos en SGBD ( MySql Worbench)

También podría gustarte