Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
stateelimination.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
5
6#include <boost/optional.hpp>
7
9
11
13
14namespace storm {
15namespace solver {
16namespace stateelimination {
17class StatePriorityQueue;
18}
19} // namespace solver
20
21namespace storage {
22class BitVector;
23
24template<typename ValueType>
25class FlexibleSparseMatrix;
26
27template<typename ValueType>
28class SparseMatrix;
29} // namespace storage
30
31namespace utility {
32namespace stateelimination {
33
35
41
42template<typename ValueType>
43uint_fast64_t estimateComplexity(ValueType const& value);
44
45#ifdef STORM_HAVE_CARL
46template<>
47uint_fast64_t estimateComplexity(storm::RationalFunction const& value);
48#endif
49
50template<typename ValueType>
52 storm::storage::FlexibleSparseMatrix<ValueType> const& backwardTransitions,
53 std::vector<ValueType> const& oneStepProbabilities);
54
55template<typename ValueType>
58 storm::storage::FlexibleSparseMatrix<ValueType> const& backwardTransitions,
59 std::vector<ValueType> const& oneStepProbabilities);
60
61template<typename ValueType>
62std::shared_ptr<StatePriorityQueue> createStatePriorityQueue(boost::optional<std::vector<uint_fast64_t>> const& stateDistances,
64 storm::storage::FlexibleSparseMatrix<ValueType> const& backwardTransitions,
65 std::vector<ValueType> const& oneStepProbabilities, storm::storage::BitVector const& states);
66
67std::shared_ptr<StatePriorityQueue> createStatePriorityQueue(storm::storage::BitVector const& states);
68std::shared_ptr<StatePriorityQueue> createStatePriorityQueue(std::vector<storm::storage::sparse::state_type> const& states);
69
70template<typename ValueType>
71std::vector<uint_fast64_t> getDistanceBasedPriorities(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
72 storm::storage::SparseMatrix<ValueType> const& transitionMatrixTransposed,
73 storm::storage::BitVector const& initialStates, std::vector<ValueType> const& oneStepProbabilities,
74 bool forward, bool reverse);
75
76template<typename ValueType>
77std::vector<uint_fast64_t> getStateDistances(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
78 storm::storage::SparseMatrix<ValueType> const& transitionMatrixTransposed,
79 storm::storage::BitVector const& initialStates, std::vector<ValueType> const& oneStepProbabilities, bool forward);
80
81} // namespace stateelimination
82} // namespace utility
83} // namespace storm
EliminationOrder
An enum that contains all available state elimination orders.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
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)
LabParser.cpp.
Definition cli.cpp:18