/// <summary> /// expands a given node /// </summary> /// <param name="toExpand"></param> private void Expand(MddMatchAndPruneState toExpand, successorIterator allChildren) { allChildren.initialize(toExpand); MddMatchAndPruneState successor; while (allChildren.hasNext) { successor = allChildren.getNext(); if (closedList.ContainsKey(successor)) { ((MddMatchAndPruneState)closedList[successor]).addParent(toExpand); } else { CostTreeNodeSolver.matchCounter++; successor.addParent(toExpand); closedList.Add(successor, successor); openList.Enqueue(successor); if (successor.stateLevel + 1 == this.solutionDepth) { goal = successor; } } } }