public IEnumerable <QNode> Generate(QNode node) { List <QNode> successors = new List <QNode>(); foreach (IOperator op in env.ApplicableOperators(node.State)) { IOutcome outcome = env.act(node.State, op); QNode succ = new QNode(); succ.State = outcome.State; succ.Parent = node; succ.UsedOperator = op; succ.Q = 0; successors.Add(succ); } return(successors); }
public IEnumerable <ANode> Generate(ANode node) { List <ANode> successors = new List <ANode>(); foreach (IOperator op in env.ApplicableOperators(node.State)) { IOutcome outcome = env.act(node.State, op); ANode succ = new ANode(); succ.State = outcome.State; succ.UsedOperator = op; succ.Parent = node; succ.G = (int)(node.G - outcome.Reward); successors.Add(succ); } return(successors); }