public abstract class AbstractNAryTreeOracle<S extends NAryTreeState,M extends MovementSequence<S,NAryTreeLabel,NAryTreeNode>>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
AbstractNAryTreeOracle.NodeSet |
Modifier and Type | Field and Description |
---|---|
protected gnu.trove.map.TShortObjectMap<AbstractNAryTreeOracle.NodeSet> |
allowedModelMoves |
protected java.util.Map<org.processmining.onlineconformance.oracle.treebased.AbstractNAryTreeOracle.StateLabel,M[]> |
cache |
protected int |
configuration |
protected byte[] |
initialState |
protected int |
maxDepth |
protected gnu.trove.map.TIntIntMap |
moveModelCost |
protected java.util.Set<NAryTreeLabel> |
nodeLabels |
protected AbstractNAryTreeOracle.NodeSet |
nodesUnderLoop |
protected static int |
NONODE |
protected int |
scaling |
protected org.processmining.plugins.etm.model.narytree.StateBuilder |
statebuilder |
protected int |
stopAt |
protected org.processmining.plugins.etm.model.narytree.NAryTree |
tree |
protected int |
treeSize |
Constructor and Description |
---|
AbstractNAryTreeOracle(org.processmining.plugins.etm.model.narytree.NAryTree tree,
int configuration,
gnu.trove.map.TIntIntMap moveModelCost,
int maxDepth) |
AbstractNAryTreeOracle(org.processmining.plugins.etm.model.narytree.NAryTree tree,
int configuration,
gnu.trove.map.TIntIntMap moveModelCost,
int maxDepth,
boolean useCache,
int stopAt) |
Modifier and Type | Method and Description |
---|---|
protected abstract M |
appendOrToMovementSequence(M ms,
S toState,
int orNode,
int costForNode) |
abstract S |
createCopy(S currentState) |
protected abstract M |
createMovementSequence(S startState,
NAryTreeStateVisit<S> lastState,
S toState,
NAryTreeLabel label,
int nodeEnabled,
int cost)
Create a movementsequence from "startState" to "toState".
|
protected abstract S |
createState(S predecessor,
byte[] newState) |
java.util.TreeSet<NAryTreeStateVisit<S>> |
createToDoSet() |
AbstractNAryTreeOracle.NodeSet |
determineNewAllowedModelMoves(AbstractNAryTreeOracle.NodeSet scopedModelMoves,
AbstractNAryTreeOracle.NodeSet currentModelMoves,
byte[] fromState,
byte[] newState)
determines the new model move set.
|
java.util.Map<org.processmining.onlineconformance.oracle.treebased.AbstractNAryTreeOracle.StateLabel,M[]> |
getCache() |
protected int |
getCostForNode(int nodeEnabled) |
int |
getDepth() |
protected int |
getDepthForNode(int nodeEnabled) |
int |
getHits() |
abstract S |
getInitialState() |
int |
getMisses() |
int |
getPolls() |
int |
getScaling() |
protected AbstractNAryTreeOracle.NodeSet |
getScope(int treeSize,
short nodeLabel) |
java.util.Collection<M> |
getSyncronousMoveSequences(S currentState,
NAryTreeLabel label) |
boolean |
isFinal(S currentState) |
void |
resetHitMiss() |
void |
setScaling(int scaling) |
protected <T> T[] |
toArray(int length,
T... array) |
protected static final int NONODE
protected final org.processmining.plugins.etm.model.narytree.NAryTree tree
protected final int configuration
protected final org.processmining.plugins.etm.model.narytree.StateBuilder statebuilder
protected final byte[] initialState
protected int scaling
protected final gnu.trove.map.TShortObjectMap<AbstractNAryTreeOracle.NodeSet> allowedModelMoves
protected final int stopAt
protected final java.util.Map<org.processmining.onlineconformance.oracle.treebased.AbstractNAryTreeOracle.StateLabel,M extends MovementSequence<S,NAryTreeLabel,NAryTreeNode>[]> cache
protected final java.util.Set<NAryTreeLabel> nodeLabels
protected final int maxDepth
protected final gnu.trove.map.TIntIntMap moveModelCost
protected final int treeSize
protected final AbstractNAryTreeOracle.NodeSet nodesUnderLoop
public AbstractNAryTreeOracle(org.processmining.plugins.etm.model.narytree.NAryTree tree, int configuration, gnu.trove.map.TIntIntMap moveModelCost, int maxDepth)
public AbstractNAryTreeOracle(org.processmining.plugins.etm.model.narytree.NAryTree tree, int configuration, gnu.trove.map.TIntIntMap moveModelCost, int maxDepth, boolean useCache, int stopAt)
public java.util.Collection<M> getSyncronousMoveSequences(S currentState, NAryTreeLabel label)
public AbstractNAryTreeOracle.NodeSet determineNewAllowedModelMoves(AbstractNAryTreeOracle.NodeSet scopedModelMoves, AbstractNAryTreeOracle.NodeSet currentModelMoves, byte[] fromState, byte[] newState)
scopedModelMoves
- currentModelMoves
- fromState
- newState
- public java.util.TreeSet<NAryTreeStateVisit<S>> createToDoSet()
@SafeVarargs protected final <T> T[] toArray(int length, T... array)
public abstract S getInitialState()
protected abstract M createMovementSequence(S startState, NAryTreeStateVisit<S> lastState, S toState, NAryTreeLabel label, int nodeEnabled, int cost)
currentState
- toState
- label
- nodeEnabled
- cost
- protected abstract M appendOrToMovementSequence(M ms, S toState, int orNode, int costForNode)
protected int getCostForNode(int nodeEnabled)
protected int getDepthForNode(int nodeEnabled)
public boolean isFinal(S currentState)
public java.util.Map<org.processmining.onlineconformance.oracle.treebased.AbstractNAryTreeOracle.StateLabel,M[]> getCache()
public int getHits()
public int getMisses()
public int getPolls()
public int getDepth()
public void resetHitMiss()
public int getScaling()
public void setScaling(int scaling)
protected AbstractNAryTreeOracle.NodeSet getScope(int treeSize, short nodeLabel)