Loading

NOIP前急谈模拟退火

形象比喻:

模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。

基本要素:

初始温度\(T\),结束温度\(T_0\),降温速率\(base\),随机数rand.
因为我们希望的温度大的时候,勇于尝试新解,温度小的时候比较稳定,所以主要步骤如下:
1.更据T大小随机一个解.ans+(rand()*2-RAND_MAX)*t
2.算出此时答案res,并算出与之前答案的差值\(\Delta\)
3.如果\(\Delta\)小于0,即更优,替换ans和方案
4.否则当exp(-de/t)*RAND_MAX>rand()时候更改方案,但是不更改ans
可以用clock()卡时间.
祝大家NOIPrp++;

posted @ 2025-11-28 08:50  leaf_ydc  阅读(3)  评论(0)    收藏  举报