Class ModelRepair_SubProcess
- java.lang.Object
-
- org.processmining.modelrepair.plugins.ModelRepair_SubProcess
-
public class ModelRepair_SubProcess extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classModelRepair_SubProcess.MoveOnLogstatic classModelRepair_SubProcess.PetriNetWithMarkingsstatic classModelRepair_SubProcess.SubLog
-
Field Summary
Fields Modifier and Type Field Description java.util.Comparator<hub.top.uma.DNode>dnode_id_comparator
-
Constructor Summary
Constructors Constructor Description ModelRepair_SubProcess(hub.top.petrinet.PetriNet net, hub.top.uma.DNodeRefold build)Standard constructor for view generation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<ModelRepair_SubProcess.SubLog>alignExtensions(java.util.List<ModelRepair_SubProcess.SubLog> extension)voidextendModelWithMoveOnLog(hub.top.petrinet.PetriNet subNet, hub.top.petrinet.Transition start, hub.top.petrinet.Transition end, java.util.Collection<java.util.List<java.lang.String>> subLog, java.util.Collection<hub.top.petrinet.Place> location, java.lang.String subName, int weight, boolean isIsolatedExtension)Extend Petri net with a subNet that can replay the given subLog add the given location.voidextendModelWithMoveOnModel()java.util.List<ModelRepair_SubProcess.SubLog>getExtensions()java.util.Set<hub.top.petrinet.Node>getInfrequentNodes(int minOccurrences)static hub.top.uma.DNodeRefoldgetInitialUnfolding(hub.top.petrinet.ISystemModel sysModel)ModelRepair_SubProcess.PetriNetWithMarkingsgetLoop(java.util.Set<hub.top.petrinet.Node> loopBody, java.util.List<hub.top.petrinet.Place> loopEntry, java.util.List<hub.top.petrinet.Place> loopExit)java.util.Set<hub.top.petrinet.Node>getLoopBody(java.util.List<java.util.List<ModelRepair_SubProcess.MoveOnLog>> loopHypothesis)Find the body of a loop that contains all transitions related to log moves in the given loop hypotheses.java.util.List<hub.top.petrinet.Place>getLoopEntry(java.util.Set<hub.top.petrinet.Node> loopBody)java.util.List<hub.top.petrinet.Place>getLoopExit(java.util.Set<hub.top.petrinet.Node> loopBody)java.util.List<java.util.List<ModelRepair_SubProcess.MoveOnLog>>getLoopHypotheses(ModelRepair_SubProcess.SubLog sublog)static voidmain(java.lang.String[] args)java.util.Set<hub.top.petrinet.Node>removeInfrequentNodes(int minOccurrences)Remove all nodes occurring less than threshold timesvoidrepair(java.lang.String systemFile, java.util.List<SimpleAlignment> traces, java.util.Map<java.lang.String,java.lang.String> e2t)java.util.List<hub.top.petrinet.Place>repairFinalMarking(java.util.Collection<hub.top.petrinet.Place> finalMarking, boolean updateFinalMarking)java.util.List<java.lang.Integer>replayAlignment(java.lang.String systemFile, java.util.List<SimpleAlignment> traces, java.util.Map<java.lang.String,java.lang.String> e2t)
-
-
-
Method Detail
-
getExtensions
public java.util.List<ModelRepair_SubProcess.SubLog> getExtensions()
-
alignExtensions
public java.util.List<ModelRepair_SubProcess.SubLog> alignExtensions(java.util.List<ModelRepair_SubProcess.SubLog> extension)
-
getLoopHypotheses
public java.util.List<java.util.List<ModelRepair_SubProcess.MoveOnLog>> getLoopHypotheses(ModelRepair_SubProcess.SubLog sublog)
-
getLoopBody
public java.util.Set<hub.top.petrinet.Node> getLoopBody(java.util.List<java.util.List<ModelRepair_SubProcess.MoveOnLog>> loopHypothesis)
Find the body of a loop that contains all transitions related to log moves in the given loop hypotheses. The loop body consists of all transitions given in the log moves, their pre- and post-places, and all nodes of the net that lie on a path between any two of the given transitions.- Parameters:
loopHypothesis-- Returns:
- the set of nodes of the loop body
-
getLoopEntry
public java.util.List<hub.top.petrinet.Place> getLoopEntry(java.util.Set<hub.top.petrinet.Node> loopBody)
- Parameters:
loopBody-- Returns:
- the nodes of the loop body that have no predecessor in the loop body
-
getLoopExit
public java.util.List<hub.top.petrinet.Place> getLoopExit(java.util.Set<hub.top.petrinet.Node> loopBody)
- Parameters:
loopBody-- Returns:
- the nodes of the loop body that have no successor in the loop body
-
getLoop
public ModelRepair_SubProcess.PetriNetWithMarkings getLoop(java.util.Set<hub.top.petrinet.Node> loopBody, java.util.List<hub.top.petrinet.Place> loopEntry, java.util.List<hub.top.petrinet.Place> loopExit)
-
getInfrequentNodes
public java.util.Set<hub.top.petrinet.Node> getInfrequentNodes(int minOccurrences)
- Parameters:
net-minOccurrences-- Returns:
- the nodes of
netthat did not more thanminOccurrencestime
-
extendModelWithMoveOnModel
public void extendModelWithMoveOnModel()
-
extendModelWithMoveOnLog
public void extendModelWithMoveOnLog(hub.top.petrinet.PetriNet subNet, hub.top.petrinet.Transition start, hub.top.petrinet.Transition end, java.util.Collection<java.util.List<java.lang.String>> subLog, java.util.Collection<hub.top.petrinet.Place> location, java.lang.String subName, int weight, boolean isIsolatedExtension)Extend Petri net with a subNet that can replay the given subLog add the given location. The subNet has well-defined start and end transitions that consume from and produce on the location, respectively. The method setspn_nodeOccurrencesfor all new transitions and places.- Parameters:
subNet-start-end-subLog-location-subName-weight-
-
removeInfrequentNodes
public java.util.Set<hub.top.petrinet.Node> removeInfrequentNodes(int minOccurrences)
Remove all nodes occurring less than threshold times- Parameters:
minOccurrences-- Returns:
- all removed nodes
-
repairFinalMarking
public java.util.List<hub.top.petrinet.Place> repairFinalMarking(java.util.Collection<hub.top.petrinet.Place> finalMarking, boolean updateFinalMarking)- Parameters:
finalMarking-updateFinalMarking- if set to 'true', final marking will include all structural final place and all original final places not touched by the repair (thus originally final places touched by repair are no longer in the final marking)- Returns:
- repaired final marking of
net
-
getInitialUnfolding
public static hub.top.uma.DNodeRefold getInitialUnfolding(hub.top.petrinet.ISystemModel sysModel) throws hub.top.uma.InvalidModelException- Throws:
hub.top.uma.InvalidModelException
-
replayAlignment
public java.util.List<java.lang.Integer> replayAlignment(java.lang.String systemFile, java.util.List<SimpleAlignment> traces, java.util.Map<java.lang.String,java.lang.String> e2t) throws hub.top.uma.InvalidModelException, java.io.IOException- Throws:
hub.top.uma.InvalidModelExceptionjava.io.IOException
-
repair
public void repair(java.lang.String systemFile, java.util.List<SimpleAlignment> traces, java.util.Map<java.lang.String,java.lang.String> e2t) throws hub.top.uma.InvalidModelException, java.io.IOException- Throws:
hub.top.uma.InvalidModelExceptionjava.io.IOException
-
main
public static void main(java.lang.String[] args)
-
-