Class ModelRepair_SubProcess


  • public class ModelRepair_SubProcess
    extends java.lang.Object
    • Field Detail

      • dnode_id_comparator

        public java.util.Comparator<hub.top.uma.DNode> dnode_id_comparator
    • Constructor Detail

      • ModelRepair_SubProcess

        public ModelRepair_SubProcess​(hub.top.petrinet.PetriNet net,
                                      hub.top.uma.DNodeRefold build)
        Standard constructor for view generation. The argument takes a PetriNet and a branching process construction object DNodeBP of this net.
        Parameters:
        net -
        build -
    • Method Detail

      • 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 net that did not more than minOccurrences time
      • 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 sets pn_nodeOccurrences for 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.InvalidModelException
        java.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.InvalidModelException
        java.io.IOException
      • main

        public static void main​(java.lang.String[] args)