Implemented agent which chooses to play winning, losing or random moves by solving a simplified MDP model of the game using policy iteration.
Portions of MDP/solver code by Ciaran O'Reilly and Ravi Mohan used under MIT license.
This commit is contained in:
26
test/model/mdp/ValueIterationSolverTest.java
Normal file
26
test/model/mdp/ValueIterationSolverTest.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package model.mdp;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import model.mdp.MDP.MODE;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class ValueIterationSolverTest {
|
||||
|
||||
@Test
|
||||
public void testSolve() {
|
||||
MDPSolver solver = new ValueIterationSolver();
|
||||
|
||||
//solve for a score of 25 in at most 35 turns
|
||||
int maxScore = 6;
|
||||
int maxTurns = 10;
|
||||
|
||||
MDP mdp = new MDP(maxScore,maxTurns,MODE.CEIL);
|
||||
Policy policy = solver.solve(mdp);
|
||||
|
||||
assertTrue(policy.size() >= maxScore);
|
||||
assertTrue(policy.size() <= maxTurns);
|
||||
|
||||
System.out.println("Policy: " + policy);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user