ariadne-cps / release-1.0

Frozen 1.0 release of the Ariadne C++ framework for cyber-physical systems
http://www.ariadne-cps.org
GNU General Public License v3.0
0 stars 0 forks source link

Adaptive enclosure boxing events #9

Closed lgeretti closed 8 years ago

lgeretti commented 8 years ago

Originally reported by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Study the possibility to use adaptive boxing of the enclosures instead of systematic boxing at each step.


lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Resolved by not requiring any hard parameter for boxing. It is still open the possibility to keep the error bound, rather than "minimized", in order to have unlimited flight ability.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Does not appear to be that way: the total evolution time (before the maximum enclosure widths are hit) remains the same while decreasing the step size. This means that the dynamics introduces a constant error over time (which is roughy evenly split among the continuous steps).

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Checking if, for the circle-unstable example, there exists a step size which allows an initial set with non-empty interior to remain constrained to its initial widths, by using the current absorption routine.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Tried using a check over the absolute value of the derivatives midpoint on the finishing and starting points of the evolution step. If such value is strictly lesser on the finishing set compared to the starting set, then the dynamic is contractive. I did this check separately for each dimension for maximum accuracy. Works fine for the circle-unstable case, yielding even a better error than the one obtained by fine-tuning the boxing frequency to 400 steps: 0.000233 for step size equal to 4e-3, against 0.000252. For the laser case, the situation where T is stable but subject to dynamics does not work with strict inequality. Hence we use derivatives_finishing <= derivatives_starting as a condition, thus allowing also pseudo-linear dynamics to be subject to boxing. Note that all steps end up having an absorption event.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


The circle-unstable example turns out to have better performance when boxing both the dimensions, rather than boxing only the dimension that hits the error-to-width ratio.

Still, the laser example is better off by using the "selective" boxing (try for pass period equal to 156 ms and step size 5e-6.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Trying to improve boxing by rather making an interval TaylorModel only for the interested dimension.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


Focusing on the circle-unstable example to find an heuristics for adaptive boxing, with benchmarking included.

lgeretti commented 8 years ago

Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)


The circle-unstable example using a boxing every ~400 steps yields a minimum of the error.