本文整理汇总了C++中node::getHueristic方法的典型用法代码示例。如果您正苦于以下问题:C++ node::getHueristic方法的具体用法?C++ node::getHueristic怎么用?C++ node::getHueristic使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类node
的用法示例。
在下文中一共展示了node::getHueristic方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IMAstar
void IMAstar(node root, int moves)
{
int bound = root.getHueristic();
std::vector<node> results;
while (true)
{
results.push_back(root);
int f = search(root, bound, results);
if (f == -1)//is solution
{
return;//return found
}
else if (f == std::numeric_limits<int>::max())//no solution
{
std::cout << "There is no solution / solution is larger than 32bit int " << std::endl;
return;
}
else
{
bound = f;
}
}
}
示例2: search
int search(node n, int bound, std::vector<node>& results)
{
int f = n.getHueristic() + n.getDepth();
if (f > bound)
{
return f;
}
if (n.solution())
{
solutionStat(results, n);
return -1;//found
}
int min = std::numeric_limits<int>::max();
//make children here
node children[3];
node child = n.makeChild();
children[0] = child;
//child.board.display();
child = n.makeChild();
children[1] = child;
//child.board.display();
child = n.makeChild();
children[2] = child; ;
for (int i = 0; i < 3; i++)
{
exploredNodes++;
int t = search(children[i], bound, results);
if (t == -1)//found
{
results.push_back(children[i]);
return t;//found
}
else if (t < min)
{
results.push_back(children[i]);
min = t;
}
}
return min;
}