Search in sources :

Example 1 with BidirectionalEightPuzzleProblem

use of aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem in project aima-java by aimacode.

the class AStarSearchTest method testAStarSearch.

@Test
public void testAStarSearch() {
    // Thoughtworks and Xin Lu of UCI
    try {
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {2,0,5,6,4,8,3,7,1});
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {0,8,7,6,5,4,3,2,1});
        EightPuzzleBoard board = new EightPuzzleBoard(new int[] { 7, 1, 8, 0, 4, 6, 2, 3, 5 });
        Problem<EightPuzzleBoard, Action> problem = new BidirectionalEightPuzzleProblem(board);
        SearchForActions<EightPuzzleBoard, Action> search = new AStarSearch<>(new GraphSearch<>(), EightPuzzleFunctions.createManhattanHeuristicFunction());
        SearchAgent<EightPuzzleBoard, Action> agent = new SearchAgent<>(problem, search);
        Assert.assertEquals(23, agent.getActions().size());
        // "926" GraphSearchReduced Frontier
        Assert.assertEquals(// "926" GraphSearchReduced Frontier
        "1133", agent.getInstrumentation().getProperty("nodesExpanded"));
        // "534" GraphSearchReduced Frontier
        Assert.assertEquals(// "534" GraphSearchReduced Frontier
        "676", agent.getInstrumentation().getProperty("queueSize"));
        // "535" GraphSearchReduced Frontier
        Assert.assertEquals(// "535" GraphSearchReduced Frontier
        "677", agent.getInstrumentation().getProperty("maxQueueSize"));
    } catch (Exception e) {
        e.printStackTrace();
        Assert.fail("Exception thrown");
    }
}
Also used : AStarSearch(aima.core.search.informed.AStarSearch) Action(aima.core.agent.Action) EightPuzzleBoard(aima.core.environment.eightpuzzle.EightPuzzleBoard) SearchAgent(aima.core.search.framework.SearchAgent) BidirectionalEightPuzzleProblem(aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem) Test(org.junit.Test) GoalTest(aima.core.search.framework.problem.GoalTest)

Example 2 with BidirectionalEightPuzzleProblem

use of aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem in project aima-java by aimacode.

the class GreedyBestFirstSearchTest method testGreedyBestFirstSearch.

@Test
public void testGreedyBestFirstSearch() {
    try {
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {2,0,5,6,4,8,3,7,1});
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {0,8,7,6,5,4,3,2,1});
        EightPuzzleBoard board = new EightPuzzleBoard(new int[] { 7, 1, 8, 0, 4, 6, 2, 3, 5 });
        Problem<EightPuzzleBoard, Action> problem = new BidirectionalEightPuzzleProblem(board);
        SearchForActions<EightPuzzleBoard, Action> search = new GreedyBestFirstSearch<>(new GraphSearch<>(), EightPuzzleFunctions.createManhattanHeuristicFunction());
        SearchAgent<EightPuzzleBoard, Action> agent = new SearchAgent<>(problem, search);
        // GraphSearchReducedFrontier: "49"
        Assert.assertEquals(49, agent.getActions().size());
        // GraphSearchReducedFrontier: "197"
        Assert.assertEquals(// GraphSearchReducedFrontier: "197"
        "332", agent.getInstrumentation().getProperty("nodesExpanded"));
        // GraphSearchReducedFrontier: "140"
        Assert.assertEquals(// GraphSearchReducedFrontier: "140"
        "241", agent.getInstrumentation().getProperty("queueSize"));
        // GraphSearchReducedFrontier: "141"
        Assert.assertEquals(// GraphSearchReducedFrontier: "141"
        "242", agent.getInstrumentation().getProperty("maxQueueSize"));
    } catch (Exception e) {
        e.printStackTrace();
        Assert.fail("Exception thrown.");
    }
}
Also used : Action(aima.core.agent.Action) MoveToAction(aima.core.environment.map.MoveToAction) EightPuzzleBoard(aima.core.environment.eightpuzzle.EightPuzzleBoard) SearchAgent(aima.core.search.framework.SearchAgent) BidirectionalEightPuzzleProblem(aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem) GreedyBestFirstSearch(aima.core.search.informed.GreedyBestFirstSearch) Test(org.junit.Test) GoalTest(aima.core.search.framework.problem.GoalTest)

Example 3 with BidirectionalEightPuzzleProblem

use of aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem in project aima-java by aimacode.

the class GreedyBestFirstSearchTest method testGreedyBestFirstSearchReducedFrontier.

@Test
public void testGreedyBestFirstSearchReducedFrontier() {
    try {
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {2,0,5,6,4,8,3,7,1});
        // EightPuzzleBoard extreme = new EightPuzzleBoard(new int[]
        // {0,8,7,6,5,4,3,2,1});
        EightPuzzleBoard board = new EightPuzzleBoard(new int[] { 7, 1, 8, 0, 4, 6, 2, 3, 5 });
        Problem<EightPuzzleBoard, Action> problem = new BidirectionalEightPuzzleProblem(board);
        QueueBasedSearch<EightPuzzleBoard, Action> search = new GreedyBestFirstSearch<>(new GraphSearchReducedFrontier<>(), EightPuzzleFunctions.createManhattanHeuristicFunction());
        SearchAgent<EightPuzzleBoard, Action> agent = new SearchAgent<>(problem, search);
        Assert.assertEquals(49, agent.getActions().size());
        Assert.assertEquals("197", agent.getInstrumentation().getProperty("nodesExpanded"));
        Assert.assertEquals("140", agent.getInstrumentation().getProperty("queueSize"));
        Assert.assertEquals("141", agent.getInstrumentation().getProperty("maxQueueSize"));
    } catch (Exception e) {
        e.printStackTrace();
        Assert.fail("Exception thrown.");
    }
}
Also used : Action(aima.core.agent.Action) MoveToAction(aima.core.environment.map.MoveToAction) EightPuzzleBoard(aima.core.environment.eightpuzzle.EightPuzzleBoard) SearchAgent(aima.core.search.framework.SearchAgent) BidirectionalEightPuzzleProblem(aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem) GreedyBestFirstSearch(aima.core.search.informed.GreedyBestFirstSearch) Test(org.junit.Test) GoalTest(aima.core.search.framework.problem.GoalTest)

Aggregations

Action (aima.core.agent.Action)3 BidirectionalEightPuzzleProblem (aima.core.environment.eightpuzzle.BidirectionalEightPuzzleProblem)3 EightPuzzleBoard (aima.core.environment.eightpuzzle.EightPuzzleBoard)3 SearchAgent (aima.core.search.framework.SearchAgent)3 GoalTest (aima.core.search.framework.problem.GoalTest)3 Test (org.junit.Test)3 MoveToAction (aima.core.environment.map.MoveToAction)2 GreedyBestFirstSearch (aima.core.search.informed.GreedyBestFirstSearch)2 AStarSearch (aima.core.search.informed.AStarSearch)1