0

我正在尝试为以下问题找到启发式函数。给你 n 桶油漆,最大容量 max_i,当前容量 curr_i 和绘画颜色 colour_i,i = 1,n 和一个可能的颜色组合列表:col1 + col2 -> col3。问题的最终状态是一组必须在桶中找到的对(数量,颜色)#(final_state) <= no。桶。

目标是混合这些桶,例如最后,从最终状态开始的每一对都至少在一个桶中找到。每次移动时,如果您倾倒的桶未满,您可以从一个桶倒入另一个桶。

问题是我想不出一个经典的启发式来解决这个问题,因为我无法将初始状态的存储桶与最终状态的存储桶进行比较(它不是唯一的)。启发式必须是从当前状态到最终状态的移动次数,还是可以是随着我们接近范围而减少的一些数字?

4

1 回答 1

0

启发式必须是可接受的,因此不应低估实际距离。随着您越来越接近目标,原则上它应该更精确,因此可能会更快地突然变小。但这完全没问题,只要它没有低估。

由于到目标的距离通常是移动的数量,很难看出它怎么可能是完全不相关的。所以,是的,启发式应该与移动的数量有关,但不是必须的,只要它是悲观的而不是乐观的。

于 2020-04-19T16:31:24.007 回答