public Core.Sudoku SolveCombinatorial(Core.Sudoku s)
        {
            var sudokuTab = (Core.Sudoku)s.Clone();

            Console.WriteLine("Begin solving Sudoku using combinatorial evolution");
            Console.WriteLine("The Sudoku is:");

            var sudoku = CombinatorialSudoku.Convert(sudokuTab);

            const int numOrganisms = 200;
            const int maxEpochs    = 5000;
            const int maxRestarts  = 40;

            Console.WriteLine($"Setting numOrganisms: {numOrganisms}");
            Console.WriteLine($"Setting maxEpochs: {maxEpochs}");
            Console.WriteLine($"Setting maxRestarts: {maxRestarts}");

            var solver       = new CombinatorialSudokuSolver();
            var solvedSudoku = solver.Solve(sudoku, numOrganisms, maxEpochs, maxRestarts);

            Console.WriteLine(solvedSudoku.Error == 0 ? "Success" : "Did not find optimal solution");
            Console.WriteLine("End Sudoku using combinatorial evolution");
            var solution = ConvertSolution(solvedSudoku);

            return(solution);
        }
Exemple #2
0
        public Core.Sudoku Solve(Core.Sudoku s)
        {
            var solution = (Core.Sudoku)s.Clone();
            var model    = BaseModel.LoadModel(DataSetHelper.GetFullPath(@"Sudoku.NeuralNetwork\Models\sudoku.model"));

            solution = Model.SolveSudoku(solution, model);
            Console.WriteLine(solution);

            return(solution);
        }