@Override public OOSADomain generateDomain() { OOSADomain domain = new OOSADomain(); int [][] cmap = this.getMap(); domain.addStateClass(CLASS_AGENT, GridAgent.class).addStateClass(CLASS_LOCATION, GridLocation.class); GridWorldModel smodel = new GridWorldModel(cmap, getTransitionDynamics()); RewardFunction rf = this.rf; TerminalFunction tf = this.tf; if(rf == null){ rf = new UniformCostRF(); } if(tf == null){ tf = new NullTermination(); } FactoredModel model = new FactoredModel(smodel, rf, tf); domain.setModel(model); domain.addActionTypes( new UniversalActionType(ACTION_NORTH), new UniversalActionType(ACTION_SOUTH), new UniversalActionType(ACTION_EAST), new UniversalActionType(ACTION_WEST)); OODomain.Helper.addPfsToDomain(domain, this.generatePfs()); return domain; }