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
			
			
				main
			
			
		
				 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