|
|
@ -722,19 +722,18 @@ public class STPGAbstrSimple extends ModelSimple implements STPG |
|
|
|
|
|
|
|
|
minmax1 = 0; |
|
|
minmax1 = 0; |
|
|
first1 = true; |
|
|
first1 = true; |
|
|
dsIter=-1; |
|
|
|
|
|
|
|
|
dsIter = -1; |
|
|
step = trans.get(s); |
|
|
step = trans.get(s); |
|
|
for (DistributionSet distrs : step) { |
|
|
for (DistributionSet distrs : step) { |
|
|
dsIter++; |
|
|
dsIter++; |
|
|
minmax2 = 0; |
|
|
minmax2 = 0; |
|
|
first2 = true; |
|
|
first2 = true; |
|
|
|
|
|
|
|
|
dIter=-1; |
|
|
|
|
|
|
|
|
dIter = -1; |
|
|
for (Distribution distr : distrs) { |
|
|
for (Distribution distr : distrs) { |
|
|
dIter++; |
|
|
dIter++; |
|
|
rewCount = rewards.getTransitionRewardCount(s, dsIter, dIter); |
|
|
rewCount = rewards.getTransitionRewardCount(s, dsIter, dIter); |
|
|
for(rewIter = 0; rewIter<rewCount; rewIter++) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
for (rewIter = 0; rewIter < rewCount; rewIter++) { |
|
|
// Compute sum for this distribution |
|
|
// Compute sum for this distribution |
|
|
d = rewards.getTransitionReward(s, dsIter, dIter, rewIter); |
|
|
d = rewards.getTransitionReward(s, dsIter, dIter, rewIter); |
|
|
|
|
|
|
|
|
@ -782,19 +781,18 @@ public class STPGAbstrSimple extends ModelSimple implements STPG |
|
|
dIter++; |
|
|
dIter++; |
|
|
|
|
|
|
|
|
rewCount = rewards.getTransitionRewardCount(s, dsIter, dIter); |
|
|
rewCount = rewards.getTransitionRewardCount(s, dsIter, dIter); |
|
|
for(rewIter = 0; rewIter<rewCount; rewIter++) |
|
|
|
|
|
{ |
|
|
|
|
|
// Compute sum for this distribution |
|
|
|
|
|
d = rewards.getTransitionReward(s,dsIter,dIter, rewIter); |
|
|
|
|
|
for (Map.Entry<Integer, Double> e : distr) { |
|
|
|
|
|
k = (Integer) e.getKey(); |
|
|
|
|
|
prob = (Double) e.getValue(); |
|
|
|
|
|
d += prob * vect[k]; |
|
|
|
|
|
} |
|
|
|
|
|
// Check whether we have exceeded min/max so far |
|
|
|
|
|
if (first2 || (min2 && d < minmax2) || (!min2 && d > minmax2)) |
|
|
|
|
|
minmax2 = d; |
|
|
|
|
|
first2 = false; |
|
|
|
|
|
|
|
|
for (rewIter = 0; rewIter < rewCount; rewIter++) { |
|
|
|
|
|
// Compute sum for this distribution |
|
|
|
|
|
d = rewards.getTransitionReward(s, dsIter, dIter, rewIter); |
|
|
|
|
|
for (Map.Entry<Integer, Double> e : distr) { |
|
|
|
|
|
k = (Integer) e.getKey(); |
|
|
|
|
|
prob = (Double) e.getValue(); |
|
|
|
|
|
d += prob * vect[k]; |
|
|
|
|
|
} |
|
|
|
|
|
// Check whether we have exceeded min/max so far |
|
|
|
|
|
if (first2 || (min2 && d < minmax2) || (!min2 && d > minmax2)) |
|
|
|
|
|
minmax2 = d; |
|
|
|
|
|
first2 = false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// Store strategy info if value matches |
|
|
// Store strategy info if value matches |
|
|
|