|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
每次如何有效的生成新的X来尝试.设向量X的解空间是S,模拟退火是每次在现有的X(i)的基础上扰动以生成一个新的X(i+1)来进行评价,从而决定是否接受。问题就是这个扰动允许的范围有多大我有点不清楚。我觉得如果每次的扰动允许X(i+1)可能的取值占满了S,显然不合理,但是如果每次扰动允许X(i+1)只在X(i)附近的很小区域内,我觉得也不合理,因为退火过程总是有限的,这样会使得困在局部最小值的可能性增加。于是怎么进行权衡呢?还有一个问题就是如何高效的根据历史信息来有效的生成新的X(i+1).模拟退火算法本身从X(i)生成X(i+1)的时候没有任何偏向,完全是随机的,但是实际上我们有历史信息可以利用,比如接受过哪些尝试,拒绝过哪些尝试。这样可以更加有效的生成X(i+1),加快优化过程。 我现在只是用了一个很naive的方法,就是我让X的各个维上每一次扰动允许的变化范围成为温度的线性递减函数。随着温度的降低,每次扰动的幅度也越低,这个比较好理解,当温度比较低的时候,大体上只要做“微调”了,如果还让他每次的新X可以跳很远的话,很难准确地找到最小值。这个naive方法看起来是有效果的,优化结果比用一个恒定的扰动允许变化范围要好得多。我不知道版上有没有人对模拟退火比较熟悉的,或者推荐点资料哈~~~ |
|