传教士和食人者启发式

missionaries and cannibals heuristic

我想用 python 和不同的搜索算法实现传教士和食人者。其中一种算法是 GreedyA*,它需要启发式函数才能工作。

我想不出任何正确的启发式方法。你能建议一个启发式吗?

传教士和食人者问题的正确启发式函数,我们假设首先左边有3个传教士和3个食人者,所以:

h(x) = (cannibalsLeft + missionariesLeft) / 2 
heuristic = (no. of missionaries at right side + no. of cannibals at right side) – 1

上面表达式中的负 1 (– 1) 对于保持启发式函数的可接受性很重要