если вы хотите, чтобы ваша эвристика была допустимой, вы должны иметь h(n) <=h*(n)
для каждого узла n
, где h*
— реальная стоимость достижения цели. В вашем случае вы хотите:
h(A) <= 4
h(C) <= 3
h(G) <= 0
Если вы хотите, чтобы ваши эвристики были последовательными, у вас должны быть эти h(G) = 0
и h(n) <= cost(n, c) + h(c)
, где узел c
является дочерним элементом узла c
. Итак, в вашем случае
h(A) <= 1 + h(C)
h(C) <= 3 + h(G) = 3
Если вы хотите несоответствия и поскольку h(C) <= 3
для условия допустимости, то у вас должно быть это h(A) > 1 + h(C)
. Итак, любая геристика, которая удовлетворяет:
h(A) > 1 + h(C)
h(C) <= 3
h(G) = 0
является допустимым и несовместимым. Ты дал
h(A) = 4
h(C) = 1
h(G) = 0
который является действительным кандидатом.
person
sve
schedule
02.10.2015
4 = h(A) <= real cost from A to G = 4
,1 = h(C) <= real cost from C to G = 3
- person sve   schedule 02.10.2015f(A) > f(C)
ваш пример эвристики несовместим. Тогда ваша эвристикаh(A)=4, h(C)=1, h(G)=0
допустима и несостоятельна - именно то, что вы ищете :) - person sve   schedule 02.10.2015