Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Follow-up work of BFFPS19 #656

Open
schillic opened this issue Jul 29, 2019 · 2 comments
Open

Follow-up work of BFFPS19 #656

schillic opened this issue Jul 29, 2019 · 2 comments

Comments

@schillic
Copy link
Member

schillic commented Jul 29, 2019

Quoting from #641:

Still to resolve:

Future work:

@kpotomkin
Copy link
Collaborator

Check why :overapproximation is ignored in clustering. - works.
To make it work we need to be sure that the following options are on:

  • partitioning option allows to have specified overapproximation. For instance, we need 2-dim block for OctDirections;
  • we need to pass block_options to continuous solver and overapproximation to discrete solver to have correct overapproximation. Maybe we should add a general option for the problem, which will pass specific overapproximation to the solvers.

@schillic
Copy link
Member Author

we need to pass overapproximation to discrete solver

Yeah, obviously 😉

we need to pass block_options to continuous solver

I do not see why. The clustering happens in the discrete-post operator. block_options should only affect the precision of the sets that are the input to the clustering. Can you try with block_options -> Hyperrectangle and overapproximation -> OctDirections and see if it is the same as for overapproximation -> Hyperrectangle? Then that would be a bug.

Here is what I expect should happen (only using LazySets):

using LazySets, Plots
using LazySets: translate

O1 = overapproximate(rand(Ball2), OctDirections)
O2 = translate(O1, [1., 1.])
H1 = overapproximate(O1, Hyperrectangle)
H2 = overapproximate(O2, Hyperrectangle)
CH1 = overapproximate(ConvexHull(H1, H2), Hyperrectangle)
CO1 = overapproximate(ConvexHull(H1, H2), OctDirections)
CH2 = overapproximate(ConvexHull(O1, O2), Hyperrectangle)
CO2 = overapproximate(ConvexHull(O1, O2), OctDirections)

plot([O1, O2, H1, H2])
plot!([CH1, CH2, CO1, CO2])

1
2

Using OctDirections for clustering produces the diagonal sets. The diagonal for two octagons is more precise than the diagonal for two boxes. On the other hand, using Hyperrectangle for clustering produces the same box irrespective of block_options.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants