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));
        }
Example #2
0
        public Pair Find(FinderOption option)
        {
            IEnumerable <Pair> pairs = GeneratePairs();

            return((option == FinderOption.Closest ?
                    FindPairWithSmallestAgeDifference(pairs) :
                    FindPairWithLargestAgeDifference(pairs)) ?? Pair.Empty);
        }