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