public static int RunMapFinder(FinderOption option) { if (option.Finder == FinderEnum.GA) { Console.WriteLine("use run-ga for genetic algorithm"); return(1); } var map = _loadMap(option.MapFileName, option.Diagonal); if (map == null) { return(1); } var finder = (new FinderFactory()).GetImplementation(option.Finder); var heuristic = (new HeuristicFactory()).GetImplementation(option.Heuristic); if (finder is IDAStarFinder) { var idaFinder = finder as IDAStarFinder; idaFinder.TrackRecursion = !option.IDATrackRecursion; idaFinder.TimeLimit = option.IDATimeout; } return(_runFinder(finder, heuristic, map, option.Window, option.NoShowSteps, option.BlockSize, option.UISleep)); }
public Pair Find(FinderOption option) { IEnumerable <Pair> pairs = GeneratePairs(); return((option == FinderOption.Closest ? FindPairWithSmallestAgeDifference(pairs) : FindPairWithLargestAgeDifference(pairs)) ?? Pair.Empty); }