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

Implementation of NNV #186

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Implementation of NNV #186

wants to merge 3 commits into from

Conversation

castrong
Copy link
Collaborator

Initial implementation of NNV. It depends on this PR in LazySets so this shouldn't be merged until that PR is closed.

@@ -161,3 +218,36 @@ end

# Define overapproximate for SymbolicIntervalMasks and SymbolicIntervalGradients
LazySets.overapproximate(set::_SymIntOrGrad, ::Type{Hyperrectangle}) = Hyperrectangle(low=low(set), high=high(set))
function temp_overapprox(set::Star; optimizer=GLPK.Optimizer)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

temp_overapprox and issubset will be removed once the LazySets Star set PR finishes.

@castrong
Copy link
Collaborator Author

I'm hoping for some feedback on whether to more thoroughly integrate ExactReach and NNV. I could have the same forward_act functions for both (maybe living in reachability.jl), but in this case a reader who looks at NNV.jl or ExactReach.jl wouldn't get much of a sense of what the algorithm is doing under the surface. This tradeoff might be worth it to highlight their commonalities (both just repeatedly call forward_partition to go through a ReLU layer).

I could also potentially unify the forward_partition function to be common to both. However, we would need to decide whether the trimming used to avoid splitting on some ReLUs for NNV should be applied to ExactReach as well.

@mforets
Copy link
Contributor

mforets commented May 11, 2021

this PR in LazySets so this shouldn't be merged until that PR is closed.

FYI that issue is now closed and there is a Star type in LazySets. If you have further concerns I'd be happy to discuss here (or on the Zulip #reachability-analysis channel)

OTOH in JuliaReach/LazySets.jl#2669 i'm exploring a generalization in which the predicate is a lazy intersection (say, of a polyhedron and a zonotope). That way, you can propagate such lazy intersection while storing intermediate constraints in the polyhedral part, and avoiding the (expensive) conversion of a zonotope to its hrep.

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

Successfully merging this pull request may close these issues.

2 participants