dehnert
8a47d03cf7
Started to rework the interface of the sparse matrix class.
Former-commit-id: 6ae2699da6
11 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
11 years ago
dehnert
d5cadc0f4b
Finalized interface of bit vector. Added unit tests for all methods of the bit vector.
Former-commit-id: 6c7834ed20
11 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
11 years ago
dehnert
07fbff7a07
Started refactoring bit vector class.
Former-commit-id: a2fecfce2b
11 years ago
masawei
cb870c28c7
Began testing of the MarkovAutomatonSparseTransitionParser to identify inflexibilities or bugs.
- Noticed to my astonishment that seemingly arbitrary use of whitespaces (as long as each transition is in its own line) is no problem for the parser.
- As predicted, handling of action labels of arbitrary length especially such starting with an '!' is not supported.
Next up: Handle arbitrary labels.
Former-commit-id: 339578e72a
11 years ago
dehnert
c336fd7ff8
Minor fixes for implementation of GlpkLpSolver if glpk is unavailable.
Former-commit-id: 778f93a33c
11 years ago
dehnert
344e1b6dd3
Enabled checking of some untimed properties on Markov automata.
Former-commit-id: e71aa66c62
11 years ago
dehnert
3dab26463d
Introduced precision for digitization-based techniques as a new parameter.
Former-commit-id: e9c57f821b
11 years ago
dehnert
ece4085a61
Another bugfix for matrix creation during LRA computation.
Former-commit-id: c3325b8913
11 years ago
dehnert
fde78ad759
Bugfix for matrix creation in LRA computation.
Former-commit-id: cb4c9cb728
11 years ago
dehnert
b3601782a9
Added Lp Solver class for glpk and added it as an option in CMakeLists.txt.
Former-commit-id: e5c5215a29
11 years ago
dehnert
0a89d65f93
Started refactoring Markov automaton model checker.
Former-commit-id: c4278de4f0
11 years ago
dehnert
18711c01a3
First working version of time-bounded reachability for Markov automata.
Former-commit-id: 6501cbfca4
11 years ago
dehnert
dce43d78e7
Started implementation of time-bounded reachability of Markov automata.
Former-commit-id: 512bb117a6
11 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
11 years ago
dehnert
281140c8ff
Sketched algorith outline for time-bounded reachability for Markov automata.
Former-commit-id: 51edb423d3
11 years ago
dehnert
dabfb5e1dd
First working version of LRA computation for Markov automata.
Former-commit-id: d6c6870fd8
11 years ago
dehnert
339b598694
Enabled computation of LRA for individual maximal end components. It remains to compute the overall LRA value using the values for the individual MECs.
Former-commit-id: 47eb90e62c
11 years ago
dehnert
45f137face
Prepared stub for Long-Run Average computation for Markov automata.
Former-commit-id: fef601a81d
11 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
11 years ago
dehnert
ad0bba6223
Started work on including reachability encoding in SAT-based counterexample generator.
Former-commit-id: 739b8850f0
11 years ago
dehnert
ea7f48cff6
Introduced solver header in utility to return standard solvers when requested.
Former-commit-id: 66bba17785
11 years ago
dehnert
a229b9b322
Refactored MILP-based command generator to use a general LpSolver interface, so other LP solvers may be used when needed.
Former-commit-id: 203ad6a499
11 years ago
dehnert
9f7a0f1354
Started abstracting LP solvers into a common interface. This way, we have more freedom to target different LP solvers easily and can avoid licensing problems.
Former-commit-id: badba812a1
11 years ago
dehnert
101c39f365
Added correct detection of states that possess infinite exptected time to reach a given goal set.
Former-commit-id: 4bc605d89d
11 years ago
dehnert
daea775263
Now rates get correctly transformed to probabilities + exit rates for Markov automata.
Former-commit-id: bf5ccfa813
11 years ago
dehnert
f1a9b1e602
First version of minimum expected time for Markov automata.
Former-commit-id: 6053be896e
11 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
11 years ago
dehnert
bfb416687f
Bugfix for Markov automaton parser. Number of choices now gets computed correctly in the presence of deadlock states.
Former-commit-id: afd996d4a3
11 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
11 years ago
dehnert
5a9d778a23
First version of MEC decomposition for nondeterministic models.
Former-commit-id: 45f67b2a16
11 years ago
dehnert
b9130180ee
Rough sketch of MEC decomposition.
Former-commit-id: 027b58d380
11 years ago
dehnert
f287b7e760
Further steps towards implementation of MEC decomposition.
Former-commit-id: 8166b3b923
11 years ago
masawei
84f6bf7104
Added a getBackwardsTransitions() to AbstractNondeterministicModel, since simple transposition does not yield correct results and for the computation of the backwards transitions the nondeterministic choice indices must be known.
|-> Ran the tests: all green.
Former-commit-id: be0d9de95a
11 years ago
dehnert
bd367f89c7
Enabled model checking of PCTL properties for symbolic models.
Former-commit-id: a8e2fc6a92
11 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
11 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
11 years ago
dehnert
eca717759a
Added functionality to apply a scheduler to a Markov automaton.
Former-commit-id: 2121c61b09
11 years ago
dehnert
e31c3bfb17
Added an important comment.
Former-commit-id: 79d8280d83
11 years ago
dehnert
360b506afe
Sparse MDP model checker now correctly computes (memoryless) schedulers for Until and Reachability Reward formulas.
Former-commit-id: c756093fd4
11 years ago
dehnert
9e941e6b4a
Added scheduler classes. Added method to model classes that applies a scheduler.
Former-commit-id: 73a4be11b2
11 years ago
dehnert
09f192b40f
Refactored SCC-Decomposition design as a preparation step for computing maximal end components of Markov automata.
Former-commit-id: 4596ba71ec
11 years ago
dehnert
1c594d02f5
Added check in Markov automaton parser to ensure the Markovian choice is the first one for each state. This way only the Markovian states need to be stored and by convention their first choice is the Markovian one.
Former-commit-id: 0cca1bb2c7
11 years ago
dehnert
66f15efbc6
Fixed memory bug in Markov automaton parser.
Former-commit-id: 444b834b91
11 years ago
dehnert
d725a3f898
Removed bit vector for storing markovian choices of MA. From now on, the first choice of a hybrid/Markovian state is the Markovian one.
Former-commit-id: 6b646597dc
11 years ago
dehnert
cebda374d1
Further step towards Markov automata parser.
Former-commit-id: 33e4634743
11 years ago
dehnert
c02f4e2adc
Markov Automata transitions can now be parsed. Next up: a parser that combines transition and label parsing for Markov automata.
Former-commit-id: 77db051f1f
11 years ago
dehnert
873373eb4e
Further work on explicit MarkovAutomaton parser.
Former-commit-id: 19fbff695b
11 years ago
dehnert
77cabe1948
Started implementing a parser for an explicit format for Markov automata. This commit breaks things, so don't pull if you want to have a running version of this branch.
Former-commit-id: 8a9e9d0c2d
11 years ago