A * Допустимая эвристика для прокатки матрицы на сетке

Мне нужна помощь в поиске хорошей эвристики для решения следующей проблемы:

Вам даютR-от-C сетка и шестигранный штамп. Позволятьstart а такжеend быть две разные ячейки на этой сетке. Найти путь отstart вend так что сумма граней матрицы, смотрящей вверх, когда матрица поворачивается вдоль пути, минимальна.

Начальная ориентация штампа следующая («2» на юг):

То, как я смоделировал эту проблему, рассматривает значение кубикаs лицо как стоимость ребра в графе. Графиквершины имеют вид(row, col, die) (то есть положение в сетке и текущее состояние / ориентация матрицы). Причина, по которой вершина не просто(row, col) потому что вы можете оказаться в одной ячейке с несколькими конфигурациями / ориентациями матрицы.

Я использовал A *, чтобы найти решение проблемы; данные ответы верны, но недостаточно эффективны. Я'мы определили, что проблема в эвристическом «я»м с помощью. В настоящее время я 'м с использованием манхэттенского расстояния, что, очевидно, допустимо. Если я умножу эвристику на константу,больше не допустимо: оно работает намного быстрее, но неЯ всегда нахожу правильный ответ.

Мне нужна помощь в поиске лучшей эвристики, чем манхэттенское расстояние.

Ответы на вопрос(5)

Ваш ответ на вопрос