次のコードでは、 を介してグラフをトラバースしていますbreadth first search
。コードは、トラバース中にグラフを構築します。これは非常に大きなグラフで、ファン アウトは 12 です。このため、深さがbreadth first search
増すたびに、メモリ使用量を最小限に抑えるために、その上のレイヤーを破棄したいと考えています。そのためのアルゴリズムをどのように設計できますか?
string Node::bfs(Node * rootNode) {
QQueue<Cube *> q;
q.enqueue(rootNode);
while (!(q.empty())) {
Node * currNode = q.dequeue();
currNode->constructChildren();
foreach (Node * child, currNode->getListOfChildren()) {
q.enqueue(child);
}
if (currNode->isGoalNode()) {
return currNode->path;
}
}