irafhy
Interval arithmetic based Reachability Analysis Framework for Hybrid Automaton
irafhy::HybridAutomaton< Analyser, Verifier > Class Template Reference

#include <hybridautomaton.h>

Inheritance diagram for irafhy::HybridAutomaton< Analyser, Verifier >:
Inheritance graph
Collaboration diagram for irafhy::HybridAutomaton< Analyser, Verifier >:
Collaboration graph

Public Member Functions

 HybridAutomaton ()
 default constructor More...
 
 HybridAutomaton (const HybridAutomaton< Analyser, Verifier > &hybridAutomaton)=default
 copy constructor More...
 
 HybridAutomaton (HybridAutomaton< Analyser, Verifier > &&hybridAutomaton)=default
 move constructor More...
 
 HybridAutomaton (const Locations< Analyser > &locations, const Transitions< Analyser > &transitions)
 constructor with given locations and transitions More...
 
 ~HybridAutomaton ()=default
 destructor More...
 
void setID (const std::string &id)
 set the identifier of the hybrid automaton More...
 
void setVariables (const std::vector< std::string > &variables)
 set the variables of the hybrid automaton More...
 
void setLocations (const Locations< Analyser > &locations)
 set the modes of the hybrid automation with given locations More...
 
void setTransitions (const Transitions< Analyser > &transitions)
 set the jumps of the hybrid automaton with given transitions More...
 
std::string id () const
 get the identifier of the hybrid automaton More...
 
std::vector< std::string > variables () const
 get the variables of the hybrid automaton More...
 
Locations< Analyserlocations () const
 get the locations of the hybrid automaton More...
 
Transitions< Analysertransitions () const
 get the transitions of the hybrid automaton More...
 
std::vector< capd::interval > timeSequence () const
 get the time sequence of the simulation More...
 
std::vector< ConditionreachableConditions () const
 get the reachable conditions of the simulation More...
 
Time curDuration () const
 get the current duration of the simulation More...
 
Model< Analyser > * curModelPtr () const
 get the pointer to the current mode More...
 
void initialize ()
 initialize the hybrid automaton More...
 
void simulate (const Settings &settings)
 simulation with given settings More...
 
- Public Member Functions inherited from irafhy::Verifier
virtual ~Verifier ()=default
 destructor More...
 
virtual bool verify (const Settings &settings, const void *hybridAutomaton) const =0
 check if the simulation should be terminated or not More...
 

Private Member Functions

const Model< Analyser > * startModelPtr (const Settings &settings) const
 
void constructTransitions ()
 construct the jumps among modes More...
 
Condition durationSimulate (const Time &duration, const Settings &settings, State< Analyser > &curWork, long int &doneJumps)
 simulation with given duration More...
 
bool verify (const Settings &settings) const
 check if the simulation should be terminated More...
 

Private Attributes

std::string id_
 identifier of the hybrid automation More...
 
std::vector< std::string > variables_
 variable of the system More...
 
Transitions< Analysertransitions_
 transitions which specify the jumps among modes More...
 
Locations< Analyserlocations_
 set of discrete states which are also called modes More...
 
std::vector< capd::interval > timeSequence_
 time sequence during the computation More...
 
std::vector< ConditionreachableConditions_
 resulting reachable conditions More...
 
Time curDuration_
 current duration which specify the time interval of one iteration More...
 
Model< Analyser > * curModelPtr_ = nullptr
 pointer to the current mode More...
 

Constructor & Destructor Documentation

◆ HybridAutomaton() [1/4]

template<typename Analyser, typename Verifier>
irafhy::HybridAutomaton< Analyser, Verifier >::HybridAutomaton ( )

default constructor

◆ HybridAutomaton() [2/4]

template<typename Analyser, typename Verifier>
irafhy::HybridAutomaton< Analyser, Verifier >::HybridAutomaton ( const HybridAutomaton< Analyser, Verifier > &  hybridAutomaton)
default

copy constructor

Parameters
hybridAutomatongiven hybrid automaton

◆ HybridAutomaton() [3/4]

template<typename Analyser, typename Verifier>
irafhy::HybridAutomaton< Analyser, Verifier >::HybridAutomaton ( HybridAutomaton< Analyser, Verifier > &&  hybridAutomaton)
default

move constructor

Parameters
hybridAutomatongiven hybrid automaton

◆ HybridAutomaton() [4/4]

template<typename Analyser, typename Verifier>
irafhy::HybridAutomaton< Analyser, Verifier >::HybridAutomaton ( const Locations< Analyser > &  locations,
const Transitions< Analyser > &  transitions 
)

constructor with given locations and transitions

Parameters
locationsgiven locations which define the inside modes
transitionsgiven transitions which define the jumps among modes

◆ ~HybridAutomaton()

template<typename Analyser, typename Verifier>
irafhy::HybridAutomaton< Analyser, Verifier >::~HybridAutomaton ( )
default

destructor

Member Function Documentation

◆ constructTransitions()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::constructTransitions ( )
private

construct the jumps among modes

◆ curDuration()

template<typename Analyser, typename Verifier>
Time irafhy::HybridAutomaton< Analyser, Verifier >::curDuration ( ) const

get the current duration of the simulation

Returns

◆ curModelPtr()

