问题标签 [simulated-annealing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何提高此代码使用模拟退火概念对数字进行排序的效率?
我试图理解模拟退火的概念,因此我试图实现它来对数字进行排序。我不确定这在概念上是否是模拟退火的正确实现。谁能指导我在这种情况下如何正确实施它?在这种情况下如何改进评分功能?另外,我在这里无法实现温度的概念。请多多包涵,因为我是编程初学者。
}
algorithm - 模拟退火算法中的邻居选择
选择邻居时应该考虑算法的温度吗?因此,例如,如果在挑选邻居时温度很高,应该进行排列吗?还是温度只影响接受概率?
python - 已使用 CSV 文件对男性和女性进行排序
我需要将人员分成团队,每个团队对这些团队都有一定数量的男性和女性,我编写了以下代码,但我不知道如何修改它,以便生成的团队具有正确的数量其中的男性和女性。
代码是:
c++ - 多线程模拟退火
我写了一个多线程模拟退火程序,但它没有运行。我不确定代码是否正确。代码能够编译,但是当我运行代码时它崩溃了。它只是一个运行时错误。
请帮忙。
谢谢阿维内什
simulated-annealing - SA中的温标
首先,这不是关于温度迭代计数或自动优化调度的问题。这就是数据量级与指数缩放的关系。
我正在使用经典公式:
exp 函数的输入是负数,因为 delta/tK 是正数,所以 exp 结果总是小于 1。random 函数还返回 0 到 1 范围内的值。
我的测试数据在 1 到 20 的范围内,增量值低于 20。我选择一个等于系统初始计算温度的起始温度,然后线性下降到 1。
为了让 SA 工作,我必须扩展 tK。工作版本使用:
那么 tK 的大小与 delta 的大小有什么关系呢?我通过反复试验找到了比例因子,但我不明白为什么需要它。据我了解,只要 delta > tK 并且步长和迭代次数是合理的,它应该可以工作。在我的测试用例中,如果我省略了额外的刻度,系统的温度不会降低。
我看过的各种在线资源都没有提到使用真实数据。有时它们包括玻尔兹曼常数作为尺度,但因为我没有模拟一个没有帮助的物理粒子系统。示例(通常使用伪代码)使用 100 或 1000000 等值。
那么我错过了什么?是否缩放另一个我必须通过反复试验设置的值?这让我很烦,因为我不只是想让这个测试用例运行,我想了解算法,而魔法常数意味着我不知道发生了什么。
python - python中的离散优化
我正在尝试使用该scipy.optimize
包来优化离散优化问题(全局优化)。根据文档,实施的模拟退火scipy.optimize.anneal
应该是一个不错的选择。但我不确定如何强制优化器只搜索搜索空间的整数值。有人可以帮忙吗?
一个说明性的例子:
f(x1,x2) = (1-0.4*x1)^2 + 100*(0.6*x2 -0.4*x1^2)^2
where, $x1, x2 \in I$
algorithm - T 在模拟退火中代表什么?
我想对不同的情况使用模拟退火。网络中的每个模拟退火算法都提供了温度示例。就像在维基
现在这个“T”一般代表什么?假设我将对国际象棋使用模拟退火。我将使用该算法为计算机寻找下一步行动。我有当前状态(S)和它的价值(e)。我有下一个状态(snew)和它们的值(enew)。那么国际象棋的“T”是什么?我需要吗!这个算法有什么通用的形式吗?我的意思是没有这个温度示例,我可以得到基本的想法!我找不到任何东西。请帮忙。提前致谢......
java - 模拟退火 TSP
我希望在 Java 中实现模拟退火算法,以找到旅行商问题的最佳路线,到目前为止,我已经实现了蛮力,并希望修改该代码以使用模拟退火。显然蛮力和模拟退火是非常不同的,并且使用非常不同的功能。
我了解模拟退火使用一个称为温度的变量,然后随着算法的运行而冷却;随着温度开始升高,逐渐冷却。虽然温度很高,但该算法更有可能选择比当前更差的解决方案,从而消除您在类似的爬山算法中发现的局部最大值。随着它的冷却,算法不太可能接受更差的解决方案,因此它可以专注于特定区域并快速找到最佳路线。
我相信我了解该算法的工作原理,但在将其放入 Java 时遇到了麻烦,我有 2 个类;一个名为 City 的方法,它只包含计算每个城市的详细信息的方法,例如getIndex
、getDistance
等。算法类从输入文件中读取并将其存储在数组中 ( int [][]
)
下面的代码是蛮力算法,我想修改它以进行模拟退火,如果有人可以帮助我这样做,我将不胜感激。
python - 带有模拟退火的 Python TSP Berlin 52
我想知道这个函数的作用:
我正在执行此功能以“退火”tour1,但我不确定我是否做得很好。我特别纠结于注释行(#),有人可以帮助我知道我在做什么!?或者更好,如果我做得很好?
编辑:
这是我的 SA 部分:
matriz 是一个 52x52 数组,是 berlin52 http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/tsp/各部分之间的距离
其他功能是:
就是这样,感谢您的评论。
algorithm - 爬山算法的时间复杂度是多少?
具体来说,最速爬山、随机爬山和模拟退火。广义时间复杂度也可以。谢谢。