centro de investigacion y de estudios avanzados cinvestav
DESCRIPTION
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV. TESIS. “Desarrollo de Reglas Activas Un Enfoque de Red de Petri”. Alumno:Joselito Medina Marín Asesor: Dra. Xiaoou Li. México, D.F., Noviembre de 2003. Presentación. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/1.jpg)
1
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS
CINVESTAV
“Desarrollo de Reglas ActivasUn Enfoque de Red de Petri”
Alumno:Joselito Medina MarínAsesor: Dra. Xiaoou Li
México, D.F., Noviembre de 2003.
TESIS
![Page 2: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/2.jpg)
2
Presentación
• Bases de datos activas (BDA). Soportan mecanismos que le permiten responder automáticamente a eventos que ocurren dentro o fuera de la BD.
• BD + reglas activas = BDA
• Reglas activas Timed Conditional Colored Petri Net (TCCPN)
• BD + TCCPN = BDA
![Page 3: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/3.jpg)
3
Antecedentes
• Bases de datos pasivas.
• Bases de datos activas (BDA).
updateinsert
delete
BD
reglas activas
BDA
+BD
![Page 4: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/4.jpg)
4
Antecedentes
• Reglas Activas
Modelo de reglas ECA (Evento-Condición-Acción).Evento: es algo que ocurre en un instante en el tiempo.Condición: predicado que evalúa el estado de la BD.Acción: es la reacción a un evento y se ejecuta cuando la regla se
dispara y la condición se cumple.
Regla ECA:on eventoif condiciónthen acción
Ejemplo:on insert empleadoif empleado.salario > gerente.salariothen abort
![Page 5: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/5.jpg)
5
A1
C1
E1
Proceso de ejecución de reglas activas
Fuente de eventos
E2
C2
A2
E3
C3
A3
En
Cn
An
. . .
BD
E1
E1
A1
A1
![Page 6: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/6.jpg)
6
Bases de datos activas existentes
• Startburst
• POSTGRES
• Ariel
• SQL-3
Relacionales
• HiPAC• EXACT• NAOS• Chimera• Ode• Samos• Sentinel• Reach
Orientadas a Objetos
![Page 7: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/7.jpg)
7
Problemas con las BDA existentes
• No existe un modelo general para la definición de reglas activas.
• Difícil de rastrear el comportamiento de una secuencia de reglas.
• No es posible llevar a cabo una simulación previa a la implementación de las reglas.
• Difícil detectar problemas como No terminación y Confluencia.
• El análisis de reglas se realiza en un entorno diferente al de la modelación de la base de reglas.
• Eventos complejos.
![Page 8: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/8.jpg)
8
Análisis de reglas activas
Terminación R1
R4
R3R2
Confluencia
S1
S4
S3S2
Ri Rj
**
![Page 9: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/9.jpg)
9
Eventos complejos
Conjunción: (E1, E2), ocurre cuando se presentan los eventos E1 y E2, en cualquier orden.
Disyunción: (E1 | E2), ocurre cuando toma lugar cualquiera de los eventos E1 ó E2.
Secuencia: seq(E1,E2), ocurre cuando sucede primero E1 y posteriormente E2.
Simultáneo: sim(E1,E2), ocurre cuando sucede al mismo tiempo E1 y E2.
Negación : not E en Int, ocurre cuando el evento E no sucedió durante el intervalo Int.
. . . .
![Page 10: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/10.jpg)
10
Nuestra propuesta
Modelo de red de Petri extendido
Base de datos activaDatos
Reglas
![Page 11: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/11.jpg)
11
Red de Petri (PN), herramienta de simulación
• Herramienta de modelación gráfica y matemática.
• Simulación de Sistemas manejados por eventos (EDS).
• Análisis del comportamiento del EDS.
• Fácil de observar el estado en el EDS.
• Herramientas de análisis para detectar los problemas de las ADB.
![Page 12: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/12.jpg)
12
Elementos de una PN
Lugares.
Transiciones.
Arcos de entrada.
Arcos de salida.
Tokens.
P
T
I(t,p)
O(t,p)
M()
![Page 13: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/13.jpg)
13
Datos adicionales a la PN
Conjunto finito de tipos de datos.
Una función que asigne un tipo de dato a cada lugar.
Una función de condición.
Una función de para asignar intervalos de tiempo a transiciones.
Una función de asignación de estampas de tiempo.
Una función de inicialización de los valores de los tokens.
![Page 14: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/14.jpg)
14
Red de Petri Coloreada Condicional con Tiempo (TCCPN)
Es una 11-tupla, TCCPN = { , P, T, A, N, C, Cond, Acción, D, , I }
Donde:
es un conjunto finito de tipos de dato ó conjunto de colores.
P es un conjunto finito de lugares.
T es un conjunto finito de transiciones. T = TruleTcopy Tcomp
A es un conjunto finito de arcos, tales que P T = P A = T A = .
N es una función nodo. Está definida desde A hacia P × T T × P.
C es una función color. Está definida desde P hacia .
Cond es una función de condición.
Acción es una función que asocia cada transición con su lugar de salida.
D: Es una función que asocia un intervalo de tiempo con una transición.
: Es una función que asocia cada token con un instante en el tiempo.
I es una función de inicialización.
![Page 15: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/15.jpg)
15
Red de Petri Coloreada Condicional con Tiempo (TCCPN)
Regla ECA:on eventoif condiciónthen acción
acción
CCPNevento
condición
TCCPN = { , P, T, A, N, C, Cond, Acción, D, , I }
= {tipos de datos}
P = {evento, acción}
T = {condición}
A = {(evento,condición), (condición,acción)}
![Page 16: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/16.jpg)
16
Relación entre reglas ECA en una TCCPN
Evento
Condición
Acción
a)
Evento
Condición 1
Acción 1
Condición 2
Acción 2
Copia evento Copia evento
Copy
b)
Condición 2
Acción 2
Evento 1
Condición 1
Acción 1 = Evento 2
c)
![Page 17: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/17.jpg)
17
Disparo de transiciones de la TCCPN
Un elemento token contiene la estampa de tiempo en que fue generado.
Transición tipo Regla Transición tipo Copy Transición tipo EventoCompuesto
Evalúa condición de la Regla
Condición verdadera Evalúa estampa de tiempo de los tokens
![Page 18: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/18.jpg)
18
Modelación de reglas ECA con TCCPN
Eventos y Acciones
• Generados por los comandos SQL: insert, update, delete.
• Se representan por lugares de PN.
• Nomenclatura:
insert_TABLA insert_empleado
update_TABLA_CAMPO update_empleado_salario
delete_TABLA delete_empleado
![Page 19: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/19.jpg)
19
Modelación de reglas ECA con TCCPN
Tokens
• La presencia de un token en un lugar indica la ocurrencia del evento representado por el lugar.
• Almacena información sobre el evento.
• Estructura de los tokens:
empleado(id, nombre, salario)
insert into empleado values (123, ‘Juan Pérez’, 5230.50);
update empleado set salario = 5500.00 where id = 123;
delete from empleado where id = 123;
![Page 20: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/20.jpg)
20
Modelación de reglas ECA con TCCPN
Condición
• Se almacena en una transición tipo Trule.
• La transición tipo Trule almacena información sobre la acción de la regla ECA.
![Page 21: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/21.jpg)
21
Conversión de Reglas ECA a TCCPNinicio
EVENTS[m]RULES[n]
i = 1j = 1
fin
no
p1 .type = primitive;
si
es compuestoEVENT[i]?
i++;
no
p1.type = compuesto;Crear transición t1 Tcomp;Conectar t1 with p1;k = 1;totalC = | EVENT[i].consEvents |;
si
Crear p1;p1.eventIndex = i;
k < totalCno
Crear lugar p2 para la acciónp2 = RULE[j].action;
si
i m
p2 yaes un lugar de
entrada?
p2 = EVENT[i].constEvents[k]
si
p3 = Copyof(p2)Conectar p3 con t1
Conectar p2 con t1no
k++;
j nCrear transición t1 Trule;t1 = RULE[j].conditionConectar p1 with t1;//
?t1 p{ =1}
no
si
Existe unlugar para
?la action
no
si
Conectar t1 con p2;;++j
Asignar lugar existentea p2
![Page 22: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/22.jpg)
22
Barra de edición
Barra de ejecución
Opcionesde archivo
Opciones de Zoom
Propiedades
Velocidad
Panel de visualización
Ambiente del ECAPNSim [3]
![Page 23: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/23.jpg)
23
• Apple G4
• Sistema Operativo MAC OS X Server
• JDK 1.3
• PostgreSQL ver. 7.1
Ambiente de desarrollo de la interfaz
![Page 24: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/24.jpg)
24
Arquitectura de ECAPNSim
Base de datos
Detector deeventos compuestos
Transaccionesde ECAPNSim
Administradorde TCCPN
Editor de reglas
Análisis deTerminación
Convertidor ECA - TCCPN
Componente deexplicación
Tools Environment
editor/visualizadorTCCPN
Desarrollador de reglas ECA
ECAPNSim Kernel
Base de TCCPN
Consola
Componente deEjecución de reglas
señal de evento acceso a TCCPN evento ejecución de reglas
Usuario
![Page 25: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/25.jpg)
25
Herramientas para generar la TCCPN en ECAPNSim
EditorReglas ECA
ConvertidorECA - TCCPN
Editor / Visualizadorde la TCCPN
Desarrollador dereglas ECA
Kernel de ECAPNSim
TCCPNbase
Análisis de TerminaciónGenerador de
matriz de incidencia
Buscadorde rutas
Analizadorde rutas
Detector de rutas cíclicas
Refinamientode ciclos
Administradorde TCCPN
Compiladorreglas ECA
Desarrollador dereglas ECA
Base dereglasECA
Herramientas estáticas
Flujo de datos
Recuperación y Almacenamiento de los elementos de la TCCPN
Componente de explicación
![Page 26: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/26.jpg)
26
Herramienta de ECAPNSim en tiempo de ejecución
Componente de Ejecución de reglas
BD
Detector deeventos
Administradorde la TCCPN
Modo de simulación
editor/visualizador
de la TCCPN
Usuario
Modo real
TCCPN
Consola
Flujo de datos en tiempo de ejecución
Evaluaciónde condición
Ejecuciónde la Acción
con información del token
evaluaciónaleatoria
Evaluador de conditión
Animatción detokens
Kernel de ECAPNSim Herramientas estáticas
Desarrollador dereglas ECA
ECAPNSim
![Page 27: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/27.jpg)
27
Análisis de TerminaciónSoluciones propuestas por otros autores
• Algoritmo de propagación.
• Hipergráfica de disparo.
• Gráfica de disparo refinado
• Arbol de alcanzabilidad de PN.
• Arbol de cobertura en PN.
• Red de Petri con restricciones
![Page 28: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/28.jpg)
28
Análisis de Terminación usando la Matriz de Incidencia
Definición: Para una red de Petri N, con n transiciones y m lugares, la matriz de incidencia A = [ aij ] es una matriz de números enteros de n x m.
El valor para cada elemento de la matriz está dado por:aij = aij
+ - aij-
Donde:aij
+ = w(i,j) es el peso del arco que conecta una transición ti T con su lugar de salida pj P, y
aij -= w(j,i) es el peso del arco que conecta una transición ti T con su lugar de entrada pj P.
![Page 29: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/29.jpg)
29
Matriz de Incidencia de una TCCPN
aij =
-1
0
1
El lugar pj P es un lugar de entrada a la transición ti T
No existe un arco que conecta al lugar pj P con la transición ti T y viceversa.
El lugar pj P es un lugar de salida de la transición ti T
Para m, n 1
![Page 30: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/30.jpg)
30
Algunos conceptos necesarios
Definición1: Un lugar es un nodo inicial NI si la columna presenta solamente valores 0's y un solo valor de -1.
p4
t3
p5
p0
p1 p2
t1 t2
p3
Definición2: Un nodo terminal NT es un lugar que representa solo a la acción de una o varias reglas.
Definición3: Una ruta R es una secuencia de pares ordenados (i,j), obtenidos a partir de la matriz de incidencia de la CCPN, describiendo una lugares y transiciones relacionadosDefinición4: Una ruta cíclica RC es una ruta R donde el último par ordenado (y,z) ya se encuentra listado en R.Definición5: Una ruta acíclica RA es aquella donde la última pareja ordenada (i,j) de la ruta es diferente de sus antecesoras, es decir, que RA tiene un nodo terminal.
t0
![Page 31: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/31.jpg)
31
Algoritmoinicio
valor, índice
si
bandera = falso;i=1;
no
fin
Función siguienteNodo(valor,índice)
valor = -1
i m
A[i][indice] = valor
si
no
bandera = verdadero;Agregar (i,índice) a R;
si
no
si nosiguienteNodo(1,i);
eliminaUltimoNodo();
Existe nodo(i,índice)?
write ‘Ruta cíclica’;ImprimeRuta();
i++;~bandera
ImprimeRuta();
si
no
j=1;
j n
si
no
A[indice][j]= valor
si
no
Agregar (indice,,j) a R;siguienteNodo(-1,,j);eliminaUltimoNodo();
Vector de Rutas R
Amxn
![Page 32: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/32.jpg)
32
Teorema y Colorario
Teorema: Si todas las rutas R de una TCCPN son acíclicas, entonces el disparo de las reglas termina.
Corolario: Si existen rutas cíclicas RC en la CCPN, y existe al menos una transición t Trule, donde Cond(t)=false dentro de cada RC,entonces el disparo de las reglas ECA termina.
![Page 33: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/33.jpg)
33
Caso de estudio
Regla 1: Cuando la prima de un empleado se modifica, si es incrementada en más de $100.00, entonces el rango del empleado se incrementa en uno.
Regla 6: Cuando se obtienen las ventas del mes y el número de éstas es superior a 50 y el rango de empleado que las obtuvo es menor de del nivel 15, entonces el monto de su prima se decrementa $100.00.
Regla 2: Cuando el rango de un empleado se modifica (supongamos que se incrementa), entonces la prima del empleado se incrementa diez veces el nivel del nuevo rango.
Regla 3: Cuando se obtienen las ventas del mes y el número de éstas es superior a 50, entonces se incrementan $10.00 al salario del empleado.
Regla 4: Cuando se obtienen las ventas del mes y el número de éstas es superior a 100, entonces el rango del empleado se incrementa en un nivel.
Regla 5: Cuando el nivel del rango de un empleado se modifica y el rango alcanzó el nivel 15, entonces el salario del empleado se incrementa en un 10%.
![Page 34: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/34.jpg)
34
Caso de estudio
emp.salario += 10
If ventas.n úmero > 50emp.rango = emp.rango+1
p0
t0
p1
update_PRIMA_cantidad
update_EMP_rango
p2
t1 copy
p3
CopyOf_update_EMP_rango
CopyOf_update_EMP_rango
If (new.cantidad-old.cantidad) > 100
t2
If emp. rango = 15
t3
If (verdadero)
p4
CopyOf_insert_VENTAS
insert_VENTAS
t4 copy
p5 p6 p7
t5
t6
t7
p8 update_EMP_salarioemp.salario = emp.salario*1.1
If ventas.nú mero > 100
emp.rango += 1If ventas. número > 50AND emp.rango < 15
prima. cantidad -= 100
prima .cantidad +=(emp. rango*10)
![Page 35: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/35.jpg)
35
Caso de estudio
Las tablas que forman parte de la BD son:EMPLEADO(emp_id, nombre, rango, salario)PRIMA(emp_id, cantidad)VENTAS(emp_id, mes, numero)
La matriz de incidencia correspondiente es:0 1 2 3 4 5 6 7 8
0 -1 1 0 0 0 0 0 0 0
1 0 -1 1 1 0 0 0 0 0
2 1 0 -1 0 0 0 0 0 0
3 0 0 0 -1 0 0 0 0 1
4 0 0 0 0 -1 1 1 1 0
5 0 0 0 0 0 -1 0 0 1
6 0 1 0 0 0 0 -1 0 0
7 1 0 0 0 0 0 0 -1 0
A =
Indices de transiciones
Indices de lugares
![Page 36: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/36.jpg)
36
Caso de estudio
Las rutas encontradas en la matriz de incidencia son:
R[0]: (4,4), (4,5), (5,5), (5,8)
R[1]: (4,4), (4,6), (6,6), (6,1), (1,1), (1,2), (2,2), (2,0), (0,0), (0,1), (1,1)
R[2]: (4,4), (4,6), (6,6), (6,1), (1,1), (1,3), (3,3), (3,8)
R[3]: (4,4), (4,7), (7,7), (7,0), (0,0), (0,1), (1,1), (1,2), (2,2), (2,0), (0,0)
R[4]: (4,4), (4,7), (7,7), (7,0), (0,0), (0,1), (1,1), (1,3), (3,3), (3,8)
![Page 37: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/37.jpg)
37
Caso de estudio
emp.rango = emp.rango+1
p0
t0
p1
update_PRIMA_cantidad
update_EMP_rango
p2
t1 copy
CopyOf_update_EMP_rango
If (new.cantidad-old.cantidad) > 100
t2
If (verdadero)
prima .cantidad +=(emp. rango*10)
Disparo infinito de reglas si:- El incremento es mayor de $100.- El rango del empleado es mayor de 9.
a) Ocurrencia evento p0:
Disparo infinito de reglas si:- El rango del empleado es mayor de 10.
b) Ocurrencia evento p1:
![Page 38: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/38.jpg)
38
Eventos Compuestos
Las transiciones t Trule almacenan el intervalo de tiempo, el cual está compuesto por un tiempo inicial y un tiempo final.Los tokens almacenan el valor de un punto en el tiempo (timestamp), el cual se refiere al momento en que el evento ocurrió.
ec = e1 e2
e1 e2
ec
ec = e1 e2
e1 e2
ec
Conjunción: (e1, e2), ocurre cuando se presentan los eventos e1 y e2, en cualquier orden.
Disyunción: (e1 | e2), ocurre cuando toma lugar cualquiera de los eventos e1 ó e2.
![Page 39: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/39.jpg)
39
Eventos Compuestos
ec = ~e1 en Int(sp, ep)sp : tiempo inicialep : tiempo final
e1
ec
Inhibitor arc
Negación : not e en Int, ocurre cuando el evento e no sucedió durante el intervalo Int.
ec = sec(e1, e2)
e1 e2
ec
if ( time(E1) < time(E2) )
Secuencia: seq(e1, e2), ocurre cuando sucede primero e1 y posteriormente e2.
ec = sim (e1, e2)
e1 e2
ec
if ( time(E1) = time(E2) )
Simultáneo: sim(e1, e2), ocurre cuando sucede al mismo tiempo e1 y e2.
![Page 40: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/40.jpg)
40
Eventos Compuestos
ec = *e1 en Int(sp, ep)
e1
ec
ec = last(e1) en Int(sp, ep)
e1
ec
ec = times(n, E1) en Int(sp, ep)
e1
ec
n
Cerradura: cerradura e en Int, ocurre solo una vez cuando ocurre la primera vez el evento e durante el intervalo Int.
Ultimo: last e en Int, toma la última ocurrencia de e en el intervalo Int.
Historia: times(n, e) en Int, ocurre cuando el evento e ha sucedido n veces durante el intervalo Int.
![Page 41: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/41.jpg)
41
Eventos Compuestos
ec = ANY(m, e1, e2, …, en)
etmp
ec
m
e1 e2 e3 en…….
…….
Alguno: any(e1, e2, ..., en, m), ocurre cuando han sucedido m eventos ei de n posibles. n m.
![Page 42: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/42.jpg)
42
Algoritmo para la generación de eventos compuestos
Reglas.ecaTabla1 (campo11 tipoDato11, campo12 tipoDato12, ...);Tabla2(campo21 tipoDato21, campo22 tipoDato22, ...);. . . .e1 : eventoPrimitivo1;e2 : eventoPrimitivo2;ec1 : eventoCompuesto1;. . . .On and(e1,e2),If condición,Then acción;. . . .
0: ---
1: ---
------
0: ---
1: ---
------
0: ---
1: ---
------
Reglas.obj
Tablas Eventos
Reglas
Reglas.pn
e1 e2
ec AND(e1,e2)
Condición
Acción
![Page 43: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/43.jpg)
43
Algoritmo para la generación de eventos compuestos
inicio
ECA[n]
indEvento = 1i = 1
i nfinno
regla.indEvento = crearEvento(ECA[i]);regla.condicion = ECA[i].condicion;regla.accion = ECA[i].accion;REGLAS[i] = regla;i++;
si
inicio
evento
evento es un evento compuesto?
si
no
objEvento = null
objEvento.tipo =eventoPrimitivo
objEvento.tipo =tipoDe(evento);j=1;
Hay mas eventos componentes?
posEvent = indEventoEVENTOS[posEvent] = objEventoindEvento++;return posEvent;
objEvento.componente[j] =crearEvento(evento.componente[j])j++;
no
si
fin
Función crearEvento
![Page 44: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/44.jpg)
44
Publicaciones
1. Joselito Medina Marín and Xiaoou Li, Modeling and Simulation of Event-Condition-Action Rules in Active Database, International Conference on Information Technology: Research and Education (ITRE03), Newark, New Jersey, USA, August 10-13, 2003 (accepted)
2. Xiaoou Li, Joselito Medina Marín, and Sergio V. Chapa, A Structural Model of ECA Rules in Active Database, Mexican International Conference on Artificial Intelligence (MICAI’02), Mérida, Yucatan, México, April 22-26, 2002, pp. 486-493
3. Joselito Medina Marín y Xiaoou Li, ECAPNSim, un simulador para reglas ECA, el XIII Congreso Interuniversitario de Electrónica, Computación y Eléctrica (CIECE), Zacatepec, México, Abril, 9-11, 2003
4. Joselito Medina Marín y Xiaoou Li, Análisis de terminación de reglas, un enfoque con red de Petri, el 4º Congreso Nacional de Computación (CORE 2003), México, D.F., México, Mayo 6-7, 2003, pp.56-67
![Page 45: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/45.jpg)
45
Publicaciones
5. Joselito Medina Marín y Xiaoou Li, Red de Petri Coloreada Condicional y su Aplicación en Sistemas de Bases de Datos Activas, VIII Conferencia de Ingeniería Eléctrica (CIE’02), México D.F., 2002, pp. 238-245
6. Xiaoou Li, Sergio V. Chapa Vergara, Joselito Medina Marín, and Jovita Martínez Cruz, Using Conditional Colored Petri Nets in Active Database System, submitted to Asian Journal of Control, Ref. DS-07-15, June, 2003
7. Xiaoou Li, Joselito Medina Marín, Active Database Systems Design via Conditional Colored Petri Nets: An Application-Independent Platform, submitted to Information Systems, Ref. IS 246, July, 2003
![Page 46: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/46.jpg)
46
Resultados
• Red de Petri Coloreada Condicional con Tiempo (TCCPN)
• Algoritmo de conversión de reglas ECA a CCPN
• Prototipo de ECAPNSim
• Conexión de ECAPNSim con Postgres
• Algoritmo de Análisis de Terminación
• Implementación del Algoritmo de generación de patrones para la detección de eventos compuestos.
![Page 47: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/47.jpg)
47
Conclusiones
• Es factible el uso de una red de Petri extendida en BDA para modelar bases de reglas ECA.
• La modelación, simulación, análisis, y ejecución de las reglas ECA puede realizarse en un solo medio.
• La simulación de la base de reglas se realiza antes de implementarla en una BD.
• Es posible modelar los eventos compuestos como TCCPN.
• El análisis de terminación puede realizarse a partir de la matriz de incidencia de la CCPN.
![Page 48: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV](https://reader034.vdocuments.co/reader034/viewer/2022051019/568151c0550346895dbff319/html5/thumbnails/48.jpg)
48
Trabajo Futuro
• Implementar en ECAPNSim el algoritmo de análisis de No terminación.
• Realizar análisis de confluencia en el modelo CCPN, aprovechando las propiedades de PN
• Casos de estudio: •Base de datos de Micro 500,• y alguna otra.
• Conectar ECAPNSim a diferentes manejadores de bases de datos•Progress, •Oracle, •Access.