/// <summary>
 /// Interface for calculating Casual Footprint fitness
 /// </summary>
 /// <param name="net">Petri net representing the model</param>
 /// <param name="logDict">Sequence dictionary of the log</param>
 /// <returns>fitness E [0,1]</returns>
 public static double CalculateCasualFootprintFitness(PetriNet net, Dictionary <List <string>, int> logDict)
 {
     return((double)CasualFootprints.CalculateCasualFootprintFitness(net, logDict));
 }
        /// <summary>
        /// Interface for calculating Casual Footprint fitness
        /// </summary>
        /// <param name="net">Petri net representing the model</param>
        /// <param name="pathToLogFile"></param>
        /// <returns>fitness E [0,1]</returns>
        public static double CalculateCasualFootprintFitness(PetriNet net, string pathToLogFile)
        {
            Dictionary <List <string>, int> log = FileParser.ParseXES(pathToLogFile);

            return((double)CasualFootprints.CalculateCasualFootprintFitness(net, log));
        }
        /// <summary>
        /// Token replay technique
        /// </summary>
        /// <param name="minedNet">Mined model</param>
        /// <param name="pathToLogFile">path to the log file</param>
        /// <returns>Fitness E [0;1]</returns>
        public static double TokenReplayFitness(PetriNet minedNet, string pathToLogFile)
        {
            Dictionary <List <string>, int> log = FileParser.ParseXES(pathToLogFile);

            return(TokenReplayFitness(minedNet, log));
        }