Я пытаюсь найти функцию heuristi c для решения следующей проблемы. Вам дается n ведер краски с максимальной емкостью max_i, текущей емкостью curr_i и цветом краски colour_i, i = 1, n и списком o возможных комбинаций цветов: col1 + col2 -> col3. Конечным состоянием проблемы является набор пар (количество, цвет), которые должны быть найдены в контейнерах # (final_state) <= no. of buckets. </p>
Цель состоит в том, чтобы смешать эти сегменты, например, в конце каждая пара из конечного состояния находится как минимум в одном сегменте. На каждом ходу вы можете разливать из одного ведра в другое, если ведро, в которое вы наливаете, не заполнено.
Проблема в том, что я не могу придумать класс c heuristi c, чтобы соответствовать этой задаче поскольку я не могу сравнить сегменты из начального состояния с сегментами из конечного состояния (это не уникально). Должны ли heuristi c быть числами переходов от текущего состояния к окончательному или это может быть какое-то число, которое уменьшается по мере приближения к области?