static void nQueensSimulatedAnnealingSearch() { System.Console.WriteLine("\nNQueensDemo Simulated Annealing -->"); try { IProblem <NQueensBoard, QueenAction> problem = NQueensFunctions.createCompleteStateFormulationProblem( boardSize, NQueensBoard.Config.QUEENS_IN_FIRST_ROW); SimulatedAnnealingSearch <NQueensBoard, QueenAction> search = new SimulatedAnnealingSearch <NQueensBoard, QueenAction>( NQueensFunctions.createAttackingPairsHeuristicFunction(), new Scheduler(20, 0.045, 100)); SearchAgent <NQueensBoard, QueenAction> agent = new SearchAgent <NQueensBoard, QueenAction>(problem, search); System.Console.WriteLine(); printActions(agent.getActions()); System.Console.WriteLine("Search Outcome=" + search.getOutcome()); System.Console.WriteLine("Final State=\n" + search.getLastSearchState()); printInstrumentation(agent.getInstrumentation()); } catch (Exception e) { throw e; } }
static void eightPuzzleSimulatedAnnealingDemo() { System.Console.WriteLine("\nEightPuzzleDemo Simulated Annealing Search -->"); try { IProblem <EightPuzzleBoard, IAction> problem = new BidirectionalEightPuzzleProblem(random1); SimulatedAnnealingSearch <EightPuzzleBoard, IAction> search = new SimulatedAnnealingSearch <EightPuzzleBoard, IAction>( EightPuzzleFunctions.createManhattanHeuristicFunction()); SearchAgent <EightPuzzleBoard, IAction> agent = new SearchAgent <EightPuzzleBoard, IAction>(problem, search); printActions(agent.getActions()); System.Console.WriteLine("Search Outcome=" + search.getOutcome()); System.Console.WriteLine("Final State=\n" + search.getLastSearchState()); printInstrumentation(agent.getInstrumentation()); } catch (Exception e) { throw e; } }