问题标签 [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.

0 投票
4 回答
2491 浏览

algorithm - 再现具有原始形状的图像。(图形优化问题)

基于这个最初的想法,你们中的许多人可能以前见过: http ://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/

我想尝试采用不同的方法:

你有一个目标图像。假设您一次可以添加一个三角形。存在最大化图像相似度(适应度函数)的一些三角形(或平局的三角形)。如果你能蛮力破解所有可能的形状和颜色,你就会找到它。但这是非常昂贵的。搜索所有三角形是一个 10 维空间:x1, y1, x2, y2, x3, y3, r, g, b, a.

我使用了模拟退火,结果非常好。但我想知道我是否可以进一步改进这一点。一种想法是实际分析目标图像和当前图像之间的图像差异,并寻找可能是放置新三角形的好地方的“热点”。

你会使用什么算法来找到最大化图像相似度的最佳三角形(或其他形状)?

算法是否应该改变以不同地处理粗略细节和精细细节?我还没有让它运行足够长的时间来开始完善更精细的图像细节。运行时间越长,添加新形状似乎越“害羞”……它使用低 alpha 值(非常透明的形状)。

目标图像和再现图像(28 个三角形):

替代文字 替代文字 替代文字

编辑!我有了一个新想法。如果给定形状坐标和 alpha 值,则可以通过分析当前图像和目标图像中的像素来计算形状的最佳 RGB 颜色。这样就从搜索空间中消除了 3 个维度,并且您知道您使用的颜色始终是最佳的!我已经实现了这一点,并尝试使用圆形而不是三角形进行另一次运行。

300 个圆和 300 个三角形:

替代文字 替代文字

0 投票
3 回答
18254 浏览

artificial-intelligence - 模拟退火和遗传算法有什么区别?

在性能和用例方面,模拟退火(使用 bean 搜索)和遗传算法之间有哪些相关差异?

我知道 SA 可以被认为是人口规模只有一个的 GA,但我不知道两者之间的关键区别。

此外,我正在尝试考虑 SA 将优于 GA 或 GA 将优于 SA 的情况。一个简单的例子可以帮助我理解就足够了。

0 投票
1 回答
261 浏览

algorithm - 模拟退火 - 传感器网络中的传感器定位

嗨,我在理解无线传感器网络中的定位传感器问题方面遇到了一点问题。基于那篇文章 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.110.2833&rep=rep1&type=pdf 我即将编写一个小模拟程序来解决定位传感器的问题传感器网络。

优化问题看起来像这样

假设我们有一组 m 个传感器(锚定 ndoes),每个传感器位置已知,n 个传感器(非锚定 ndoes)位置未知。每个节点都有能力测量自己和相邻节点之间的距离(测量值被噪声破坏)。

我的任务是:
通过嘈杂的距离测量和锚节点的位置来估计所有位置未知的节点的位置。

在文章中(我在问题开始时提到过)也是一个我不理解的成本函数。我只是不知道锚节点的位置如何帮助我估计所有节点的位置。

我希望有人能理解我在写什么 :) 对不起我的英语

0 投票
0 回答
773 浏览

matlab - kreisselmeier steinhauser function with simulated annealing

How can I implement Kreisselmeier Steinhauser (KS) function with Simulated Annealing optimization? My code for SA with KS func is as follows:

The KS function is implemented as followed:

0 投票
2 回答
578 浏览

simulated-annealing - 模拟退火和 Yahtzee!

我参加了Programming Challenges并找到了 Yahtzee!我将简化的问题:

  • 有13个评分类别
  • 一个玩家有13个掷骰子(包括一个剧本)
  • 每个卷必须适合不同的类别
  • 目标是找到一场比赛的最高分(类别中滚动的最佳位置);score(play) 返回一个游戏的分数

蛮力找到最高游戏分数需要 13 分!(= 6,227,020,800) score() 调用。

我选择模拟退火以更快地找到接近最高分数的东西。虽然不是确定性的,但已经足够好了。我有一个 13 卷 5 骰子的列表,例如:

(1,5,6,7,2,3,4,8,9,10,13,12,11)传递给 score()的剧本返回该剧本排列的分数。

