Browse Source

DTMCFromMDPMemorylessAdversary gives actions from MDP.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10077 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 11 years ago
parent
commit
9aae5befb4
  1. 42
      prism/src/explicit/DTMCFromMDPMemorylessAdversary.java

42
prism/src/explicit/DTMCFromMDPMemorylessAdversary.java

@ -26,15 +26,19 @@
package explicit; package explicit;
import java.util.*;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import explicit.rewards.MCRewards;
import parser.State; import parser.State;
import parser.Values; import parser.Values;
import prism.ModelType; import prism.ModelType;
import prism.Pair;
import prism.PrismException; import prism.PrismException;
import prism.PrismNotSupportedException; import prism.PrismNotSupportedException;
import explicit.rewards.MCRewards;
/** /**
* Explicit-state representation of a DTMC, constructed (implicitly) * Explicit-state representation of a DTMC, constructed (implicitly)
@ -175,37 +179,31 @@ public class DTMCFromMDPMemorylessAdversary extends DTMCExplicit
// Accessors (for DTMC) // Accessors (for DTMC)
@Override
public int getNumTransitions(int s) public int getNumTransitions(int s)
{ {
return adv[s] >= 0 ? mdp.getNumTransitions(s, adv[s]) : 0; return adv[s] >= 0 ? mdp.getNumTransitions(s, adv[s]) : 0;
} }
@Override
public Iterator<Entry<Integer, Double>> getTransitionsIterator(int s) public Iterator<Entry<Integer, Double>> getTransitionsIterator(int s)
{ {
if (adv[s] >= 0) { if (adv[s] >= 0) {
return mdp.getTransitionsIterator(s, adv[s]); return mdp.getTransitionsIterator(s, adv[s]);
} else { } else {
// Empty iterator // Empty iterator
return new Iterator<Entry<Integer, Double>>()
{
@Override
public boolean hasNext()
{
return false;
}
@Override
public Entry<Integer, Double> next()
{
return null;
}
@Override
public void remove()
{
throw new UnsupportedOperationException();
}
};
return new ArrayList<Entry<Integer,Double>>().iterator();
}
}
@Override
public Iterator<Entry<Integer, Pair<Double, Object>>> getTransitionsAndActionsIterator(int s)
{
if (adv[s] >= 0) {
return new DTMCExplicit.AddDefaultActionToTransitionsIterator(mdp.getTransitionsIterator(s, adv[s]), mdp.getAction(s, adv[s]));
} else {
// Empty iterator
return new ArrayList<Entry<Integer,Pair<Double, Object>>>().iterator();
} }
} }

Loading…
Cancel
Save