本文整理汇总了Java中burlap.mdp.core.state.State.copy方法的典型用法代码示例。如果您正苦于以下问题:Java State.copy方法的具体用法?Java State.copy怎么用?Java State.copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类burlap.mdp.core.state.State
的用法示例。
在下文中一共展示了State.copy方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
BlockDudeState bs = (BlockDudeState)s.copy();
String aname = a.actionName();
if(aname.equals(ACTION_WEST)){
moveHorizontally(bs, -1);
}
else if(aname.equals(ACTION_EAST)){
moveHorizontally(bs, 1);
}
else if(aname.equals(ACTION_UP)){
moveUp(bs);
}
else if(aname.equals(ACTION_PICKUP)){
putdownBlock(bs);
}
else if(aname.equals(ACTION_PUT_DOWN)){
pickupBlock(bs);
}
else {
throw new RuntimeException("Unknown action " + aname);
}
return bs;
}
示例2: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
LLState ls = (LLState)s.copy();
double force = 0.;
if(a.actionName().equals(LunarLanderDomain.ACTION_TURN_LEFT)){
incAngle(ls, -1);
}
else if(a.actionName().equals(LunarLanderDomain.ACTION_TURN_RIGHT)){
incAngle(ls, 1);
}
else if(a instanceof LunarLanderDomain.ThrustType.ThrustAction){
force = ((LunarLanderDomain.ThrustType.ThrustAction)a).thrust;
}
updateMotion(ls, force);
return ls;
}
示例3: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
double [] directionProbs = transitionDynamics[actionInd(a.actionName())];
double roll = rand.nextDouble();
double curSum = 0.;
int dir = 0;
for(int i = 0; i < directionProbs.length; i++){
curSum += directionProbs[i];
if(roll < curSum){
dir = i;
break;
}
}
int [] dcomps = movementDirectionFromIndex(dir);
return move(s, dcomps[0], dcomps[1]);
}
示例4: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
double baseForce = 0.;
if(a.actionName().equals(CartPoleDomain.ACTION_LEFT)){
baseForce = -physParams.actionForce;
}
else if(a.actionName().equals(CartPoleDomain.ACTION_RIGHT)){
baseForce = physParams.actionForce;
}
double roll = RandomFactory.getMapped(0).nextDouble() * (2 * physParams.actionNoise) - physParams.actionNoise;
double force = baseForce + roll;
return updateState(s, force);
}
示例5: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
EXGridState gs = (EXGridState) s;
int curX = gs.x;
int curY = gs.y;
int adir = actionDir(a);
//sample direction with random roll
double r = Math.random();
double sumProb = 0.;
int dir = 0;
for (int i = 0; i < 4; i++) {
sumProb += this.transitionProbs[adir][i];
if (r < sumProb) {
dir = i;
break; //found direction
}
}
//get resulting position
int[] newPos = this.moveResult(curX, curY, dir);
//set the new position
gs.x = newPos[0];
gs.y = newPos[1];
//return the state we just modified
return gs;
}
示例6: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
public State sample(State s, Action a) {
s = s.copy();
GenericOOState gs = (GenericOOState)s;
ExGridAgent agent = (ExGridAgent)gs.touch(CLASS_AGENT);
int curX = agent.x;
int curY = agent.y;
int adir = actionDir(a);
//sample direction with random roll
double r = Math.random();
double sumProb = 0.;
int dir = 0;
for(int i = 0; i < 4; i++){
sumProb += this.transitionProbs[adir][i];
if(r < sumProb){
dir = i;
break; //found direction
}
}
//get resulting position
int [] newPos = this.moveResult(curX, curY, dir);
//set the new position
agent.x = newPos[0];
agent.y = newPos[1];
//return the state we just modified
return gs;
}
示例7: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
EXGridState gs = (EXGridState)s;
int curX = gs.x;
int curY = gs.y;
int adir = actionDir(a);
//sample direction with random roll
double r = Math.random();
double sumProb = 0.;
int dir = 0;
for(int i = 0; i < 4; i++){
sumProb += this.transitionProbs[adir][i];
if(r < sumProb){
dir = i;
break; //found direction
}
}
//get resulting position
int [] newPos = this.moveResult(curX, curY, dir);
//set the new position
gs.x = newPos[0];
gs.y = newPos[1];
//return the state we just modified
return gs;
}
示例8: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
GenericOOState gs = (GenericOOState)s.copy();
String aname = a.actionName();
if(aname.equals(HelperNameSpace.ACTION_MOVE)){
simMove(gs);
}
else if(aname.equals(HelperNameSpace.ACTION_ROTATE_LEFT)){
simRotate(gs, HelperNameSpace.RotDirection.size - 1);
}
else if(aname.equals(HelperNameSpace.ACTION_ROTATE_RIGHT)){
simRotate(gs, 1);
}
else if(aname.equals(HelperNameSpace.ACTION_AHEAD)){
simPitch(gs, 0);
}
else if(aname.equals(HelperNameSpace.ACTION_DOWN_ONE)){
simPitch(gs, HelperNameSpace.VertDirection.size - 1);
}
else if(aname.equals(HelperNameSpace.ACTION_PLACE_BLOCK)){
simPlace(gs);
}
else if(aname.equals(HelperNameSpace.ACTION_DEST_BLOCK)){
simDestroy(gs);
}
else if(aname.equals(HelperNameSpace.ACTION_CHANGE_ITEM)){
simChangeItem(gs);
}
else{
throw new RuntimeException("MinecraftModel is not defined for action " + aname);
}
return gs;
}
示例9: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
BlocksWorldState bs = (BlocksWorldState)s.copy();
if(a.actionName().equals(ACTION_STACK)){
return stack(bs, (ObjectParameterizedAction)a);
}
else if(a.actionName().equals(ACTION_UNSTACK)){
return unstack(bs, (ObjectParameterizedAction)a);
}
throw new RuntimeException("Unknown action " + a.toString());
}
示例10: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
int aId = ((GraphActionType.GraphAction)a).aId;
int n = (Integer)s.get(VAR);
Map<Integer, Set<NodeTransitionProbability>> actionMap = transitionDynamics.get(n);
Set<NodeTransitionProbability> transitions = actionMap.get(aId);
double roll = rand.nextDouble();
double sumP = 0.;
int selection = 0;
for(NodeTransitionProbability ntp : transitions){
sumP += ntp.probability;
if(roll < sumP){
selection = ntp.transitionTo;
break;
}
}
((MutableState)s).set(VAR, selection);
return s;
}
示例11: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
FrostbiteState fs = (FrostbiteState)s.copy();
String aname = a.actionName();
if(aname.equals(ACTION_EAST)){
move(fs, 1, 0);
}
else if(aname.equals(ACTION_WEST)){
move(fs, -1, 0);
}
else if(aname.equals(ACTION_NORTH)){
move(fs, 0, -1);
}
else if(aname.equals(ACTION_SOUTH)){
move(fs, 0, 1);
}
else if(aname.equals(ACTION_IDLE)){
move(fs, 0, 0);
}
else{
throw new RuntimeException("Unknown action " + a.toString());
}
return fs;
}
示例12: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
if(a.actionName().equals(CartPoleDomain.ACTION_RIGHT)){
return moveCorrectModel(s, 1);
}
else if(a.actionName().equals(CartPoleDomain.ACTION_LEFT)){
return moveCorrectModel(s, -1);
}
throw new RuntimeException("Unknown action " + a.actionName());
}
示例13: sample
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
@Override
public State sample(State s, Action a) {
s = s.copy();
if(a.actionName().equals(CartPoleDomain.ACTION_RIGHT)){
return moveClassicModel(s, 1);
}
else if(a.actionName().equals(CartPoleDomain.ACTION_LEFT)){
return moveClassicModel(s, -1);
}
throw new RuntimeException("Unknown action " + a.actionName());
}
示例14: generateStates
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
public Set<HashableState> generateStates(SADomain domain, State state, HashableStateFactory factory, int width) {
Set<HashableState> hashedStates = new HashSet<HashableState>();
for (int i = 0; i < width; ++i) {
for (int j =0 ; j < width; ++j) {
GridWorldState copy = (GridWorldState)state.copy();
copy.touchAgent().x = i;
copy.agent.y = j;
hashedStates.add(factory.hashState(copy));
}
}
return hashedStates;
}
示例15: generateRandomStates
import burlap.mdp.core.state.State; //导入方法依赖的package包/类
public Set<HashableState> generateRandomStates(SADomain domain, State state, HashableStateFactory factory, int width, int numStates, boolean moveLocations) {
Set<HashableState> hashedStates = new HashSet<HashableState>();
Random random = new Random();
int misses = 0;
int prevSize = 0;
while (hashedStates.size() < numStates) {
if (hashedStates.size() == prevSize) {
misses++;
}
if (misses > 100) {
break;
}
prevSize = hashedStates.size();
if (prevSize > 0 && prevSize % 10000 == 0) {
System.out.println("\t" + prevSize);
}
GridWorldState copy = (GridWorldState)state.copy();
copy.touchAgent().x = random.nextInt(width);
copy.agent.y = random.nextInt(width);
if (moveLocations) {
List<GridLocation> locations = copy.deepTouchLocations();
for(GridLocation loc : locations){
loc.x = random.nextInt(width);
loc.y = random.nextInt(width);
}
}
hashedStates.add(factory.hashState(copy));
}
return hashedStates;
}