/// <param name="successorMatrix">Direct succession matrix</param> /// <param name="heuristicsMinerSettings">Heuristic miner settings</param> public DependencyGraph(SuccessorMatrix successorMatrix, HeuristicMinerSettings heuristicsMinerSettings) { Activities = successorMatrix.Activities; ActivityIndices = successorMatrix.ActivityIndices; StartActivity = successorMatrix.ActivityIndices[successorMatrix.StartActivities.First()]; EndActivity = successorMatrix.ActivityIndices[successorMatrix.EndActivities.First()]; var dependencyMatrix = new DependencyMatrix(successorMatrix); Settings = heuristicsMinerSettings; CreateDependencyGraph(successorMatrix, dependencyMatrix); }
/// <summary> /// Mine Petri net from a workflow log based on given settings /// </summary> /// <param name="workflowLog">Workflow log</param> /// <param name="heuristicMinerSettings">Heuristic miner settings</param> /// <returns></returns> public static PetriNet MinePetriNet(WorkflowLog workflowLog, HeuristicMinerSettings heuristicMinerSettings) { return(CNetUtils.ConvertCNetToPetriNet(MineCNet(workflowLog, heuristicMinerSettings))); }
/// <summary> /// Mine Causal net from a workflow log based on given settings /// </summary> /// <param name="workflowLog">Workflow log</param> /// <param name="heuristicsMinerSettings">Heuristic miner settings</param> /// <returns>Causal net</returns> public static CNet MineCNet(WorkflowLog workflowLog, HeuristicMinerSettings heuristicsMinerSettings) { //Preprocessing the log; each trace starts with same activity and ends with same activity WorkflowLogUtils.WorkflowLogPreprocessor(workflowLog); return(new CNet(workflowLog, heuristicsMinerSettings)); }