Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
graph.h
Go to the documentation of this file.
1#pragma once
2
3#include <limits>
4#include <set>
5
14
15namespace storm {
16namespace storage {
17class BitVector;
18template<typename VT>
19class SparseMatrix;
20} // namespace storage
21
22namespace models {
23
24namespace symbolic {
25template<storm::dd::DdType Type, typename ValueType>
26class Model;
27
28template<storm::dd::DdType Type, typename ValueType>
29class DeterministicModel;
30
31template<storm::dd::DdType Type, typename ValueType>
32class NondeterministicModel;
33
34template<storm::dd::DdType Type, typename ValueType>
35class StochasticTwoPlayerGame;
36} // namespace symbolic
37
38} // namespace models
39
40namespace dd {
41template<storm::dd::DdType Type>
42class Bdd;
43
44template<storm::dd::DdType Type, typename ValueType>
45class Add;
46
47} // namespace dd
48
49namespace storage {
50class ExplicitGameStrategyPair;
51}
52
53namespace utility {
54namespace graph {
55
60template<typename T>
62
77template<typename T>
79 storm::storage::BitVector const& constraintStates, storm::storage::BitVector const& targetStates,
80 bool useStepBound = false, uint_fast64_t maximalSteps = 0,
81 boost::optional<storm::storage::BitVector> const& choiceFilter = boost::none);
82
89template<typename T>
91
97template<typename T>
98bool hasCycle(storm::storage::SparseMatrix<T> const& transitionMatrix, boost::optional<storm::storage::BitVector> const& subsystem = boost::none);
99
110template<typename T>
111bool checkIfECWithChoiceExists(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::SparseMatrix<T> const& backwardTransitions,
112 storm::storage::BitVector const& subsystem, storm::storage::BitVector const& choices);
113
123template<typename T>
124std::vector<uint_fast64_t> getDistances(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::BitVector const& initialStates,
125 boost::optional<storm::storage::BitVector> const& subsystem = boost::none);
126
139template<typename T>
141 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0);
142
157template<typename T>
159 storm::storage::BitVector const& psiStates, storm::storage::BitVector const& statesWithProbabilityGreater0);
160
173template<typename T>
175 storm::storage::BitVector const& psiStates);
176
187template<typename T>
188std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01(storm::models::sparse::DeterministicModel<T> const& model,
189 storm::storage::BitVector const& phiStates,
190 storm::storage::BitVector const& psiStates);
191
202template<typename T>
203std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01(storm::storage::SparseMatrix<T> const& backwardTransitions,
204 storm::storage::BitVector const& phiStates,
205 storm::storage::BitVector const& psiStates);
206
218template<storm::dd::DdType Type, typename ValueType>
220 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
221 boost::optional<uint_fast64_t> const& stepBound = boost::optional<uint_fast64_t>());
234template<storm::dd::DdType Type, typename ValueType>
236 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
237 storm::dd::Bdd<Type> const& statesWithProbabilityGreater0);
238
249template<storm::dd::DdType Type, typename ValueType>
251 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
252
262template<storm::dd::DdType Type, typename ValueType>
264 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
265
276template<storm::dd::DdType Type, typename ValueType>
278 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
279 storm::dd::Bdd<Type> const& psiStates);
280
290template<typename T, typename SchedulerValueType>
293 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
294
304template<typename T>
307
321template<typename T, typename SchedulerValueType>
322void computeSchedulerProbGreater0E(storm::storage::SparseMatrix<T> const& transitionMatrix, storm::storage::SparseMatrix<T> const& backwardTransitions,
323 storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates,
325 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
326
335template<typename T, typename SchedulerValueType>
336void computeSchedulerRewInf(storm::storage::BitVector const& rewInfStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
338
346template<typename T, typename SchedulerValueType>
347void computeSchedulerProb0E(storm::storage::BitVector const& prob0EStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
349
361template<typename T, typename SchedulerValueType>
362void computeSchedulerProb1E(storm::storage::BitVector const& prob1EStates, storm::storage::SparseMatrix<T> const& transitionMatrix,
363 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
365 boost::optional<storm::storage::BitVector> const& rowFilter = boost::none);
366
380template<typename T>
382 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0);
383
384template<typename T>
386 storm::storage::BitVector const& psiStates);
387
401template<typename T>
403 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
404 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
405 storm::storage::BitVector const& psiStates,
406 boost::optional<storm::storage::BitVector> const& choiceConstraint = boost::none);
407
420template<typename T, typename RM>
422 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
423 storm::storage::BitVector const& psiStates);
424
425template<typename T>
426std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Max(storm::storage::SparseMatrix<T> const& transitionMatrix,
427 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
428 storm::storage::SparseMatrix<T> const& backwardTransitions,
429 storm::storage::BitVector const& phiStates,
430 storm::storage::BitVector const& psiStates);
431
442template<typename T, typename RM>
443std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Max(storm::models::sparse::NondeterministicModel<T, RM> const& model,
444 storm::storage::BitVector const& phiStates,
445 storm::storage::BitVector const& psiStates);
446
462template<typename T>
464 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
465 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
466 storm::storage::BitVector const& psiStates, bool useStepBound = false, uint_fast64_t maximalSteps = 0,
467 boost::optional<storm::storage::BitVector> const& choiceConstraint = boost::none);
468
481template<typename T, typename RM>
483 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
484 storm::storage::BitVector const& psiStates);
485template<typename T>
487 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
488 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
489 storm::storage::BitVector const& psiStates);
490
503template<typename T, typename RM>
505 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
506 storm::storage::BitVector const& psiStates);
507
508template<typename T>
510 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
511 storm::storage::SparseMatrix<T> const& backwardTransitions, storm::storage::BitVector const& phiStates,
512 storm::storage::BitVector const& psiStates);
513
514template<typename T>
515std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Min(storm::storage::SparseMatrix<T> const& transitionMatrix,
516 std::vector<uint_fast64_t> const& nondeterministicChoiceIndices,
517 storm::storage::SparseMatrix<T> const& backwardTransitions,
518 storm::storage::BitVector const& phiStates,
519 storm::storage::BitVector const& psiStates);
520
531template<typename T, typename RM>
532std::pair<storm::storage::BitVector, storm::storage::BitVector> performProb01Min(storm::models::sparse::NondeterministicModel<T, RM> const& model,
533 storm::storage::BitVector const& phiStates,
534 storm::storage::BitVector const& psiStates);
535
546template<storm::dd::DdType Type, typename ValueType = double>
548 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
549 storm::dd::Bdd<Type> const& psiStates);
550
554template<storm::dd::DdType Type, typename ValueType>
556 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
557 storm::dd::Bdd<Type> const& psiStates);
558
569template<storm::dd::DdType Type, typename ValueType = double>
571 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
572
583template<storm::dd::DdType Type, typename ValueType = double>
585 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
586 storm::dd::Bdd<Type> const& psiStates);
587
598template<storm::dd::DdType Type, typename ValueType = double>
600 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
601
613template<storm::dd::DdType Type, typename ValueType = double>
615 storm::dd::Bdd<Type> const& psiStates, storm::dd::Bdd<Type> const& statesWithProbabilityGreater0A);
616
629template<storm::dd::DdType Type, typename ValueType = double>
631 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates,
632 storm::dd::Bdd<Type> const& statesWithProbabilityGreater0E);
633
637template<storm::dd::DdType Type, typename ValueType>
639 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
640 storm::dd::Bdd<Type> const& psiStates, storm::dd::Bdd<Type> const& statesWithProbability1E);
641
642template<storm::dd::DdType Type, typename ValueType = double>
644 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
645
646template<storm::dd::DdType Type, typename ValueType = double>
648 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
649 storm::dd::Bdd<Type> const& psiStates);
650
651template<storm::dd::DdType Type, typename ValueType = double>
653 storm::dd::Bdd<Type> const& phiStates, storm::dd::Bdd<Type> const& psiStates);
654
655template<storm::dd::DdType Type, typename ValueType = double>
657 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
658 storm::dd::Bdd<Type> const& psiStates);
659
660template<storm::dd::DdType Type>
669
670 bool hasPlayer1Strategy() const {
671 return static_cast<bool>(player1Strategy);
672 }
673
675 return player1Strategy.get();
676 }
677
678 boost::optional<storm::dd::Bdd<Type>> const& getOptionalPlayer1Strategy() {
679 return player1Strategy;
680 }
681
682 bool hasPlayer2Strategy() const {
683 return static_cast<bool>(player2Strategy);
684 }
685
687 return player2Strategy.get();
688 }
689
690 boost::optional<storm::dd::Bdd<Type>> const& getOptionalPlayer2Strategy() {
691 return player2Strategy;
692 }
693
695 return player1States;
696 }
697
699 return player2States;
700 }
701
704 boost::optional<storm::dd::Bdd<Type>> player1Strategy;
705 boost::optional<storm::dd::Bdd<Type>> player2Strategy;
706};
707
718template<storm::dd::DdType Type, typename ValueType>
720 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
721 storm::dd::Bdd<Type> const& psiStates, storm::OptimizationDirection const& player1Strategy,
722 storm::OptimizationDirection const& player2Strategy, bool producePlayer1Strategy = false,
723 bool producePlayer2Strategy = false);
724
736template<storm::dd::DdType Type, typename ValueType>
738 storm::dd::Bdd<Type> const& transitionMatrix, storm::dd::Bdd<Type> const& phiStates,
739 storm::dd::Bdd<Type> const& psiStates, storm::OptimizationDirection const& player1Strategy,
740 storm::OptimizationDirection const& player2Strategy, bool producePlayer1Strategy = false,
741 bool producePlayer2Strategy = false, boost::optional<storm::dd::Bdd<Type>> const& player1Candidates = boost::none);
742
745 ExplicitGameProb01Result(uint64_t numberOfPlayer1States, uint64_t numberOfPlayer2States)
746 : player1States(numberOfPlayer1States), player2States(numberOfPlayer2States) {
747 // Intentionally left empty.
748 }
749
754
756 return player1States;
757 }
758
760 return player2States;
761 }
762
765};
766
781template<typename ValueType>
782ExplicitGameProb01Result performProb0(storm::storage::SparseMatrix<ValueType> const& transitionMatrix, std::vector<uint64_t> const& player1Groups,
783 storm::storage::SparseMatrix<ValueType> const& player1BackwardTransitions,
784 std::vector<uint64_t> const& player2BackwardTransitions, storm::storage::BitVector const& phiStates,
785 storm::storage::BitVector const& psiStates, storm::OptimizationDirection const& player1Direction,
786 storm::OptimizationDirection const& player2Direction, storm::storage::ExplicitGameStrategyPair* strategyPair = nullptr);
787
803template<typename ValueType>
804ExplicitGameProb01Result performProb1(storm::storage::SparseMatrix<ValueType> const& transitionMatrix, std::vector<uint64_t> const& player1Groups,
805 storm::storage::SparseMatrix<ValueType> const& player1BackwardTransitions,
806 std::vector<uint64_t> const& player2BackwardTransitions, storm::storage::BitVector const& phiStates,
807 storm::storage::BitVector const& psiStates, storm::OptimizationDirection const& player1Direction,
808 storm::OptimizationDirection const& player2Direction, storm::storage::ExplicitGameStrategyPair* strategyPair = nullptr,
809 boost::optional<storm::storage::BitVector> const& player1Candidates = boost::none);
810
817template<typename T>
818std::vector<uint_fast64_t> getTopologicalSort(storm::storage::SparseMatrix<T> const& matrix, std::vector<uint64_t> const& firstStates = {});
819
820template<typename T>
821std::vector<uint_fast64_t> getBFSSort(storm::storage::SparseMatrix<T> const& matrix, std::vector<uint_fast64_t> const& firstStates);
822
823} // namespace graph
824} // namespace utility
825} // namespace storm
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:42
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:16
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.
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:399
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:825
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:489
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:1298
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:1851
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:541
std::vector< uint_fast64_t > getBFSSort(storm::storage::SparseMatrix< T > const &matrix, std::vector< uint_fast64_t > const &firstStates)
Definition graph.cpp:1817
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:47
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:35
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:321
void computeSchedulerWithOneSuccessorInStates(storm::storage::BitVector const &states, storm::storage::SparseMatrix< T > const &transitionMatrix, storm::storage::Scheduler< SchedulerValueType > &scheduler)
Definition graph.cpp:514
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:847
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:614
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:142
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:987
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:679
storm::storage::BitVector performProb0A(storm::storage::SparseMatrix< T > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Definition graph.cpp:739
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:382
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:181
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:966
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:128
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:592
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:1069
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:287
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:747
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:598
storage::BitVector BitVector
ExplicitGameProb01Result(storm::storage::BitVector const &player1States, storm::storage::BitVector const &player2States)
Definition graph.h:750
storm::storage::BitVector const & getPlayer1States() const
Definition graph.h:755
storm::storage::BitVector player2States
Definition graph.h:764
storm::storage::BitVector const & getPlayer2States() const
Definition graph.h:759
ExplicitGameProb01Result(uint64_t numberOfPlayer1States, uint64_t numberOfPlayer2States)
Definition graph.h:745
storm::storage::BitVector player1States
Definition graph.h:763
boost::optional< storm::dd::Bdd< Type > > player1Strategy
Definition graph.h:704
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:663
boost::optional< storm::dd::Bdd< Type > > const & getOptionalPlayer2Strategy()
Definition graph.h:690
storm::dd::Bdd< Type > const & getPlayer2States() const
Definition graph.h:698
storm::dd::Bdd< Type > const & getPlayer1Strategy() const
Definition graph.h:674
boost::optional< storm::dd::Bdd< Type > > const & getOptionalPlayer1Strategy()
Definition graph.h:678
storm::dd::Bdd< Type > const & getPlayer2Strategy() const
Definition graph.h:686
boost::optional< storm::dd::Bdd< Type > > player2Strategy
Definition graph.h:705
storm::dd::Bdd< Type > const & getPlayer1States() const
Definition graph.h:694