Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
graph.h
Go to the documentation of this file.
1#ifndef STORM_UTILITY_GRAPH_H_
2#define STORM_UTILITY_GRAPH_H_
3
4#include <limits>
5#include <set>
7
9
14
17
19
20namespace storm {
21namespace storage {
22class BitVector;
23template<typename VT>
24class SparseMatrix;
25} // namespace storage
26
27namespace models {
28
29namespace symbolic {
30template<storm::dd::DdType Type, typename ValueType>
31class Model;
32
33template<storm::dd::DdType Type, typename ValueType>
34class DeterministicModel;
35
36template<storm::dd::DdType Type, typename ValueType>
37class NondeterministicModel;
38
39template<storm::dd::DdType Type, typename ValueType>
40class StochasticTwoPlayerGame;
41} // namespace symbolic
42
43} // namespace models
44
45namespace dd {
46template<storm::dd::DdType Type>
47class Bdd;
48
49template<storm::dd::DdType Type, typename ValueType>
50class Add;
51
52} // namespace dd
53
54namespace storage {
55class ExplicitGameStrategyPair;
56}
57
58namespace utility {
59namespace graph {
60
65template<typename T>
67
82template<typename T>
84 storm::storage::BitVector const& constraintStates, storm::storage::BitVector const& targetStates,
85 bool useStepBound = false, uint_fast64_t maximalSteps = 0,
86 boost::optional<storm::storage::BitVector> const& choiceFilter = boost::none);
87
94template<typename T>
96
102template<typename T>
103bool hasCycle(storm::storage::SparseMatrix<T> const& transitionMatrix, boost::optional<storm::storage::BitVector> const& subsystem = boost::none);
104
115template<typename T>
116bool checkIfECWithChoiceExists(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::SparseMatrix<T> const& backwardTransitions,
117 storm::storage::BitVector const& subsystem, storm::storage::BitVector const& choices);
118
128template<typename T>
129std::vector<uint_fast64_t> getDistances(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::BitVector const& initialStates,
130 boost::optional<storm::storage::BitVector> const& subsystem = boost::none);
131
144template<typename T>
146 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0);
147
162template<typename T>
164 storm::storage::BitVector const& psiStates, storm::storage::BitVector const& statesWithProbabilityGreater0);
165
178template<typename T>
180 storm::storage::BitVector const& psiStates);
181
192template<typename T>
193std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01(storm::models::sparse::DeterministicModel<T> const& model,
194 storm::storage::BitVector const& phiStates,
195 storm::storage::BitVector const& psiStates);
196
207template<typename T>
208std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01(storm::storage::SparseMatrix<T> const& backwardTransitions,
209 storm::storage::BitVector const& phiStates,
210 storm::storage::BitVector const& psiStates);
211
223template<storm::dd::DdType Type, typename ValueType>
225 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
226 boost::optional<uint_fast64_t> const& stepBound = boost::optional<uint_fast64_t>());
239template<storm::dd::DdType Type, typename ValueType>
241 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
242 storm::dd::Bdd<Type> const& statesWithProbabilityGreater0);
243
254template<storm::dd::DdType Type, typename ValueType>
256 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
257
267template<storm::dd::DdType Type, typename ValueType>
269 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
270
281template<storm::dd::DdType Type, typename ValueType>
283 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
284 storm::dd::Bdd<Type> const& psiStates);
285
295template<typename T, typename SchedulerValueType>
298 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
299
309template<typename T>
312
326template<typename T, typename SchedulerValueType>
327void computeSchedulerProbGreater0E(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::SparseMatrix<T> const& backwardTransitions,
328 storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates,
330 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
331
340template<typename T, typename SchedulerValueType>
341void computeSchedulerRewInf(storm::storage::BitVector const& rewInfStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
343
351template<typename T, typename SchedulerValueType>
352void computeSchedulerProb0E(storm::storage::BitVector const& prob0EStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
354
366template<typename T, typename SchedulerValueType>
367void computeSchedulerProb1E(storm::storage::BitVector const& prob1EStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
368 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
370 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
371
385template<typename T>
387 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0);
388
389template<typename T>
391 storm::storage::BitVector const& psiStates);
392
406template<typename T>
408 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
409 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
410 storm::storage::BitVector const& psiStates,
411 boost::optional<storm::storage::BitVector> const& choiceConstraint = boost::none);
412
425template<typename T, typename RM>
427 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
428 storm::storage::BitVector const& psiStates);
429
430template<typename T>
431std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Max(storm::storage::SparseMatrix<T> const& transitionMatrix,
432 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
433 storm::storage::SparseMatrix<T> const& backwardTransitions,
434 storm::storage::BitVector const& phiStates,
435 storm::storage::BitVector const& psiStates);
436
447template<typename T, typename RM>
448std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Max(storm::models::sparse::NondeterministicModel<T, RM> const& model,
449 storm::storage::BitVector const& phiStates,
450 storm::storage::BitVector const& psiStates);
451
467template<typename T>
469 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
470 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
471 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0,
472 boost::optional<storm::storage::BitVector> const& choiceConstraint = boost::none);
473
486template<typename T, typename RM>
488 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
489 storm::storage::BitVector const& psiStates);
490template<typename T>
492 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
493 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
494 storm::storage::BitVector const& psiStates);
495
508template<typename T, typename RM>
510 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
511 storm::storage::BitVector const& psiStates);
512
513template<typename T>
515 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
516 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
517 storm::storage::BitVector const& psiStates);
518
519template<typename T>
520std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Min(storm::storage::SparseMatrix<T> const& transitionMatrix,
521 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
522 storm::storage::SparseMatrix<T> const& backwardTransitions,
523 storm::storage::BitVector const& phiStates,
524 storm::storage::BitVector const& psiStates);
525
536template<typename T, typename RM>
537std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Min(storm::models::sparse::NondeterministicModel<T, RM> const& model,
538 storm::storage::BitVector const& phiStates,
539 storm::storage::BitVector const& psiStates);
540
551template<storm::dd::DdType Type, typename ValueType = double>
553 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
554 storm::dd::Bdd<Type> const& psiStates);
555
559template<storm::dd::DdType Type, typename ValueType>
561 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
562 storm::dd::Bdd<Type> const& psiStates);
563
574template<storm::dd::DdType Type, typename ValueType = double>
576 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
577
588template<storm::dd::DdType Type, typename ValueType = double>
590 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
591 storm::dd::Bdd<Type> const& psiStates);
592
603template<storm::dd::DdType Type, typename ValueType = double>
605 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
606
618template<storm::dd::DdType Type, typename ValueType = double>
620 storm::dd::Bdd<Type> const& psiStates, storm::dd::Bdd<Type> const& statesWithProbabilityGreater0A);
621
634template<storm::dd::DdType Type, typename ValueType = double>
636 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
637 storm::dd::Bdd<Type> const& statesWithProbabilityGreater0E);
638
642template<storm::dd::DdType Type, typename ValueType>
644 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
645 storm::dd::Bdd<Type> const& psiStates, storm::dd::Bdd<Type> const& statesWithProbability1E);
646
647template<storm::dd::DdType Type, typename ValueType = double>
649 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
650
651template<storm::dd::DdType Type, typename ValueType = double>
653 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
654 storm::dd::Bdd<Type> const& psiStates);
655
656template<storm::dd::DdType Type, typename ValueType = double>
658 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
659
660template<storm::dd::DdType Type, typename ValueType = double>
662 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
663 storm::dd::Bdd<Type> const& psiStates);
664
665template<storm::dd::DdType Type>
674
675 bool hasPlayer1Strategy() const {
676 return static_cast<bool>(player1Strategy);
677 }
678
680 return player1Strategy.get();
681 }
682
683 boost::optional<storm::dd::Bdd<Type>> const& getOptionalPlayer1Strategy() {
684 return player1Strategy;
685 }
686
687 bool hasPlayer2Strategy() const {
688 return static_cast<bool>(player2Strategy);
689 }
690
692 return player2Strategy.get();
693 }
694
695 boost::optional<storm::dd::Bdd<Type>> const& getOptionalPlayer2Strategy() {
696 return player2Strategy;
697 }
698
700 return player1States;
701 }
702
704 return player2States;
705 }
706
709 boost::optional<storm::dd::Bdd<Type>> player1Strategy;
710 boost::optional<storm::dd::Bdd<Type>> player2Strategy;
711};
712
723template<storm::dd::DdType Type, typename ValueType>
725 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
726 storm::dd::Bdd<Type> const& psiStates, storm::OptimizationDirection const& player1Strategy,
727 storm::OptimizationDirection const& player2Strategy, bool producePlayer1Strategy = false,
728 bool producePlayer2Strategy = false);
729
741template<storm::dd::DdType Type, typename ValueType>
743 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
744 storm::dd::Bdd<Type> const& psiStates, storm::OptimizationDirection const& player1Strategy,
745 storm::OptimizationDirection const& player2Strategy, bool producePlayer1Strategy = false,
746 bool producePlayer2Strategy = false, boost::optional<storm::dd::Bdd<Type>> const& player1Candidates = boost::none);
747
750 ExplicitGameProb01Result(uint64_t numberOfPlayer1States, uint64_t numberOfPlayer2States)
751 : player1States(numberOfPlayer1States), player2States(numberOfPlayer2States) {
752 // Intentionally left empty.
753 }
754
759
761 return player1States;
762 }
763
765 return player2States;
766 }
767
770};
771
786template<typename ValueType>
787ExplicitGameProb01Result performProb0(storm::storage::SparseMatrix<ValueType> const& transitionMatrix, std::vector<uint64_t> const& player1Groups,
788 storm::storage::SparseMatrix<ValueType> const& player1BackwardTransitions,
789 std::vector<uint64_t> const& player2BackwardTransitions, storm::storage::BitVector const& phiStates,
790 storm::storage::BitVector const& psiStates, storm::OptimizationDirection const& player1Direction,
791 storm::OptimizationDirection const& player2Direction, storm::storage::ExplicitGameStrategyPair* strategyPair = nullptr);
792
808template<typename ValueType>
809ExplicitGameProb01Result performProb1(storm::storage::SparseMatrix<ValueType> const& transitionMatrix, std::vector<uint64_t> const& player1Groups,
810 storm::storage::SparseMatrix<ValueType> const& player1BackwardTransitions,
811 std::vector<uint64_t> const& player2BackwardTransitions, storm::storage::BitVector const& phiStates,
812 storm::storage::BitVector const& psiStates, storm::OptimizationDirection const& player1Direction,
813 storm::OptimizationDirection const& player2Direction, storm::storage::ExplicitGameStrategyPair* strategyPair = nullptr,
814 boost::optional<storm::storage::BitVector> const& player1Candidates = boost::none);
815
822template<typename T>
823std::vector<uint_fast64_t> getTopologicalSort(storm::storage::SparseMatrix<T> const& matrix, std::vector<uint64_t> const& firstStates = {});
824
825template<typename T>
826std::vector<uint_fast64_t> getBFSSort(storm::storage::SparseMatrix<T> const& matrix, std::vector<uint_fast64_t> const& firstStates);
827
828} // namespace graph
829} // namespace utility
830} // namespace storm
831
832#endif /* STORM_UTILITY_GRAPH_H_ */
The base class of all sparse deterministic models.
The base class of sparse nondeterministic models.
Base class for all deterministic symbolic models.
Base class for all symbolic models.
Definition Model.h:46
Base class for all nondeterministic symbolic models.
This class represents a discrete-time stochastic two-player game.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
This class defines which action is chosen in a particular state of a non-deterministic model.
Definition Scheduler.h:18
A class that holds a possibly non-square matrix in the compressed row storage format.
SFTBDDChecker::Bdd Bdd
std::pair< storm::storage::BitVector, storm::storage::BitVector > performProb01(storm::models::sparse::DeterministicModel< T > const &model, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Computes the sets of states that have probability 0 or 1, respectively, of satisfying phi until psi i...
Definition graph.cpp:400
std::pair< storm::storage::BitVector, storm::storage::BitVector > performProb01Max(storm::storage::SparseMatrix< T > const &transitionMatrix, std::vector< uint_fast64_t > const &nondeterministicChoiceIndices, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Definition graph.cpp:835
void computeSchedulerStayingInStates(storm::storage::BitVector const &states, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::Scheduler< SchedulerValueType > &scheduler, boost::optional< storm::storage::BitVector > const &rowFilter)
Computes a scheduler for the given states that chooses an action that stays completely in the very sa...
Definition graph.cpp:490
ExplicitGameProb01Result performProb0(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, std::vector< uint64_t > const &player1Groups, storm::storage::SparseMatrix< ValueType > const &player1BackwardTransitions, std::vector< uint64_t > const &player2BackwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, storm::OptimizationDirection const &player1Direction, storm::OptimizationDirection const &player2Direction, storm::storage::ExplicitGameStrategyPair *strategyPair)
Computes the set of states that have probability 0 given the strategies of the two players.
Definition graph.cpp:1308
std::vector< uint_fast64_t > getTopologicalSort(storm::storage::SparseMatrix< T > const &matrix, std::vector< uint64_t > const &firstStates)
Performs a topological sort of the states of the system according to the given transitions.
Definition graph.cpp:1861
void computeSchedulerProbGreater0E(storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, storm::storage::Scheduler< SchedulerValueType > &scheduler, boost::optional< storm::storage::BitVector > const &rowFilter)
Computes a scheduler for the ProbGreater0E-States such that in the induced system the given psiStates...
Definition graph.cpp:542
std::vector< uint_fast64_t > getBFSSort(storm::storage::SparseMatrix< T > const &matrix, std::vector< uint_fast64_t > const &firstStates)
Definition graph.cpp:1827
storm::storage::BitVector getReachableStates(storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::BitVector const &initialStates, storm::storage::BitVector const &constraintStates, storm::storage::BitVector const &targetStates, bool useStepBound, uint_fast64_t maximalSteps, boost::optional< storm::storage::BitVector > const &choiceFilter)
Performs a forward depth-first search through the underlying graph structure to identify the states t...
Definition graph.cpp:48
storm::storage::BitVector getReachableOneStep(storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::BitVector const &initialStates)
Computes the states reachable in one step from the states indicated by the bitvector.
Definition graph.cpp:36
storm::storage::BitVector performProbGreater0(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool useStepBound, uint_fast64_t maximalSteps)
Performs a backward depth-first search trough the underlying graph structure of the given model to de...
Definition graph.cpp:322
void computeSchedulerWithOneSuccessorInStates(storm::storage::BitVector const &states, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::Scheduler< SchedulerValueType > &scheduler)
Definition graph.cpp:515
storm::storage::BitVector performProbGreater0A(storm::storage::SparseMatrix< T > const &transitionMatrix, std::vector< uint_fast64_t > const &nondeterministicChoiceIndices, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool useStepBound, uint_fast64_t maximalSteps, boost::optional< storm::storage::BitVector > const &choiceConstraint)
Computes the sets of states that have probability greater 0 of satisfying phi until psi under any pos...
Definition graph.cpp:857
void computeSchedulerProb1E(storm::storage::BitVector const &prob1EStates, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, storm::storage::Scheduler< SchedulerValueType > &scheduler, boost::optional< storm::storage::BitVector > const &rowFilter)
Computes a scheduler for the given prob1EStates such that in the induced system the given psiStates a...
Definition graph.cpp:624
bool hasCycle(storm::storage::SparseMatrix< T > const &transitionMatrix, boost::optional< storm::storage::BitVector > const &subsystem)
Returns true if the graph represented by the given matrix has a cycle.
Definition graph.cpp:143
storm::storage::BitVector performProb1A(storm::models::sparse::NondeterministicModel< T, RM > const &model, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Computes the sets of states that have probability 1 of satisfying phi until psi under all possible re...
Definition graph.cpp:997
storm::storage::BitVector performProbGreater0E(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool useStepBound, uint_fast64_t maximalSteps)
Computes the sets of states that have probability greater 0 of satisfying phi until psi under at leas...
Definition graph.cpp:689
storm::storage::BitVector performProb0A(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Definition graph.cpp:749
storm::storage::BitVector performProb1(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &, storm::storage::BitVector const &psiStates, storm::storage::BitVector const &statesWithProbabilityGreater0)
Computes the set of states of the given model for which all paths lead to the given set of target sta...
Definition graph.cpp:383
bool checkIfECWithChoiceExists(storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &subsystem, storm::storage::BitVector const &choices)
Checks whether there is an End Component that.
Definition graph.cpp:182
storm::storage::BitVector performProb0E(storm::models::sparse::NondeterministicModel< T, RM > const &model, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Computes the sets of states that have probability 0 of satisfying phi until psi under at least one po...
Definition graph.cpp:976
storm::storage::BitVector getBsccCover(storm::storage::SparseMatrix< T > const &transitionMatrix)
Retrieves a set of states that covers als BSCCs of the system in the sense that for every BSCC exactl...
Definition graph.cpp:129
void computeSchedulerProb0E(storm::storage::BitVector const &prob0EStates, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::Scheduler< SchedulerValueType > &scheduler)
Computes a scheduler for the given states that have a scheduler that has a probability 0.
Definition graph.cpp:593
std::pair< storm::storage::BitVector, storm::storage::BitVector > performProb01Min(storm::storage::SparseMatrix< T > const &transitionMatrix, std::vector< uint_fast64_t > const &nondeterministicChoiceIndices, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Definition graph.cpp:1079
std::vector< uint_fast64_t > getDistances(storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::BitVector const &initialStates, boost::optional< storm::storage::BitVector > const &subsystem)
Performs a breadth-first search through the underlying graph structure to compute the distance from a...
Definition graph.cpp:288
storm::storage::BitVector performProb1E(storm::storage::SparseMatrix< T > const &transitionMatrix, std::vector< uint_fast64_t > const &nondeterministicChoiceIndices, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, boost::optional< storm::storage::BitVector > const &choiceConstraint)
Computes the sets of states that have probability 1 of satisfying phi until psi under at least one po...
Definition graph.cpp:757
void computeSchedulerRewInf(storm::storage::BitVector const &rewInfStates, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::Scheduler< SchedulerValueType > &scheduler)
Computes a scheduler for the given states that have a scheduler that has a reward infinity.
Definition graph.cpp:599
storage::BitVector BitVector
LabParser.cpp.
Definition cli.cpp:18
ExplicitGameProb01Result(storm::storage::BitVector const &player1States, storm::storage::BitVector const &player2States)
Definition graph.h:755
storm::storage::BitVector const & getPlayer1States() const
Definition graph.h:760
storm::storage::BitVector player2States
Definition graph.h:769
storm::storage::BitVector const & getPlayer2States() const
Definition graph.h:764
ExplicitGameProb01Result(uint64_t numberOfPlayer1States, uint64_t numberOfPlayer2States)
Definition graph.h:750
storm::storage::BitVector player1States
Definition graph.h:768
boost::optional< storm::dd::Bdd< Type > > player1Strategy
Definition graph.h:709
SymbolicGameProb01Result(storm::dd::Bdd< Type > const &player1States, storm::dd::Bdd< Type > const &player2States, boost::optional< storm::dd::Bdd< Type > > const &player1Strategy=boost::none, boost::optional< storm::dd::Bdd< Type > > const &player2Strategy=boost::none)
Definition graph.h:668
boost::optional< storm::dd::Bdd< Type > > const & getOptionalPlayer2Strategy()
Definition graph.h:695
storm::dd::Bdd< Type > const & getPlayer2States() const
Definition graph.h:703
storm::dd::Bdd< Type > const & getPlayer1Strategy() const
Definition graph.h:679
boost::optional< storm::dd::Bdd< Type > > const & getOptionalPlayer1Strategy()
Definition graph.h:683
storm::dd::Bdd< Type > const & getPlayer2Strategy() const
Definition graph.h:691
boost::optional< storm::dd::Bdd< Type > > player2Strategy
Definition graph.h:710
storm::dd::Bdd< Type > const & getPlayer1States() const
Definition graph.h:699