Buenas!
Depende mucho del enunciado. Pero las tres cosas que diría que siempre importan, son:
- Tiene que ser admisible. Nunca sobreestimar, porque eso rompe la optimalidad de A*.
- Tiene que intentar acercarse lo mejor que pueda al costo real, estimarlo de alguna forma. Por ejemplo, "return 0" es siempre admisible pero completamente inútil y no realmente una "heurística", porque no estima de ninguna forma el costo. Una heurística es mejor cuanto más se acerque al costo real. Y SOLO entre heurísticas que son admisibles, es fácil elegir cuando una siempre da un número igual o mayor que otra: la primera siempre va a estar más cerca del costo real que la segunda (esto NO aplica si no son admisibles).
- Tiene que ser relativamente rápida de calcular. La heurística se calcula para el estado de cada nodo que se agrega a la frontera, así que si es un proceso super complejo que toma mucho tiempo de cómputo, puede terminar siendo contraproducente (puede costar más calcular y usar la heurística, que directamente resolver el problema usando otra heurística menos precisa pero más rápida de calcular).
Saludos!