浅谈模拟退火
原谅我将模拟退火放到骚操作的范畴,比较玄学调参,玄学AC。。。。。。(我要当欧皇TAT) 模拟退火算法 模拟退火是一种随机化算法, 用于求函数的极值qwq 比如给出一个问题, 我们要求最优解的值, 但是可能的方案数量极大, 直接搜索会T飞(或者方案是连续的总数无穷根本没法搜), 这种时候我们一般会有两种选择: 爬山算法 爬山算法每次在当前找到的方案附近寻找一个新的方案(常见方式是随机一个差值), 然后如果这个解更优那么直接转移. 对于单峰函数来说这显然可以直接找到最优解(不过你都知道它是单峰函数了为啥不三分呢?) 但是对于多数我们求解的函数来说, 它并不一定会长成这个样子...于是就极其有可能钻进一个局部的最优解出不来了 算法得出的最优解与初始解的位置以及搜寻的附近解的区域大小有关. 当然如果你寻找新方案的区间很大的话有概率跳出去, 但是太大的话又可能跳来跳去跳乱了从而找不到最优解... 欧皇专用最优化求解方式 然而并不是所有人都是欧皇, 像博主这样的非酋要怎么办捏? 当然是求助于自然规律(大雾) 退火的理论部分 退火其实本来是冶金工业里的术语...大概过程是先把晶体加热到极高的温度再缓慢降温, 在这个过程中减少晶体中的缺陷(达到能量最低的最稳定状态) 然后机智的我们发现这个过程最终和我们的最优化过程类似! 于是我们去模拟这个过程, 按照退火的规律引入更多随机因素,