问题标签 [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.
java - 模拟退火方法不会执行
目前我正在尝试创建一个受激退火算法来解决旅行商问题以及为它创建一个 gui。显示初始城市(点)和线,但我无法让 doSA() 方法成功运行。任何想法,有点难过。
}
discrete-mathematics - 名册/时间表生成
考虑到商业和劳动法的限制,我正在开发一种工具来为员工生成长达一个月的时间表。与类似问题的挑战和区别很少:
- 班次概念包含长达半小时的休息时间。
- 没有完整 8 班次的概念作为提到的类似问题。例如,早上 8 点需要 2 个资源,下午 3 点需要 2.5 个资源(例如,休息半小时)..
- 和常规限制,例如每天几个小时,休息前几个小时,休息时间......
可能的解决方案是依靠使用求解器,即 OR-Tools 和 Optaplanner。任何提示?
java - 随机爬山
我正在尝试用 Java 实现 Stochastic Hill Climbing。我知道这个算法会产生一个随机挑选的新解决方案,然后根据它的坏/好接受解决方案。例如,如果它非常糟糕,那么它的机会很小,如果它有点糟糕,那么它将有更多的机会被选中,但我不确定如何在 java 中实现这个概率。
在浏览 Google 时,我遇到了这个等式,在哪里;
- f代表旧健身
- f'代表新的健身
- T 是一个参数
我不确定如何解释这个等式。
有人可以帮助我如何在 Java 中实现它吗?
java - 生成具有给定概率的随机布尔值
我正在编写java代码来解决模拟退火方法的问题。我需要一种方法来仅在给定参数true
的概率 exp(a/b) 中a
生成随机数。b
谢谢。
r - Caret 遗传算法特征选择
我正在尝试使用遗传算法或模拟退火来使用插入符号特征选择,并且在这两种情况下我都会收到相同的错误消息。
我已经用非常简单的输入数据框尝试了最基本的 gafs 和 safs 形式。
如果有人遇到类似问题,如果有人可以分享经验,我将不胜感激(顺便说一句,n 只有 14 个观察值,尽管我尝试了许多不同的数据帧并得到相同的错误消息)
谢谢
java - 如何在 1 维和 n 维空间中有效地选择邻居进行模拟退火
我想使用模拟退火在某个预定义的间隔内找到单变量多项式函数的局部最小值。我还想尝试找到二次函数的全局最小值。
像这样的无导数算法不是解决问题的最佳方法,因此仅用于学习目的。
虽然算法本身非常简单,但我不确定如何在单维或 n 维空间中有效地选择邻居。
假设我正在寻找函数的局部最小值:2*x^3+x+1 在区间 [-0.5, 30] 上,并假设区间减少到每个数字的十分之一,例如 {1.1, 1.2 ,1.3 , ..., 29.9, 30}。
我想要实现的是随机游走和从起点到能量较低的点的收敛速度之间的平衡。
如果我每次都只是从给定的间隔中选择随机数,那么就没有随机游走,算法可能会绕圈子。相反,如果通过简单地以相等的概率加上或减去 0.1 来选择下一个点,那么算法可能会变成穷举搜索 - 基于起点。
我应该如何有效地平衡单维和 n 维空间中的模拟退火邻居搜索?
matlab - Matlab Spmd 终止
我正在使用 spmd 在 matlab 中实现模拟退火算法。我将比较不同的实现类型。其中之一是异步并行。12 名工人将运行代码。如果其中一个符合条件(错误<0.01)代码将停止搜索。有什么命令可以做到这一点吗?如果我使用 labBroadcast 或 labsend/labreceive,它将是同步的。
r - R 中的模拟退火:GenSA 运行时间
我正在使用 R 的包GenSa
(函数GenSA
)中实现的模拟退火来搜索输入变量的值,这些值会导致高维函数的“好值”(与某些基线相比)。我注意到设置目标函数的最大调用次数对运行时间没有影响。我做错了什么还是这是一个错误?
这是GenSA
帮助文件中给出的示例的修改。
即使max.call
指定为 10,000,GenSA
调用目标函数也超过 46,000 次(请注意,在本地环境中调用目标是为了跟踪调用次数)。尝试通过 指定最大运行时间时会出现同样的问题max.time
。
network-programming - igraph 中实现的 spinglass 社区检测算法如何工作?
我想将 community_spinglass 用于我的研究,但我无法弄清楚它到底是做什么的。我阅读了参考“社区检测的统计机制”,其中指出他们使用模拟退火,但不完全是如何。所以我想知道模拟退火使用哪些更新规则:每个时间步长中节点如何在社区之间移动?
r - 用于工作项目调度和优化的遗传算法或模拟退火
我的任务是改进公司的基本调度流程,使其更加数据驱动、高效和精简。就目前而言,我们目前只是每月汇总项目所需的总小时数,并将此值与可能的工作时间 * 员工人数进行比较。我们比较这些结果并确定我们是否需要提供更多帮助。
我希望在这个过程中更加精确,因此我开始研究使用诸如稳定婚姻问题之类的资源进行优化。最终,我从 Job-Shop 问题中偶然发现了遗传算法和模拟退火,因为我相信我的问题最终会比多匹配婚姻问题更复杂一些,但我可能是错的。
我的基本问题被设置为具有许多限制标准的优化任务。
工人:John、Jane、Dale 等。
他们也可以担任多个角色(John 可以是经理或劳工)
项目:项目 A、项目 B、项目 C 等。
项目有开始和结束日期。
理想情况下,我想限制项目的不同阶段的子开始和结束日期,但总体开始/结束日期可以。这些子日期包括每种角色类型所需的小时数(经理 8 小时、劳动者 20 小时等)
工作时间:每位员工不超过 45 小时。
我的问题是我真的需要使用 GA 或模拟退火,还是有更简单的过程。另外,我在 R 中找不到任何这些进程的伪代码。
感谢您提供的所有帮助,如果需要更多详细信息,我很乐意为任何人澄清!