irafhy
Interval arithmetic based Reachability Analysis Framework for Hybrid Automaton
irafhy::CSPSolver Class Reference

#include <CSPSolver.h>

Collaboration diagram for irafhy::CSPSolver:
Collaboration graph

Static Public Member Functions

static std::vector< IntervalHullexactBoundarySolve (const IntervalHull &intervalHull, double epsilon)
 get the boundary interval hulls in specified precision More...
 
static std::vector< IntervalHullbranchPruneSolve (const IntervalHull &intervalHull, double epsilon)
 get the boundary interval hulls of the given interval hull in specified precision using branch and prune method More...
 
static std::vector< IntervalHullbranchPruneSolve (const Constraints &constraints, double epsilon)
 get the boundary interval hulls of the domain which defined by the given constraints in specified precision using branch and prune method More...
 
static std::vector< IntervalHullbranchPruneSolve (const Polytope &polytope, double epsilon)
 get the boundary interval hulls of the domain which defined by the given constraints in specified precision using branch and prune method More...
 

Static Private Member Functions

static Eigen::MatrixXd extremeVerticesEnumeration (const Eigen::MatrixXd &A, const Eigen::VectorXd &b)
 enumerate the extreme vertices of the convex hull which defined by the given linear system Ax<=b More...
 

Member Function Documentation

◆ branchPruneSolve() [1/3]

std::vector< IntervalHull > irafhy::CSPSolver::branchPruneSolve ( const IntervalHull intervalHull,
double  epsilon 
)
static

get the boundary interval hulls of the given interval hull in specified precision using branch and prune method

Parameters
intervalHullgiven interval hull
epsilonspecified precision
Returns
resulting boundary precision

References irafhy::IntervalHull::constraints(), and irafhy::IntervalHull::dimension().

Here is the call graph for this function:

◆ branchPruneSolve() [2/3]

std::vector< IntervalHull > irafhy::CSPSolver::branchPruneSolve ( const Constraints constraints,
double  epsilon 
)
static

get the boundary interval hulls of the domain which defined by the given constraints in specified precision using branch and prune method

Parameters
constraintsconstraints which define the target domain
epsilonspecified precision
Returns
resulting boundary interval hulls

References irafhy::Constraints::dimension(), extremeVerticesEnumeration(), irafhy::LESS_THAN_OR_EQUAL_TO, and irafhy::Constraints::size().

Here is the call graph for this function:

◆ branchPruneSolve() [3/3]

std::vector< IntervalHull > irafhy::CSPSolver::branchPruneSolve ( const Polytope polytope,
double  epsilon 
)
static

get the boundary interval hulls of the domain which defined by the given constraints in specified precision using branch and prune method

Parameters
polytopeconvex polytope which define the target domain
epsilonspecified precision
Returns
resulting boundary interval hulls

References irafhy::Polytope::constraints(), irafhy::Polytope::dimension(), irafhy::Polytope::empty(), and irafhy::Polytope::halfSpaceConstraints().

Here is the call graph for this function:

◆ exactBoundarySolve()

std::vector< IntervalHull > irafhy::CSPSolver::exactBoundarySolve ( const IntervalHull intervalHull,
double  epsilon 
)
static

get the boundary interval hulls in specified precision

Parameters
intervalHullquery interval hull
epsilonspecified precision
Returns
resulting boundary interval hulls

References irafhy::IntervalHull::constraints(), irafhy::IntervalHull::dimension(), and matplotlibcpp::fill().

Here is the call graph for this function:

◆ extremeVerticesEnumeration()

Eigen::MatrixXd irafhy::CSPSolver::extremeVerticesEnumeration ( const Eigen::MatrixXd &  A,
const Eigen::VectorXd &  b 
)
staticprivate

enumerate the extreme vertices of the convex hull which defined by the given linear system Ax<=b

Parameters
Acoefficient matrix of the given linear system
boffset vector of the given linear system
Returns
extreme vertices of the given convex hull

References matplotlibcpp::fill().

Referenced by branchPruneSolve().

Here is the call graph for this function:

The documentation for this class was generated from the following files: