Algorithm 邻域metropolis准则在模拟退火算法中的应用

Algorithm 邻域metropolis准则在模拟退火算法中的应用,algorithm,matlab,Algorithm,Matlab,我正在研究模拟退火,我对Metropolis准则的应用有一些问题。我使用两种方法: 首先,我对生成的每个邻居应用Metropolis准则,当我在算法中这样做时(我正在使用matlab),我的算法拒绝几乎所有的邻居,只接受两个或三个,它们甚至不是最佳解,最后我得到的结果不是期望的最优解。 第二,当我生成一个新邻居时,我将他的能量与当前解决方案的能量进行比较,如果能量较小,我保留这个邻居,如果不是这样,那么我应用了都会计划的标准,看看我是否保留它。这样我得到了令人满意的结果。所以我想知道这是否总是模

我正在研究模拟退火,我对Metropolis准则的应用有一些问题。我使用两种方法: 首先,我对生成的每个邻居应用Metropolis准则,当我在算法中这样做时(我正在使用matlab),我的算法拒绝几乎所有的邻居,只接受两个或三个,它们甚至不是最佳解,最后我得到的结果不是期望的最优解。
第二,当我生成一个新邻居时,我将他的能量与当前解决方案的能量进行比较,如果能量较小,我保留这个邻居,如果不是这样,那么我应用了都会计划的标准,看看我是否保留它。这样我得到了令人满意的结果。所以我想知道这是否总是模拟退火的逻辑,因为我还不知道什么时候应用这个大都市标准。是不是每个邻居都有?如果是这样,我的第二种方法正确吗?而且随机数应该只在0和1之间,或者有可能在其他区间生成随机数吗?谢谢

您能否更具体地说明您试图解决的问题以及“将大都市标准应用于每个邻居”的含义?我正在研究一个优化问题,即成本231 hata的优化,这是移动通信网络中的一个模型宣传。metropolis的标准是:要计算指数并生成一个介于0和1之间的随机数,如果我没有理解你评论的第二部分。我很好奇每个邻居身上的那部分抱歉。我的网络有一些问题。我正在研究cost 231 hata的优化,这是移动通信网络中的一个传播模型。都会计划的标准包括:计算接受概率并生成一个介于0和1之间的随机数;然后将此概率与随机数进行比较,如果概率高于随机数,则我们接受邻居,如果不是,则拒绝邻居,并且我们假设在模拟退火算法中对每个生成的邻居应用此准则@vibSo您应该通过随机选择一对相邻顶点并将Metropolis标准应用于这对顶点来进行更新。你还没有解释你所说的“第一个”方法是什么意思,但是,先验地说,不能保证它能正确地对你的概率分布进行采样。