mCRL2
|
#include <liblts_pbisim_grv.h>
Classes | |
struct | action_block_type |
struct | action_constellation_type |
struct | action_mark_type |
struct | action_state_type |
struct | action_transition_type |
struct | probabilistic_block_type |
struct | probabilistic_constellation_type |
struct | probabilistic_mark_type |
struct | probabilistic_state_type |
struct | probabilistic_transition_type |
class | transitions_per_label_t |
Public Member Functions | |
prob_bisim_partitioner_grv (LTS_TYPE &l, utilities::execution_timer &timer) | |
Creates a probabilistic bisimulation partitioner for an PLTS. | |
std::size_t | num_eq_classes () const |
Gives the number of bisimulation equivalence classes of the LTS. | |
std::size_t | get_eq_class (const std::size_t s) |
Gives the bisimulation equivalence class number of a state. | |
std::size_t | get_eq_probabilistic_class (const std::size_t s) |
Gives the bisimulation equivalence probabilistic class number of a probabilistic state. | |
void | replace_transitions () |
Replaces the transition relation of the current lts by the transitions of the bisimulation reduced transition system. | |
void | replace_probabilistic_states () |
Replaces the probabilistic states of the current lts by the probabilistic states of the bisimulation reduced transition system. | |
bool | in_same_probabilistic_class_grv (const std::size_t s, const std::size_t t) |
Returns whether two states are in the same probabilistic bisimulation equivalence class. | |
Protected Types | |
typedef std::size_t | block_key_type |
typedef std::size_t | constellation_key_type |
typedef std::size_t | transition_key_type |
typedef std::size_t | state_key_type |
typedef std::size_t | label_type |
typedef LTS_TYPE::probabilistic_state_t::probability_t | probability_label_type |
typedef LTS_TYPE::probabilistic_state_t::probability_t | probability_fraction_type |
Protected Member Functions | |
bool | check_data_structure () |
void | print_structure (const std::string &info) |
void | create_initial_partition (void) |
void | preprocessing_stage () |
void | refine_initial_action_block (const std::vector< embedded_list< action_transition_type > > &transitions_per_label) |
template<typename LIST_ELEMENT > | |
void | move_list_element_back (LIST_ELEMENT &s, embedded_list< LIST_ELEMENT > &source_list, embedded_list< LIST_ELEMENT > &dest_list) |
template<typename LIST_ELEMENT > | |
void | move_list_element_front (LIST_ELEMENT &s, embedded_list< LIST_ELEMENT > &source_list, embedded_list< LIST_ELEMENT > &dest_list) |
Move an element of a list to the front of another the list. | |
void | refine_partition_until_it_becomes_stable (void) |
Refine partition until it becomes stable. | |
void | split_probabilistic_block (probabilistic_block_type &block_to_split, embedded_list< probabilistic_state_type > &states_of_new_block) |
Split a probabilistic block. | |
void | split_action_block (action_block_type &block_to_split, embedded_list< action_state_type > &states_of_new_block) |
Split an action block. | |
void | mark_probabilistic (const action_block_type &Bc, std::deque< probabilistic_mark_type > &marked_probabilistic_blocks) |
Gives the probabilistic blocks that are marked by block Bc. | |
void | mark_action (std::deque< action_mark_type > &marked_action_blocks, const label_type &a, typename embedded_list< action_transition_type >::iterator &action_walker_begin, const typename embedded_list< action_transition_type >::iterator action_walker_end) |
Gives the action blocks that are marked by probabilistic block Bc. | |
action_block_type * | choose_action_splitter (action_constellation_type *non_trivial_action_const) |
Choose an splitter block from a non trivial constellation. | |
probabilistic_block_type * | choose_probabilistic_splitter (probabilistic_constellation_type *non_trivial_probabilistic_const) |
Choose an splitter block from a non trivial constellation. | |
LTS_TYPE::probabilistic_state_t | calculate_new_probabilistic_state (typename LTS_TYPE::probabilistic_state_t ps) |
LTS_TYPE::probabilistic_state_t | calculate_equivalent_probabilistic_state (probabilistic_block_type &pb) |
Definition at line 25 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 142 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 143 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 146 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 150 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 148 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 145 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 144 of file liblts_pbisim_grv.h.
|
inline |
Creates a probabilistic bisimulation partitioner for an PLTS.
This bisimulation partitioner applies the algorithm described in "J.F. Groote, H.J. Rivera, E.P. de Vink, An O(mlogn) algorithm for probabilistic bisimulation".
Definition at line 32 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 1305 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 1258 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 351 of file liblts_pbisim_grv.h.
|
inlineprotected |
Choose an splitter block from a non trivial constellation.
The number of states in the chosen splitter is always less than the half of the non trivial constellation. Furtheremore, the selected splitter is moved to a new constellation.
Definition at line 1180 of file liblts_pbisim_grv.h.
|
inlineprotected |
Choose an splitter block from a non trivial constellation.
The number of states in the chosen splitter is always less than the half of the non trivial constellation. Furtheremore, the selected splitter is moved to a new constellation.
Definition at line 1223 of file liblts_pbisim_grv.h.
|
inlineprotected |
Creates the initial partition.
The blocks are initially partitioned based on the actions that can perform.
Definition at line 448 of file liblts_pbisim_grv.h.
|
inline |
Gives the bisimulation equivalence class number of a state.
[in] | A | state number. |
Definition at line 55 of file liblts_pbisim_grv.h.
|
inline |
Gives the bisimulation equivalence probabilistic class number of a probabilistic state.
[in] | A | probabilistic state number. |
Definition at line 64 of file liblts_pbisim_grv.h.
|
inline |
Returns whether two states are in the same probabilistic bisimulation equivalence class.
[in] | s | A state number. |
[in] | t | A state number. |
true | if s and t are in the same bisimulation equivalence class; |
false | otherwise. |
Definition at line 132 of file liblts_pbisim_grv.h.
|
inlineprotected |
Gives the action blocks that are marked by probabilistic block Bc.
Derives the left, middle and rigth sets of the marked action blocks, based on the incoming action transitions labeled with "a" in block Bc.
Definition at line 1065 of file liblts_pbisim_grv.h.
|
inlineprotected |
Gives the probabilistic blocks that are marked by block Bc.
Derives the left, middle and rigth sets of the marked probabilistic blocks, based on the incoming probabilistic transitions in block Bc.
Definition at line 935 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 697 of file liblts_pbisim_grv.h.
|
inlineprotected |
Move an element of a list to the front of another the list.
Definition at line 707 of file liblts_pbisim_grv.h.
|
inline |
Gives the number of bisimulation equivalence classes of the LTS.
Definition at line 47 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 567 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 414 of file liblts_pbisim_grv.h.
|
inlineprotected |
Definition at line 626 of file liblts_pbisim_grv.h.
|
inlineprotected |
Refine partition until it becomes stable.
Definition at line 716 of file liblts_pbisim_grv.h.
|
inline |
Replaces the probabilistic states of the current lts by the probabilistic states of the bisimulation reduced transition system.
Definition at line 99 of file liblts_pbisim_grv.h.
|
inline |
Replaces the transition relation of the current lts by the transitions of the bisimulation reduced transition system.
Definition at line 73 of file liblts_pbisim_grv.h.
|
inlineprotected |
Split an action block.
Creates another block containing the states specified in states_of_new_block. It adds the new block to the same constellation as the current block to split.
Definition at line 898 of file liblts_pbisim_grv.h.
|
inlineprotected |
Split a probabilistic block.
Creates another block containing the states specified in states_of_new_block. It adds the new block to the same constellation as the current block to split.
Definition at line 863 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 326 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 328 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 324 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 322 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 349 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 342 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 340 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 341 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 336 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 337 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 327 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 329 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 325 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 323 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 333 of file liblts_pbisim_grv.h.
|
protected |
Definition at line 346 of file liblts_pbisim_grv.h.