问题标签 [crossover]
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++ - 遗传算法 - 交叉和 MPI
当我试图将我的代码转换为 MPI 和 Crossover 解决方案时,我被卡住了。我的问题是 Crossover 对我来说太难理解了,而且更难实现 MPI 的所有这些解决方案。如果有人可以给我提示,示例或任何相关文件。我将在下面包含我的代码供大家查看。
非常感谢
algorithm - BLX-alpha 交叉:正确的方法是什么?
我正在研究使用混合 BLX-alpha 交叉的遗传算法。
我发现了 2 种算法,在我看来它们彼此完全不同
- https://yadi.sk/i/u5nq986GuDoNm - 第8页
交叉如下
:选择 2 个父母:G1、G2
b. 从 [-alpha, 1 + alpha] 生成均匀分布的随机数 gamma,其中 alpha = 0.5
c。按如下方式生成后代:G = gamma * G1 + (1 - gamma) * G2 http://www.tomaszgwiazda.com/blendX.htm
交叉如下
:从父池中选择两个父池 X(t) 和 Y(t)湾。创建两个后代 X(t+1) 和 Y(t+1),如下所示:
C。对于 i = 1 到 n 做
d。di=|xi(t)-yi(t)|
e. 从区间中选择一个统一的随机实数 u
F。xi(t+1)=u
G。从区间中选择一个统一的随机实数 u
H。yi(t+1)=u
一世。结束做
其中: a - 正实参数
xi, yi - 父级的第 i 个分量
di - 父级之间的距离
这两种算法中哪一种是正确的?或者他们是平等的?在我的任务中,我使用的是第二种方法,因为第一种方法提供了不令人满意的结果。我关心这个问题,因为我正在研究 GA,应该使用第一个算法。
任何帮助,将不胜感激!
matlab - MATLAB中的均匀交叉
我已经能够编写1-point crossover
如下代码:
任何人都可以帮助将其转换为uniform crossover
请吗?
algorithm - 遗传算法:0-1背包的交叉
我正在按照遗传算法方法解决背包问题,如此处所示。我知道他们使用了直接值编码方案而不是二进制表示。交叉函数如下:
如果我要将背包问题的染色体编码为二进制表示,则相交将是 AND 操作。设置差异的类似操作是什么?
另外,我只是想知道这种分频器背后的基本原理是什么,以及这种分频器是否比其他常见的分频器技术(如单点分频器或两点分频器)有优势。
r - 在两个向量之间交换元素(交叉)
假设我有:
chromosome_1 <- c('0010000001010000')
chromosome_2 <- c('0100000001001010')
如何实施步骤 3-5?
- 评估
- NC1 = 没有。1 的在
chromosome_1
- NC2 = 没有。1 的在
chromosome_2
- 米=
min(NC1, NC2)
- NC1 = 没有。1 的在
- 生成一个随机
NC
整数range(1, M)
从等位基因为“1”的基因中随机选择
NC
基因位置,chromosome_1
并形成s1
这些选定位置的一组索引。从等位基因为“1”的基因中随机选择
NC
基因位置,chromosome_2
并形成s2
这些选定位置的一组索引。s = union(s1, s2)
认为s = 2, 3, 10, 15
对于每个
i
索引s
交换染色体等位基因
chromosome_1
和chromosome_2
基因位置i
。
下图说明了结果:
我真的很感激任何帮助!
maximo - Maximo 交叉域
在 Workorder tracking 中,有一个字段“LEAD”将显示潜在客户的 ID。在我们的要求中,我们必须显示 Leadname 以及 Lead ID。所以我在 Workorder 中为 Leadname 创建了一个新字段,并在 Wordorder 和 Person 之间使用了具有新关系的交叉域。关系 where 子句是 personid=:lead
交叉域从 PERSON 对象的 Displayname 属性复制 Leadname 的值,并且当我们在 Workorder 的 Lead 属性中提供 ID 时工作正常。
但是,如果我给出一个潜在客户 ID,然后在 WO 中删除潜在客户 ID,那么潜在客户名称仍然保留它不会被修改为 null。我相信这是因为交叉条件(personid=:lead)不满足,因此没有执行任何操作。我也尝试在 Source 和 Destination 上设置条件,但这也不起作用。
如果不满足交叉 where 子句条件,是否有任何方法可以将字段默认为 null。
我能够通过使用自动化脚本来实现这一点,但想知道是否可以通过其他方式实现。
r - 遗传算法 - 交叉和突变无法正常工作
我正在使用GA 包来最小化一个功能。以下是我实施的几个阶段。
0. 库和数据集
1. 二进制编码并生成初始种群。
2. 适应度函数最小化 Davies-Bouldin (DB) 指数。
3. 用户定义的交叉算子。这种交叉方法将避免没有集群“打开”的情况。伪代码可以在这里找到。
4. 突变。
5. 把碎片放在一起。使用轮盘赌选择,交叉概率。= 0.8,突变概率。= 0.1
我以这样一种方式创建了我的初始人口,即对于人口中的每个人,将有1's
固定的数量在三到六之间。交叉和变异算子旨在确保解决方案最终不会有太多集群(1's
)被“打开”。在集成它们之前,我已经分别尝试了我的交叉和突变功能,它们似乎工作正常。
理想情况下,最终解决方案的数量将1's
来自初始种群的 +-=1,即,如果一个个体1's
的染色体中有 3 个,它最终将随机具有 2 个、3 个或 4 个1's
。但我得到了这个解决方案,它显示 12 个集群 ( 1's
) 正在“打开”,这意味着交叉和变异算子运行良好。
通过复制所有代码可以重现这里的问题。任何熟悉 GA 包的人都可以在这里帮助我吗?
[编辑]
尝试使用不同的数据集iris
,让我陷入以下错误。(仅更改数据,其余设置保持不变)
0. 库和数据集
我尝试查看代码,发现此错误是由if(any(duplicated(centers)))
. 这可能意味着什么?
c# - Xamarin Forms asmx webservice多次调用
在我的项目中,我调用了这样的 Web 服务:
当我同时调用上述 Reqeust 2 次时,我从 web 服务中得到一个错误。
我收到以下错误:
但是,如果我只做 1 次请求,我就不会出错。
你能帮助我吗?
谢谢。
java - Java - 交叉算法
我正在为 TSP 问题开发 android 应用程序。
我有一个交叉算法,我想最小化循环数以获得更快的算法。我该怎么做?
这是代码:
optimization - 断头台切割优化的遗传算法
我一直在用编码、优化和解码重新审视遗传算法。我的第一次尝试是带有有序交叉的旅行推销员,效果很好。我发现一篇文章试图在优化 2d 打包问题的同时优化更复杂的基因组。
作者使用有意义的反向波兰符号对问题进行编码。它使用部分组合和 V 或 H 作为操作符。
即34H5V
解码堆栈必须解析为一个堆栈元素,这是我的最终布局。话虽如此,直到某一点的操作员数量必须比直到同一点的零件数量少 1。然后作者指出,他通过在零件上使用有序交叉和对运算符使用二进制交叉来使用混合交叉。
我仔细考虑了这一点,但我不明白他是如何在交叉之前分离零件和操作员,然后在评估性能之前重新组合它们的,而且它们提供的细节很少。如果发生二进制交叉,则用“X”替换零件以保持相对位置,以便它们可以在交叉后重新组合,但操作员和零件之间的关系不成立。
是否有人可能拥有处理过类似情况或成功使用过的资源。