From 235671d67db81fefb6fda58f37e6cb8652ed5aaa Mon Sep 17 00:00:00 2001
From: tomjanson <tom.janson@rwth-aachen.de>
Date: Fri, 12 Feb 2016 20:41:55 +0100
Subject: [PATCH] use map rather than set for target[Prob]

---
 src/utility/shortestPaths.cpp | 8 +++++---
 src/utility/shortestPaths.h   | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/utility/shortestPaths.cpp b/src/utility/shortestPaths.cpp
index 409030c32..3b6772464 100644
--- a/src/utility/shortestPaths.cpp
+++ b/src/utility/shortestPaths.cpp
@@ -13,7 +13,9 @@ namespace storm {
                                                    metaTarget(model->getNumberOfStates()), // first unused state number
                                                    initialStates(model->getInitialStates()),
                                                    targets(targets) {
-                targetSet = std::unordered_set<state_t>(targets.begin(), targets.end());
+                for (state_t target : targets) {
+                    targetProbMap.emplace(target, one<T>());
+                }
 
                 computePredecessors();
 
@@ -134,7 +136,7 @@ namespace storm {
                     state_t currentNode = (*dijkstraQueue.begin()).second;
                     dijkstraQueue.erase(dijkstraQueue.begin());
 
-                    if (targetSet.count(currentNode) == 0) {
+                    if (targetProbMap.count(currentNode) == 0) {
                         // non-target node, treated normally
                         for (auto const& transition : transitionMatrix.getRowGroup(currentNode)) {
                             state_t otherNode = transition.getColumn();
@@ -223,7 +225,7 @@ namespace storm {
                     return utility::zero<T>();
                 } else {
                     // edge must be "virtual edge" from target state to meta-target
-                    assert(targetSet.count(tailNode) == 1);
+                    assert(targetProbMap.count(tailNode) == 1);
                     return utility::one<T>();
                 }
             }
diff --git a/src/utility/shortestPaths.h b/src/utility/shortestPaths.h
index 64fa16ca6..2c8927609 100644
--- a/src/utility/shortestPaths.h
+++ b/src/utility/shortestPaths.h
@@ -99,10 +99,10 @@ namespace storm {
             private:
                 storage::SparseMatrix<T> transitionMatrix;
                 state_t numStates; // includes meta-target, i.e. states in model + 1
-                std::unordered_set<state_t> targetSet;
                 state_t metaTarget;
                 storage::BitVector initialStates;
                 state_list_t targets;
+                std::unordered_map<state_t, T> targetProbMap;
 
                 std::vector<state_list_t>             graphPredecessors;
                 std::vector<boost::optional<state_t>> shortestPathPredecessors;