我正在尝试为以下问题找到启发式函数。给你 n 桶油漆,最大容量 max_i,当前容量 curr_i 和绘画颜色 colour_i,i = 1,n 和一个可能的颜色组合列表:col1 + col2 -> col3。问题的最终状态是一组必须在桶中找到的对(数量,颜色)#(final_state) <= no。桶。
目标是混合这些桶,例如最后,从最终状态开始的每一对都至少在一个桶中找到。每次移动时,如果您倾倒的桶未满,您可以从一个桶倒入另一个桶。
问题是我想不出一个经典的启发式来解决这个问题,因为我无法将初始状态的存储桶与最终状态的存储桶进行比较(它不是唯一的)。启发式必须是从当前状态到最终状态的移动次数,还是可以是随着我们接近范围而减少的一些数字?