示例#1
0
 /// <param name="trace">Workflow trace</param>
 /// <param name="pNet">Petri net</param>
 /// <param name="worstCostOnModel">Worst cost on the model</param>
 /// <param name="traceMoveCost">Trace move cost</param>
 /// <param name="modelMoveCost">Model move cost</param>
 public AlignmentOnTrace(WorkflowTrace trace, PetriNet pNet, double worstCostOnModel, int traceMoveCost = 1, int modelMoveCost = 1)
 {
     InitCosts(traceMoveCost, modelMoveCost);
     InitTransitionsAndOptimalCost(trace, pNet, traceMoveCost, modelMoveCost);
     WorstCost = worstCostOnModel + AlignmentUtils.ComputeWorstCostOfTrace(trace, traceMoveCost);
     ComputeFitness();
 }
示例#2
0
 /// <param name="workflowLog">Workflow log</param>
 /// <param name="pNet">Petri net</param>
 /// <param name="traceMoveCost">Trace move cost</param>
 /// <param name="modelMoveCost">Model move cost</param>
 public AlignmentOnLog(WorkflowLog workflowLog, PetriNet pNet, int traceMoveCost = 1, int modelMoveCost = 1)
 {
     TraceMoveCost   = traceMoveCost;
     ModelMoveCost   = modelMoveCost;
     AlignmentsOnLog = AlignmentUtils.OptimalAlignmentsOnLog(workflowLog, pNet, traceMoveCost, modelMoveCost);
     ComputeFitness();
 }
示例#3
0
 /// <param name="pNet1">Petri net</param>
 /// <param name="pNet2">Petri net</param>
 /// <param name="pNet1MoveCost">Trace move cost</param>
 /// <param name="pNet2MoveCost">Model move cost</param>
 public AlignmentOnNets(PetriNet pNet1, PetriNet pNet2, int pNet1MoveCost = 1, int pNet2MoveCost = 1)
 {
     DistinguishPlacesAndTransitions(pNet1);
     InitCosts(pNet1MoveCost, pNet2MoveCost);
     InitTransitionsAndOptimalCost(pNet1, pNet2, pNet1MoveCost, pNet2MoveCost);
     WorstCost = AlignmentUtils.ComputeWorstCostOfModel(pNet1, pNet1MoveCost) +
                 AlignmentUtils.ComputeWorstCostOfModel(pNet2, pNet2MoveCost);
     ComputeFitness();
 }
示例#4
0
 /// <summary>
 /// Initialize Transitions and OptimalCost
 /// </summary>
 /// <param name="trace">Workflow trace</param>
 /// <param name="pNet">Petri net</param>
 /// <param name="traceMoveCost">Trace move cost</param>
 /// <param name="modelMoveCost">Model move cost</param>
 private void InitTransitionsAndOptimalCost(WorkflowTrace trace, PetriNet pNet, int traceMoveCost, int modelMoveCost)
 {
     Transitions = AlignmentUtils.OptimalAlignmentOnTrace(trace, pNet, traceMoveCost, modelMoveCost);
     OptimalCost = AlignmentUtils.ComputeCostOfAlignment(Transitions);
 }
示例#5
0
 /// <summary>
 /// Initialize Transitions and OptimalCost
 /// </summary>
 /// <param name="trace">Workflow trace</param>
 /// <param name="pNet">Petri net</param>
 /// <param name="traceMoveCost">Trace move cost</param>
 /// <param name="modelMoveCost">Model move cost</param>
 private void InitTransitionsAndOptimalCost(PetriNet pNet1, PetriNet pNet2, int pNet1MoveCost, int pNet2MoveCost)
 {
     Transitions = AlignmentUtils.OptimalAlignmentOnNets(pNet1, pNet2, pNet1MoveCost, pNet2MoveCost);
     OptimalCost = AlignmentUtils.ComputeCostOfAlignment(Transitions);
 }