close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#1889 closed defect (fixed)

Error con TimeTools

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: normal Milestone: Mantainance
Component: Packages Version:
Severity: normal Keywords:
Cc:

Description

Se encuentran errores al usar TimeTools:

#Require TimeTools;

Real PutRandomSeed(2143);
Serie s = SubSer(Gaussian(5, 2, Weekly), y2014, y2014m06);
Real PutSerDat(s, y2014m02d24, 0);
Real PutSerDat(s, y2014m03d17, 0.1);

Set TimeTools::InvChFlow.Set([[s]], @TimeSet(Daily), "SumS", 2);
[TimeTools::InvChFlow] Solving each particular linear system ... 

ERROR: [] value no es un objeto valido para el tipo Real.

[Call stack]
  [6] Real info::ipopt::sqp::set.option (Text type, Text name, Anything value)
  [5] Real info::ipopt::sqp::set.option.list (Set list)
  [4] Real info::ipopt::sqp::build_and_optimize (Real void)
  [3] NameBlock TolIpopt::@SMRS::Optimize.Bounded (Set options, VMatrix X, VMatrix y, VMatrix x_lower_, VMatrix x_upper_)
  [2] NameBlock TimeTools::InvChFlow.Simultaneous (Anything aggFlow_, Set trg, Text groupStat_, Real difApprxDeg_)
  [1] Set TimeTools::InvChFlow.Set (Set aggFlow_, Set trg, Text groupStat_, Real difApprxDeg_)

Attachments (4)

compareSmoothStep.gif (48.9 KB) - added by Víctor de Buen Remiro 9 years ago.
compareSmoothStep_BreakNonZeroes.gif (50.5 KB) - added by Víctor de Buen Remiro 9 years ago.
compareSmoothStep_DontBreakOnZeroes.gif (51.9 KB) - added by Víctor de Buen Remiro 9 years ago.
compareSmoothStep_None.gif (51.3 KB) - added by Víctor de Buen Remiro 9 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 9 years ago by Pedro Gea

Component: KernelPackages

comment:2 Changed 9 years ago by Víctor de Buen Remiro

A mí me funciona perfectamente. Creo que es algo de la versión de TolIpopt que tendrás que actualizar.

De todas formas al final ya no uso TolIpopt ni creque vaya a usarlo, así que puedo eliminar el require y todas las referencias

comment:3 Changed 9 years ago by Pedro Gea

Es cierto, este código necesita TolIpopt.3.4 mínimo.

Sería conveniente incorporar una línea como:

Real TolPackage::TolVersion::TestPackageVersion("TolIpopt.3.4", "MIN");

al StartActions de TimeTools. Aunque si como dices, vas a prescindir de TolIpopt, pues esperamos ese cambio.

comment:4 Changed 9 years ago by Pedro Gea

Cuestión aparte es que el resultado que devuelve no resulta muy bueno, con un par de picos con cambios de pendiente bruscos.

Espero a que subas los cambios que tengas pendientes en TimeTools.

comment:5 in reply to:  3 Changed 9 years ago by Víctor de Buen Remiro

Replying to pgea:

tengo que repasar el códig y si realmente no lo uso quitaré el eequire de TolIpopt y todas las referencias. En otro caso pongo esa línea que dices que es algo que no conocía porque está muy bien tener.

Changed 9 years ago by Víctor de Buen Remiro

Attachment: compareSmoothStep.gif added

comment:6 Changed 9 years ago by Víctor de Buen Remiro

Yo creo que está bien


La cuestión es qué se hace con los ceros, pues hay varias interpretaciones.
El convenio seguido es que cuando hay un cero se rompe el principio de suavidad.
Lo que hace es romper la serie en tramos sin ceros.
Quizás se podría añadir una opción de configuración para habilitar o deshabilitar esta característica.

comment:7 Changed 9 years ago by Víctor de Buen Remiro

(In [6975]) Refs #1889

Changed 9 years ago by Víctor de Buen Remiro

Changed 9 years ago by Víctor de Buen Remiro

Changed 9 years ago by Víctor de Buen Remiro

Attachment: compareSmoothStep_None.gif added

comment:8 Changed 9 years ago by Víctor de Buen Remiro

Ahora hay tres opciones configurables:

  • Romper la serie en los ceros como hasta ahora (comportamiento por defecto)
    Real TimeTools::InvChFlow.Config::ActionForZeroes := 
         TimeTools::InvChFlow.Options::ActionForZeroes::BreakNonZeroes
    


  • No romper la serie en los ceros pero asegurar que no haya valores negativos
    Real TimeTools::InvChFlow.Config::ActionForZeroes := 
         TimeTools::InvChFlow.Options::ActionForZeroes::DontBreakOnZeroes
    


  • No hacer nada al respecto, es decir, considerar que el flujo puede ser negativo
    Real TimeTools::InvChFlow.Config::ActionForZeroes := 
         TimeTools::InvChFlow.Options::ActionForZeroes::None
    


comment:9 Changed 9 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: newclosed

(In [6977]) Fixes #1889

comment:10 Changed 9 years ago by Víctor de Buen Remiro

(In [6978]) Fixes #1889

comment:11 Changed 9 years ago by Víctor de Buen Remiro

Ya he subido la versión corregida manteniendo la misma numeración, es decir, hay que hacer update

comment:12 Changed 9 years ago by Víctor de Buen Remiro

Al final he prescindido de TolIpopt

Note: See TracTickets for help on using tickets.