寻找想法/参考/关键词:自适应参数控制搜索算法(在线学习)

时间:2010-11-23 14:26:34

标签: optimization machine-learning heuristics reinforcement-learning

我正在寻找关于搜索算法参数的自适应参数控制的想法/经验/参考/关键字(在线学习 >)在组合优化中。

更详细一点:

我有一个框架,负责优化硬组合优化问题。这是在一些“小启发式”的帮助下完成的,这些“小启发式”以迭代的方式使用(大邻域搜索;破坏和重新创建方法)。这些“小启发式”的每个算法都采用了一些外部参数,这些参数在某种程度上控制了启发式逻辑(此刻:只是随机值;某种噪声;使搜索多样化)。

现在我希望有一个控制框架,用于以尽可能通用的收敛改进方式选择这些参数,以便以后可以在不改变参数控制的情况下添加新的启发式。

至少要做出两个一般性决定:

  • 答:选择在下一次迭代中使用的算法对(一个破坏和一个重建算法)。
  • B:选择算法的随机参数。

唯一的反馈是新发现解决方案的评估功能。这让我想到了强化学习的主题。这是正确的方向吗?

不是真正像学习一样的行为,但目前简单化的想法是:

  • A:轮盘选择根据迭代过程中收集的一些性能值(接近过去比旧版更有价值)。 因此,如果启发式1确实找到了所有新的全局最佳解决方案 - >很有可能选择这个。
  • B:不知道。也许可以在范围(0,1)中使用一些非均匀随机值,并且我正在收集一些变化的动量。 因此,如果启发式1最后一次使用alpha = 0.3并且没有找到新的最佳解决方案,那么使用0.6并找到一个新的最佳解决方案 - >有一个势头趋向1 - >下一个随机值可能大于0.3。可能出现的问题:振动

注意事项: - 一个特定算法的良好收敛所需的参数可以显着改变 - >也许更多样化 - 开始时需要的操作,最后需要更多的强化操作。 - 在特定的破坏/重建算法对中有可能产生良好的协同效应(有时称为:耦合邻域)。怎么会认出那样的东西?那仍然在强化学习领域吗? - 不同的算法由不同数量的参数控制(一些参数为1,一些参数为3)。

任何想法,经验,参考文献(论文),关键词(ml-topics)?
如果有关于(b)以离线学习方式决定的想法。不要犹豫,提及。

感谢您的所有意见。

的Sascha

2 个答案:

答案 0 :(得分:1)

您有一组参数变量可用于控制算法集。选择算法只是另一个变量。

您可能想要考虑的一种方法是使用遗传算法进化“参数空间”。简而言之,GA使用自然选择过程的类比来连续培育出更好的解决方案。

您需要开发一种编码方案,将您的参数空间表示为字符串,然后创建大量候选解决方案作为您的起始生成。遗传算法本身采用您的集合中最适合的解决方案,然后将各种遗传算子应用于它们(突变,繁殖等),以培育出更好的集合,然后成为下一代。

这个过程中最困难的部分是开发适当的适应度函数:定量测量给定参数空间的质量。您的搜索问题可能过于复杂,无法衡量人口中的每个候选人,因此您需要一个代理模型功能,这可能与理想的解决方案本身一样难以开发。

如果不了解你所写的内容,很难看出这种方法是否可行。 GA通常非常适合这样的多变量优化问题,但它不是灵丹妙药。从维基百科开始参考。

答案 1 :(得分:1)

这听起来像你想要做的 hyper heuristics 。尝试寻找该关键字。

Drools Planner(开源,java)中,我支持禁忌搜索和模拟退火。 我还没有实现破坏和重建方法(但是),但这应该很容易,尽管我并不期望更好的结果。挑战:证明我错了,把它分叉并添加它并在示例中击败我。 超启发式在我的TODO列表中。