JuliaReach / ReachabilityBenchmarks

JuliaReach benchmark suite
MIT License
4 stars 1 forks source link

Make Gearbox benchmark succeed #86

Open schillic opened 5 years ago

schillic commented 5 years ago

Originally posted by @schillic in https://github.com/JuliaReach/ReachabilityBenchmarks/pull/72#issuecomment-470852699

schillic commented 5 years ago

Some comments:

schillic commented 5 years ago

One idea for the problem with repeating the same time step is to consider the time variable in the model. When the interval domain of that variable is disjoint from the time interval of the ReachSet, I think we can conclude that the set is spurious and drop it. I do not know if this happens here, though.

schillic commented 5 years ago

The following settings give a good start (very slow, but the plot looks good). However, after the second transition, things explode (probably due to the deactivated clustering).

    opC = BFFPSV18(:δ => 0.0001, :partition => [1:5, 6:6], :lazy_inputs_interval => -1)
    opD = LazyDiscretePost(:lazy_R⋂I => true, :lazy_R⋂G => false)
    options[:max_jumps] = 2
    options[:clustering] = :none_oa
    options[:mode] = "reach"
    options[:plot_vars] = [3, 4]
    options[:project_reachset] = true

gearbox

When using opD = ConcreteDiscretePost(), the results get even better (and the analysis is only slightly slower):

gearbox_concrete

My conclusion is that we need a better clustering algorithm and more precise overapproximation in the discrete part (or use polyhedra) for this model.

We can run the ConcreteDiscretePost for three jumps in a couple of minutes (I used :δ => 0.0002 here) (after fixing some problems with overapproximations of sets becoming empty sets):

gearbox_concrete_3_jumps