Search in sources :

Example 41 with StatSummary

use of utilities.StatSummary in project SimpleAsteroids by ljialin.

the class BanditEA method runTrials.

public static StatSummary runTrials(int nBandits, int nTrials) throws Exception {
    StatSummary ss = new StatSummary();
    ArrayList<int[][]> examples = new ArrayList<>();
    // System.out.println(examples);
    rankCorrelation = new RankCorrelation();
    for (int i = 0; i < nTrials; i++) {
        BanditEA ea = new BanditEA(nBandits);
        ea.evaluator = new ShortestPathTest();
        ElapsedTimer t = new ElapsedTimer();
        ea.run(nEvals);
        System.out.println(t);
        if (ea.success) {
        // ss.add(ea.trialsSoFar);
        }
        ss.add(ea.evaluate(ea.genome));
        System.out.println("Checking fitness: " + ea.evaluate(ea.genome));
        examples.add(toSquareArray(ea.genome.toArray()));
        System.out.println("Rank correlation check:");
        rankCorrelation.rankCorrelation();
    }
    System.out.println("Created mazes");
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    String out = gson.toJson(examples);
    System.out.println("Created JSON String");
    // System.out.println(out);
    String outputFile = "data/mazes.json";
    PrintWriter writer = new PrintWriter(outputFile);
    writer.print(out);
    writer.close();
    System.out.println("Wrote file with " + examples.size() + " examples");
    return ss;
}
Also used : StatSummary(utilities.StatSummary) GsonBuilder(com.google.gson.GsonBuilder) ArrayList(java.util.ArrayList) RankCorrelation(ntuple.RankCorrelation) ShortestPathTest(evomaze.ShortestPathTest) Gson(com.google.gson.Gson) ElapsedTimer(utilities.ElapsedTimer) PrintWriter(java.io.PrintWriter)

Example 42 with StatSummary

use of utilities.StatSummary in project SimpleAsteroids by ljialin.

the class SimpleGridTest method main.

public static void main(String[] args) {
    StatSummary ss = new StatSummary();
    int nTrials = 30;
    for (int i = 0; i < nTrials; i++) {
        ss.add(runOnce());
    }
    System.out.println(ss);
}
Also used : StatSummary(utilities.StatSummary)

Example 43 with StatSummary

use of utilities.StatSummary in project SimpleAsteroids by ljialin.

the class SpaceBattleLinkTestTwoPlayer method runTrial.

public static double runTrial(boolean runVisible) {
    // make an agent to test
    // StateObservation stateObs = new SimpleMaxGame();
    // BattleGameSearchSpace.inject(BattleGameSearchSpace.getRandomPoint());
    // SampleEvolvedParams.solutions[1][2] = 5;
    // SampleEvolvedParams.solutions[5][4] = 0;
    // BattleGameSearchSpace.inject(SampleEvolvedParams.solutions[2]);
    // BattleGameSearchSpace.inject(SampleEvolvedParams.solutions[2]);
    // BattleGameSearchSpace.inject(SampleEvolvedParams.solutions[1]);
    System.out.println("Params are:");
    System.out.println(BattleGameParameters.params);
    // can also override parameters by setting them directly as follows:
    BattleGameParameters.loss = 0.996;
    BattleGameParameters.thrust = 3;
    // BattleGameParameters.shipSize *= 2;
    // BattleGameParameters.damageRadius *= 2;
    SpaceBattleLinkStateTwoPlayer linkState = new SpaceBattleLinkStateTwoPlayer();
    StateObservationMulti multi = linkState;
    GameActionSpaceAdapterMulti.useHeuristic = false;
    // DefaultMutator.totalRandomChaosMutation = false;
    // // supercl
    // StateObservation stateObs = linkState;
    ElapsedCpuTimer timer = new ElapsedCpuTimer();
    AbstractMultiPlayer player1, player2;
    // controllers.singlePlayer.sampleOLMCTS.Agent olmcts =
    // new controllers.singlePlayer.sampleOLMCTS.Agent(linkState, timer);
    int idPlayer1 = 0;
    int idPlayer2 = 1;
    player2 = new controllers.multiPlayer.discountOLMCTS.Agent(linkState, timer, idPlayer2);
    // try the evolutionary players
    int nResamples = 2;
    EvoAlg evoAlg = new SimpleRMHC(nResamples);
    double kExplore = 10;
    int nNeighbours = 100;
    int nEvals = 500;
    evoAlg = new NTupleBanditEA(kExplore, nNeighbours);
    // evoAlg = new CompactSlidingModelGA().setHistoryLength(20);
    evoAlg = new SlidingMeanEDA().setHistoryLength(20);
    EvoAlg evoAlg2 = new CompactSlidingModelGA().setHistoryLength(2);
    player1 = new controllers.multiPlayer.ea.Agent(linkState, timer, evoAlg, idPlayer1, nEvals);
    // player2 = new controllers.multiPlayer.ea.Agent(linkState, timer, evoAlg2, idPlayer2, nEvals);
    // player2 = new controllers.multiPlayer.ea.Agent(linkState, timer, new SimpleRMHC(nResamples), idPlayer2, nEvals);
    // player1  = new controllers.multiPlayer.smlrand.Agent();
    // EvoAlg evoAlg2 = new SimpleRMHC(2);
    // player1 = new controllers.multiPlayer.ea.Agent(linkState, timer, evoAlg2, idPlayer1, nEvals);
    // in milliseconds
    int thinkingTime = 50;
    int delay = 10;
    // player = new controllers.singlePlayer.sampleRandom.Agent(stateObs, timer);
    // check that we can play the game
    Random random = new Random();
    int nSteps = 500;
    ElapsedTimer t = new ElapsedTimer();
    BattleView view = new BattleView(linkState.state.copyState());
    // set view to null to run fast with no visuals
    if (!runVisible)
        view = null;
    if (view != null) {
        new JEasyFrame(view, "Simple Battle Game");
    }
    StatSummary sst1 = new StatSummary("Player 1 Elapsed Time");
    StatSummary sst2 = new StatSummary("Player 2 Elapsed Time");
    StatSummary ssTicks1 = new StatSummary("Player 1 nTicks");
    StatSummary ssTicks2 = new StatSummary("Player 2 nTicks");
    for (int i = 0; i < nSteps && !linkState.isGameOver(); i++) {
        linkState.state = linkState.state.copyState();
        timer = new ElapsedCpuTimer();
        timer.setMaxTimeMillis(thinkingTime);
        ElapsedTimer t1 = new ElapsedTimer();
        // keep track of the number of game ticks used by each algorithm
        int ticks;
        ticks = SpaceBattleLinkStateTwoPlayer.nTicks;
        Types.ACTIONS action1 = player1.act(multi.copy(), timer);
        sst1.add(t1.elapsed());
        ticks = SpaceBattleLinkStateTwoPlayer.nTicks - ticks;
        ssTicks1.add(ticks);
        // System.out.println("Player 1 Ticks = " + ticks);
        ElapsedTimer t2 = new ElapsedTimer();
        ticks = SpaceBattleLinkStateTwoPlayer.nTicks;
        Types.ACTIONS action2 = player2.act(multi.copy(), timer);
        sst2.add(t2.elapsed());
        ticks = SpaceBattleLinkStateTwoPlayer.nTicks - ticks;
        ssTicks2.add(ticks);
        // System.out.println("Player 2 Ticks = " + ticks);
        multi.advance(new Types.ACTIONS[] { action1, action2 });
        if (view != null) {
            view.game = linkState.state.copyState();
            view.setRolls(0, evoAlg);
            view.setRolls(1, evoAlg2);
            view.repaint();
            try {
                Thread.sleep(delay);
            } catch (Exception e) {
            }
        }
    // System.out.println(multi.getGameScore());
    }
    System.out.println(multi.getGameScore());
    System.out.println(multi.isGameOver());
    // System.out.println(SingleTreeNode.rollOutScores);
    System.out.println(sst1);
    System.out.println(sst2);
    System.out.println(ssTicks1);
    System.out.println(ssTicks2);
    return multi.getGameScore(0);
}
Also used : Types(ontology.Types) BattleView(battle.BattleView) AbstractMultiPlayer(core.player.AbstractMultiPlayer) SlidingMeanEDA(ntuple.SlidingMeanEDA) NTupleBanditEA(ntuple.NTupleBanditEA) EvoAlg(evodef.EvoAlg) StatSummary(utilities.StatSummary) SimpleRMHC(ga.SimpleRMHC) Random(java.util.Random) JEasyFrame(utilities.JEasyFrame) CompactSlidingModelGA(ntuple.CompactSlidingModelGA) StateObservationMulti(core.game.StateObservationMulti) ElapsedTimer(utilities.ElapsedTimer) ElapsedCpuTimer(tools.ElapsedCpuTimer)

