CONTACT
时间:2024-04-15 12:42:37 点击量:
由于之前用公众号,第一次来知乎,所有一下发所有库存哈~
之后会学一个算法,发一下~~
自己也是初学者,可能有错,一起学习啦~~
在某些情况下,特别是实际问题中,最优算法的计算时间使人无法忍受或因问题的难度使其计算时间随实例规模的增加以指数速度增加,如表1.2.1列举的TSP枚举算法的情况,此时只能通过启发式算法求到实例的一个可行解。
启发式算法是一种技术。这种技术使得在可接受的计算费用内去寻找最好的解,但不一定能保证所得解的可行性和最优性,甚至在多数情况下,无法阐述所得解同最优解的近似程度。
采用最坏实例下的误差界限来评价启发式算法,则可以定义近似算法:
称H是A的 ε 近似算法当且仅当:
现代优化算法是20世纪80年代初以来得到深入研究和广泛应用的启发式算法。主要包括贪婪算法(greedy algorithm)、邻域搜索(local search)算法、禁忌搜索算法,模拟退火算法,遗传算法,蚁群优化算法,人工神经网络算法等。
相比于最优化算法,启发式算法能够迅速发展的优点:
领域搜索+禁忌表
为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但不是完全隔绝),从而获得更多的搜索区间。兔子们找到了泰山,它们之中的一只就会留守在这里,其他的再去别的地方寻找。就这样,一大圈后,把找到的几个山峰一比较,珠穆朗玛峰脱颖而出。
当兔子们再寻找的时候,一般地会有意识地避开泰山,因为他们知道,这里已经找过,并且有一只兔子在那里看着了。这就是禁忌搜索中禁忌表(tabu list) 的含义。那只留在泰山的兔子一般不会就安家在那里了,它会在一定时间后重新回到找最高峰的大军,因为这个时候已经有了许多新的消息,泰山毕竟也有一个不错的高度,需要重新考虑,这个归队时间,在禁忌搜索里面叫做禁忌长度(tabu length);如果在搜索的过程中,留守泰山的兔子还没有归队,但是找到的地方全是华北平原等比较低的地方,兔子们就不得不再次考虑选中泰山,也就是说,当一个有兔子留守的地方优越性太突出,超过了“best so far”的状态,就可以不顾及有没有兔子留守,都把这个地方考虑进来,这就叫特赦准则(aspiration criterion)。这三个概念是禁忌搜索和一般搜索准则最不同的地方,算法的优化也关键在这里。
其中不受禁忌的元素包含两类:一类是那些没有被禁忌的元素,另一类是可以被解除禁忌的元素。
组成元素
造成解变化的状态为禁忌对象。
相对来说,1,2,3三种方法的禁忌范围逐渐变大,计算快,但是搜索范围表小,易陷入局部最优解。
禁忌对象被禁用的次数,也可以用禁忌集合T长度去更新被禁对象。
禁忌算法:处理TSP问题的python代码[1]
右统计力学表示,温度T时。分子在状态r的概率分布满足波兹曼(Boltzmann)函数:
其中,为一个随机变量,为在温度T下处以状态r的能量,为概率分布的标准化因子,为波兹曼常数。
1.由公式可知,当温度很高时,概率分布接近平均分布
2.由求导可知,固定最小能量状态为,则 关于温度T时单调下降的。
3.当T趋于0时,,其中为具有最低能量的所有状态集合。表明模拟退火方法以接近概率1的可能逼近最优解
将组合优化问题同金属物体退火进行类比:
算法:
流程图:
利用马尔可夫链进行建立。
其中表示在状态i,状态j被选取的概率,假设领域中元素等概率选取时:
表示产生状态j后,状态j被接受的概率,如在模拟退火算法中接受的概率为
表示状态集合(解集合)中状态的个数。 分别称为一步转移概率矩阵,产生矩阵和接受矩阵。
上面三个公式为模拟退火的基本数学模型。模拟退火可以分两类:
马尔科夫链应满足下列条件:
为一步转移概率。当状态空间有限时,称为有限马氏链,一步转移概率矩阵记为
当每一步的转移概率矩阵都相等时,称马氏链为时齐的(homogenneous)。
表示n步转移概率。
定义从i到达j首达时刻的随机变量为
其概率定义为
迟早到达概率为
由马氏链性质的 讨论,当下面性质得以证明后,说明模拟退火算法收敛全局最优解。
定理 3.3.3 和定理 3.3.4 给出时齐算法全局收敛应满足的充分条件,但这些条件的限制是比较强的,如(3.1.6)的发生概率就不一定满足定理 3.3.3 的(2),因此,研究模拟退火算法全局收敛应满足的充分条件是理论研究的一个方向。
产生数值计算估计和统计推断估计方法给出一个近似估计值。
3.温度下降方法:固定下降速率或者固定间隔。
4.实际计算中达到理论的平稳分布是不可能的,只能在同一温度时,近似找个步数停止,当作极限。 每一固定温度的迭代长度:固定长度或者由接受和拒绝的比率控制迭代步数。(温度高时,接受的概率大,迭代步数小,温度低,则迭代步数高。)
5.算法的终止原则:零度法、循环总数控制、不改进规则、接受概率控制、领域法...
模拟退火:处理TSP问题的python代码[2]
[1]
禁忌算法:处理TSP问题的python代码网址: https://blog.csdn.net/adkjb/article/details/81712969
[2]
模拟退火:处理TSP问题的python代码网址: https://blog.csdn.net/qq_34798326/article/details/79013338
地址:海南省海口市玉沙路58号 电话:0898-88889999 手机:13988889999
Copyright © 2012-2018 天辰-天辰平台-天辰中国加盟站 ICP备案编:琼ICP备88889999号