Beruflich Dokumente
Kultur Dokumente
A quien siempre me
apoya y me hace ver
el lado bueno de todo.
Agradecimientos
Este trabajo de n de mster no se habra podido realizar sin la ayuda,
apoyo y nimos de varias personas que han inuido de forma decisiva en su
desarrollo. Por ello, quiero dedicarles las siguientes lneas.
En primer lugar, agradezco a edinn Global por haberme dado la oportunidad de trabajar en este proyecto innovador en su mbito, y por conar en
m para llevarlo a cabo. Gracias a todos por vuestra paciencia y dedicacin.
No ha sido fcil. Nos queda mucho camino por recorrer, esto slo acaba de
empezar.
Tambin quiero dar las gracias a Federico Barber por todos sus consejos,
por orientarme siempre que ha sido necesario, por estar disponible cada vez
que lo necesitaba. Se aprecia una atencin as.
Por ltimo, nombrar a mi familia, novia y amigos. Ellos han sido un
apoyo fundamental durante todo este tiempo. Sin ellos, la realizacin de este
trabajo no habra sido lo mismo. Gracias.
vii
Resumen
Compaas de todo tipo se interesn cada vez ms en aumentar su rendimiento, reducir sus costes y disminuir su impacto ambiental. Para ello, hay
que ser conscientes de que todo proceso tiene prdidas. Si no se controlan
continuamente estos procesos para saber qu esta ocurriendo, se puede estar
perdiendo capacidad productiva y, por lo tanto, dinero.
R
El software edinn
M2 es un sistema que monitoriza automticamente
en tiempo real a las personas y las mquinas de cualquier sector, e integra
las funciones y estndares necesarios para la mejora total de la eciencia.
Para poder tener una visin lo ms real posible de lo que ocurre en una
compaa, y poder tomar de esta forma las medidas adecuadas para mejorar,
R
es muy importante la correcta conguracin del sistema edinn
M2. Para
ello, se da la formacin inicial necesaria al cliente. Un elevado porcentaje del
personal que recibe la formacin no est familiarizado con todos los conceptos
de produccin que se manejan en el sistema. Adems, ciertos cambios que
se realizan en el proceso de produccin (introduccin de nuevo producto,
o proceso, una modicacin de la agrupacin para un rea de la planta,
etc.) requieren, como es evidente, reajustar los parmetros del sistema. No
realizar adecuadamente esta tarea produce efectos no deseados, ya que la
monitorizacin no se ajusta a la realidad, y por tanto carece de sentido.
La deteccin de estos problemas no es inmediata, por lo que se agrava la
situacin para el cliente, que muchas veces termina pidiendo soporte para la
solucin de una incidencia que l mismo ha provocado.
En este marco, parece lgico pensar en que lo ideal sera que el cliente
tuviese a su disposicin una herramienta capaz de analizar lo que est ocurriendo y avisar del problema y sus causas. Esto tiene dos grandes ventajas.
Una es que el sistema puede detectar la incidencia mucho antes que el cliente. La otra, es que en la mayora de los casos el cliente conocer la causa
del problema y podr solucionarlo l mismo, o pedir soporte pero aportando
una idea clara de lo que ocurre.
La solucin aqu planteada es un sistema experto capaz de manejar las
complejas relaciones que existen en el proceso de produccin, as como la
correcta conguracin de los parmetros del sistema respecto a ellas.
ix
ndice
Agradecimientos
Resumen
1. Introduccin
vii
ix
1.1.
1.2.
1.3.
1.4.
Introduccin . . . . . . . .
Descripcin del problema
Objetivos . . . . . . . . .
Estructura de captulos . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.1.
2.2.
2.3.
2.4.
Dominio . . . . . . . . . . . . . . . .
Justicacin . . . . . . . . . . . . . .
Necesidades del motor de ineferencia
Jess . . . . . . . . . . . . . . . . . .
2.4.1. Introduccin . . . . . . . . .
2.4.2. Caractersticas principales . .
2.4.3. Valoracin . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Sistema experto
.
.
.
.
.
.
.
.
3. Metodologa
.
.
.
.
.
.
.
.
.
.
.
.
1
3
4
5
7
10
13
14
14
15
18
21
21
22
23
24
24
24
24
25
27
4.1. Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.1. Hechos . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
xi
xii
ndice
4.1.2. Reglas . . . . . . .
4.2. Desarrollo . . . . . . . . .
4.2.1. Primer prototipo .
4.2.2. Segundo prototipo
4.2.3. Tercer prototipo .
4.3. Integracin . . . . . . . .
5. Evaluacin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
32
33
34
37
39
43
5.1. Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
49
Bibliografa
53
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ndice de guras
R
1.1. Software edinn
M2 . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
33
35
37
41
xiii
Captulo 1
Introduccin
El comienzo es ms de
la mitad de la totalidad.
Aristteles
En este captulo se realiza una introduccin al problema y
se plantea una solucin concreta deniendo los objetivos que se desean
alacanzar.
Resumen:
1.1. Introduccin
Para entender el contexto en el que se desarrolla este trabajo, es necesaria
una breve introduccin a la produccin en la industria y a una aplicacin
concreta que da una solucin a la bsqueda de mejorar el proceso productivo
mediante el control de sus componentes.
Desde hace aos, con el gran crecimiento de la competitividad en la industria, las compaas comenzaron a prestar ms atencin a su rendimiento.
Para ser ms competentes en el mercado es necesario obtener una mayor
productividad, incrementar la eciencia y la calidad y, por tanto, bajar los
costes. De esta forma se obtiene una mayor rentabilidad, aumentando las
ventas y generando ms ingresos a la par que se mejora la marca de la
compaa. Para la consecucin de este n, las empresas utilizan diferentes
tcnicas (tales como habilidades Kaizen) y pueden disponer de sistemas de
gestin. La situacin actual de la industria muestra que la productividad
est ligada al crecimiento de las pequeas y medianas empresas y a su capacidad de implementar planes ecaces de productividad, eciencia, calidad e
innovacin. Esto se reeja en el creciente inters de pequeas empresas por
herramientas que les sirvan para aumentar su eciencia.
1
Captulo 1.
Introduccin
R
Una de ests herramientas es edinn
M2, desarrollada por la empresa
1
edinn Global . Consiste en una herramienta modular que constituye un sistema MES (Manufacturing Execution System) y OES (Operational Execution
System) completo ya que puede ser integrado con cualquier ERP (Enterprise
Resource Planning) y planicador.
R
Las funciones de edinn
M2 son:
Planicacin de la produccin
Mejora de la eciencia productiva y energtica
Gestin de stock y materiales
Captura de datos de produccin
Planicacin y gestin del mantenimiento
Aseguramiento de la calidad
Gestin de los tiempos y la actividad
Control de acceso
R
Figura 1.1: Software edinn
M2
Captulo 1.
Introduccin
1.3. Objetivos
De igual forma que, al atender una llamada reportando una incidencia, el
tcnico realiza una serie de preguntas para orientar el origen del problema, se
desea crear un sistema capaz de aglutinar los conocimientos de este experto,
y que a partir de los datos de la compaa alojados en los servidores sea capaz
de detectar los posibles comportamientos no deseados e incidencias. De esta
forma, se puede avisar al usuario del error mucho antes de que l pueda
apreciarlo y reduciendo el impacto de una conguracin que contenga fallos.
Se debe destacar que la validacin no se puede realizar en tiempo real hasta
que no se haya cumplido el tiempo de ciclo asignado para poder comprobar el
nivel de produccin. Si se tiene en cuenta el proceso de instalacin en el que
slo interviene el usuario, es de gran utilidad poder comprobar el correcto
funcionamiento del sistema y validarlo sin ninguna intervencin por parte de
edinn Global.
Por tanto, para alcanzar esta solucin, ser necesario:
Estudiar de la viabilidad del proyecto
Elegir un tipo de sistema experto
Analizar qu metodologa seguir para el desarrollo del sistema experto
Adquirir los conocimientos de los expertos
Adaptar los conocimientos al lenguaje del sistema experto
Realizar prototipos sobre los que estudiar casos de prueba para evaluar
su rendimiento
Desarrollar una versin ms consistente que pueda ser evaluada en un
entorno real
Implementar una solucin para integrar la nueva herramienta en el
sistema existente
No cabe duda de que integrar en la herramienta un sistema experto que
cumpla estas especicaciones es de gran valor para ambas partes, edinn Global y cliente. Adems, actualmente no se tiene conocimiento de ninguna otra
herramienta dedicada a la monitorizacin de produccin en la industria que
cuente con un sistema de validacin continuo capaz de avisar de posibles problemas e indicando sus soluciones. Entonces, con la implementacin de este
sistema propuesto, edinn Global se desmarca de su competencia directa con
nuevas caractersticas innovadoras y que, desde luego, al cliente le resultan
lo sucientemente interesantes como para decantarse por este producto.
Captulo 1.
Introduccin
Captulo 2
Sistema experto
Un experto es una persona que ha
cometido todos los errores que se pueden
cometer en un determinado campo.
Niels Bohr
En este captulo se expone el dominio del sistema experto,
as como la justicacin de este tipo de sistema frente a otras soluciones. Tambin se tratan las caractersticas que se valoran del motor
de inferencia basndose en las necesidades concretas de la aplicacin
y en su entorno. Finalmente se realiza una introduccin al motor de
inferencia elegido para el desarrollo del sistema con el n de facilitar
posteriormente la comprensin de las medidas tomadas en el diseo.
Resumen:
2.1. Dominio
Un sistema experto se ocupa de un subconjunto concreto de todo el conocimiento existente en el mundo. Este subconjunto se conoce como el dominio
del sistema. El proceso de recopilacin de la informacin necesaria para el
desarrollo de un sistema experto basado en reglas se conoce como Ingeniera
del Conocimiento. Entre toda esta informacin se encuentra la denicin de
los requisitos fundamentales. Es decir, conocer cul es el problema que el
sistema necesita resolver y de qu informacin dispone. Con la interpretacin de estos datos se puede evaluar la importancia de cada elemento sobre
el dominio y as identicar sus pilares, descartar la informacin no necesaria
y con todo ello establecer sus fronteras.
En este trabajo se desea resolver un problema muy concreto que abarca conocimiento de produccin industrial y conocimiento especco sobre el
7
Captulo 2.
Sistema experto
funcionamiento y conguracin de un sistema de monitorizacin de la produccin. Tras un anlisis del proceso de inferencia que sigue el experto, se
pueden denir los elementos que intervienen en el sistema. Sobre ellos se realizarn las evaluaciones necesarias para llegar a un conjunto de conclusiones,
tal y como el experto lo hara. Siguiendo el proceso descrito, se denieron
los siguientes elementos del dominio siendo stos identicados como las ideas
principales con las que el experto trabaja a la hora de resolver un problema:
Estados: Los estados representan las posibles situaciones en las que se pue-
de encontrar un proceso. Algunos de estos estados pueden ser produccin, dependecia de lnea, parada, fallo o no planicado para producir.
No todos los procesos poseen los mismos estados, pues cada proceso tiene sus peculiaridades, aunque s que suelen compartir algunos estados
elementales.
proceso. Varios productos pueden asociarse un proceso, y varios procesos pueden pueden compartir productos. Los productos se asocian con
procesos pero tambin con estados, ya que puede existir ms de un estado de produccin para el mismo proceso. Un producto lleva asociado
un identicador, sus unidades de medida y fechas para el control de su
creacin entre otros parmetros.
R
mediante el sistema edinn
M2 son necesarios denir algunos parmetros como tiempos de volcado de datos, de lectura de contadores,
de reseteo de contadores, o control de los umbrales de produccin y
sus tasas. Estos parmetros afectan a lo que el sistema lee e interpreta,
y est directamente relacionado con los procesos de produccin y los
estados en los que se encuentran stos.
2.1. Dominio
Entre estos elementos existen, por tanto, relaciones de dependencia. Estas relaciones son muy concretas e inuencian al conjunto del sistema. De no
establecerse correctamente u omitirse se obtendra un sistema que carecera
de sentido. Por ejemplo, un proceso siempre se encuentra en un estado concreto, y este estado se dene mediante la monitorizacin en funcin de sus
parmetros congurados. Entonces, estos tres elementos forman una unidad
indivisible a efectos de analizar el sistema, pues existe una conexin entre
todos ellos y alterar un elemento inuye en los otros. Este criterio de anlisis de subconjuntos indivisibles dentro del dominio ha servido para denir
unas fases de desarrollo mediante prototipos con diferente alcance dentro del
problema, como se ver en los siguientes captulos.
Una forma de representar estos grados de dependencia es realizar una
lista ordenada que muestre la jerarqua de los elementos dentro del dominio
segn su inuencia en los dems componentes, tanto de forma directa como
indirecta. Si se enumeran en orden ascendente segn el nmero de elementos
del dominio sobre los que acta, se obtiene la siguiente relacin:
Parmetros de monitorizacin
Procesos
Estados
Productos
rdenes
Aplicando este anlisis a la denicin del problema en base al conocimiento transmitido por el experto se tiene que:
Los parmetros de monitorizacin por s mismos no tienen gran valor
de anlisis si no se relacionan con otros elementos, especialmente con
los procesos y sus estados
De la misma forma, los procesos han de combinarse al menos con los
parmetros de monitorizacin, que implican un estado concreto del
proceso, para alcanzar conclusiones
Los estados son necesarios para los procesos, ya que a cada proceso
le pertenece un conjunto de estados concreto, y adems dependen de
parmetros de monitorizacin (por ejemplo, tiempo necesario en produccin para activar el estado de produccin)
Los productos se asocian a procesos y a estados de tipo produccin,
pero no tienen relacin directa con los parmetros de monitorizacin
10
Captulo 2.
Sistema experto
2.2. Justicacin
La necesidad de agrupar el conocimiento del experto para dar solucin al
problema planteado es evidente. El dominio del problema resulta complejo,
con gran cantidad de relaciones, parmetros y reglas. Si se conoce el funcionamiento y potencial de los sistemas expertos, estos datos parecen indicar
que integrar uno de estos sistemas en la herramienta podra ser la solucin
ms adecuada. Pero antes de tomar esa decisin es necesario analizar cules
son las ventajas de los sistemas expertos frente a una solucin ms clsica,
orientada de forma procedural, para poder realizar una correcta valoracin.
En primer lugar, el experto podr hacer una transferencia de conocimiento, en base a su propia experiencia, deniendo los pasos y reglas que
sigue para hallar la solucin a los diferentes problemas dentro de un dominio
concreto. Este conocimiento se almacena en el sistema y no se pierde con el
tiempo, e incluso se puede mejorar en base a nuevas experiencias del experto
o a la colaboracin de otros expertos. Cuando se realiza un anlisis del conocimiento transferido, en determinadas situaciones la informacin puede ser
poco precisa utilizando conceptos que no se pueden medir con exactitud como poco y mucho, bueno y malo, etc. Para poder interpretar estos conceptos
es necesario hacer uso de la lgica difusa, mediante la cual podemos denir
el grado de pertenencia de un elemento a un grupo. Muchos de los sistemas
expertos disponen de funciones para modelar este tipo de conocimiento.
Tambin es de importancia destacar que la solucin del experto en ocasiones no es nica, sino que puede estar formada por una combinacin de
posibles soluciones. El motivo de que esto ocurra puede ser que las reglas que
se aplican a un problema o caso no proporcionan un resultado con el que se
pueda denir con certeza un dato de salida, bien porque no se disponga de
algn parmetro al aplicar las reglas correspondientes o porque el sistema
no puede tener conocimiento real sobre algn elemento. Los sistemas expertos basados en reglas cuentan con esta capacidad, lo que los hace perfectos
para este tipo de razonamientos frente a la utilizacin de lenguajes clsicos.
Ofrecen, por tanto, una gran exibilidad frente a datos fragmentados o poco
2.2. Justicacin
11
precisos, siendo capaces de encontrar las posibles combinaciones de soluciones en un problema sin necesidad de modicar el cdigo. Esto se debe a la
utilizacin de patrones, un punto fuerte a tener en cuenta frente a soluciones
ms clsicas.
Utilizar lenguaje declarativo como el de los sistemas basados en reglas
permite centrarse directamente en el problema y en cmo aportar soluciones.
Describe qu es lo que se debe hacer, pero omite un orden y en muchos
casos el cmo hacerlo, a diferencia de una programacin procedural. Otra
ventaja es su gran exibilidad frente a datos fragmentados o poco precisos.
El programa ser capaz de encontrar las posibles combinaciones de soluciones
aunque falten por denir parmetros sin necesidad de modicar el cdigo.
Esto es debido a la utilizacin de patrones, un punto fuerte a tener en cuenta
frente a una solucin ms clsica. Es tambin por ello que en general, con
un buen desarrollo, un sistema experto presenta una buena escalabilidad.
Es capaz de adaptarse ante el crecimiento del dominio sin perder calidad
mediante la adicin de nuevas reglas que satifagan las nuevas necesidades.
A parte de las ventajas hasta ahora mencionadas, debe resaltarse que
la programacin declarativa es en muchos casos la forma ms natural de
enfrentarse a problemas en los que se ven envueltos el control, el diagnstico,
la prediccin o la clasicacin entre otros. En resumen, es aplicable a todos
aquellos problemas que no poseen una solucin algortmica clara, como el
que se trata en este trabajo. Este tipo de sistemas cuentan con una ventaja
sobre los expertos humanos: a diferencia de las personas, pueden trabajar 24
horas al da durante un periodo de tiempo indenido. Si adems el sistema
experto es tan able como el experto humano, hasta el punto de ser capaz
de sustituirlo, es algo muy valorado si existe la necesidad de la gura del
experto en cualquier momento del da. Existen casos de xito desde hace
dcadas, como por ejemplo el sistema experto MYCIN (R. Davis, 1977) en
la dcada de los 70 dentro del campo de la medicina, que posteriormente
dio lugar a EMYCIN (Melle, 1979), uno de los primeros frameworks para
sistemas expertos. Actualmente existe una buena cantidad de aplicaciones
que hacen uso de este tipo de sistemas en campos tales como el cientco,
comercio, ingeniera y nanzas entre otros, y trabajando siempre sobre unos
dominios muy especcos.
Volviendo al problema planteado, puede apreciarse que todas estas caractersticas descritas son necesarias para la aplicacin que se desea obtener.
Por ejemplo, una fbrica puede trabajar durante la madrugada y si ocurre
una incidencia de este tipo no cuenta con soporte hasta despus de unas
horas. Con un sistema experto tendra atencin inmediata e incluso antes
de que detecten que existe un problema. Respecto a la forma de enfrentarse
al problema, este tipo de programacin encaja perfectamente con lo que se
propone. Los casos posibles que se pueden dar cuentan con soluciones que
12
Captulo 2.
Sistema experto
13
14
Captulo 2.
Sistema experto
lucin integrada o API que permita las conexiones entre el motor, los
R
servidores y la herramienta edinn
M2, y se puede embeber en otra
aplicacin, se valora muy positivamente ya que ahorr tiempo de desarrollo.
cin, ejemplos, versiones de prueba, o exista una comunidad de usuarios, es muy valorada ya que esto probablemente reduzca la curva de
aprendizaje.
2.4. Jess
A continuacin, se realiza una introduccin a la herramienta de lenguaje
basado en reglas elegida, Jess, y se exponen las principales caractersticas
por las que se decidi utilizar para implementar una solucin.
2.4.1.
Introduccin
mail-archive.com/jess-users@sandia.gov/msg03278.html
http://www.
2.4. Jess
15
Caractersticas principales
Similar a otros motores de inferencia, Jess est formado por los elementos
bsicos de un sistema experto:
Base de hechos, alojada en una memoria global para datos que modela
el entorno del problema
Base de reglas o conocimiento, que contiene todas las reglas que modelan el problema
Motor de inferencia, que controla la ejecucin de las reglas mediante
un comparador de patrones
16
Captulo 2.
Sistema experto
2.4. Jess
17
18
Captulo 2.
Sistema experto
Valoracin
2.4. Jess
19
Captulo 3
Metodologa
We understand human mental processes
only slightly better than a sh
understands swimming.
John McCarthy
Este captulo se centra en explicar cules son las principales fases en las metodologas de desarrollo en sistemas expertos,
y en denir la metodologa adoptada para el sistema experto de este
trabajo.
Resumen:
22
Captulo 3.
Metodologa
consecuencia, un buen anlisis puede facilitar bastante la tarea de programacin. En esta etapa se deben denir las estructuras necesarias para denir
el dominio del problema y disear la base de conocimiento.
Por ltimo, la fase de vericacin del conocimiento consiste en el testeo de
las inferencias del sistema. stas se evaluan contra las que aporta el experto,
y si no son las deseadas se sigue renando la aplicacin.
La forma en que estas fases se desarrollan, las iteraciones y transiciones sobre cada una de ellas, dan lugar a diferentes interpretaciones de cmo
se puede abordar el desarrollo de un sistema experto. Esto se maniesta
en las diferentes metodologas que han surgido a lo largo de los aos. Por
ejemplo, la metodologa KADS (B. Wielinga, 1991) surgi en Europa con el
n de establecer un modelo de desarrollo de este tipo de sistemas. KADS
era una oposicin a otras metodologas conocidas como cclicas o de rpido
prototipado, que proponan un anlisis parcial del conocimiento para rpida
creacin de prototipos. Por el contrario KADS apuesta por el anlisis del
conocimiento al completo antes de cualquier desarrollo para, de esta forma,
estimar mejor la duracin de cada fase y desarrollar teniendo un conocimiento completo de las posibles estructuras. Actualmente existe una gran
variedad de metodologas para el desarrollo de sistemas expertos, que consisten en fusiones de otras metodologas y nuevos mtodos para iterar entre
las fases de desarrollo. Como ejemplo, grupos con experiencia en el desarrollo
de sistemas expertos proponen una metodologa que se basa en iterar entre
estas fases describiendo una espiral (Yasser Abdelhamid, 2005) para garantizar una validacin continua y un diseo de prototipos en diferentes fases
del proyecto. Otro ejemplo son los desarrollos condicionados por los testeos
iterativos conocidos como test-driven development, inuenciados por la metodologa conocida como eXtreme Programming (Beck, 2000) en ingeniera
del software.
23
24
3.2.2.
Captulo 3.
Metodologa
Diseo de reglas
Una vez que se tiene denida una estructura de datos, se puede comenzar
a disear las reglas. Para que el sistema sea escalable y resulte ms sencillo
de comprender, Jess ofrece la posibilidad de denir mdulos con reglas. Por
tanto, se pueden agrupar conjuntos de reglas en mdulos cuando stas son
slo relevantes en una parte especca de la ejecucin. En este trabajo se
hace uso de los mdulos para agrupar los conceptos principales denidos en
el dominio, pues cada uno de ellos consta de reglas propias como se ver en
el captulo 4.
3.2.4.
Construccin de prototipos
Testeo iterativo
25
Desarrollo iterativo
Captulo 4
4.1. Diseo
Como se ha comentado en los captulos anteriores, gracias a la exibilidad
de Jess, ste puede utilizarse como lenguaje de scripting de Java, como slo
cdigo Java, o simplemente como el lenguaje de reglas denido por Jess.
Estas tcnicas pueden combinarse en el grado que se desee, aumentando el
potencial del lenguaje. Por ejemplo, podemos extender las clases Java de
Jess, aadir nuevas funcionalidades o utilizar objetos de Java de los que Jess
carece y luego invocarlos desde Jess. En este trabajo se utiliza el lenguaje
de Jess extendido con Java por la necesidad de aadir ciertas funciones, y
R
la creacin de nuevas clases de Java en Jess para su integracin con edinn
M2.
A partir del anlisis del dominio visto en la seccin 2.1, se obtienen unos
conceptos que deben ser organizados y estructurados de forma intuitiva para
facilitar el desarrollo. Para ello se debe realizar un anlisis exhaustivo sobre
el dominio del sistema. A nivel de lenguaje podremos denir los hechos en
patrones mediante plantillas con deftemplate y se agruparn los diferentes
tipos de reglas en mdulos con defmodule. Tambin ser necesario denir
funciones segn las necesidadas de las reglas mediante deffunction.
27
28
Captulo 4.
4.1.1.
Hechos
process Identica a un proceso en concreto y sus parmetros
status Representa el conjunto de estados disponibles para un proceso y
sus parmetros
result Identica los productos o resultados para los procesos en funcin
del estado
order Representa las rdenes de produccin para los procesos
problem Es la salida del programa, que realizar una recomendacin para
Contiene los parmetros de conguracin de la monitorizacin
del sistema
monitor
4.1. Diseo
29
Reglas
El siguiente paso es la organizacin de las reglas y su diseo. Esta aplicacin, tras obtener la informacin desde la base de datos, necesita seguir los
pasos descritos a continuacin para su correcto funcionamiento:
Inicializacin de la aplicacin
Analizar problemas en los parmetros de la monitorizacin
Analizar problemas entre parmetros de la monitorizacin y los procesos
Analizar problemas entre los productos o resultados y los parmetros
de proceso segn sus estados, y relacionarlos con los parmetros de
monitorizacin
Analizar problemas en las rdenes planicadas en funcin de los productos o resultados generados por los procesos
Para denir reglas se emplea el comando defrule de Jess. Un ejemplo
sencillo para una regla que comprueba un valor umbral denido por el usuario
en el monitor, en funcin de los parmetros del proceso, en un estado de tipo
produccin, es el siguiente:
30
Captulo 4.
(defrule th-low-too-high
(process
(id-process ?id cycle-t
?cyclet ?cycle-q ?cycleq))
(monitor
(id-process ?id counter-p
?counterp&:(< ?counterp ?cycleq)))
(monitor (id-process ?id th-low
?thl&:(< ?thl ?cycle-t)))
(process
(id-process ?id cycle-t ?cyclet
?cycle-q ?cycleq))
(status (id-process ?id type production))
=>
(assert (problem th-low-too-high)))
(deffunction is-good-production (
?oee ?cyclet ?cycleq
?ratioprod ?counterp ?countert)
(if (< ?oee ?ratioprod) then
...
(return (> ?ratioprod (/ ?cycleq ?cyclet)))
else (if (< (/ ?cycleq ?cyclet) ?ratioprod) then
...
(return (< ?rdisp ?ratioprod)))
else (if (< (/ ?counterp ?countert)) then
...
(return (< ?ratioprod ?rcycle)))
else (if (> (/ ?counterp ?countert)) then
...
(return (< ?rcycle ?oee)))
4.1. Diseo
31
32
Captulo 4.
4.2. Desarrollo
Para el desarrollo del sistema experto se establecieron tres prototipos objetivo que implementan de forma gradual el conocimiento transmitido por
el experto. Para la denicin de los dominios de estos prototipos se estudiaron las relaciones presentadas en la seccin 2.1. Se pretende con ello medir
de forma continua los avances del sistema y la deteccin de errores en fases
determinadas. Debe tenerse en cuenta que estos prototipos al obviar alguna
relacin con elementos dependientes de un nivel superior necesitarn implementar nuevas reglas en funcin de stos. En otras palabras, un prototipo no
asegura la nalizacin de reglas para los conceptos del dominio que alberga,
pues posteriormente pueden darse dependencias bidireccionales. Aunque esto pueda parecer confuso, si se tiene una buena estructuracin del problema
no es complicado. Para esta aplicacin es ms sencillo comenzar a modelar
reglas sobre un par de elementos denidos por completo que para todo el
conjunto de elementos si estos no se ven implicados en el proceso de inferencia. Esta estrategia modular ser beneciosa para el desarrollo, pues no
es costoso aadir nuevas reglas a un mdulo ya testeado o modicarlas con
nuevas condiciones en funcin de las necesidades.
Los tres prototipos que se establecieron son:
4.2. Desarrollo
33
Primer prototipo
En este primer prototipo implementado se contemplan las relaciones fundamentales entre los elementos bsicos del dominio del sistema: procesos,
estados y parmetros de conguracin del monitor. Con ello se obtiene una
primera versin bsica del sistema nal que se desea alcanzar y que servir
para evaluar su funcionalidad. Su fase de desarrollo requiere un tiempo de
signicativo. Esto es debido a que, a pesar de la reduccin del dominio en el
que se aplica, dene las bases sobre las que se ampliar el sistema. Desarrollar
correctamente esta parte del sistema facilitar las posteriores ampliaciones
del dominio.
Este protipo est compuesto por:
Un mdulo para los estados y sus parmetros
Un mdulo para los procesos y sus parmetros
Un mdulo principal para los parmetros de conguracin del monitor
34
Captulo 4.
Segundo prototipo
4.2. Desarrollo
35
36
Captulo 4.
4.2. Desarrollo
4.2.3.
37
Tercer prototipo
El tercer prototipo agrupa todos los elementos del dominio del sistema
denido. El nuevo elemento introducido son las rdenes. stas se asocian con
productos y procesos, e inderectamente con los estados. Como ocurra en el
prototipo anterior, ser necesario ampliar las reglas entre los elementos ya
denidos para ajustarlas a las rdenes.
Este protipo est compuesto por:
Un mdulo para las rdenes y sus parmetros
Un mdulo para los productos y sus parmetros
Un mdulo para los estados y sus parmetros
Un mdulo para los procesos y sus parmetros
Un mdulo principal para los parmetros de conguracin del monitor
38
Captulo 4.
Patrn de estados
Patrn de procesos
Patrn de parmetros de monitorizacin
El prototipo implementa las siguientes reglas:
Reglas propias de rdenes
Reglas propias de productos
Reglas propias de estados
Reglas propias de procesos
Reglas propias de conguracin de la monitorizacin
Reglas entre estados y monitorizacin
Reglas entre procesos y monitorizacin
Reglas entre estados y procesos
Reglas entre estados y productos
Reglas entre procesos y productos
Reglas entre rdenes y productos
Reglas entre rdenes y procesos
Se consiguen detectar fallos a nivel de:
Parmetros de una orden
Parmetros de una orden
Parmetros de un producto
Estados de procesos
Ciclos de tiempo y produccin de procesos
Ratios de eciencia, velocidad, calidad y disponibilidad de procesos
Valores umbrales de funcionamiento en funcin del estado y su produccin
Control de contadores
4.3. Integracin
39
4.3. Integracin
Uno de los retos del desarrollo de este sistema experto era su integracin
R
con la herramienta edinn
M2. sta se instala en los equipos del cliente y
bsicamente existen dos modalidades, la versin de terminal de planta y la
versin de informes. La versin de terminal de planta est orienatada a los
operarios y supervisores de reas. La versin de informes est orientada a
personal del departamento de produccin. Este ltimo tipo de usuario es el
que analiza la informacin proporcionada por el sistema para mejorar los
procesos, tiempos, ratios, etc. Adems, conguran el sistema de monitorizacin ya que son los que cuentan con los conocimientos necesarios sobre el
rea de produccin. Por tanto, este ser el perl de usuario al que le resulte
de ms inters el sistema experto, pues le ayudar a detectar fallos de conguracin cuando se realice cualquier modicacin y le ahorrar tiempo de
anlisis de un problema de este tipo.
R
La herramienta edinn
M2 almacena los datos de los clientes en servidores seguros donde se realiza el anlisis de los datos. Este anlisis se inicia
40
Captulo 4.
4.3. Integracin
41
Captulo 5
Evaluacin
La simplicidad es requisito
previo para la abilidad.
Edsger Dijkstra
En este captulo se describe la metodologa empleada para
la evaluacin del sistema experto indicando cada una de sus fases y
objetivos. Posteriormente se comentan los resultados obtenidos tras
este anlisis y se valora el sistema en funcin de ellos.
Resumen:
5.1. Metodologa
Para evaluar correctamente un sistema experto se requiere aplicar una
metodologa concreta que diere de la tpica evaluacin de software, ya que
la forma en que se aborda el problema y las expectativas del sistema son
muy diferentes.
El objetivo de las evaluaciones es asegurar que el sistema experto ofrezca
una respuesta correcta y de la forma adecuada a un problema de su dominio.
Para ello es necesario:
Asegurar la calidad del producto desarrollado
Asegurar su utilizacin en dominios crticos
Asegurar su aceptabilidad en la rutina diaria
El proceso de evaluacin del sistema puede entenderse como una fase
general de validacin, donde se valoran aspectos del sistema como su utilidad,
robustez, velocidad, eciencia, posibilidades de ampliacin o manejo entre
43
44
Captulo 5.
Evaluacin
5.1. Metodologa
45
las del sistema experto. En base al criterio elegido se validan los resultados
generando unos ndices de acuerdo en base a diferentes tcnicas cuantitativas
de validacin, que representan cmo de bueno es el resultado proporcionado
por el sistema experto. En la gura 5.1 puede verse una representacin de la
metodologa descrita.
46
Captulo 5.
Evaluacin
5.2. Resultados
Siguiendo esta metodologa para la evaluacin del sistema experto, tras
nalizar la fase de implementacin de cada prototipo propuesto se procede
a la vericacin y validacin.
Ya que cada prototipo cuenta con un dominio especco, tal como se vi
en el captulo 4, las exigencias del criterio varan acorde a esto. Adems de
lo acertada que sea la respuesta ofrecida por el sistema, se valora el detalle
de sta, as como su utilidad de cara al perl de usuario que dispondr de
esta herramienta. Estos datos se cuanticaron y sirvieron de baremo para
dar el visto bueno a los prototipos. Si no se alcanzaban las especicaciones
denidas se revisaba de nuevo la estructuracin del conocimiento y las reglas
descritas. Tras la deteccin de fallos o mejoras se implementaba el nuevo
modelo y se someta una vez ms a la evaluacin.
Los casos de prueba empleados para la evaluacin del sistema fueron denidos por los expertos que aportaron el conocimiento con el que se model
el sistema experto. Estos casos recogen una gran variedad de casos especcos para cada prototipo. Generalmente, los casos de prueba ms cercanos a
los lmites del dominio son los que dan una visin del alcance real del sistema evaluado, y ayudan a fortalecer estos casos extremo. En alguna ocasin,
aunque el conocimiento estuviera satisfactoriamente implementado, era necesario dar prioridad a ciertas reglas sobre otras para obtener la respuesta
esperada.
Los tres prototipos propuestos nales aportaron respuestas satisfactorias
a diferentes niveles de experto. Una de las carencias que quizs ms se repiti y cost ms de denir correctamente es el detalle de la respuesta. Una
respuesta poco especca, aunque sea correcta, puede resultar de muy poca
utilidad y frustrar al usuario. La tolerancia de este tipo de respuestas se fue
reduciendo gradualmente segn se avanzaba en la implementacin hacia el
modelo nal completo.
A nivel de integracin en la infraestructura y su rendimiento preocupa la
cantidad de memoria necesaria para la ejecucin del sistema experto. Aunque
esto es un dato que vara segn el conjunto de datos del cliente, en general
el consumo de memoria es notable. Esto se justica con el uso que hace Jess
del algoritmo Rete para la coincidencia de patrones como se nombr en el
captulo 2. Se sacrica memoria a favor de una mayor velocidad de ejecucin.
Lanzar esta tarea en clientes con gran volumen de datos, alta produccin y
ciclos de produccin cortos, puede llegar a provocar falta de memoria si Jess
R
consume ms de lo esperado, pues la comparte con servicios de edinn
M2.
Aunque esta problemtica no es del todo grave ya que depende del hardware,
s que requiere de un estudio independiente en el que se puedan medir las
necesidades de ambos sistemas trabajando simultaneamente para diferentes
5.2. Resultados
47
Captulo 6
6.1. Conclusiones
En lneas generales, este trabajo ha servido para desarrollar una aplicacin de tipo sistema experto para una empresa real con un problema concreto,
y con nes comerciales. Este sistema experto integrado en la herramienta con
la que trabaja edinn Global proporciona un sistema nico frente a la competencia directa, pues no se conoce una aplicacin similar. La repercusin de
ello se nota en el inters que genera en el cliente tener un sistema capaz de
avisar de los fallos cuando stos an son prcticamente imperceptibles. Esto
ahorra mucho tiempo de trabajo frente a encontrarse con un problema en un
estado avanzado que probablemente requerir la modicacin de una gran
cantidad de datos que ya han sido generados. Si se necesitase soporte por
parte de edinn Global para solucionar una incidencia, el usuario ya tendra
cierto conocimiento acerca del problema como sus causas y posibles soluciones. Con un sistema experto de calidad, esto facilita enormemente la tarea
de edinn Global en la resolucin de incidencias, pues ya tienen un primer
diagnstico con el que evaluar la situacin. Se debe destacar tambin que
49
50
Captulo 6.
el usuario, tras la experiencia con este sistema, ser mejor usuario ya que
aprender de sus errores.
Como se ha visto, el sistema experto desarrollado se encuentra integrado
en una aplicacin ya existente. Esto ha requerido una inversin de tiempo
importante para garantizar las expectativas, en funcin del tiempo y los recursos. Por tanto, se ha visto la necesidad de medir el rendimiento de un
sistema en este tipo de proyectos. Esta fase de integracin ha sido de vital
importancia para obtener un sistema nal que fuese viable y funcionase correctamente en lo clientes. Para ello se evaluaron las diferentes herramientas
para el desarrollo de sistemas expertos en base a las necesidades concretas
de este proyecto.
La repercusin de esta herramienta en la empresa es muy positiva. A da
de hoy se tiene asentado un sistema sobre el que seguir desarrollando para
mejorar la herramienta nal. Esto es algo que edinn Global buscaba desde
hace un tiempo, cuando por primera vez se plantearon que disponer de un
sistema de este tipo sera benecioso para los usuarios y para ellos mismos.
Resulta evidente tras este trabajo que estos sistemas tienen una aplicacin
real en diversos mbitos y, sin duda, resultan tiles. Su desarrollo no es una
tarea sencilla. La comunicacin con el experto, su colaboracin y dedicacin
es un factor crtico para el xito del proyecto. El posterior modelado del
conocimiento debe ser muy exigente para garantizar la robustez del sistema,
por lo que en la fase de desarrollo se realizan gran cantidad de evaluaciones
de forma continua.
Por ltimo, la impresin personal tras esta experiencia es que, aunque
la utilidad de sistemas expertos para aplicaciones complejas es innegable y
cuando se proponen como solucin son valorados, actualmente no se emplean
en la medida que cabra esperar. La forma en que se trabaja para desarrollar un sistema de este tipo es muy distinta a la tradicional. Es un enfoque
diferente de transmisin de conocimiento desde el experto a la mquina que
requiere de una metodologa concreta para tener xito en un plazo de tiempo razonable. Probablemente la causa de que los sistemas expertos no se
encuentren extendidos a ms mbitos es que no se cuente con el tiempo suciente y con la colaboracin de las personas adecuadas, pues sin duda son
proyectos costosos y que pueden alargarse bastante en el tiempo.
51
Bibliografa
Kads: A model approach to knowledge engineering.
Esprit , vol. 1991(5), 1991.
B. Wielinga, J. B.
Beck, K.
Forgy, C. L.
Friedman-Hill, E.
Friedman-Hill, E.
bre, 2013).
A domain-independent production rule system for consultation programs. International Joint Conference on Articial Intelligence ,
1979.
Melle, W. V.
Robert M. O'Keefe, D. E. O.
Some guidelines for deciding whether to use a rules engine. 2008. Disponible en http://www.jessrules.com/jess/guidelines.
shtml (ltimo acceso, Septiembre, 2013).
Rudolph, G.
. A proposed methodology
53