Opened 13 years ago
Closed 13 years ago
#1663 closed doubt (worksforme)
Tiempo muy alto al compilar serie
| Reported by: | Owned by: | Víctor de Buen Remiro | |
|---|---|---|---|
| Priority: | high | Milestone: | Mantainance |
| Component: | TimeAlgebra | Version: | 3.1 |
| Severity: | normal | Keywords: | |
| Cc: |
Description (last modified by )
Hola Tol, cuando trato de construirme esta serie temporal, el tiempo que necesita para crearla es desorbitado, aproximadamente 20 segundos!.
Además cuando trato de hacer una estimación sea en Estimate o BSR el tiempo de estimación es absurdamente largo. ¿Podéis ayudarme?
Os dejo un ejemplo:
Date DefFirst := y2010; Date DefLast := y2015; TimeSet tmsLV = C-WD(6)-WD(7); TimeSet tmsFinDeMes.Medio = Succ(D(1),-1,tmsLV); TimeSet tmsFinDeMes.Sabado = tmsFinDeMes.Medio*WD(6); TimeSet tmsPreFinDeMes.Sabado = Succ(tmsFinDeMes.Sabado, -1,tmsLV); Real time = Time; Serie serPreFinDeMes.Sabado = CalInd(tmsPreFinDeMes.Sabado ,tmsLV); Real CtrTime(time);
Gracias de antemano
Change History (2)
comment:1 Changed 13 years ago by
| Description: | modified (diff) |
|---|---|
| Status: | new → accepted |
comment:2 Changed 13 years ago by
| Resolution: | → worksforme |
|---|---|
| Status: | accepted → closed |
| Type: | defect → doubt |
Note: See
TracTickets for help on using
tickets.

El problema es que estás operando con una expresión del conjunto temporal vacío.
El
TimeSet tmsFinDeMes.Medioes un subconjunto detmsLVque excluye a los sábados, por lo queTimeSet tmsFinDeMes.Sabado, que es su intersección conWD(6)es necesariamente vacía. El sucesor del vacío en cualquier cosa es el vacío por lo queTimeSet tmsPreFinDeMes.Sabadolo es también.Las operaciones de sucesión y predecesión de fechas sobre un conjunto vacío se tornan virtualmente infinitas. Si operas sobre
Wque es explícitamente vacío no hay problema porque TOL lo sabe, pero TOL no es capaz de hacer el cálculo simbólico que acabo de exponer para descubrir que un conjunto temporal es vacío, y se intenta defender mediante reglas heurísticas para no caer en ciclos infinitos pero el resultado es terriblemente lento.