Está en la página 1de 17

lgebra del Tiempo Diario

Vctor de Buen
20 de febrero de 2007
Resumen
En este documento se dan las principales bases tericas para la implementacin del lge-
bra del tiempo diario especialmente diseada para el lenguaje de programacin open-source
TOL (Time Oriented Language) cuya pgina web es TOL-project http://www.tol-project.
org, y que ha sido desarrollado por el grupo Bayes http://www.bayesforecast.com.
El propsito del lgebra del tiempo es dotar al lenguaje de un mtodo potente y sencillo
de manejar que permita la manipulacin de secuencias temporales complejas utilizadas en
el anlisis estadstico de series temporales en tiempo discreto con base diaria, especialmente
en lo que se respecta al llamado tiempo social que alude a todos aquellos aspectos de tipo
social que pueden inuir en los fenmenos analizados, como son los festivos, los puentes, las
vacaciones, el calendario escolar, nes de semana, estacionalidades anual, semanal, y diaria,
usos horarios de invierno y verano, nocturnidad, horario de ocina, etc.; o cualquier otra
estructura temporal derivada de los mismos.
Se introducen formalizaciones matemticas de instante de tiempo y conjunto tempo-
ral, as como de las operaciones algebraicas que es posible denir sobre ellos. Ntese que
las propiedades bsicas que se van a exponer serviran igualmente para cualquier otra dis-
cretizacin en lugar de la diaria, y no necesariamente a intervalos regulares. Queda para un
posterior documento la extensin al tiempo continuo.
1
ndice
1. Instantes de Tiempo Diario 3
2. Conjuntos Temporales Discretos 4
2.1. Denicin y propiedades de un CT . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Funciones de sucesin simple de un ITen un CT . . . . . . . . . . . . . . 4
2.1.2. Funciones de sucesin compuesta de un ITen un CT . . . . . . . . . . . 4
2.1.3. Diferencia de dos ITs en un CT . . . . . . . . . . . . . . . . . . . . . . 5
2.1.4. Fechados y conjuntos acotados . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.5. Notas para la implementacin de los mtodos de clculo asociados a CTs 7
3. CTs primarios 7
3.1. CTs constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1. Fechado bsico conjunto universal U . . . . . . . . . . . . . . . . . . . . 8
3.1.2. Conjunto vaco: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.3. Fechado bsico pascual: Easter . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. CT acotados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1. CT atmico: Day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2. CT monoanual: Year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3. CT intervalo entre dos ITs: In . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.4. CT generado por una lista de ITs: SetOfDates . . . . . . . . . . . . . . 9
3.3. Fechados bsicos de CTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.1. Month(M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.2. Day(D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.3. WeekDay(W) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. CTs secundarios 11
4.1. Operaciones Booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1. Diferencia de CTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.2. Unin de CTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.3. Interseccin de CTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2. Operadores de Traslacin en un CT . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.1. Conjuntos peridicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.2. Sucesor de un CT en otro . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.3. Rango de sucesores de un CT en otro . . . . . . . . . . . . . . . . . . . 16
5. Tests de calidad del lgebra del tiempo 16
5.1. Tests de coherencia de un CT concreto . . . . . . . . . . . . . . . . . . . . . . . 16
5.2. Simulacin aleatoria de expresiones . . . . . . . . . . . . . . . . . . . . . . . . . 17
2
1. Instantes de Tiempo Diario
Los instantes de tiempo con base diaria, a los que llamaremos indistintamente fecha IT
de aqu en adelante, se denen como das completos en el calendario gregoriano y se identican con
el punto de la recta real correspondiente al instante inicial del da, es decir las 0 horas 0 minutos,
0 segundos, 0 milsimas de segundo, etc. Si situamos el 0 en un punto de origen cualquiera y
denimos la unidad en la recta real como 24 horas se puede identicar con los nmeros enteros el
conjunto de los instantes de tiempo diario C
D
mediante la funcin biyectiva
I (x) : C
D
Z (1)
que devuelve ndice de la fecha, es decir, la posicin relativa al punto de origen en nmero de
das trasncurridos desde el mismo. Evidentemente existe su funcin inversa
I
1
(n) : Z C
D
(2)
En virtud de estas funciones se denen de forma trivial las operaciones de traslacin diaria de
fechas
x +n = I
1
(I (x) +n)
x n = I
1
(I (x) n)
_
x C
D
, n Z (3)
as como las relaciones de orden usuales
x = y I (x) = I (y)
x < y I (x) < I (y)
x > y I (x) > I (y)
_
_
_
x, y C
D
(4)
El conjunto C
D
se ampla con los instantes lmite impropios{, } que se usar para extender
los conceptos de sucesor y predecesor como se ver ms adelante, as como con el IT desconocido
o indeterminado ?, el cual se utilizar para expresar que no existe o no es calculable el resultado
de una expresin que debera devolver un IT.
Sobre los IT se denirn mediante el calendario gregoriano las funciones componentes de la
fecha
Y
x
= year (x) = Z
M
x
= month(x) = 1 . . . 12
D
x
= monthday (x) = 1 . . . 31
W
x
= weekday (x) = 1 . . . 7
(5)
Tambin se dene la funcin de construccin de fechas a partir de sus componentes
x = Y MD(y, m, d) Y
x
= y M
x
= m D
x
= d (6)
Nos referimos aqu al objeto matemtico fecha que se identica con un nmero entero en
contraposicin con el objeto informtico que interesa almacenar en base a sus componentes para
mayor eciencia.
3
2. Conjuntos Temporales Discretos
Un conjunto temporal discreto en base diaria, en adelante CT, es un tipo especial de
conjunto de instantes de tiempo con cierta estructura y que cumple determinadas normas que
se explican a continuacin. Ms adelante se exponen algunas propiedades importantes as como
algunas operaciones algebraicas que se pueden denir entre CTs y tambin otras que relacionan
CTs e ITs.
2.1. Denicin y propiedades de un CT
Un CT es un conjunto ordenado o sucesin de instantes de tiempo propios. A la familia de
todos los conjuntos temporales le llamaremos CT
D
. Ntese que la cardinalidad de CT
D
ser por
tanto la misma que la del conjunto de las partes de los nmeros enteros P (Z), es decir, la potencia
del continuo

.
2.1.1. Funciones de sucesin simple de un ITen un CT
Se dene el IT sucesor de un IT en un CT, como el menor elemento de CT estrictamente
mayor que ese IT. De forma anloga se dene el predecesor de un IT en un CT, como el
mayor elemento de CT estrictamente menor que dicho IT. La notacin empleada ser
x +A = mn {t A| t > x}
x A = max {t A| t < x}
_
x C
D
, A CT
D
(7)
Ntese que estas operaciones no son internas sino que el primer elemento es un IT y el segundo
un CT, por lo que no tienen sentido las propiedades asociativa o conmutativa ni ninguna otra
atribuble a los signos de suma y resta usuales. Sin embargo s se cumplen algunas normas bastante
obvias, tal y como se desprende a la vista de la gura1 , que an as sern de gran utilidad ms
adelante
(x +A) A x < x +A
(x A) +A x > x A
(x +A) A = x x A
(x A) +A = x x A
(x +A) A = x A < x x / A
(x A) +A = x +A > x x / A
(8)
Figure 1: Ejemplos de sucesin de un IT en un CT
2.1.2. Funciones de sucesin compuesta de un ITen un CT
Se puede extender recursivamente la denicin de sucesor y predecesor n-simos de un
IT en un CT del siguiente modo
x + 1 A = x +A x +n A = (x + (n 1) A) +A
x 1 A = x A x n A = (x (n 1) A) A
_
n > 1, n Z (9)
El caso de n = 0 es realmente singular pues para que exista x+0 A = x0 A es necesario
que se igualen las dos reglas de recursin anteriores
4
x + 0 A = (x A) +A
x 0 A = (x +A) A
(10)
Si x A entonces est claro que (x A) + A = x = (x +A) A pero si x / A entonces el
sucesor en A del predecesor de x en A es el mismo que el sucesor de x en A, ya que no puede
existir ningn elemento de A entre ambos y por tanto
x A = (x +A) A < x < (x A) +A = x +A (11)
As pues no se puede denir x + 0 A de forma congruente con las frmulas generales, por lo
que se ha toma arbitrariamente el criterio de devolver la fecha desconocida ?, es decir
x + 0 A =
_
x si x A
? si x / A
(12)
Se pueden extender las normas anteriormente descritas en 8 para las operaciones sucesor y
predecesor simples
(x +n A) n A x < (x +n A) (n 1) A
(x n A) +n A x > (x n A) + (n 1) A
(x +n A) n A = x x A
(x n A) +n A = x x A
(x +n A) n A < x x / A
(x n A) +n A < x x / A
_

_
n Z
+
(13)
2.1.3. Diferencia de dos ITs en un CT
Se dene la funcin diferencia en un CT A CT
D
entre dos IT x y C
D
, como el nmero
de ITs de ese CT superiores a x y no superiores a y, es decir

A
(x, y) = Card {t A| x t < y} x y C
D
, A CT
D
(14)
Igualmente se pude denir como el nmero de ITs de ese CT inferiores a y y no inferiores a x. Es
decir

A
(x, y) = Card {t A| x < t y} x y C
D
, A CT
D
(15)
Otras formas de expresar lo mismo son

A
(x, y) = max {n N | x +n A y}

A
(x, y) = max {n N | y n A x}
(16)
Tambin se dene, por simetra, la diferencia negativa

A
(y, x) =
A
(x, y) (17)
Aunque las siguientes relaciones se cumplen de forma trivial pueden no resultar a veces del
todo intuitivas:
1. La diferencia entre un elemento y s mismo es nula siempre y si dos fechas tienen diferencia
nula en A su sucesor o su predecesor en ese mismo A coinciden.

A
(x, x) = 0

A
(x, y) = 0 x +A = y +A x A = y A
(18)
2. Para todo par de fechas de A su distancia es invariante a las traslaciones en A y slo es nula
si son iguales.
x, y A
_

A
(x, y) =
A
(x n A, y n A)

A
(x, y) = 0 x = y
(19)
5
3. Si la diferencia entre dos ITs cualesquiera es positiva el primero es estrictamente mayor que
el primero y si es negativa entonces es estrictamente menor.

A
(x, y) > 0 y > x

A
(x, y) < 0 y < x
(20)
4. El recproco no se cumple estrictamente pues la distancia puede anularse si no pertenecen
al conjunto y no hay ningn elemento entre ambos.
y > x
A
(x, y) 0
y < x
A
(x, y) 0
(21)
2.1.4. Fechados y conjuntos acotados
El nmo y el supremo de un CT se denen como es ordinario
nf A = max {x | y / A y x}
sup A = mn {x | y / A y x}
(22)
Se llamar fechado a un conjunto temporal F CT
D
no acotado inferior ni superiormente, es
decir, que cumpla que
t Z x, y Fx < t < y (23)
o lo que es lo mismo
nf F =
sup F =
(24)
Los fechados tienen una gran importancia pues son la base para la creacin de series temporales
en tiempo continuo, as como para la denicin de algunas operaciones importantes de CTs que
se vern ms adelante.
Aunque los instantes impropios , ?, no pertenecen nunca a ningn CT, a veces se obrar
como si as fuera por comodidad notacional en el caso de los instantes lmite , , puesto que
pertenecen asintticamente a todos los fechados. Se puede hablar de semifechados por la izquierda
o por la derecha para aquellos CT que estn acotados slo por la izquierda o por la derecha,
respectivamente.
Para los fechados se cumplen las siguientes reglas asintticas de sucesin
+n F =
n F =
+n F =
n F =
_

_
n Z
+
(25)
Para los CTs acotados en un intervalo [a, b], se tiene sin embargo que
+n A =
n A = b
+n A = a
n A =
_

_
n Z
+
(26)
Para la fecha desconocida en cualquier caso siempre se tiene que
? n A =? n Z (27)
6
2.1.5. Notas para la implementacin de los mtodos de clculo asociados a CTs
Un CT se puede construir de varias formas, deniendo uno o ms mtodos de clculo asociados
al mismo:
Por enumeracin exhaustiva de sus elementos, siempre que sea un conjunto nito.
Mediante una funcin booleana explcita de pertenencia que devuelva cierto para cada IT
que sea elemento suyo y falso para el resto.
Implcitamente, mediante un IT que le pertenezca y una regla de recursin reversible, es
decir, que permita calcular cul es el IT de ese conjunto inmediatamente superior (sucesor)
o inferior (predecesor) a un IT cualquiera.
Sin embargo, ser indispensable implementar al menos los mtodos de inclusin x A y sucesin
simple x A para cada clase de CT de la forma ms eciente que sea posible aprovechando
las caractersticas propias de cada uno, ya que estos mtodos se utilizarn de forma masiva en
conjuntos y series temporales. Siempre que sea posible y d mayores prestaciones, tambin se
implementarn los mtodos de sucesin compuesta x n A, ya que, aunque por defecto se
pueden denir por recursin de sucesores y predecesores, se usarn tan a menudo que cualquier
mejora producir importantes ahorros en el tiempo de proceso.
Otro mtodo de gran utilidad asociado a un CT y que merece la pena programar de la forma
ms eciente posible, por el uso intensivo que se hace de l, es el que devuelve la lista ordenada de
todos los elementos de un CT entre dos fechas, al cual denotaremos como mtodo de extraccin
extract (A, x, y) = A [x, y] = {t
k
A| x t
1
< t
2
< < t
n
y} x y C
D
, A CT
D
(28)
Cuando el mtodo de extracin sea muy costoso ser conveniente almacenar los resultados
en memoria porque es muy habitual que se vuelvan a requerir extracciones contenidas o iguales.
Diremos entonces que el CT usa extraccin con cach. Cuando un CT es una expresin resultante
de otros CTs que no estn referenciados por ningn otro se debe eliminar la cach de estos
ltimos una vez construida la cach nal, ya que no volvern a ser consultadas y sera un espacio
de memoria intil. Es posible introducir un mtodo general de control de la cach por parte del
usuario mediante un parmetro que indique el tiempo mnimo por elemento de cach que justica
su uso. Si no se especica nada en la denicin un CT no usar cach y la extraccin se realizar
mediante el algoritmo genrico
t
1
= (x A) +A
t
k
= t
k1
+Ak = 2, 3, . . . t
k
y
(29)
Cada instancia de conjunto temporal deber implementar tambin los mtodos nf A, sup A
y A. Si no es posible calcular analticamente dichas propiedades se implementar al menos
cotas aproximadas de los mismos que se utilizarn para optimizar los clculos de sucesin en
determinados casos patolgicos que se estudiarn ms adelante.
3. CTs primarios
Los conjuntos temporales primarios son los que no requieren de otros CTs para su denicin y
pueden ser constantes o paramtricos si admiten diferentes formas en funcin de ciertos argumentos
3.1. CTs constantes
Se trata de conjuntos temporales constantes en el sentido de que se denen sin necesidad
de especicar ningn parmetro. La condicin de incluir los interiores de todos sus elementos se
desprende de las propias deniciones de forma trivial por lo que no se demuestra en cada caso.
Todas estas constantes son fechados excepto el conjunto vaco.
7
3.1.1. Fechado bsico conjunto universal U
Llamaremos conjunto universal C al conjunto de todos los IT posibles que en esta imple-
mentacin ser el conjunto U = C
D
. Las funciones de sucesin compuestas se reducen en este caso
a la expresin
x +n U = x +n n Z, x U (30)
Evidentemente se tiene que
nf U =
sup U =
(31)
3.1.2. Conjunto vaco:
Llamaremos al conjunto temporal vaco, es decir, al que no contiene ningn IT propio.
Evidentemente no se trata de un fechado aunque tampoco se puede decir que est acotado por lo
que se hablar a veces de fechado vaco. El sucesor n-simo se calcula as:
x +n =
_
_
_
si n < 0
? si n = 0
si n > 0
n Z, x U (32)
Por convenio se entender que
nf =
sup =
(33)
La extraccin siempre devuelve la lista vaca.
3.1.3. Fechado bsico pascual: Easter
Llamaremos Easter al conjunto de todos los IT pertenecientes a los domingos de Pascua de
cualquier ao. La denicin del domingo de Pascua es relativamente sencilla: se trata del primer
domingo posterior a la primera luna llena tras el equinoccio de primavera. Sin embargo los mtodos
con los que la iglesia calcula las efemrides astronmicas es muy primitivo y recurre a ciertas
modicaciones ad-hoc, por lo que no siempre coincide con la denicin exacta.
Se parte de la base de existencia de una funcin easter (year) que devuelve el domingo de
Pascua para cualquier ao:
x Easter x = easter (year (x)) (34)
El sucesor n-simo se calcula as:
x +n Easter =
_
easter (n +y) si x < easter (y)
easter (1 +n +y) si x easter (y)
y = year (x) (35)
Es evidente que
nf Easter =
sup Easter =
(36)
3.2. CT acotados
Aqu se describen algunas clases de CTs nitos construidos de forma muy sencilla a partir de
ITs
8
3.2.1. CT atmico: Day
Dado un IT x cualquiera se dene su CT atmico como
Day(x) = {x} (37)
3.2.2. CT monoanual: Year
Dado un entero cualquiera y cualquiera se dene su CT monoanual como el intervalo de las
fechas de dicho ao
Y ear (Y ) = {x U| Y
x
= Y } (38)
3.2.3. CT intervalo entre dos ITs: In
Dados dos ITs a y b cualesquiera se dene el CT intervalo como
In(a, b) = {x U| a x b} a, b U a b (39)
Puede no haber lmite inferior o superior haciendo a = b = respectivamente. Ntese
tambin que los CT atmicos y monoanulaes son casos particulares de intervalos, por lo que se
pueden utilizar en los tres casos las siguientes implementaciones para las operaciones de sucesin
y extraccin
x +n In(a, b) =
_
_
_
a +n 1 x +n 1 < a
x +n a x +n 1 < b
x +n 1 b
x n In(a, b) =
_
_
_
b n + 1 x +n 1 > b
x n a < x +n 1 b
x +n 1 a
x U n Z
+
(40)
La extraccin es tan sencilla que no precisa cach en ningn caso.
extract (In(a, b) , x, y) = [a, b] [x, y] = [max {a, x} , mn {b, y}] (41)
Evidentemente se tiene que
nf In(a, b) = a
sup In(a, b) = b
(42)
3.2.4. CT generado por una lista de ITs: SetOfDates
Dada una lista nita cualquiera de ITs, se puede construir una sucesin disjunta ordenando
previamente el conjunto y eliminando los elementos repetidos para optimizar los mtodos de
clculo. A esta operacin le llamaremos conjunto temporal generado por una lista nita de ITs
SetOfDates (x
1
, . . . , x
N
) (43)
Al estar ordenada la lista permite la bsqueda binaria con costeN log N por lo que se puede
implementar muy facilmente la funcin de determinacin de pertenencia de una fecha cualquiera as
como su sucesor y predecesor. La sucesin compuesta, una vez alcazado un elemento perteneciente
a la lista se reduce a una traslacin en el intervalo de ndices
9
x
j
+n SetOfDates (x
1
, . . . , x
N
) =
_
_
_
j +n < 1
x
j+n
1 j +n N
j +n > N
j = 1 . . . N n Z (44)
Para el mtodo de extraccin basta con localizar los ndices correspondientes a los extremos
y extraer todos los interiores. Obviamente no precisa cach pues el propio CT ya es en s mismo
una cach al estar denido exhaustivamente.
Evidentemente se tiene que
nf SetOfDates (x
1
, . . . , x
N
) = x
1
sup SetOfDates (x
1
, . . . , x
N
) = x
N
SetOfDates (x
1
, . . . , x
N
) = max
k=2...N
{x
k
x
k1
}
(45)
3.3. Fechados bsicos de CTs
Los fechados bsicos son los creados mediante funciones que devuelven conjuntos temporales
a partir de un parmetro dado, a las que llamaremos funciones bsicas de CTs. Todos estos
conjuntos temporales son fechados bsicos parciales, en el sentido de que no recubren la recta real,
y que se denen por cada valor particular que puede tomar determinada coordenada gregoriana.
Puesto que todos ellos son fechados se tiene que
nf F =
sup F =
(46)
3.3.1. Month(M)
La funcin Month devuelve el conjunto temporal de todos los IT incluidos en un mes del ao
dado para cualquier ao pasado, presente o futuro
x M (m) M
x
= m m = 1 . . . 12 (47)
Las funciones se sucesin simple se calculan directamente mediante estas sencillas reglas
x +M (m) =
_
x + 1 d < LDM (m)
Y MD
_
Y
x
+n
_
m1
Mx
_
, m
_
d = LDM (m)
x M (m) =
_
x 1 d > LDM (m)
Y MD
_
Y
x
n +
_
Mx1
m

, m
_
d = 1
(48)
donde
_
a
b

representa la parte entera del cociente de nmeros naturales.


3.3.2. Day(D)
La funcin Day devuelve el conjunto temporal de todos los IT incluidos en un da de mes dado
para cualquier mes y cualquier ao pasado, presente o futuro
x D(d) D
x
= d d = 1 . . . 31 (49)
Las funciones de sucesin compuesta se calculan as
x +n D(d) = Y MD
_
Y
x
+
_
m
12

, (M
x
+m) mod12, d
_
m = n
_
d1
Dx
_
x n D(d) = Y MD
_
Y
x

_
m
12

, (M
x
m) mod12, d
_
m = n
_
Dx1
d

(50)
10
3.3.3. WeekDay(W)
La funcin WeekDay devuelve el conjunto temporal de todos los IT incluidos en una da de
la semana dado para cualquier semana pasada, presente o futura
x WD(w) W
x
= w w = 1 . . . 7 (51)
Las funciones de sucesin compuesta se calculan as
x +n WD(w) = x + (w W
x
) mod7 + 7
_
n
_
w1
Wx
__
x n WD(w) = x (W
x
w) mod7 7
_
n
_
Wx1
w
_
(52)
4. CTs secundarios
Son aquellos que se denen en funcin de otros CTs segn ciertas reglas particulares de cada
caso dando estructura y expresibilidad al lgebra del tiempo.
4.1. Operaciones Booleanas
Las siguientes operaciones entre conjuntos temporales le dan a CT
D
una estructura de lgebra
de Boole. Con ellas y otras ms que se vern ms adelante se pueden construir expresiones que
den forma a las secuencias temporales ms complicadas que se pueden encontrar en el anlisis de
series temporales.
4.1.1. Diferencia de CTs
La diferencia de dos conjuntos temporales A y B es el conjunto temporal de las fechas de A
que no estn en B.
x AB x A x / B (53)
Se dene el complementario de un CT como la diferencia del conjunto universal y dicho CT.
A U A (54)
La diferencia de fechados distintos es un fechado. Las funciones de sucesor tienen el mismo
problema de recursin que en la interseccin.
x + (AB) =
_
x +A si x +A / B
(x +A) + (AB) si x +A B
(55)
x (AB) =
_
x A si x +A / B
(x A) (AB) si x +A B
(56)
El mtodo de extraccin consiste como es lgico en extraer las listas de A y B y recorrer la de
A eliminando los que estn en B, y almacenando los resultados en la cach.
El nmo y el supremo no estn determinados para la diferencia de CTs pero claramente se
tiene que
nf (AB) nf A
sup (AB) sup B
(57)
Tambin se dispone de las siguientes reglas particulares
AA =
AU =
A = A
(58)
11
M (m) M (m

) = M (m) m = m

D(d) D(d

) = D(d) d = d

WD(w) WD(w

) = WD(w) w = w

(59)
4.1.2. Unin de CTs
La unin de dos o ms conjuntos temporales es la reordenacin de los elementos de todos ellos.
Obviamente, la unin de fechados es tambin un fechado.
x A
1
A
N
x A
1
x A
N
(60)
El sucesor de un IT en la unin de CTs es el mnimo de los sucesores en cada uno y el
predecesor es el mximo.
x + (A
1
A
N
) = mn {x +A
1
, , x +A
N
}
x (A
1
A
N
) = max {x A
1
, , x A
N
}
(61)
No existe ninguna forma de acelerar la sucesin compuesta pero s la extraccin que se ha de
implementar con el conocido algoritmo merge-sort para mezcla de listas ordenadas. El trabajo
realizado har aconsejable usar cach de extraccin en la mayora de los casos.
El nmo y el supremo estn perfectamente denidos para la unin de CTs
nf (A
1
A
N
) = mn
k=1...N
{nf A
k
}
sup (A
1
A
N
) = max
k=1...N
{sup A
k
}
(62)
4.1.3. Interseccin de CTs
La interseccin de dos o ms conjuntos temporales es la reordenacin de los elementos que
pertenecen a todos ellos simulatneamente.
x A
1
A
N
x A
1
x A
N
(63)
La interseccin de fechados puede ser un fechado o no serlo. La interseccin de fechados no
disjuntos es un fechado.
El sucesor simple de un IT en la interseccin de CTs es algo ms complicado que el de la unin
y slo se puede denir recursivamente
Y
+
=
_
y
+
k
= x
k
+A
k

k = 1 . . . N
_
Z
+
=
_
y
+
k

y
+
k
A
j
j = 1 . . . N
_
x + (A
1
A
N
) =
_
mn (Z
+
) si Z
+
=
max (Y
+
) + (A
1
A
N
) si Z
+
=
(64)
Y

=
_
y

k
= x
k
A
k

k = 1 . . . N
_
Z

=
_
y

k
A
j
j = 1 . . . N
_
x (A
1
A
N
) =
_
max (Z

) si Z

=
mn (Y

) (A
1
A
N
) si Z

=
(65)
Este caracter recursivo da lugar a un ciclo innito cuando el resultado de una interseccin
es acotado o vaco. Por ello se debe disponer de un mecanismo que analize simblicamente las
expresiones para evitar esa situacin. En cualquier caso sera conveniente dar un mensaje de
advertencia cuando se sobrepasara determinado nmero de iteraciones considerado como excesivo.
Tambin sera bueno parar el ciclo y dar un mensaje de aviso a partir de un nmero mximo de
iteraciones. Ambos lmites deberan ser denibles por el usuario.
Para la extraccin sin embargo no hay ningn problema pues se proceder a la extraccin de
cada uno los CTs a intersecar
extract (A
k
, a, b) = {t
k,1
, . . . , t
k,n
k
} (66)
y a continuacin se eliminan aquellos elementos que no pertenezcan a alguno de esos CTs,
lo cual no requiere recursin aunque s el esfuerzo suciente para usar cach. Se puede recorrer
12
la lista de uno cualquiera y buscar cada uno de sus elementos en las listas de todos los dems.
Concretamente se debe usar el que d coste computacional mnimo
mn
k=1...N
_
_
_
n
k

j=k
log
2
n
j
_
_
_
(67)
El nmo y el supremo no estn determinados para la interseccin de CTs pero s existen acota-
ciones genricas tiles
nf (A
1
A
N
) max
k=1...N
{nf A
k
}
sup (A
1
A
N
) mn
k=1...N
{sup A
k
}
(68)
Tambin se cumplen las siguientes reglas
U A = A A = A
A =
(69)
A
1
A
N
= A
1
A
N
(70)
M (m) M (m

) = m = m

D(d) D(d

) = d = d

WD(w) WD(w

) = w = w

(71)
M (m) D(d) = m = 1, 3 . . . 12 d = 1 . . . 31
M (2) D(d) = d = 1 . . . 29
M (2) D(30) =
M (m) D(31) = m = 2, 4, 6, 9, 11
M (m) WD(w) = m = 1 . . . 12 w = 1 . . . 7
D(d) WD(w) = d = 1 . . . 30 w = 1 . . . 7
(72)
4.2. Operadores de Traslacin en un CT
Los operadores de traslacin de conjuntos construyen un CT mediante desplazamientos de ITs
a lo largo de otro CT.
4.2.1. Conjuntos peridicos
La operacin modular de un IT c llamado centro, con periodicidad p > 0 en el conjunto de
unidades de traslacin U tal que c U devuelve todos los IT de U cuya distancia en U a c sea
mltiplo de dicha periodicidad p.
c modp U = {u U | n Z u = c + (p n) U} (73)
o dicho de otro modo
c modp U = {u U |
A
(u, c) = 0 modp} (74)
Si c / U no se pueden denir los mtodos de forma sencilla y resulta de poca utilidad por lo
que se tomar como centro c + U. Si p = 0 entonces c mod0 U = y si p < 0 se invertir el
signo.
El sucesor y el predecesor simples son obviamente
x + (c modp U) = (x +U) +
A
(x +U, c) modp
x (c modp U) = (x U)
A
(c, x U) modp
(75)
El sucesor y el predecesor compuesto se pueden acelerar haciendo uso de la siguiente propiedad
y c modp U y +k (c modp U) = y + (kp) U k Z (76)
13
La extraccin debe usar cach porque el clculo de la sucesin compuesta en U puede ser
costoso. Se extraen los elementos u
k
de U en el intervalo extendido
extract (c modp U, a, b) a

= mn {a, c} b

= max {b, c} (77)


Se busca la posicin de c = u
j
y se seleccionan los elementos de la forma u
(j modp)+hk
Obviamente los conjuntos peridicos no pueden estar acotados y son siempre fechados por lo
que el nmo y el supremo son innitos
nf (c modp U) =
_
_
_
p = 0
c p = 0 c U
p = 0 c / U
sup (c modp U) =
_
_
_
p = 0
c p = 0 c U
p = 0 c / U
(78)
Obsrvese que los fechados de los das de la semana son casos particulares de fechados peridicos
WD(w) = (c
0
+w) mod7 U w = 1 . . . 7 (79)
donde c
0
es un domingo cualquiera
4.2.2. Sucesor de un CT en otro
Se dene el conjunto sucesor n-simo de un conjunto C, en otro U al conjunto de todas las fechas
sucesores n-simas en el conjunto U, al que llamaremos de unidades de traslacin, de elementos
del conjunto C, al que denominaremos centro de traslaciones. En la gura 2 se pueden ver algunos
ejemplos de sucesin de CTs
Figure 2: Ejemplos de sucesin de un CT en otro
Todo esto se expresa as
C +n U = {x U| c Cx = c +n U}
C n U = {x U| c Cx = c n U}
_
n Z
+
(80)
Llevando al lmite nulo ambas expresiones se obtiene
C + 0 U = C 0 U = {x U| c Cx = c 0 U = c + 0 U} = C U (81)
De las relaciones expuestas en 13 se deduce directamente que
x = c +n U x n U c < x (n 1) U
x = c n U x +n U c > x + (n 1) U
(82)
por lo que se puede disponer de los siguientes mtodos directos de determinacin de la perte-
nencia
C +n U = {x U| x n U (x (n 1) U) C}
C n U = {x U| x +n U (x + (n 1) U) +C}
_
(83)
14
Partiendo directamente de la denicin de sucesor y predecesor simple dada en 7 se pueden
denir para cualquier IT x
x + (C +n U) = mn {z = c +n U| c C z > x}
x + (C n U) = mn {z = c n U| c C z > x}
x (C +n U) = max {z = c +n U| c C z < x}
x (C n U) = max {z = c n U| c C z < x}
_

_
(84)
En cada uno de los cuatro casos anteriores se cumple la siguiente regla respectivamente
u = x +U C +n U x + (C +n U) = u
u = x +U C n U x + (C n U) = u
v = x U C +n U x (C +n U) = v
v = x U C n U x (C n U) = v
_

_
(85)
Queda por resolver qu ocurre cuando u v no pertenecen a C nU, es decir, segn el caso
u / C +n U (u (n 1) U) C < u n U < u (n 1) U
x + (C +n U) = ((u n U) +C) +n U
(86)
u / C n U (u + (n 1) U) +C > u +n U > u + (n 1) U
x + (C n U) = ((u + (n 1) U) +C) n U
(87)
v / C +n U (v (n 1) U) C < v n U < v (n 1) U
x (C +n U) = ((v (n 1) U) C) +n U
(88)
v / C n U (v + (n 1) U) +C > v +n U > v + (n 1) U
x (C n U) = ((v +n U) C) n U
(89)
Al igual que con la mayora de las operaciones de CTs, no existe ninguna forma de acelerar
la sucesin compuesta pero s la extraccin, que habr de tener cach. Esta se implementar
extrayendo previamente los u
k
de los elementos de U y los c
k
de los elementos de C en el intervalo
extendido [a

, b

] denido as
extract (C +n U, a, b) a

= a n U b

= b
extract (C n U, a, b) a

= a b

= b +n U
(90)
Se recorre la extraccin u
k
de los elementos de U con lo que u
k
hU = u
kh
y se usa bsqueda
binaria para el clculo de c
j
= u
k(n1)
C, reducindose drsticamente el coste computacional,
especialmente cuando U y C son a su vez expresiones complejas de CTs.
El nmo y el supremo no estn determinados para el sucesor de un CT en otro pero s se sabe
que
nf (C +n U) max {(nf C) +n U,nf U}
sup (C +n U) mn {(sup C) +n U, sup U}
nf (C n U) max {(nf C) n U,nf U}
sup (C n U) mn {(sup C) n U, sup U}
nf (C 0 U) =nf (C U) max {nf C,nf U}
sup (C 0 U) = sup (C U) mn {sup C, sup U}
(91)
Tambin se cumple la siguiente regla para la interseccin con cualquier CT A
A U = A (C n U) = n Z (92)
15
4.2.3. Rango de sucesores de un CT en otro
La operacin rango de sucesores se basa en la anterior operacin de sucesin de CTs y se
dene como la unin de sucesores consecutivos en un rango de nmeros enteros
C + [r, s] U =
s
k=r
(C +k U) r s Z (93)
Como tanto la unin como la sucesin ya han sido exploradas se puede decir que se trata de
una operacin no bsica en el lgebra del tiempo, aunque es bueno denir los mtodos ad hoc para
aprovechar los clculos realizados pues se pueden evitar la mitad de los clculos ya que el u
k(n1)
de una iteracin ser el u
kn
de la anterior o la siguente segn el caso.
Puesto que se trata de la unin de sucesores, el nmo y el supremo se calculan como
nf (C + [r, s] U) = mn
k=r...s
{nf (C +k U)}
sup (C + [r, s] U) = max
k=r...s
{sup (C +k U)}
nf (C [r, s] U) = mn
k=r...s
{nf (C k U)}
sup (C [r, s] U) = max
k=r...s
{sup (C k U)}
(94)
Tambin se cumple la siguiente regla para la interseccin con cualquier CT A
A U = C + [r, s] U = r, s Z (95)
5. Tests de calidad del lgebra del tiempo
La complejidad algortmica del lgebra temporal descrita requiere la implementacin de una
serie de tests de integridad de los diferentes mtodos de cualquier CT de los anteriormente descritos
as como cualquier expresin compuesta denible mediante los operadores de forma anidada.
5.1. Tests de coherencia de un CT concreto
En general el mtodo ms sencillo de programar es el de la pertenencia por lo que lo ms
sensato es comprobar que el resto de mtodos son coherentes con el mismo.
As pues, primero se tomarn todas las fechas entre dos lmites dados y se seleccionar de forma
exhaustiva la lista de las fechas que pertenecen al CT mediante el mtodo de cclulo directo de
x A.
Despus se llamar al mtodo particular de extraccin en ese mismo intervalo y se comprobar
que efectivamente da lugar a exctamente la misma lista que el mtodo exhaustivo.
Si no existe ninguna fecha en ese intervalo no hay nada ms que comprobar.
Si hay al menos dos fechas en el intervalo se calcular progresivamente la lista de sucesores
a partir de la primera extrada para comprobar que el mtodo x + A va dando exctamente el
siguiente elemento de la lista extrada.
Anlogamente se calcular regresivamente la lista de predecesores a partir de la ltima extrada
para comprobar que el mtodo xA va dando exctamente el anterior elemento de la lista extrada.
Por ltimo se generarn fechas aletatorias en el intervalo del test, no necesariamente de A, y
se comprobar que el resultado del sucesor y el predecesor coinciden con el mtodo de bsqueda
binaria en la lista extrada.
Dada la lentitud que tendra un programa TOL que hiciese este test se ha desarrollado en C++
la funcin built-in
Text TestIntegrityOfTimeSet
(TimeSet tms
[, Date from=DefFirst, Date until=DefLast,
Real numSim=1000, Real maxLag=1])
Esta funcin devuelve el texto OK si todo ha ido bien o bien un texto avisando de que ninguna
fecha del intervalo le pertenece o en su caso un mensaje detallando la incoherencia detectada.
16
5.2. Simulacin aleatoria de expresiones
En el chero TOL SimulationMassiveTestOfTimeSetCoherence.tol se dispone de un sistema de
generacin aleatoria de expresiones de conjuntos temporales del nivel de complejidad que se desee
e incorporando todas las funciones y objetos de tipo TimeSet que existen en el lgebra del tiempo.
Se trata de un conjunto de funciones que construyen expresiones TOL de texto que son unas
de tipo bsico para construir CTs primarios, es decir que no dependen de otros CTs para su
denicin (WD(3), M(8), ...), y otras funciones mutuamente recursivas que devuelven expresiones
de CTs secundarios ((WD(3)+M(8))*D(1), ...).
Para aumentar la complejidad sin restar legibilidad e imitar el proceso de anlisis usual de
series temporales se simula un bloque de variables de forma que se puedan usar en las frmulas
las variables previamente creadas.
17

También podría gustarte