I’m catching up on the reading and I am a little confused about consistent heuristics for A*.
Graph search maintains an explored set, so I am not sure why there is the more strict requirement of consistency for it over the tree search requirement of admissibility?
Because without it, you might end up with two different values of f for the same node. If you don’t keep track, you might end up on a suboptimal path.
A* expands nodes on the basis of their f value. That means you might reach the same node more than once in your expansions of the frontier, with different f values each time. This can’t happen with a consistent heuristic, though if you’re willing to do the bookkeeping then you can still find optimal paths with an admissible but inconsistent heuristic, by tracking best f-values so far for all nodes visited, updating as you go.
Perhaps this is because consistency also seems like admissibility stated another way to me.
Oh no, it’s definitely different, and a stronger requirement.
I can’t imagine when a heuristic would be admissible without being consistent.
They are odd. You can construct them, but they’re almost always contrived — that is, they’re usually obviously created to be an example of such an odd thing, not because they’re an obvious, natural fit for the problem.
Can you please try to clarify the difference for me?
Admissible heuristics always exactly- or under-estimate the distance to the goal.
Consistent heuristics are bounded by being at most the cost to move to a neighbor, plus the estimated distance from that neighbor to the goal.
Unlike admissible heuristics, consistent heuristics are monotone, that is, the estimated path cost is monotonically decreasing along a path toward the goal (at each step, it decreases or remains the same). This is a stronger requirement than admissibility, which is only a per-node requirement. Put another way, consistent heuristics must obey the triangle inequality.
Speaking of contrived examples, one way to construct them is to specify that the heuristic is chosen at random from among two admissible heuristics. For example, imagine an 8-puzzle, where for every node, the search process chooses to use either Manhattan distance, or the number of misplaced tiles. Whichever is selected, the value is admissible. But along a given path, there’s no guarantee the value will monotonically decrease (as Manhattan distance is generally going to be higher than the number of misplaced tiles). This odd definition of a heuristic is admissible, but not consistent.
Is A* always complete, even if the heuristic is not admissible?
Generally yes. It is not always optimal in this case, but will be complete, assuming you do the incompleteness-associated bookkeeping. (With the exception of state spaces that are infinite: much like A* with an admissible heuristics can have trouble with infinite numbers of successors with underestimated values of f, you can run into trouble here. I’ll leave it to you to work out the details.)