JointRewardFunction rf = new GridGame.GGJointRewardFunction(domain, -1, 100, false); TerminalFunction tf = new GridGame.GGTerminalFunction(domain); SGAgentType at = GridGame.getStandardGridGameAgentType(domain);
JointRewardFunction rf = new GridGame.GGJointRewardFunction(domain, -1, 100, false); TerminalFunction tf = new GridGame.GGTerminalFunction(domain);
JointRewardFunction rf = new GridGame.GGJointRewardFunction(domain, -1, 100, false); TerminalFunction tf = new GridGame.GGTerminalFunction(domain); SGAgentType at = GridGame.getStandardGridGameAgentType(domain);
for(ObjectInstance o : obs){ int aid = ((GGAgent)o).player; rewards[aid] = this.defaultCost(aid, ja); if(gp.isTrue(osp)){ int aid = ((GGAgent)((OOState) sp).object(agentName)).player; rewards[aid] = this.getPersonalGoalReward(osp, agentName);
public static void VICorrelatedTest(){ GridGame gridGame = new GridGame(); final OOSGDomain domain = gridGame.generateDomain(); final HashableStateFactory hashingFactory = new SimpleHashableStateFactory(); final State s = GridGame.getPrisonersDilemmaInitialState(); JointRewardFunction rf = new GridGame.GGJointRewardFunction(domain, -1, 100, false); TerminalFunction tf = new GridGame.GGTerminalFunction(domain); SGAgentType at = GridGame.getStandardGridGameAgentType(domain); MAValueIteration vi = new MAValueIteration(domain, rf, tf, 0.99, hashingFactory, 0., new CorrelatedQ(CorrelatedEquilibriumSolver.CorrelatedEquilibriumObjective.UTILITARIAN), 0.00015, 50); World w = new World(domain, rf, tf, s); //for correlated Q, use a correlated equilibrium policy joint policy ECorrelatedQJointPolicy jp0 = new ECorrelatedQJointPolicy(CorrelatedEquilibriumSolver.CorrelatedEquilibriumObjective.UTILITARIAN, 0.); MultiAgentDPPlanningAgent a0 = new MultiAgentDPPlanningAgent(domain, vi, new PolicyFromJointPolicy(0, jp0, true), "agent0", at); MultiAgentDPPlanningAgent a1 = new MultiAgentDPPlanningAgent(domain, vi, new PolicyFromJointPolicy(1, jp0, true), "agent1", at); w.join(a0); w.join(a1); GameEpisode ga = null; List<GameEpisode> games = new ArrayList<GameEpisode>(); for(int i = 0; i < 10; i++){ ga = w.runGame(); games.add(ga); } Visualizer v = GGVisualizer.getVisualizer(9, 9); new GameSequenceVisualizer(v, domain, games); }
public static void main(String[] args) { GridGame gg = new GridGame(); OOSGDomain domain = gg.generateDomain(); State s = GridGame.getTurkeyInitialState(); JointRewardFunction jr = new GridGame.GGJointRewardFunction(domain); TerminalFunction tf = new GridGame.GGTerminalFunction(domain); World world = new World(domain, jr, tf, new ConstantStateGenerator(s)); DPrint.toggleCode(world.getDebugId(),false); SGAgent ragent1 = new RandomSGAgent(); SGAgent ragent2 = new RandomSGAgent(); SGAgentType type = new SGAgentType("agent", domain.getActionTypes()); world.join(ragent1); world.join(ragent2); GameEpisode ga = world.runGame(20); System.out.println(ga.maxTimeStep()); String serialized = ga.serialize(); System.out.println(serialized); GameEpisode read = GameEpisode.parse(serialized); System.out.println(read.maxTimeStep()); System.out.println(read.state(0).toString()); }