burlap.mdp.singleagent.oo.OOSADomain Java Examples
The following examples show how to use
burlap.mdp.singleagent.oo.OOSADomain.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CommandCheckProps.java From burlapcraft with GNU Lesser General Public License v3.0 | 5 votes |
@Override public void processCommand(ICommandSender sender, String[] args) { MinecraftDomainGenerator mdg = new MinecraftDomainGenerator(); OOSADomain domain = mdg.generateDomain(); boolean printFalse = false; if(args.length > 0){ if(args[0].equals("+not")){ printFalse = true; } } State s = MinecraftStateGeneratorHelper.getCurrentState(BurlapCraft.currentDungeon); List<GroundedProp> gps = PropositionalFunction.allGroundingsFromList(domain.propFunctions(), (OOState)s); StringBuffer buf = new StringBuffer(); buf.append("\n"); for(GroundedProp gp : gps){ if(!gp.isTrue((OOState)s)){ if(printFalse) { buf.append("NOT "); buf.append(gp.toString()); buf.append("\n"); } } else{ buf.append(gp.toString()); buf.append("\n"); } } sender.addChatMessage(new ChatComponentText(buf.toString())); }
Example #2
Source File: BlocksWorld.java From burlap with Apache License 2.0 | 5 votes |
@Override public OOSADomain generateDomain() { OOSADomain domain = new OOSADomain(); domain.addStateClass(CLASS_BLOCK, BlocksWorldBlock.class); domain.addActionType(new StackActionType(ACTION_STACK)) .addActionType(new UnstackActionType(ACTION_UNSTACK)); RewardFunction rf = this.rf; TerminalFunction tf = this.tf; if(rf == null){ rf = new NullRewardFunction(); } if(tf == null){ tf = new NullTermination(); } BWModel smodel = new BWModel(); FactoredModel model = new FactoredModel(smodel, rf , tf); domain.setModel(model); OODomain.Helper.addPfsToDomain(domain, this.generatePfs()); return domain; }
Example #3
Source File: ExampleOOGridWorld.java From burlap_examples with MIT License | 4 votes |
@Override public OOSADomain generateDomain() { OOSADomain domain = new OOSADomain(); domain.addStateClass(CLASS_AGENT, ExGridAgent.class) .addStateClass(CLASS_LOCATION, EXGridLocation.class); domain.addActionTypes( new UniversalActionType(ACTION_NORTH), new UniversalActionType(ACTION_SOUTH), new UniversalActionType(ACTION_EAST), new UniversalActionType(ACTION_WEST)); OODomain.Helper.addPfsToDomain(domain, this.generatePfs()); OOGridWorldStateModel smodel = new OOGridWorldStateModel(); RewardFunction rf = new SingleGoalPFRF(domain.propFunction(PF_AT), 100, -1); TerminalFunction tf = new SinglePFTF(domain.propFunction(PF_AT)); domain.setModel(new FactoredModel(smodel, rf, tf)); return domain; }
Example #4
Source File: ExampleOOGridWorld.java From burlap_examples with MIT License | 4 votes |
public static void main(String [] args){ ExampleOOGridWorld gen = new ExampleOOGridWorld(); OOSADomain domain = gen.generateDomain(); State initialState = new GenericOOState(new ExGridAgent(0, 0), new EXGridLocation(10, 10, "loc0")); SimulatedEnvironment env = new SimulatedEnvironment(domain, initialState); Visualizer v = gen.getVisualizer(); VisualExplorer exp = new VisualExplorer(domain, env, v); exp.addKeyAction("w", ACTION_NORTH, ""); exp.addKeyAction("s", ACTION_SOUTH, ""); exp.addKeyAction("d", ACTION_EAST, ""); exp.addKeyAction("a", ACTION_WEST, ""); exp.initGUI(); }
Example #5
Source File: LunarLanderDomain.java From burlap with Apache License 2.0 | 4 votes |
@Override public OOSADomain generateDomain() { OOSADomain domain = new OOSADomain(); List <Double> thrustValuesTemp = this.thrustValues; if(thrustValuesTemp.isEmpty()){ thrustValuesTemp.add(0.32); thrustValuesTemp.add(-physParams.gravity); } domain.addStateClass(CLASS_AGENT, LLAgent.class) .addStateClass(CLASS_PAD, LLBlock.LLPad.class) .addStateClass(CLASS_OBSTACLE, LLBlock.LLObstacle.class); //make copy of physics parameters LLPhysicsParams cphys = this.physParams.copy(); //add actions domain.addActionType(new UniversalActionType(ACTION_TURN_LEFT)) .addActionType(new UniversalActionType(ACTION_TURN_RIGHT)) .addActionType(new UniversalActionType(ACTION_IDLE)) .addActionType(new ThrustType(thrustValues)); OODomain.Helper.addPfsToDomain(domain, this.generatePfs()); LunarLanderModel smodel = new LunarLanderModel(cphys); RewardFunction rf = this.rf; TerminalFunction tf = this.tf; if(rf == null){ rf = new LunarLanderRF(domain); } if(tf == null){ tf = new LunarLanderTF(domain); } FactoredModel model = new FactoredModel(smodel, rf, tf); domain.setModel(model); return domain; }
Example #6
Source File: FrostbiteDomain.java From burlap with Apache License 2.0 | 4 votes |
/** * Creates a new frostbite domain. * * @return the generated domain object */ @Override public OOSADomain generateDomain() { OOSADomain domain = new OOSADomain(); domain.addStateClass(CLASS_AGENT, FrostbiteAgent.class) .addStateClass(CLASS_IGLOO, FrostbiteIgloo.class) .addStateClass(CLASS_PLATFORM, FrostbitePlatform.class); //add actions domain.addActionType(new UniversalActionType(ACTION_NORTH)) .addActionType(new UniversalActionType(ACTION_SOUTH)) .addActionType(new UniversalActionType(ACTION_EAST)) .addActionType(new UniversalActionType(ACTION_WEST)) .addActionType(new UniversalActionType(ACTION_IDLE)); //add pfs List<PropositionalFunction> pfs = this.generatePFs(); for(PropositionalFunction pf : pfs){ domain.addPropFunction(pf); } FrostbiteModel smodel = new FrostbiteModel(scale); RewardFunction rf = this.rf; TerminalFunction tf = this.tf; if(rf == null){ rf = new FrostbiteRF(domain); } if(tf == null){ tf = new FrostbiteTF(domain); } FactoredModel model = new FactoredModel(smodel, rf, tf); domain.setModel(model); return domain; }
Example #7
Source File: PlotTest.java From burlap_examples with MIT License | 2 votes |
public static void main(String [] args){ GridWorldDomain gw = new GridWorldDomain(11,11); //11x11 grid world gw.setMapToFourRooms(); //four rooms layout gw.setProbSucceedTransitionDynamics(0.8); //stochastic transitions with 0.8 success rate //ends when the agent reaches a location final TerminalFunction tf = new SinglePFTF( PropositionalFunction.findPF(gw.generatePfs(), GridWorldDomain.PF_AT_LOCATION)); //reward function definition final RewardFunction rf = new GoalBasedRF(new TFGoalCondition(tf), 5., -0.1); gw.setTf(tf); gw.setRf(rf); final OOSADomain domain = gw.generateDomain(); //generate the grid world domain //setup initial state GridWorldState s = new GridWorldState(new GridAgent(0, 0), new GridLocation(10, 10, "loc0")); //initial state generator final ConstantStateGenerator sg = new ConstantStateGenerator(s); //set up the state hashing system for looking up states final SimpleHashableStateFactory hashingFactory = new SimpleHashableStateFactory(); /** * Create factory for Q-learning agent */ LearningAgentFactory qLearningFactory = new LearningAgentFactory() { public String getAgentName() { return "Q-learning"; } public LearningAgent generateAgent() { return new QLearning(domain, 0.99, hashingFactory, 0.3, 0.1); } }; //define learning environment SimulatedEnvironment env = new SimulatedEnvironment(domain, sg); //define experiment LearningAlgorithmExperimenter exp = new LearningAlgorithmExperimenter(env, 10, 100, qLearningFactory); exp.setUpPlottingConfiguration(500, 250, 2, 1000, TrialMode.MOST_RECENT_AND_AVERAGE, PerformanceMetric.CUMULATIVE_STEPS_PER_EPISODE, PerformanceMetric.AVERAGE_EPISODE_REWARD); //start experiment exp.startExperiment(); }
Example #8
Source File: ContinuousDomainTutorial.java From burlap_examples with MIT License | 2 votes |
public static void LLSARSA(){ LunarLanderDomain lld = new LunarLanderDomain(); OOSADomain domain = lld.generateDomain(); LLState s = new LLState(new LLAgent(5, 0, 0), new LLBlock.LLPad(75, 95, 0, 10, "pad")); ConcatenatedObjectFeatures inputFeatures = new ConcatenatedObjectFeatures() .addObjectVectorizion(LunarLanderDomain.CLASS_AGENT, new NumericVariableFeatures()); int nTilings = 5; double resolution = 10.; double xWidth = (lld.getXmax() - lld.getXmin()) / resolution; double yWidth = (lld.getYmax() - lld.getYmin()) / resolution; double velocityWidth = 2 * lld.getVmax() / resolution; double angleWidth = 2 * lld.getAngmax() / resolution; TileCodingFeatures tilecoding = new TileCodingFeatures(inputFeatures); tilecoding.addTilingsForAllDimensionsWithWidths( new double []{xWidth, yWidth, velocityWidth, velocityWidth, angleWidth}, nTilings, TilingArrangement.RANDOM_JITTER); double defaultQ = 0.5; DifferentiableStateActionValue vfa = tilecoding.generateVFA(defaultQ/nTilings); GradientDescentSarsaLam agent = new GradientDescentSarsaLam(domain, 0.99, vfa, 0.02, 0.5); SimulatedEnvironment env = new SimulatedEnvironment(domain, s); List<Episode> episodes = new ArrayList<Episode>(); for(int i = 0; i < 5000; i++){ Episode ea = agent.runLearningEpisode(env); episodes.add(ea); System.out.println(i + ": " + ea.maxTimeStep()); env.resetEnvironment(); } Visualizer v = LLVisualizer.getVisualizer(lld.getPhysParams()); new EpisodeSequenceVisualizer(v, domain, episodes); }