Expert Systems on Database Architecture (ESDA)

Anuncio
Expert Systems on Database Architecture (ESDA)
Gabriela García Velazco, [email protected], Israel Villar Medina
[email protected]
Universidad Politécnica de Tulancingo
Resumen
Este trabajo propone una arquitectura llamada ESDA para aplicar las tecnologías de
inteligencia artificial (IA) que por medio de bases de datos resuelva problemas donde las
tomas de decisiones son demasiado complejas y ayude a la simplificación del desarrollo de
software.
Se utilizan como elementos de la arquitectura los procedimientos almacenados, triggers y
funciones que fungen como el motor de inferencia de tipo Forward chaining y la base de
conocimientos es colocada en tablas que son definidas para tal fin y describe la forma en
que deben ser utilizados.
Al final la interacción entre estos elementos y sistemas de información existentes en
cualquier ámbito ayudan a solucionar problemas donde solo un experto humano es
convencionalmente utilizado.
Palabras Claves
Inteligencia Artificial, Sistemas expertos, Bases de datos Inteligentes, Procedimientos,
Triggers, lógica difusa
Estado del Arte
En la última década ha surgido el concepto de base de datos inteligentes, tal es el caso de
SQLf 2 que incluyen aspectos de Base de datos Activas, Bases de datos Deductivas, Bases
de Datos Orientadas a Objetos y Restricciones de Integridad. Recientemente Goncalves y
Tineo han desarrollado SQLfi que es un prototipo para aplicaciones Web, que usa lógica
difusa con SQL, el cuál fue programado mediante Java y se emplea como una herramienta
de Evaluación de cursos y Docentes.
En el ámbito del software Educativo, Márquez se enfoca a la Enseñanza Inteligente Asistida
por Ordenador (EIAO), mediante el uso de bases de datos, Sistemas Expertos e
Inteligencia Artificial, buscando imitar la labor tutorial personalizada que realizan los
profesores mediante un modelo de representación del conocimiento en consonancia con
los procesos cognitivos que desarrollan los alumnos, así lo refiere también Monereo en su
artículo “Internet Search and Navigation Strategies Used by Experts and Beginners” quien
enfoca el constructivismo con la teoría de Aprende a aprender a través de sitios web.
Otro ejemplo es Cañas quien aplica el desarrollo de mapas conceptuales, para colaborar
en el aprendizaje mediante la construcción y crítica de conocimiento y la navegación a
través de sistemas de multimedia en red creados por expertos.
En el ámbito de software empotrado encontramos el software EXAUSTIF, que es una
herramienta de inyección de fallos por software para sistemas empotrados heterogéneos,
el cual usa una base de datos de SQL para almacenar resultados de los análisis después de
la inyección
En el área de desarrollo de arquitecturas de sistemas encontramos a Galindo quien en su
trabajo “Sistemas Evolutivos: Nuevo paradigma de la informática”, plantea algunos
métodos y algoritmos para resolver problemas en Informática involucrando áreas como el
Desarrollo de Sistemas, la Ingeniería de Software, la Ingeniería de Conocimiento y el uso
de reglas para explicar el funcionamiento de un analizador lingüístico.
Introducción
Los programas de IA que alcanzan la capacidad de un nivel experto del área en la solución
de problemas aplicando un cuerpo del conocimiento sobre áreas específicas se llaman
Sistemas Basados en Conocimiento o Sistemas Expertos.
Los sistemas expertos tienen conocimientos específicos sobre un tema, dados por un
experto humano en un área particular y son colocados dentro del programa junto con
reglas heurísticas, los cuales son motivo de este trabajo, y por medio de un caso práctico
se mostrará su utilización en un una arquitectura total de SQL server 2008 de tal forma en
que se almacenara conocimiento e inferimos conocimiento para solucionar problemas y
obtener resultados.
Los sistemas expertos estudian la simulación de los procesos intelectuales de los expertos
humanos como son la interpretación de datos, el diagnóstico, la corrección, la
monitorización, el control, la predicción, la planificación, el diseño y la enseñanza
Así existen expertos humanos en muchas áreas del conocimiento, que pueden resolver
problemas específicos de un área en particular, un sistema de cómputo debe contener el
saber y la lógica del experto para resolver el problema. Los sistemas expertos usarán esta
base de conocimientos y mediante el procesamiento de este y de algunas reglas llegarán a
un resultado deseado. Es decir llevarán un conocimiento declarativo y procesal.
Partes de un sistema Experto
A la construcción de un sistema experto se conoce como ingeniería de conocimiento.
Los componentes de un sistema experto son:
1. El motor de inferencia
2. La Base de hechos
3. La Base de Conocimiento
4. Interfaz con el usuario
En la base de conocimiento (knowledgebase) se guarda todo el saber del experto humano
sobre el área en particular que se va a trabajar, esta información permanece invariable y se
denomina hechos.
Los hechos representan la estructura dinámica del conocimiento ya que su número puede
verse incrementado a medida que se van relacionando las reglas.
El conocimiento puede ser:


Declarativo, es decir contener información específica de objetos, eventos o
situaciones.
Procesal, es decir que indica que hacer, este se usa para crear reglas de producción
de tipo if- then o meta reglas.
El motor de inferencia o de razonamiento, es el programa que se encarga de determinar
cómo se van a usar las reglas de la base de conocimientos, accede a dichas reglas, las
ejecuta y determina si ha llegado a una solución útil o no.
El motor de inferencia es el motor de inferencia es el cerebro del sistema experto,
La interfaz del usuario es el medio por el cual se comunican el usuario y el sistema experto.
Base
hechos
de
Motor
de
inferencia
Interfaz con
el usuario
Interfaz con
el experto
Experto
Base
de
conocimientos
Ingeniería del
conocimiento
Ilustración I. Esquema de un sistema Experto
Usuario
Inferencias
Las inferencias son el proceso por medio del cual el sistema experto reconoce que regla
aplicar.
La inferencia tiene dos metodologías principales:
El encadenamiento progresivo. También se le conoce como foward chaining, esta
metodología de inferencia permite corregir un problema denominado conflicto de
reglas, este conflicto se genera cuando dos o más reglas que tenemos se cumplen.
El encadenamiento progresivo tiene tres etapas:
o En la primera se recorren las reglas y se ve cuáles cumplen con los valores,
es decir ser disparadas.
o En la segunda etapa se decide cuáles reglas pueden ser disparadas, mediante
una metodología implementada, regla al azar, un sistema basado en pesos
de acuerdo a su importancia, o mediante lógica difusa o redes neuronales.
o En la tercera etapa se dispara la regla, es decir se ejecuta el procedimiento
que tiene ligado a la regla o cambiar los valores correspondientes en la
memoria de trabajo.
El encadenamiento regresivo o backward chaining es inverso al encadenamiento
progresivo, es decir se tendrá un resultado y se buscará cuáles son las reglas que al
disparase crean ese resultado. Este tipo de inferencia es más difícil de programar, pero
más efectiva.
Desarrollo de la arquitectura ESDA
Esta arquitectura será independiente de la base de datos y de la aplicación. La
Arquitectura ESDA integrará todas las reglas del negocio de tal forma que si estas cambian
o se actualizan no afecten su funcionamiento.
Al existir cambios en las reglas de negocio, estos se reflejarán sobre la arquitectura ESDA,
modificando solo el sistema experto y sus componentes.
La arquitectura ESDA se integró mediante:
1. Procedimientos, Triggers y funciones que actuarán como el motor de inferencia
en el gestor de base de datos he aquí el motor de inferencia.
CREATE PROCEDURE [dbo].[Inferir] AS BEGIN
Execute dbo.Inicializa_memoria_Trabajo
Execute dbo.Asignar_HechosIniciales
DECLARE @HASMORERULES BIT
DECLARE @IDR VARCHAR(30), @VARDISP BIT , @SECUMPLE BIT
SET @HASMORERULES=1
WHILE @HASMORERULES=1
BEGIN
SET @HASMORERULES=0
DECLARE regla_cursor CURSOR FOR Select id_regla,
VAR_DISPARADA, dbo.SeCumpleRegla(id_regla) AS SECUMPLE from reglas
OPEN regla_cursor
FETCH NEXT FROM regla_cursor INTO @IDR, @VARDISP,
@SECUMPLE
WHILE @@FETCH_STATUS = 0
BEGIN
IF @SECUMPLE=1 AND @VARDISP=0
BEGIN
PRINT @IDR
SET @HASMORERULES=1
EXEC ASIGNAR_CONSECUENTE @ID
END
FETCH NEXT FROM regla_cursor INTO @IDR,
@VARDISP, @SECUMPLE
END
CLOSE regla_cursor
DEALLOCATE regla_cursor
END
UPDATE dbo.VAR_META
SET valor = (SELECT VALOR FROM dbo.VARIABLES WHERE
dbo.VAR_META.NOMBRE=dbo.VARIABLES.NOMBRE)
END
2. Las tablas se usaron para registrar los hechos y las reglas que dieron la
funcionalidad al motor de inferencia.
3. En las tablas también se registraron las variables del sistema experto, así como la
variable meta.
Ilustración II Tablas que integran la base de conocimiento de ESDA
4. La relación entre sus elementos permitió el funcionamiento del sistema experto a
nivel de base de datos.
5. El sistema experto trabaja mediante un Forward chaining dados los hechos realiza
las inferencias por medio de las reglas establecidas hasta llegar a alcanzar la
variable meta o un estado en el que todas las reglas que los hechos dispararon no
son suficientes para alcanzar la variable meta y por lo tanto no existe una
inferencia útil.
Ilustración III. Integración de la arquitectura ESDA
Caso Práctico
Dicha Arquitectura se implementó en una fábrica de ropa a la medida, donde sus clientes
son de una gran cantidad de trabajadores y cada corte de prenda es único, debido a la
persona , prenda, modelo, talla, y obviamente las medidas corporales de la persona.
La problemática radicaba en que cada temporada se llamaba a los programadores para
incorporar todos los detalles a considerar en cada prenda y modelo, lo era una
adecuación al software para cada una de estas prendas,
La fábrica permitió considerar el lenguaje de reglas en su haber y dichas reglas fueron
colocadas en el ESDA sin modificar su software existente solo se empotro la Arquitectura
ESDA a nivel de base de datos.
Con las variables definidas se establecen las reglas, a continuación se encuentra una
muestra de ellas:
La Regla 1. Determina el aumento de centímetros que deberá hacerse en la cintura del
pantalón al momento de cortarse en base a la prenda y el modelo cuando la diferencia
entre la talla de la cintura estándar y la medida de la cintura de la persona es >=5,
devolviendo la indicación de aumentar 2 cm.
ID_RULE
RULE_TYPE
DESCRIPTION
ANTECEDENT
1
F0001
AUMENTA LA CINTURA DEL PANTALÓN 0001
VARIABLE
PRENDA
MODELO
CINTURAPANT
OPERADOR
=
=
>=
VALOR
FALDA
0001
5
CONSECUENT
CINTURAPANT
CONECTION SYMBOL
END RULE_TYPE
2
AND
La regla 2. Determina disminuir centímetros de la cintura en el caso que la diferencia entre
la talla de la cintura estándar y la medida de la cintura de la persona sea <=5, devolviendo
la indicación de disminuir 2 cm al corte.
ID_RULE
RULE_TYPE
DESCRIPTION
ANTECEDENT
2
F0001-2
DISMINUYE LA CINTURA DEL PANTALÓN 0001
VARIABLE
PRENDA
MODELO
CINTURAPANT
OPERADOR
=
=
<=
VALOR
FALDA
0001
-5
CONSECUENT
TALLERES
CONECTION SYMBOL
END RULE_TYPE
-2
AND
Resultados:
La utilización de sistemas expertos en diferentes ámbitos complejos dejando al Sistema
Gestor de Bas de Datos da la facilidad de separar la programación de aplicaciones y de la
definición de la base de datos. En el caso práctico ha permitido administrar a los usuarios
finales las reglas sin necesidad y/o dependencia a los programadores de sus aplicaciones.
Por otro lado el caso práctico mostro que el usuario final tarda 5 minutos en la definición
de una regla para cada uno de los sus modelos nuevos en cada temporada. Lo que al final
en 200 prendas de temporadas ocupa 1000 minutos equivalentes a 2 días de jornadas, en
contra parte el programador del software administrador de su producción tomaría 2
semas en programar los cambios debido a la complejidad de decisiones y las tareas
inherentes a su trabajo, como la identificación del código, crear la clase modelo, definir
atributos y métodos, fase de pruebas, fase de implementación y mantenimiento evolutivo.
En el caso de estudio ha quedado demostrado no solo la reducción del tiempo sino
además la dependencia del programador –usuario final.
El aporte de esta Arquitectura (ESDA) va a permitir a los desarrolladores de Software de
ambientes complejos quitar esa programación de dinámica en el devenir histórico de la
empresa y dejárselo al usuario final con una arquitectura fácil de usar.
Dias de Jornada
12
10
8
Dias de Jornada
6
4
2
0
Programación de
Aplicación
ESDA
Los usuarios finales no dependerán de un equipo de programadores solo del experto en
su tema para lamentar las reglas en ESDA.
Trabajo futuro.
Este trabajo queda abierto para su implementación en cualquier gestor de base de datos y
bajo cualquier solución que requiera la implementación de la ingeniería del conocimiento
aplicado a cualquier problema de forma que se reduzca el trabajo del programador y de
soporte a las aplicaciones.
Referencias
1.
Arrioja, L.C.N., Inteligencia artificial. 2007, Argentina: sociedad impresora
americana,.
2.
Brenan, R., Base de datos inteligentes, in Simposio SICTE '91. 1991, Revista Univeridad
Eafit: Medellin. p. 47-67.
3.
Cañas, A.F., KM. Coffey, J. Reichherzer, T, Herramientas Para Construir y
Compartir Modelos de Conocimiento Basados en
Mapas Conceptuales. Revista de informática educativa, 2000. 13(2): p. 145-158.
4.
DARPA, W., Morrow, Gschwendtner, DARPA Neural Networks Study. AFCEA
International Press, 1988: p. 60.
5.
Goncalves, M.T.L., SQL FlexibleQuery Language Extension by means of norm
SQL2, in The 10th IEEE International conference on Fuzzy Systems. 2001. p. 473-476.
6.
Goncalves, M.T.L., SQLfi and its Applications. Revista Avances en Sistemas e
Informática 2008. 5(2).
7.
Marqués, P., Software educativo: guía de uso y metodología de diseño. Estel, 1995.
8.
Monereo, C.F., M., Internet Search and Navigation Strategies Used by Experts and
Beginners. Interactive Educational Multime, 2000(1): p. 24-34.
9.
Piattini, M.D.M., A . , Diseño de Bases de Datos Relacionales. 2004, México, D.F.: RAMA editorial. 576.
10.
Russell, S.J.N., P, Inteligencia Artificial, Un enfoque Moderno. Segunda ed. 2004,
Madrid: Pearson Prentice Hall. 1240.
11.
Tineo, L., Definición de datos en SQLf, in XLVII Convención anual de la Asociación
Venezolana para el Avance de la ciencia AsoVAC96. 1997: Medellin. p. 223.
12.
Tineo, L., Interrogaciones Flexibles en Bases de Datos Relacionales. . 1998:
Medellín. p. 115.
13.
Vivar, L.C., Sistemas de Bases de Datos Activas: disparadores y reglas, in Facultad
de Ingenieria en Ciencias y sistemas. 2003, Universidad de San Carlos de Guatemala:
Guatemala. p. 136.
14.
Da Silva, J.M., J.F. López, L. Redondo, L., Exhaustif: Una herramienta de inyección
de fallos para sistemas empotrados distribuidos heterogénesos. RPM - AEMES, 2007. 4(1).
15.
Brenan, R., Base de datos inteligentes, in Simposio SICTE '91. 1991, Revista Univeridad
Eafit: Medellin. p. 47-67.
16
Len, B. Clements, P. Kazman, R. Software Architecture in practice, Second Ed,
Adison wesley, Boston:2005, ISBN: 0321154959
17
Date, C.J., Introducción a los sistemas de bases de datos. 2001: México, Pearson
Educación ISBN: 968-444-419-2
18
E. Castillo, J. Gutierrez, A. Hadi, “Sistemas Expertos y Modelos de Redes
Probabilisticas”, Monografías de la Academia Española de Ingeniería, Madrid, 1998
19
S. David, “Expert systems for software engineers and managers”, Chapman and Hall
: London, 1987
20 G. Guida, C. Taso, “Topics in expert system design: methodologies and tools”,
North- Holland, Amsterdam, 1989
21
Galindo, S. F., Sistemas Evolutivos: Nuevo paradigma de la informática, Ciencías de
la informática UPIICSA- IPN, México: 1990
Viteri, K. Salazar, C. Salazar, C. Paredes, C. Muñoz, J.L. Algoritmos Genéticos:
http://www.fiec.espol.edu.ec/investigacion/topico/tabusearch.pdf consultado el 28 de Julio de
2009
Descargar