Greedy best first: Minimal h(p)
Lowest cost: Minimal cost(p)
A* search: Minimal cost(p)+h(p) where,
=> g = the movement cost to move from the starting point to a given square on the grid, following the path generated to get there.
=> h = the estimated movement cost to move from that given square on the grid to the final destination. This is often referred to as the heuristic,
So, option D is correct.