当前位置: 首页>>代码示例>>Java>>正文


Java State.copy方法代码示例

本文整理汇总了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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:26,代码来源:BlockDudeModel.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:21,代码来源:LunarLanderModel.java

示例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]);

}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:22,代码来源:GridWorldDomain.java

示例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);
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:20,代码来源:IPModel.java

示例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;
}
 
开发者ID:honzaMaly,项目名称:kusanagi,代码行数:33,代码来源:ExampleGridWorld.java

示例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;
		}
 
开发者ID:jmacglashan,项目名称:burlap_examples,代码行数:33,代码来源:ExampleOOGridWorld.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap_examples,代码行数:33,代码来源:ExampleGridWorld.java

示例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;
}
 
开发者ID:h2r,项目名称:burlapcraft,代码行数:37,代码来源:MinecraftModel.java

示例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());
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:15,代码来源:BWModel.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:28,代码来源:GraphDefinedDomain.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:28,代码来源:FrostbiteModel.java

示例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());

}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:15,代码来源:CPCorrectModel.java

示例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());

}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:14,代码来源:CPClassicModel.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:13,代码来源:TestHashing.java

示例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;
}
 
开发者ID:jmacglashan,项目名称:burlap,代码行数:33,代码来源:TestHashing.java


注:本文中的burlap.mdp.core.state.State.copy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。