dehnert
95ee78ede2
First working version of SCC-based mc.
Former-commit-id: 57dc865344
11 years ago
dehnert
fff4e61fc3
Changed interface of matrix builder slightly to be able to also not force the resulting matrix to certain dimensions, but merely to reserve the desired space.
Former-commit-id: e36d05398e
11 years ago
dehnert
f767cfe844
Started to modify the matrix builder to be a bit smarter about preallocation.
Former-commit-id: 50be5c8af1
11 years ago
dehnert
ac420f13d0
Fixed some warnings in various places.
Former-commit-id: fbfbfc2bcb
11 years ago
dehnert
ab58103555
Started to pimp matrix. First step: added proper methods setColumn/setValue that operate on a matrix entry and removed the non-const versions of getColumn/getValue. Added a typedef for the index type in the matrix so that it becomes possible to have matrices with a different index type (e.g. 32-bit values).
Former-commit-id: 3cc0fdf9ee
11 years ago
dehnert
01cefbb2c0
Modified the multiplication of a sparse matrix with a dense vector to only use the parallel version if available and the number of nonzero entries exceeds a certain threshold.
Former-commit-id: 07957b2d29
11 years ago
masawei
52cfe9f02d
Fixed some compile errors.
- Added a missing inlude (boost/functional/hash.hpp) to SparseMatrix.h. I don't know how this could have been compiled without.
- Changed a return type in the stub section of the GurobiLpSolver to void. Not correctly overwrites the base class function.
- Went through the change history of the SparseMarkovAutomatonCslModelchecker.h to correctly integrate all changes made in this branch with the changes of the other branches.
Former-commit-id: 43ce12274b
11 years ago
dehnert
db232fe39b
Moved from pair to MatrixEntry as the basic building block of the matrix. Now matrix elements can be accessed in a more readable way.
Former-commit-id: f6514eb0cd
11 years ago
dehnert
92ee6187fa
Added more query methods to expressions. SparseMatrix now keeps track of non zero entries and models show correct number of transitions by referring to nonzero entries rather than all entries in the matrix.
Former-commit-id: 48180be2fe
11 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
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
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
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
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
dce43d78e7
Started implementation of time-bounded reachability of Markov automata.
Former-commit-id: 512bb117a6
12 years ago
dehnert
daea775263
Now rates get correctly transformed to probabilities + exit rates for Markov automata.
Former-commit-id: bf5ccfa813
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
masawei
1b2bb9c138
Set up command flow for subsystem generation. Results seem correct on the first look.
Next up: Write the DTMC output for the subsystem generation.
Also:
- fixed one bug in the subsystem generation leading to an infinite loop
- corrected a typo in a comment in SparseMatrix
Former-commit-id: 6014bf2dd2
12 years ago
dehnert
e3234b54f3
Step towards minimal command generator using MaxSAT and model checking.
Former-commit-id: 4237447c44
12 years ago
dehnert
a45e9423b8
Sparse matrix can now also be used without knowing the number of rows/columns/nonzeros upfront. Adapted ExplicitModelAdapter to use that capability to not explore the state space twice. Added support for Z3 to CMakeLists.txt. Added correct submatrix checks for transition rewards in MDPs. Extended a test for the ExplicitModelAdapter a bit.
Former-commit-id: 105efc5342
12 years ago
dehnert
e2b0c4f1aa
Started refactoring ExplicitModelAdapter to finally make it nice.
Former-commit-id: 6df7e5d9fa
12 years ago
PBerger
79c40126f3
Fixed a bug in the SparseMatrix.h where the multi threaded implementation would crash sometimes
Added a new definition to CMakeLists.txt for MSVC as to undefine the MIN/MAX macros
Former-commit-id: 5a3d12e920
12 years ago
PBerger
c242dcbd97
Refactored CMakeLists.txt for better editing and overview
Refactored all Defines for Gurobi, TBB, etc into the storm-config file
Fixed a missing cast int SymbolicModelAdapter.h
Fixed changed iterator structures in SparseMatrix.h
Fixed bugs in CuddUtility.cpp where a 64bit shift was executed on a 32bit literal (1 should be 1ull)
Fixed a Type Error in graph.h
Former-commit-id: 797b4da2eb
12 years ago
PBerger
158430418e
Replaced boost integer mask includes with cstdint
Reimplemented Gmm conversion with in place constructors
Former-commit-id: 003f582f9c
12 years ago
dehnert
d168b1848e
Made GMRES and LSCG solution methods work for linear equation solving. Some further work on scheduler guessing.
Former-commit-id: f6b538394a
12 years ago
dehnert
15542d46da
Changes:
* included small consensus example
* made backward-transition generation more beautiful and versatile
* included Dijkstra search for most probable paths
* included first rough scheduler-guessing (there's room for improvement though)
Former-commit-id: db795fa1bf
12 years ago
dehnert
5776b207c3
Changed to new cleaner iterator for matrix.
Former-commit-id: c35f075fb1
12 years ago
dehnert
36543de851
Started trying to implement a more clean iterator solution for sparse matrix.
Former-commit-id: 2173972b82
12 years ago
PBerger
42b9072cbf
Implemented TBB Parallelization Support into SparseMatrix.h
Re-factored Includes in CMake for TBB
Former-commit-id: b5ebf4153a
12 years ago
dehnert
7aa3139b62
Intermediate commit with submatrix computation for scheduler-induced system from MDP.
Former-commit-id: bcdc58c1a7
12 years ago
PBerger
cb770020bf
Refactored the Jacobi Decomposition
Former-commit-id: 55d5d38475
12 years ago
dehnert
f040264660
Intermediate commit with submatrix computation for scheduler-induced system from MDP.
Former-commit-id: e497f03c00
12 years ago
PBerger
0f7e2835e3
Added an assignment constructor to the SparseMatrix.h
Now fixed this "constructor" to be a real operator and compile.
Former-commit-id: 83fe702ab3
12 years ago
PBerger
0051aec174
Added an assignment constructor to the SparseMatrix.h
Former-commit-id: 8de6a61190
12 years ago
PBerger
22f00bc95e
Reordered elements of SparseMatrix.h
Former-commit-id: 4af800a607
12 years ago