Example 44 with StatSummary

use of utilities.StatSummary in project SimpleAsteroids by ljialin.

the class SpaceBattleLinkTestTwoPlayer method main.

public static void main(String[] args) {
    StatSummary ss = new StatSummary();
    int nTrials = 10;
    ElapsedTimer t = new ElapsedTimer();
    ArrayList<Double> results = new ArrayList<>();
    for (int i = 0; i < nTrials; i++) {
        double result = runTrial(runVisible);
        ss.add(result);
        results.add(result);
    }
    System.out.println(ss);
    System.out.println();
    System.out.println(results);
    System.out.println(t);
}
Also used : StatSummary(utilities.StatSummary) ArrayList(java.util.ArrayList) ElapsedTimer(utilities.ElapsedTimer)

Example 45 with StatSummary

use of utilities.StatSummary in project SimpleAsteroids by ljialin.

the class TestDiffGame method main.

public static void main(String[] args) {
    StatSummary ss = new StatSummary();
    int nTrials = 10;
    ElapsedTimer t = new ElapsedTimer();
    ArrayList<Double> results = new ArrayList<>();
    for (int i = 0; i < nTrials; i++) {
        double result = runTrial(runVisible);
        ss.add(result);
        results.add(result);
    }
    System.out.println(ss);
    System.out.println();
    System.out.println(results);
    System.out.println(t);
}
Also used : StatSummary(utilities.StatSummary) ArrayList(java.util.ArrayList) ElapsedTimer(utilities.ElapsedTimer)

Aggregations

StatSummary (utilities.StatSummary)88 ElapsedTimer (utilities.ElapsedTimer)27 ArrayList (java.util.ArrayList)10 JEasyFrame (utilities.JEasyFrame)8 SimpleRMHC (ga.SimpleRMHC)7 NTupleBanditEA (ntuple.NTupleBanditEA)6 EvoAlg (evodef.EvoAlg)4 Random (java.util.Random)4 LineChart (plot.LineChart)4 LineChartAxis (plot.LineChartAxis)4 StateObservationMulti (core.game.StateObservationMulti)3 DefaultMutator (evodef.DefaultMutator)3 TreeSet (java.util.TreeSet)3 Types (ontology.Types)3 LineGroup (plot.LineGroup)3 ElapsedCpuTimer (tools.ElapsedCpuTimer)3 Gson (com.google.gson.Gson)2 GsonBuilder (com.google.gson.GsonBuilder)2 AbstractMultiPlayer (core.player.AbstractMultiPlayer)2 ShortestPathTest (evomaze.ShortestPathTest)2