template<typename Analyser, typename Verifier>
Model<Analyser>* irafhy::HybridAutomaton< Analyser, Verifier >::curModelPtr ( ) const

get the pointer to the current mode

Returns

◆ durationSimulate()

template<typename Analyser, typename Verifier>
Condition irafhy::HybridAutomaton< Analyser, Verifier >::durationSimulate ( const Time duration,
const Settings settings,
State< Analyser > &  curWork,
long int &  doneJumps 
)
private

simulation with given duration

Parameters
durationgiven time interval
settingssetting of the hybrid automaton
curWorkcurrent work which specify the current mode and related initial condition
doneJumpsjumps already done, used to check if it is time to terminate current duration simulation
Returns
reachable condition of the given duration

◆ id()

template<typename Analyser, typename Verifier>
std::string irafhy::HybridAutomaton< Analyser, Verifier >::id ( ) const

get the identifier of the hybrid automaton

Returns
the identifier of the hybrid automaton

◆ initialize()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::initialize ( )

initialize the hybrid automaton

◆ locations()

template<typename Analyser, typename Verifier>
Locations<Analyser> irafhy::HybridAutomaton< Analyser, Verifier >::locations ( ) const

get the locations of the hybrid automaton

Returns
the locations of the hybrid automaton

◆ reachableConditions()

template<typename Analyser, typename Verifier>
std::vector<Condition> irafhy::HybridAutomaton< Analyser, Verifier >::reachableConditions ( ) const

get the reachable conditions of the simulation

Returns
the resulting reachable conditions

◆ setID()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::setID ( const std::string &  id)

set the identifier of the hybrid automaton

Parameters
id

◆ setLocations()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::setLocations ( const Locations< Analyser > &  locations)

set the modes of the hybrid automation with given locations

Parameters
locationsgiven locations

◆ setTransitions()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::setTransitions ( const Transitions< Analyser > &  transitions)

set the jumps of the hybrid automaton with given transitions

Parameters
transitionsgiven transitions

◆ setVariables()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::setVariables ( const std::vector< std::string > &  variables)

set the variables of the hybrid automaton

Parameters
variablesvariables used during the simulation

◆ simulate()

template<typename Analyser, typename Verifier>
void irafhy::HybridAutomaton< Analyser, Verifier >::simulate ( const Settings settings)

simulation with given settings

Parameters
settingsgiven settings which modified by the user

◆ startModelPtr()

template<typename Analyser, typename Verifier>
const Model<Analyser>* irafhy::HybridAutomaton< Analyser, Verifier >::startModelPtr ( const Settings settings) const
private

get the pointer of the start mode

◆ timeSequence()

template<typename Analyser, typename Verifier>
std::vector<capd::interval> irafhy::HybridAutomaton< Analyser, Verifier >::timeSequence ( ) const

get the time sequence of the simulation

Returns
the resulting time sequence

◆ transitions()

template<typename Analyser, typename Verifier>
Transitions<Analyser> irafhy::HybridAutomaton< Analyser, Verifier >::transitions ( ) const

get the transitions of the hybrid automaton

Returns
the transitions of the hybrid automaton

◆ variables()

template<typename Analyser, typename Verifier>
std::vector<std::string> irafhy::HybridAutomaton< Analyser, Verifier >::variables ( ) const

get the variables of the hybrid automaton

Returns
the variable of the hybrid automaton

◆ verify()

template<typename Analyser, typename Verifier>
bool irafhy::HybridAutomaton< Analyser, Verifier >::verify ( const Settings settings) const
private

check if the simulation should be terminated

Parameters
settingssetting of the hybrid automaton
Returns
TRUE if the simulation can be go on, FALSE otherwise

Member Data Documentation

◆ curDuration_

template<typename Analyser, typename Verifier>
Time irafhy::HybridAutomaton< Analyser, Verifier >::curDuration_
private

current duration which specify the time interval of one iteration

◆ curModelPtr_

template<typename Analyser, typename Verifier>
Model<Analyser>* irafhy::HybridAutomaton< Analyser, Verifier >::curModelPtr_ = nullptr
mutableprivate

pointer to the current mode

◆ id_

template<typename Analyser, typename Verifier>
std::string irafhy::HybridAutomaton< Analyser, Verifier >::id_
private

identifier of the hybrid automation

◆ locations_

template<typename Analyser, typename Verifier>
Locations<Analyser> irafhy::HybridAutomaton< Analyser, Verifier >::locations_
private

set of discrete states which are also called modes

◆ reachableConditions_

template<typename Analyser, typename Verifier>
std::vector<Condition> irafhy::HybridAutomaton< Analyser, Verifier >::reachableConditions_
private

resulting reachable conditions

◆ timeSequence_

template<typename Analyser, typename Verifier>
std::vector<capd::interval> irafhy::HybridAutomaton< Analyser, Verifier >::timeSequence_
private

time sequence during the computation

◆ transitions_

template<typename Analyser, typename Verifier>
Transitions<Analyser> irafhy::HybridAutomaton< Analyser, Verifier >::transitions_
private

transitions which specify the jumps among modes

◆ variables_

template<typename Analyser, typename Verifier>
std::vector<std::string> irafhy::HybridAutomaton< Analyser, Verifier >::variables_
private

variable of the system


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