3#include <boost/optional.hpp>
13namespace stateelimination {
14class StatePriorityQueue;
21template<
typename ValueType>
22class FlexibleSparseMatrix;
24template<
typename ValueType>
29namespace stateelimination {
39template<
typename ValueType>
45template<
typename ValueType>
48 std::vector<ValueType>
const& oneStepProbabilities);
50template<
typename ValueType>
54 std::vector<ValueType>
const& oneStepProbabilities);
56template<
typename ValueType>
57std::shared_ptr<StatePriorityQueue>
createStatePriorityQueue(boost::optional<std::vector<uint_fast64_t>>
const& stateDistances,
63std::shared_ptr<StatePriorityQueue>
createStatePriorityQueue(std::vector<storm::storage::sparse::state_type>
const& states);
65template<
typename ValueType>
69 bool forward,
bool reverse);
71template<
typename ValueType>
EliminationOrder
An enum that contains all available state elimination orders.
A bit vector that is internally represented as a vector of 64-bit values.
The flexible sparse matrix is used during state elimination.
A class that holds a possibly non-square matrix in the compressed row storage format.
storage::BitVector BitVector
std::shared_ptr< StatePriorityQueue > createStatePriorityQueue(boost::optional< std::vector< uint_fast64_t > > const &distanceBasedStatePriorities, storm::storage::FlexibleSparseMatrix< ValueType > const &transitionMatrix, storm::storage::FlexibleSparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &oneStepProbabilities, storm::storage::BitVector const &states)
uint_fast64_t computeStatePenalty(storm::storage::sparse::state_type const &state, storm::storage::FlexibleSparseMatrix< ValueType > const &transitionMatrix, storm::storage::FlexibleSparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &oneStepProbabilities)
std::vector< uint_fast64_t > getStateDistances(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &transitionMatrixTransposed, storm::storage::BitVector const &initialStates, std::vector< ValueType > const &oneStepProbabilities, bool forward)
bool eliminationOrderIsStatic(storm::settings::modules::EliminationSettings::EliminationOrder const &order)
bool eliminationOrderNeedsForwardDistances(storm::settings::modules::EliminationSettings::EliminationOrder const &order)
uint_fast64_t computeStatePenaltyRegularExpression(storm::storage::sparse::state_type const &state, storm::storage::FlexibleSparseMatrix< ValueType > const &transitionMatrix, storm::storage::FlexibleSparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &)
uint_fast64_t estimateComplexity(ValueType const &)
bool eliminationOrderNeedsDistances(storm::settings::modules::EliminationSettings::EliminationOrder const &order)
std::vector< uint_fast64_t > getDistanceBasedPriorities(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &transitionMatrixTransposed, storm::storage::BitVector const &initialStates, std::vector< ValueType > const &oneStepProbabilities, bool forward, bool reverse)
bool eliminationOrderNeedsReversedDistances(storm::settings::modules::EliminationSettings::EliminationOrder const &order)
bool eliminationOrderIsPenaltyBased(storm::settings::modules::EliminationSettings::EliminationOrder const &order)