假设我有一份食谱列表,以及一份食材的有限数量清单。有什么计算机算法可以找到所有食材的最佳使用方法呢?
回答:
我认为你需要更明确地定义“最佳使用”。例如,是制作四种不同的东西“更好”,还是制作大量同一种东西更好?是制作一个大东西并用完所有食材更好,还是制作多种不同的东西但剩下一些食材更好?有些食材是否比其他食材更有价值,因此剩下一些更好或更糟?
无论如何,这更像是一个优化问题,而不是机器学习问题。它可能也不是可微分的,所以梯度方法可能不适用。因此,你可能需要考虑像模拟退火、遗传算法,或者一些爬山算法这样的算法。
基本上,你需要为任何使用的食谱集和剩余的食材分配一个“成本”或“收益”。所以你需要一个函数,能够接受这些信息并返回一个分数——表示它有多好或多坏。然后你可以通过选择食谱,计算剩余的食材等来“探索解空间”,并为其评分。然后再尝试,看看是否能得到更好的分数,等等。上面提到的算法都是有效探索可能解集的方法,希望能得到接近最优的答案。