必须先到达目标A才能进入目标B.

时间:2015-01-19 14:13:59

标签: java

我的问题是我希望我的代理人在目标B之前找到目标A.就像在这个例子中:为了完成一项特定的任务,代理人必须进入目标a然后转到目标B.代理人从起点直接进入B,没有成功完成游戏,需要在访问B之前访问A.

我将此示例应用于强化学习:

这是在Simulation.java类

此时我的代理可以从其起始点转到目标状态:如果调用了isterminal方法并且尚未达到maxStepsPerTrial,则下面是停止代理的当前代码,然后它将打印出一系列步骤它花了

     for (stepnum = 1; !currState.isTerminal()

        && (stepnum < maxStepsPerTrial); stepnum++) {
            step(ep % printDivisor == 0);

            }

这是在GirdState.java类中:

这是isTermial()所以cr是另一个名为Coloumns&amp; Row的类,它保存了目标行和目标颜色的值。

 @Override
 public boolean isTerminal() {
 // TODO Auto-generated method stub

 return (y == cr.GOAL_ROW && x == cr.GOAL_COL);
 }

我想要它做的是在它可以调用isterminal()之前,它首先必须通过一个子目标E.g

   public boolean isSubA() {

    return (y == 3 && x == 3);
}

有没有人知道如何实现这一点。

0 个答案:

没有答案