【离散优化】大邻域搜索

时间:2020-06-16 09:47:38   收藏:0   阅读:50

大邻域搜索

回顾邻域

一个在最速下降局部搜索里的关键步骤是:

大邻域

大邻域搜索(LNS)

我们如何指定一个邻域?通常:

也可以用其他方法:

优势:

考虑:

基本的最小化问题的大邻域搜索算法框架:

large_neighbourhood_search(f, D)
	d := initial_validation(D) 
	while(not stoppingcondition())
		N := define_neighbourthood(d, D)
		e := explore_neighbourhood(N)
		if (f(e) < f(d))
			d := e
	return d

注:通常限制邻域的搜索

就像其它的局部搜索算法,大邻域搜索不能证明最优。在实践中,我们运行大邻域搜索直到资源耗尽并返回当前答案。

定义邻域

根据具体问题而定:如果我们理解了问题之后我们可能会选择松弛

以车辆寻路问题为例,它有以下要点:

可能的邻域定义:

我们也可以使用自适应选择的邻域:

一般化的随机邻域定义

随机邻域定义

关于 \(k\)

自适应的随机邻域定义

\(k\%\) 的固定率开始,对于任意邻域最多允许搜索 \(S\)

重复以下步骤

自适应邻域定义具有鲁棒性,而且很难很难被击败!

大邻域搜索的变种——贪心的大邻域搜索

小结

灭火问题

灭火问题模型

原文:https://www.cnblogs.com/xxxxxxxxx/p/13139094.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!