Examples of CellWorldPosition


Examples of aima.core.environment.cellworld.CellWorldPosition

    Assert.assertEquals(0.8, transitionProb, 0.001);
  }

  @Test
  public void testTransitionProbabilityCalculationWhenBothRightAngledActiosnLeadToStartingPosition() {
    CellWorldPosition startingPosition = new CellWorldPosition(2, 1);
    CellWorldPosition endingPosition = new CellWorldPosition(2, 1);
    double transitionProb = cw.getTransitionProbability(startingPosition,
        CellWorld.UP, endingPosition);
    Assert.assertEquals(0.2, transitionProb, 0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

  @Test
  public void testTransitionModelCreation() {
    MDPTransitionModel<CellWorldPosition, String> mtm = cw
        .getTransitionModel();
    CellWorldPosition startingPosition = new CellWorldPosition(1, 1);
    CellWorldPosition endingPosition = new CellWorldPosition(2, 1);
    Assert.assertEquals(0.8, mtm.getTransitionProbability(startingPosition,
        CellWorld.UP, endingPosition), 0.001);

    CellWorldPosition endingPosition2 = new CellWorldPosition(1, 1);
    Assert.assertEquals(0.1, mtm.getTransitionProbability(startingPosition,
        CellWorld.UP, endingPosition2), 0.001);
    CellWorldPosition endingPosition3 = new CellWorldPosition(1, 2);
    Assert.assertEquals(0.1, mtm.getTransitionProbability(startingPosition,
        CellWorld.UP, endingPosition3), 0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

  @Test
  public void testCannotTransitionFromFinalState() {
    MDPTransitionModel<CellWorldPosition, String> mtm = cw
        .getTransitionModel();
    CellWorldPosition terminalOne = new CellWorldPosition(2, 4);
    CellWorldPosition terminalTwo = new CellWorldPosition(3, 4);
    Assert.assertEquals(0.0, mtm.getTransitionProbability(terminalOne,
        CellWorld.UP, terminalTwo), 0.001);
    Assert.assertEquals(0.0, mtm.getTransitionProbability(terminalTwo,
        CellWorld.DOWN, terminalOne), 0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

    // aka policy extraction
    // given a utility function

    // create the Utility Function depicted in Fig 17.3
    MDPUtilityFunction<CellWorldPosition> uf = new MDPUtilityFunction<CellWorldPosition>();
    uf.setUtility(new CellWorldPosition(1, 1), 0.705);
    uf.setUtility(new CellWorldPosition(1, 2), 0.655);
    uf.setUtility(new CellWorldPosition(1, 3), 0.611);
    uf.setUtility(new CellWorldPosition(1, 4), 0.388);

    uf.setUtility(new CellWorldPosition(2, 1), 0.762);
    uf.setUtility(new CellWorldPosition(2, 3), 0.660);
    uf.setUtility(new CellWorldPosition(2, 4), -1.0);

    uf.setUtility(new CellWorldPosition(3, 1), 0.812);
    uf.setUtility(new CellWorldPosition(3, 2), 0.868);
    uf.setUtility(new CellWorldPosition(3, 3), 0.918);
    uf.setUtility(new CellWorldPosition(3, 4), 1.0);

    assertPolicyReccomends(cw, uf, 1, 1, CellWorld.UP);
    assertPolicyReccomends(cw, uf, 1, 2, CellWorld.LEFT);
    assertPolicyReccomends(cw, uf, 1, 3, CellWorld.LEFT);
    assertPolicyReccomends(cw, uf, 1, 4, CellWorld.LEFT);
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

  private void assertPolicyReccomends(CellWorld cw,
      MDPUtilityFunction<CellWorldPosition> uf, int x, int y,
      String actionExpected) {
    Pair<String, Double> p = cw.getTransitionModel()
        .getTransitionWithMaximumExpectedUtility(
            new CellWorldPosition(x, y), uf);

    Assert.assertEquals(actionExpected, p.getFirst());
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

  public void setUp() {
    fourByThree = MDPFactory.createFourByThreeMDP();

    policy = new MDPPolicy<CellWorldPosition, String>();

    policy.setAction(new CellWorldPosition(1, 1), CellWorld.UP);
    policy.setAction(new CellWorldPosition(1, 2), CellWorld.LEFT);
    policy.setAction(new CellWorldPosition(1, 3), CellWorld.LEFT);
    policy.setAction(new CellWorldPosition(1, 4), CellWorld.LEFT);

    policy.setAction(new CellWorldPosition(2, 1), CellWorld.UP);
    policy.setAction(new CellWorldPosition(2, 3), CellWorld.UP);

    policy.setAction(new CellWorldPosition(3, 1), CellWorld.RIGHT);
    policy.setAction(new CellWorldPosition(3, 2), CellWorld.RIGHT);
    policy.setAction(new CellWorldPosition(3, 3), CellWorld.RIGHT);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

      agent.executeTrial(r);
      uf = agent.getUtilityFunction();

    }

    Assert.assertEquals(0.676, uf.getUtility(new CellWorldPosition(1, 1)),
        0.001);
    Assert.assertEquals(0.626, uf.getUtility(new CellWorldPosition(1, 2)),
        0.001);
    Assert.assertEquals(0.573, uf.getUtility(new CellWorldPosition(1, 3)),
        0.001);
    Assert.assertEquals(0.519, uf.getUtility(new CellWorldPosition(1, 4)),
        0.001);

    Assert.assertEquals(0.746, uf.getUtility(new CellWorldPosition(2, 1)),
        0.001);
    Assert.assertEquals(0.865, uf.getUtility(new CellWorldPosition(2, 3)),
        0.001);
    // assertEquals(-1.0, uf.getUtility(new
    // CellWorldPosition(2,4)),0.001);//the pseudo random genrator never
    // gets to this square

    Assert.assertEquals(0.796, uf.getUtility(new CellWorldPosition(3, 1)),
        0.001);
    Assert.assertEquals(0.906, uf.getUtility(new CellWorldPosition(3, 3)),
        0.001);
    Assert.assertEquals(1.0, uf.getUtility(new CellWorldPosition(3, 4)),
        0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

      uf = agent.getUtilityFunction();
      // System.out.println(uf);

    }

    Assert.assertEquals(0.662, uf.getUtility(new CellWorldPosition(1, 1)),
        0.001);
    Assert.assertEquals(0.610, uf.getUtility(new CellWorldPosition(1, 2)),
        0.001);
    Assert.assertEquals(0.553, uf.getUtility(new CellWorldPosition(1, 3)),
        0.001);
    Assert.assertEquals(0.496, uf.getUtility(new CellWorldPosition(1, 4)),
        0.001);

    Assert.assertEquals(0.735, uf.getUtility(new CellWorldPosition(2, 1)),
        0.001);
    Assert.assertEquals(0.835, uf.getUtility(new CellWorldPosition(2, 3)),
        0.001);
    // assertEquals(-1.0, uf.getUtility(new
    // CellWorldPosition(2,4)),0.001);//the pseudo random genrator never
    // gets to this square

    Assert.assertEquals(0.789, uf.getUtility(new CellWorldPosition(3, 1)),
        0.001);
    Assert.assertEquals(0.889, uf.getUtility(new CellWorldPosition(3, 3)),
        0.001);
    Assert.assertEquals(1.0, uf.getUtility(new CellWorldPosition(3, 4)),
        0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

    QLearningAgent<CellWorldPosition, String> qla = new QLearningAgent<CellWorldPosition, String>(
        fourByThree);

    Randomizer alwaysLessThanEightyPercent = new MockRandomizer(
        new double[] { 0.7 });
    CellWorldPosition startingPosition = new CellWorldPosition(1, 4);
    String action = qla.decideAction(new MDPPerception<CellWorldPosition>(
        startingPosition, -0.04));
    Assert.assertEquals(CellWorld.LEFT, action);
    Assert.assertEquals(0.0,
        qla.getQTable().getQValue(startingPosition, action), 0.001);

    qla.execute(action, alwaysLessThanEightyPercent);
    Assert.assertEquals(new CellWorldPosition(1, 3), qla.getCurrentState());
    Assert.assertEquals(-0.04, qla.getCurrentReward(), 0.001);
    Assert.assertEquals(0.0,
        qla.getQTable().getQValue(startingPosition, action), 0.001);
    qla.decideAction(new MDPPerception<CellWorldPosition>(
        new CellWorldPosition(1, 3), -0.04));

    Assert.assertEquals(-0.04,
        qla.getQTable().getQValue(startingPosition, action), 0.001);
  }
View Full Code Here

Examples of aima.core.environment.cellworld.CellWorldPosition

  @Test
  public void testFirstStepsOfQLAAgentWhenFirstStepTerminates() {
    QLearningAgent<CellWorldPosition, String> qla = new QLearningAgent<CellWorldPosition, String>(
        fourByThree);

    CellWorldPosition startingPosition = new CellWorldPosition(1, 4);
    String action = qla.decideAction(new MDPPerception<CellWorldPosition>(
        startingPosition, -0.04));
    Assert.assertEquals(CellWorld.LEFT, action);

    Randomizer betweenEightyANdNinetyPercent = new MockRandomizer(
        new double[] { 0.85 }); // to force left to become an "up"
    qla.execute(action, betweenEightyANdNinetyPercent);
    Assert.assertEquals(new CellWorldPosition(2, 4), qla.getCurrentState());
    Assert.assertEquals(-1.0, qla.getCurrentReward(), 0.001);
    Assert.assertEquals(0.0,
        qla.getQTable().getQValue(startingPosition, action), 0.001);
    String action2 = qla.decideAction(new MDPPerception<CellWorldPosition>(
        new CellWorldPosition(2, 4), -1));
    Assert.assertNull(action2);
    Assert.assertEquals(-1.0,
        qla.getQTable().getQValue(startingPosition, action), 0.001);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.