Browse Source
Added proper source grouping for properties directory. Fixed one performance tests. Started on SCC-based reachability model checker.
Added proper source grouping for properties directory. Fixed one performance tests. Started on SCC-based reachability model checker.
Former-commit-id: e48c163783
tempestpy_adaptions
dehnert
10 years ago
6 changed files with 127 additions and 47 deletions
-
20CMakeLists.txt
-
7examples/dtmc/die/die.pm
-
30src/modelchecker/reachability/SparseSccModelChecker.cpp
-
36src/modelchecker/reachability/SparseSccModelChecker.h
-
77src/storm.cpp
-
4test/performance/storage/StronglyConnectedComponentDecompositionTest.cpp
@ -0,0 +1,30 @@ |
|||||
|
#include "src/modelchecker/reachability/SparseSccModelChecker.h"
|
||||
|
|
||||
|
namespace storm { |
||||
|
namespace modelchecker { |
||||
|
namespace reachability { |
||||
|
|
||||
|
template<typename ValueType> |
||||
|
ValueType SparseSccModelChecker<ValueType>::computeReachabilityProbability(storm::models::Dtmc<ValueType> const& dtmc, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates) { |
||||
|
|
||||
|
|
||||
|
|
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
template<typename ValueType> |
||||
|
typename SparseSccModelChecker<ValueType>::FlexibleSparseMatrix SparseSccModelChecker<ValueType>::getFlexibleSparseMatrix(storm::storage::SparseMatrix<ValueType> const& matrix) { |
||||
|
FlexibleSparseMatrix flexibleMatrix(matrix.getRowCount()); |
||||
|
|
||||
|
for (SparseSccModelChecker<ValueType>::FlexibleMatrix::index_type row = 0; row < matrix.getRowCount(); ++row) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
return flexibleMatrix; |
||||
|
} |
||||
|
|
||||
|
template class SparseSccModelChecker<double>; |
||||
|
|
||||
|
} // namespace reachability
|
||||
|
} // namespace modelchecker
|
||||
|
} // namespace storm
|
@ -0,0 +1,36 @@ |
|||||
|
#include "src/models/Dtmc.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
namespace modelchecker { |
||||
|
namespace reachability { |
||||
|
|
||||
|
template<typename ValueType> |
||||
|
class SparseSccModelChecker { |
||||
|
private: |
||||
|
class FlexibleSparseMatrix { |
||||
|
public: |
||||
|
typedef uint_fast64_t index_type; |
||||
|
typedef ValueType value_type; |
||||
|
typedef std::vector<storm::storage::MatrixEntry<index_type, value_type>> row_type; |
||||
|
|
||||
|
FlexibleSparseMatrix(index_type rows); |
||||
|
|
||||
|
void reserveInRow(index_type row, index_type numberOfElements); |
||||
|
|
||||
|
row_type& getRow(index_type); |
||||
|
|
||||
|
private: |
||||
|
std::vector<row_type> data; |
||||
|
}; |
||||
|
|
||||
|
public: |
||||
|
static ValueType computeReachabilityProbability(storm::models::Dtmc<ValueType> const& dtmc, storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates); |
||||
|
|
||||
|
private: |
||||
|
void treatScc(storm::storage::SparseMatrix<ValueType>& matrix, storm::storage::BitVector const& scc, uint_fast64_t level) const; |
||||
|
|
||||
|
FlexibleSparseMatrix getFlexibleSparseMatrix(storm::storage::SparseMatrix<ValueType> const& matrix); |
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue