dehnert
70fc3ec29a
Further work on abstraction layer for DDs.
Former-commit-id: 245986076b
12 years ago
dehnert
de44a1562c
Started writing the DD abstraction layer.
Former-commit-id: 8720a38b17
12 years ago
PBerger
63933637ac
Fixed a bug in the SparseMatrix.cpp. When using TBB the typename is not permitted.
Former-commit-id: e191c14e1d
12 years ago
dehnert
12743e0a7e
Moved from additional row grouping to the one embedded in the matrix itself.
Former-commit-id: 9d7a1fff10
12 years ago
dehnert
584a79f974
Added proper creation of row grouping to nondeterministic model parser and the explicit model adapter.
Former-commit-id: 723ddb2e1d
12 years ago
dehnert
d70bb836bb
Tests are now working again with the row-grouped matrix.
Former-commit-id: b58e76b5bb
12 years ago
dehnert
38833e308f
Started to add row-grouping to sparse matrix class.
Former-commit-id: 39e3703095
12 years ago
dehnert
42708a6d21
Added utility header for all parts that use std::swap.
Former-commit-id: 55a2f56440
12 years ago
dehnert
ee0026e0e6
Fixed minor bug in Markov automata time-bounded reachability.
Former-commit-id: 6454223cd3
12 years ago
dehnert
efb244a447
Added functional tests for scheduler classes.
Former-commit-id: d7f7da5ab0
12 years ago
dehnert
f79329bd9d
Fixed SCC decomposition. Added functional tests for SCC decomposition.
Former-commit-id: 25a7805fcb
12 years ago
dehnert
e80bb0caa5
Added functional tests for MEC decomposition.
Former-commit-id: 66b1265ebb
12 years ago
dehnert
f32853b6aa
Beautified remaining storage classes a bit.
Former-commit-id: 93f272727f
12 years ago
dehnert
35d16a1191
Replaced VectorSet bei boost::container::flat_set, which does essentially the same. Fixed a bug in sparse matrix creation.
Former-commit-id: cb632bcfd4
12 years ago
dehnert
f684ce7799
Removed obsolete constructors of sparse matrix class as the new matrix builder is supposed to be used anyway. Fixed some minor issues.
Former-commit-id: ee8a7cc440
12 years ago
dehnert
72531bcebb
Added proper TBB multi-threading to all operation relevant to model checking MDPs.
Former-commit-id: dcb4bde1d3
12 years ago
dehnert
cdc369b96a
Temporarily removed the detection of the repository version of TBB from CMakeLists.txt. Corrected TBB sparse matrix-vector multiplication. Added TBB parallel vector addition.
Former-commit-id: f90ae764c8
12 years ago
dehnert
81cf0e2b22
Added SparseMatrixBuilder class that actually builds the matrices. A call to build() will then generate the matrix. This eliminates superfluous checks in the matrix that slowed down performance.
Former-commit-id: af5d946fb8
12 years ago
dehnert
cf2b84b281
Further work on iterators for sparse matrix.
Former-commit-id: 8e78262161
12 years ago
dehnert
ab5b5be1ac
First step towards pair-based column and value storage in sparse matrix.
Former-commit-id: c0ad97be8f
12 years ago
David_Korzeniewski
91125c3c6d
Fixed build errors on Windows
Former-commit-id: 6ddc16cd5a
12 years ago
dehnert
e08b61b9f7
Added functional and performance tests for sparse matrix.
Former-commit-id: dd9abe1826
12 years ago
dehnert
97fb2f9750
All tests working with (partially) new sparse matrix implementation/interface.
Former-commit-id: 0272dd3524
12 years ago
dehnert
a271e5ce63
Working towards making every (remaining) test work
Former-commit-id: e4560e07f2
12 years ago
dehnert
a26f63be30
Finished reworking the sparse matrix implementation. Adapted all other classes to the (partially) new API of the matrix.
Former-commit-id: 2c3b5a5bc3
12 years ago
dehnert
ef041982b5
Further work on sparse matrix implementation.
Former-commit-id: df4eb9c476
12 years ago
dehnert
4376708a46
Further maintenance work on sparse matrix implementation.
Former-commit-id: 56885d90bf
12 years ago
dehnert
8a47d03cf7
Started to rework the interface of the sparse matrix class.
Former-commit-id: 6ae2699da6
12 years ago
dehnert
84bd5f3b40
Renamed ConstTemplates to constants. Removed all calls to constGetZero, constGetOne and constGetInfinity by the new names. Created performance test for bit vector iteration.
Former-commit-id: 6d90ec961e
12 years ago
dehnert
d5cadc0f4b
Finalized interface of bit vector. Added unit tests for all methods of the bit vector.
Former-commit-id: 6c7834ed20
12 years ago
dehnert
30322ec57d
Now officially made the iterator over bit vectors an input iterator so that it can be used for constructing STL containers and other containers.
Former-commit-id: 1bcd8c43b3
12 years ago
dehnert
07fbff7a07
Started refactoring bit vector class.
Former-commit-id: a2fecfce2b
12 years ago
dehnert
344e1b6dd3
Enabled checking of some untimed properties on Markov automata.
Former-commit-id: e71aa66c62
12 years ago
dehnert
18711c01a3
First working version of time-bounded reachability for Markov automata.
Former-commit-id: 6501cbfca4
12 years ago
dehnert
dce43d78e7
Started implementation of time-bounded reachability of Markov automata.
Former-commit-id: 512bb117a6
12 years ago
masawei
175e852956
Resolved problems resulting from merge.
- gcc 4.8 (and assorted libraries) does not provide an erase(const_iterator) method for std::list but only an erase(iterator).
This is in compliance with the c++11 draft N3337, which specifies the change from iterator to const_iterator only for "set, multiset, map [and] multimap" but not list.
Therefore the constant list iterators were replaced by non constant iterators in MaximalEndComponentDecomposition and Vector set.
The locations are marked with a FIXME, such that the const_iterator can be replaced back when gcc provides it.
- Fixed (completed) the stub implementation for the GurobiLpSolver in case that Gurobi is not present.
|-> Would not compile before due to missing functions and incorrect signatures.
- Switched to c++11 for gcc. Since gcc 4.8 provides full compliance to the c++11 standard.
|-> Initially hoped that it would fix the const_iterator problem, but it did not.
- Fixed the cmake warning concerning a missing whitespace between tokens in the last line of CMakeLists.txt.
Former-commit-id: f90768375e
12 years ago
dehnert
775382fa91
Added option to encode reachability of a target state for SAT-based minimal command counterexample generation. Fixed bug in vector-based set.
Former-commit-id: 7c2ea76902
12 years ago
dehnert
101c39f365
Added correct detection of states that possess infinite exptected time to reach a given goal set.
Former-commit-id: 4bc605d89d
12 years ago
dehnert
daea775263
Now rates get correctly transformed to probabilities + exit rates for Markov automata.
Former-commit-id: bf5ccfa813
12 years ago
dehnert
2cbdf56267
Fixed some bugs in bit vector and vector set that prevented the MEC decomposition from functioning correctly.
Former-commit-id: 51b6d7eb18
12 years ago
dehnert
f35ac73547
Splitted VectorSet in header/source file which caused certain minor changes in its interface. Fixed some issues in the Markov automaton parser and made it substantially faster by dropping sscanf. This however introduces other limitations that need to be addressed in the future.
Former-commit-id: 44eb4aabc9
12 years ago
dehnert
5a9d778a23
First version of MEC decomposition for nondeterministic models.
Former-commit-id: 45f67b2a16
12 years ago
dehnert
b9130180ee
Rough sketch of MEC decomposition.
Former-commit-id: 027b58d380
12 years ago
dehnert
f287b7e760
Further steps towards implementation of MEC decomposition.
Former-commit-id: 8166b3b923
12 years ago
masawei
170306e46d
Moved SparseMatrix transposition function from AbstractModel (named: getBackwardsTransitions) to SparseMatrix (named: transpose) where it belongs.
- Fixed one problem marked FIXME in the transpose function. The need for a "sentinel" element was created by an off by one in the prior loop.
- Changed all occurences of SparseMatrix<bool> to SparseMatrix<T>. Now the only two types for which SparseMatrix is instantiated are double and int.
- Compiles again.
|-> Compile time seems to be roughly the same for clean; make all. For incremental builds I haven't tested yet.
Former-commit-id: 6d829e0903
12 years ago
masawei
c30d6d307e
Figured out how to explicitly instantiate templates.
But got bitten by std::vector<bool> as it is specialized and uses bitsets (i.e. integers) internally.
Less memory but at the cost of 'oh, sorry std::vector<bool> does not return a bool&'.
That again seems to be a problem for the SparseMatrix<bool> instatiation since for instance getValue returns a T&.
On the one hand I don't quite know why this was never an issue before and on the other hand it prevents successful compilation.
So there are different ways to settle this:
- Specialize SparseMatix for bool -> possibly lots of code, but might be the best solution
- Write a wrapper for std::vector that uses chars instead of booleans
- Dont't use SparseMatrix<bool>
Next up: Figure out the best solution for this and implement it.
Former-commit-id: 83b9cfd06e
12 years ago
dehnert
e31c3bfb17
Added an important comment.
Former-commit-id: 79d8280d83
12 years ago
dehnert
360b506afe
Sparse MDP model checker now correctly computes (memoryless) schedulers for Until and Reachability Reward formulas.
Former-commit-id: c756093fd4
12 years ago
dehnert
9e941e6b4a
Added scheduler classes. Added method to model classes that applies a scheduler.
Former-commit-id: 73a4be11b2
12 years ago
dehnert
09f192b40f
Refactored SCC-Decomposition design as a preparation step for computing maximal end components of Markov automata.
Former-commit-id: 4596ba71ec
12 years ago