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); }
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); }