|
|
@ -38,13 +38,27 @@ public class StateRewardsSimple extends StateRewards |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Constructor: all zero rewards. |
|
|
* Constructor: all zero rewards. |
|
|
* @param numStates Number of states |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
public StateRewardsSimple(int numStates) |
|
|
|
|
|
|
|
|
public StateRewardsSimple() |
|
|
{ |
|
|
{ |
|
|
stateRewards = new ArrayList<Double>(numStates); |
|
|
|
|
|
for (int i = 0; i < numStates; i++) |
|
|
|
|
|
stateRewards.add(0.0); |
|
|
|
|
|
|
|
|
stateRewards = new ArrayList<Double>(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Copy constructor |
|
|
|
|
|
* @param rews Rewards to copy |
|
|
|
|
|
*/ |
|
|
|
|
|
public StateRewardsSimple(StateRewardsSimple rews) |
|
|
|
|
|
{ |
|
|
|
|
|
if (rews.stateRewards == null) { |
|
|
|
|
|
stateRewards = null; |
|
|
|
|
|
} else { |
|
|
|
|
|
int n = rews.stateRewards.size(); |
|
|
|
|
|
stateRewards = new ArrayList<Double>(n); |
|
|
|
|
|
for (int i = 0; i < n; i++) { |
|
|
|
|
|
stateRewards.add(rews.stateRewards.get(i)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Mutators |
|
|
// Mutators |
|
|
@ -54,8 +68,7 @@ public class StateRewardsSimple extends StateRewards |
|
|
*/ |
|
|
*/ |
|
|
public void setStateReward(int s, double r) |
|
|
public void setStateReward(int s, double r) |
|
|
{ |
|
|
{ |
|
|
// Nothing to do for zero reward |
|
|
|
|
|
if (r == 0.0) |
|
|
|
|
|
|
|
|
if (r == 0.0 && s >= stateRewards.size()) |
|
|
return; |
|
|
return; |
|
|
// If list not big enough, extend |
|
|
// If list not big enough, extend |
|
|
int n = s - stateRewards.size() + 1; |
|
|
int n = s - stateRewards.size() + 1; |
|
|
@ -75,9 +88,16 @@ public class StateRewardsSimple extends StateRewards |
|
|
{ |
|
|
{ |
|
|
try { |
|
|
try { |
|
|
return stateRewards.get(s); |
|
|
return stateRewards.get(s); |
|
|
} |
|
|
|
|
|
catch (ArrayIndexOutOfBoundsException e) { |
|
|
|
|
|
|
|
|
} catch (ArrayIndexOutOfBoundsException e) { |
|
|
return 0.0; |
|
|
return 0.0; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Other |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public StateRewardsSimple deepCopy() |
|
|
|
|
|
{ |
|
|
|
|
|
return new StateRewardsSimple(this); |
|
|
|
|
|
} |
|
|
} |
|
|
} |