如何选择一个好的“邻国”?对于随机重启,我可以简单地选择 nos 的随机排列。1-13,把它们放在一个向量中,然后给它们打分。在旅行商问题中,这是一个良好邻国的例子:

“某些特定排列的邻居是例如通过交换一对相邻城市而产生的排列。”

我对简单地交换两个随机向量位置有一种不好的感觉,如下所示:

但我没有证据,也不知道如何选择一个好的邻国。有人对如何选择好的邻国有任何想法吗?

0 投票
1 回答
2884 浏览

simulated-annealing - 使用模拟退火的 N 皇后问题

我正在尝试使用模拟退火为我的 n 个皇后提出算法。网上有通用的算法,但是我看的时候不明白它是怎么工作的。我的节点只有关于板上命中数的值。如何为此使用模拟退火算法。什么是“温度”、“时间表”?

请帮助我理解这一点。谢谢

0 投票
2 回答
237 浏览

algorithm - 按规则分配资源——模拟退火合适吗?

我想设计一个可以根据规则分配资源的应用程序。我相信模拟退火会起作用,但我对它不太熟悉,我想知道是否有可能合适的替代算法。

例如,如果我有一个网格,并且我可以为网格中的每个单元格着色,我想设计一个算法来为如下规则集找到最佳或接近最佳的解决方案:

  • 1000x1000 网格
  • 必须放置 500 个红色单元格、500 个蓝色单元格和 1000 个绿色单元格
  • 一个红细胞必须接触另一个红细胞
  • 蓝色单元格不得接触另一个蓝色单元格
  • 绿色单元只能沿边缘放置
  • 可以根据彩色单元格与左上角的平均距离对排列进行评分

模拟退火是否适合这个问题?我需要一种可以快速可靠地计算解决方案的算法(几秒钟到几分钟)。

0 投票
1 回答
380 浏览

debugging - 如何更快地调试蒙特卡罗模拟?

我正在编写一个模拟退火程序,并且在调试它时遇到了一些麻烦。任何的建议都受欢迎。

首先,输出不是确定性的,所以我已经开始运行它一百次并查看平均值和标准差。

但是完成一个测试用例需要很长时间(> 30 分钟)。

通常,我会尝试减少输入,但减少迭代次数会以无法完全预测的方式直接降低结果的准确性。例如,冷却计划是与迭代次数成比例的指数衰减。减少单独运行的数量会使输出非常不可靠(我试图寻找的错误之一是运行之间的巨大差异)。

我知道过早的优化是万恶之源,在程序甚至正确之前进行优化肯定还为时过早,但我正在认真考虑重写这是一种更快的语言(Cython 或 C),因为我知道我必须这样做最后将其移植回 Python 进行提交。

那么,有什么方法可以比我现在更好地测试模拟退火算法吗?或者我应该在测试之间做其他事情吗?

披露:这是课程作业,但我并不是要您帮助我进行实际模拟。

0 投票
3 回答
4490 浏览

python - SciPy 全局最小曲线拟合

我正在使用scipy.optimize.curve_fit,但我怀疑它正在收敛到局部最小值而不是全局最小值。

我尝试通过以下方式使用模拟退火:

specf我要拟合的曲线在哪里。尽管返回值表明已达到全局最小值,但结果p显然比返回的最小值更差(请参阅 anneal)。curve_fit

我怎样才能改善结果?SciPy 中是否有全局曲线拟合器?

0 投票
1 回答
1454 浏览

simulated-annealing - 从概念上理解模拟退火

我刚刚被介绍到模拟退火,并希望在再次深入研究代码之前更好地理解它,因为尽管从我目前拥有的资源中阅读了代码,但我觉得我不太明白它。所以请随时纠正我目前对算法的理解:

模拟退火算法的总体目标是基于一些预定义的计算方法(如 TSP 中的行进距离或生物信息学中的密码子对分布)获得最小(或最大)分数。然而,为了避免陷入局部最优,暂时接受较低(或较高)的分数,以获得更好的全局解决方案。

另一个问题:如何克服局部最优?是通过基于某种概率接受更高的分数吗?(从这里开始很朦胧)

非常感谢你调查这个..