public abstract class OptimalMiner<M>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected double |
bestDistance |
protected SearchState<M> |
bestState |
protected java.util.Map<java.lang.Integer,org.deckfour.xes.classification.XEventClass> |
classMapping |
protected org.processmining.framework.plugin.PluginContext |
context |
protected java.util.Map<org.deckfour.xes.classification.XEventClass,java.lang.Integer> |
costMap |
protected SearchState<M> |
currentState |
protected org.deckfour.xes.classification.XEventClasses |
eventClasses |
protected DistanceFunction |
function |
protected org.deckfour.xes.model.XLog |
log |
protected LogAbstraction |
origLog |
protected M |
origModel |
protected java.util.Map<nl.tue.astar.Trace,gnu.trove.map.TObjectIntMap<nl.tue.astar.Trace>> |
traceMapping |
protected double |
trustLog |
protected double |
trustModel |
Constructor and Description |
---|
OptimalMiner(DistanceFunction function,
org.processmining.framework.plugin.PluginContext context,
org.deckfour.xes.model.XLog log,
M model) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
computeDistance(SearchState<M> state)
Checks the distance between log and original log and model and original model.
|
org.deckfour.xes.model.XLog |
getBestLog() |
M |
getBestModel() |
protected abstract M |
getClone(M model) |
protected static org.deckfour.xes.classification.XEventClasses |
getEventClasses(org.deckfour.xes.model.XLog log) |
protected double |
getLogDistance(LogAbstraction log)
Levenshtein like distance
Assumes that traceMapping is kept consistent throughout the log edit operations!
|
java.util.Map<nl.tue.astar.Trace,gnu.trove.map.TObjectIntMap<nl.tue.astar.Trace>> |
getTraceMapping() |
protected abstract void |
performSearch()
Tries to find a log-model pair that is best in terms of a score
|
void |
searchForBetterLogAndModel() |
void |
setTrustLevels(double logTrust,
double modelTrust)
Trust levels are the constraints on the search.
|
protected final LogAbstraction origLog
protected final M origModel
protected final java.util.Map<nl.tue.astar.Trace,gnu.trove.map.TObjectIntMap<nl.tue.astar.Trace>> traceMapping
protected final DistanceFunction function
protected double trustLog
protected double trustModel
protected double bestDistance
protected SearchState<M> bestState
protected SearchState<M> currentState
protected org.processmining.framework.plugin.PluginContext context
protected final org.deckfour.xes.classification.XEventClasses eventClasses
protected final java.util.Map<java.lang.Integer,org.deckfour.xes.classification.XEventClass> classMapping
protected java.util.Map<org.deckfour.xes.classification.XEventClass,java.lang.Integer> costMap
protected org.deckfour.xes.model.XLog log
public OptimalMiner(DistanceFunction function, org.processmining.framework.plugin.PluginContext context, org.deckfour.xes.model.XLog log, M model)
protected static org.deckfour.xes.classification.XEventClasses getEventClasses(org.deckfour.xes.model.XLog log)
protected abstract void computeDistance(SearchState<M> state) throws DistanceThresholdExceededException
state
- the state to compute the distance for.DistanceThresholdExceededException
- when the distance is too far from the original model or log according
to the given trust boundariesprotected double getLogDistance(LogAbstraction log)
log
- public org.deckfour.xes.model.XLog getBestLog()
public M getBestModel()
public void searchForBetterLogAndModel()
protected abstract void performSearch()
public java.util.Map<nl.tue.astar.Trace,gnu.trove.map.TObjectIntMap<nl.tue.astar.Trace>> getTraceMapping()
public void setTrustLevels(double logTrust, double modelTrust)
logTrust
- value between 0 and 1 setting the search radius (1 means no room for change - i.e., we trust the log completely)modelTrust
- value between 0 and 1 setting the search radius on the model (1 means cannot move, 0 means, we do not constrain the movement)