C++ 检查启发式是否兼容

C++ 检查启发式是否兼容,c++,artificial-intelligence,heuristics,C++,Artificial Intelligence,Heuristics,我知道,在这些条件下,兼容的启发式是: hn就我所知,在你的案例中,出租车距离是一个很好的启发。这里有更多信息:。编辑:正如@FeiXiang正确指出的那样,在您的情况下,您应该使用出租车距离,也就是曼哈顿距离,其中唯一有效的移动是向上、向下、向左或向右 如果Xa,Ya是你在网格点a和Xb中的当前位置,Yb是你的目的点b,那么你将计算曼哈顿距离,如下所示 typedef std::pair<int, int> Point; unsigned manhattanDistance(con

我知道,在这些条件下,兼容的启发式是:
hn就我所知,在你的案例中,出租车距离是一个很好的启发。这里有更多信息:。

编辑:正如@FeiXiang正确指出的那样,在您的情况下,您应该使用出租车距离,也就是曼哈顿距离,其中唯一有效的移动是向上、向下、向左或向右

如果Xa,Ya是你在网格点a和Xb中的当前位置,Yb是你的目的点b,那么你将计算曼哈顿距离,如下所示

typedef std::pair<int, int> Point;
unsigned manhattanDistance(const Point &a, const Point &b)
{
    return abs(a.first - b.first) + abs(a.second - b.second);
}

互联网上有大量的资源可以帮助你解决这个问题,所以开始阅读书籍吧,祝你好运