Browse Source

Bugfixes + comments in buildMDPRewardsFromPrismExplicit in explicit.ConstructRewards (spotted by Ibrahim Abdoulahi).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@6740 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 13 years ago
parent
commit
9e886fc4ec
  1. 32
      prism/src/explicit/rewards/ConstructRewards.java

32
prism/src/explicit/rewards/ConstructRewards.java

@ -180,14 +180,16 @@ public class ConstructRewards
try {
if (rews != null) {
// Open rews file
// Open state rewards file
in = new BufferedReader(new FileReader(rews));
// Ignore first line (num states)
// Ignore first line
s = in.readLine();
lineNum = 1;
if (s == null)
throw new PrismException("Missing first line of .rews file");
// Go though list of transitions in file
if (s == null) {
in.close();
throw new PrismException("Missing first line of state rewards file");
}
// Go though list of state rewards in file
s = in.readLine();
lineNum++;
while (s != null) {
@ -205,21 +207,23 @@ public class ConstructRewards
in.close();
}
} catch (IOException e) {
throw new PrismException("Could not read rewards from file \"" + rewt + "\"" + e);
throw new PrismException("Could not read state rewards from file \"" + rews + "\"" + e);
} catch (NumberFormatException e) {
throw new PrismException("Problem in .rewt file (line " + lineNum + ") for MDP");
throw new PrismException("Problem in state rewards file (line " + lineNum + ") for MDP");
}
try {
if (rewt != null) {
// Open rewt file
// Open transition rewards file
in = new BufferedReader(new FileReader(rewt));
// Ignore first line (num states)
// Ignore first line
s = in.readLine();
lineNum = 1;
if (s == null)
throw new PrismException("Missing first line of .rewt file");
// Go though list of transitions in file
if (s == null) {
in.close();
throw new PrismException("Missing first line of transition rewards file");
}
// Go though list of transition rewards in file
s = in.readLine();
lineNum++;
while (s != null) {
@ -228,7 +232,7 @@ public class ConstructRewards
ss = s.split(" ");
i = Integer.parseInt(ss[0]);
j = Integer.parseInt(ss[1]);
reward = Double.parseDouble(ss[2]);
reward = Double.parseDouble(ss[3]);
rs.setTransitionReward(i, j, reward);
}
s = in.readLine();
@ -240,7 +244,7 @@ public class ConstructRewards
} catch (IOException e) {
throw new PrismException("Could not read transition rewards from file \"" + rewt + "\"" + e);
} catch (NumberFormatException e) {
throw new PrismException("Problem in .rewt file (line " + lineNum + ") for MDP");
throw new PrismException("Problem in transition rewards file (line " + lineNum + ") for MDP");
}
return rs;

Loading…
Cancel
Save