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

Generalize ConvexSet to LazySet #3047

Closed
schillic opened this issue Aug 21, 2022 · 0 comments
Closed

Generalize ConvexSet to LazySet #3047

schillic opened this issue Aug 21, 2022 · 0 comments
Assignees
Labels
meta 🔍 Meta discussion or collection of several issues non-convex

Comments

@schillic
Copy link
Member

schillic commented Aug 21, 2022

This is a fresh start of #1895 because since then there have been changes. Now that there is ConvexSet, it is easy to keep track of the places that need to be generalized. The goal is to replace ConvexSet by LazySet whenever possible and, if convexity is assumed, think about a more general implementation.

A short road map:

  • Generalize the concrete set types and interfaces. We have to keep the <: ConvexSet annotation of convex set types, at least for now for compatibility reasons (but I do not see a problem to permanently keep them). There are only three occurrences (apart from ConvexSet.jl of course), so this should be simple.
  • Check the lazy operations (moderate amount of work). We have to keep the <: ConvexSet restrictions of the arguments and structs for now for compatibility reasons (see below).
  • Define plot recipes for non-convex sets.
  • Generalize the binary operations (lots of work).

When all of the above is done:

  • Generalize the ConvexSet restrictions of lazy operations (both in the arguments and the structs).

Rough suggested order

  • Sets/Ball1.jl (#3050)
  • Sets/Ball2.jl (#3051)
  • Sets/BallInf.jl (#3063)
  • Sets/Ballp.jl (#3052)
  • Sets/Ellipsoid.jl (#3065)
  • Sets/EmptySet.jl (#3079)
  • Sets/HalfSpace.jl (#3081)
  • Sets/HParallelotope.jl (#3085)
  • Sets/Hyperplane.jl (#3090)
  • Sets/Interval.jl (#3084)
  • Sets/Line.jl (#3086)
  • Sets/Line2D.jl (#3088)
  • Sets/LineSegment.jl (#3089)
  • Sets/RotatedHyperrectangle.jl (#3091)
  • Sets/Singleton.jl (#3092)
  • Sets/Universe.jl (#3094)
  • Sets/ZeroSet.jl (#3093)
  • Sets/Hyperrectangle.jl (#3095)
  • Sets/Star.jl (#3096)
  • Sets/Zonotope.jl (#3071, #3097)
  • Sets/VPolygon.jl (#3106)
  • Sets/VPolytope.jl (#3107)
  • Sets/HPolytope.jl (#3102)
  • Sets/HPolyhedron.jl (#3162)
  • Sets/HPolygon.jl (#3164)
  • Sets/HPolygonOpt.jl (#3164)
  • Sets/DensePolynomialZonotope.jl (#3166)
  • Sets/SimpleSparsePolynomialZonotope.jl (#3167)
  • Sets/SparsePolynomialZonotope.jl (#3190)
  • Initialization (init_Polyhedra.jl & init_Javis.jl) (#3098)
  • Utils/samples.jl (#3100)
  • Utils/helper_functions.jl (#3110)
  • Utils/macros.jl (#3165, #3195)
  • Parallel (#3112)
  • Plotting/mesh.jl (#3114)
  • Plotting/paraview.jl (#3113)
  • Plotting/plot_recipes.jl (#3127, #3139)
  • Approximations/ballinf_approximation.jl (#3118)
  • Approximations/box_approximation.jl (#3072, #3118)
  • Approximations/overapproximate_interval.jl (#3075)
  • Approximations/symmetric_interval_hull.jl (#3118)
  • Approximations/approximate.jl (#3119)
  • Approximations/Approximations.jl (#3119)
  • Approximations/hausdorff_distance.jl (#3119)
  • Approximations/init_Ipopt.jl (#3119)
  • Approximations/underapproximate.jl (#3119)
  • Approximations/iterative_refinement.jl (#3121)
  • Approximations/template_directions.jl (#3122)
  • Approximations/overapproximate.jl (#3075, #3140)
  • Approximations/decompositions.jl (#3128, #3195)
  • ConcreteOperations/distance.jl (#3129)
  • ConcreteOperations/exact_sum.jl (#3130)
  • ConcreteOperations/isstrictsubset.jl (#3131)
  • ConcreteOperations/linear_combination.jl (#3132)
  • ConcreteOperations/minkowski_difference.jl (#3133)
  • ConcreteOperations/difference.jl (#3134)
  • ConcreteOperations/cartesian_product.jl (#3135)
  • ConcreteOperations/minkowski_sum.jl (#3145)
  • ConcreteOperations/intersection.jl (#3147)
  • ConcreteOperations/convex_hull.jl (#3148)
  • ConcreteOperations/issubset.jl (#3154)
  • ConcreteOperations/isdisjoint.jl (#3156)
  • convert.jl (#3159)
  • Interfaces/AbstractArraySet.jl
  • Interfaces/AbstractStar.jl (#3109)
  • Interfaces/AbstractPolynomialZonotope.jl (#3109)
  • Interfaces/aliases.jl (#3142)
  • Interfaces/AbstractSingleton.jl (#3143)
  • Interfaces/AbstractPolytope.jl (#3144)
  • Interfaces/LazySet.jl (#3149)
  • Interfaces/AbstractPolyhedron.jl (#3150)
  • Interfaces/AbstractPolygon.jl (#3151)
  • Interfaces/AbstractCentrallySymmetric.jl (#3152)
  • Interfaces/AbstractCentrallySymmetricPolytope.jl (#3153)
  • Interfaces/AbstractHyperrectangle.jl (#3157)
  • Interfaces/AbstractPolyhedron_functions.jl (#3161)
  • Interfaces/AbstractHPolygon.jl (#3164)
  • Interfaces/AbstractZonotope.jl (#3191)
  • Interfaces/AbstractAffineMap.jl (#3163, #3195..)
  • Interfaces/ConvexSet.jl (#3074, #3185)
  • LazyOperations/QuadraticMap.jl (#3099)
  • LazyOperations/Complement.jl (#3104)
  • LazyOperations/ConvexHull.jl (#3177)
  • LazyOperations/ConvexHullArray.jl (#3172)
  • LazyOperations/QuadraticMap.jl (#3182)
  • LazyOperations/Rectification.jl (#3192)
  • LazyOperations/SymmetricIntervalHull.jl (#3187)
  • LazyOperations/UnionSet.jl (#3180)
  • LazyOperations/UnionSetArray.jl (#3175)
  • LazyOperations/AffineMap.jl (#3168, #3195)
  • LazyOperations/Bloating.jl (#3103, #3195)
  • LazyOperations/CachedMinkowskiSumArray.jl (#3170, #3195)
  • LazyOperations/CartesianProduct.jl (#3176, #3195)
  • LazyOperations/CartesianProductArray.jl (#3171, #3195)
  • LazyOperations/ExponentialMap.jl (#3189, #3195)
  • LazyOperations/Intersection.jl (#3178, #3195)
  • LazyOperations/IntersectionArray.jl (#3173, #3195)
  • LazyOperations/InverseLinearMap.jl (#3181, #3195)
  • LazyOperations/LinearMap.jl (#3188, #3195)
  • LazyOperations/MinkowskiSum.jl (#3179, #3195)
  • LazyOperations/MinkowskiSumArray.jl (#3174, #3195)
  • LazyOperations/ResetMap.jl (#3183, #3195)
  • LazyOperations/Translation.jl (#3184, #3195)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta 🔍 Meta discussion or collection of several issues non-convex
Projects
None yet
Development

No branches or pull requests

1 participant