问题标签 [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.
machine-learning - 使用 NEAT 算法,两个基因组的孩子是否总是与最合适的父母具有相同的结构?
我正在尝试使用 c# 实现 NEAT 算法,基于Kenneth O. Stanley 的论文。在第 109 页(pdf 中的 12)它指出“匹配的基因是随机遗传的,而不相交的基因(那些在中间不匹配的)和多余的基因(那些最终不匹配的)是从更合适的父母。”
这是否意味着孩子将始终具有更健康的父母所具有的确切结构?似乎结构与交叉的唯一不同之处在于两个父母是否同样合适。
mathematical-optimization - 0.25 的交叉指数在实际编码的遗传算法中意味着什么?
我熟悉二进制表示中的交叉和变异索引,但在实际编码中,我遇到过几篇文章,其中交叉索引和变异索引用作参数值。
例如,我们有人口规模300
和30
决策变量,那么交叉指数 = 0.25 意味着什么?
也对 的突变指数感到困惑100+current generation number
。
artificial-intelligence - 哪些个体应该在遗传算法中交叉和/或变异?
我目前正在用 Python 实现遗传算法,并且是根据 Andries P. Engelbrecht 的书“计算智能 - 简介,第二版”来实现的。我的理解是你表演的每一代人fitness calc, selection, crosover and mutation
。
我目前的总体策略是:
我相信我的步骤1 - 3.1
正确。我的问题是:
交叉是正确的吗?这是进行锦标赛选择的好方法吗?我想确保总体人口仍然具有一定的多样性,这样我就可以避免局部最优。这就是为什么我试图只取前两名表演者并复制他们(尽管,也许这也太多了)。
关于交叉,是否可以只给每个孩子一个小概率使每个基因发生突变?根据当前人群的适应度给出一个可变的突变率会更好吗?
我已经在许多方程上测试了我的方法,但发现有时我仍然陷入局部最大值。使用(来自https://en.wikipedia.org/w/index.php?title=Test_functions_for_optimization&oldid=787014841f(x,y) = -| 2x^2 - 1.05x^4 + ((x^6)/6) + xy + y^2 |
的三峰驼峰函数)我发现大部分时间,但有时仍会卡在它附近。这主要是为什么我想知道我的交叉/突变方法是否关闭。(0, 0)
algorithmic-trading - TradingView Pine Script 多重交叉策略
我正在拼命寻求帮助以在交易视图中编写策略,我试图在 3 个不同的 MA 上创建交叉买入和卖出信号,特别是 9 EMA、21 EMA 和 33 简单移动平均线。我想要做的是当 9 EMA 超过 21 EMA 时出现长期条件,并且当 21 EMA 超过 33 简单移动平均线时也会出现相同的长期条件。我希望这适用于多头和空头 - 使用 9 和 21 作为“小信号”,而使用 21 和 33 作为“大信号”,我无法弄清楚......这是我最接近的有以下,它不会正常工作
信号不会显示,但如果您删除两个条件的最后一个“和交叉”部分,它将仅适用于 9 EMA 和 21 EMA,但我想合并 21 EMA 和 33 简单交叉。
这些是我试图为策略复制的信号,代码用于创建指标,但我很难将其转换为策略。您会看到当 9ema 穿过 21ema 时给出初始信号,而当 21ema 穿过 33 简单 ma 时给出更大的信号......
algorithm - 谁能解释这种混合 PSOGA 与普通 GA 有何不同?
这段代码是否有变异、选择和交叉,就像原始的遗传算法一样。
既然这样,混合算法(即 PSO 与 GA)是使用原始 GA 的所有步骤还是跳过一些
他们。请告诉我。我对此很陌生,但仍在努力理解。谢谢你。
%%% 混合 GA 和 PSO 代码
artificial-intelligence - 只产生一个孩子的交叉算子
在研究遗传算法时,我遇到了 TSP 问题的各种交叉算子。其中一些需要两个父母并产生 2 个孩子(后代),例如交替边缘算子。其他的,例如部分映射交叉(PMX)或顺序建设性交叉(SCX)只产生一个孩子。
现在我的问题是:这与交叉概率有什么关系?更准确地说:我正在调整一个使用产生 2 个孩子的交叉运算符的实现,并将该运算符替换为只产生 1 个孩子 (PMX) 的运算符。在交叉步骤的实施中应该改变什么?我是否应该将交叉概率加倍,因为现在只产生 1 个新个体,每次交叉发生时,而不是 2 个?我在这里有点迷路,似乎无法找到关于产生 1 个孩子和其他产生 2 个孩子的交叉运营商之间区别的明确信息。
任何帮助深表感谢!
algorithm - 如何在二维数组中执行交叉 - 遗传算法
我有以下两条染色体,它们表示为二维数组。
对染色体的限制是染色体阵列中的每个阵列必须保持在一起。例如在第一条染色体上[ 12 45 23 ]
必须保持在一起。考虑到这一点,我相信与上述染色体结构进行交叉的方法是随机选择一个水平交叉点。例如:
这是在必须保持完整的二维染色体阵列上执行突变的正确方法吗?如果是这样,此方法是否有特定名称?或者这会发生One-point
交叉吗?
pine-script - Pine 脚本:计算绘图与给定条形图中的值交叉的次数
我正在查看第 4 版文档(https://www.tradingview.com/pine-script-docs/en/v4/index.html我不确定我是否找到了我需要的东西:
我想要一个函数,对于某个价格P
,确定实际价格 p 在最近的蜡烛中穿过该值的次数。
前任。如果价格 P 高于高点/低于低点,则穿过C(p,P)=0
.
例 2。如果价格 p 是单调的,那么对于蜡烛中的任何 P C(p,P)= 1
,.
algorithm - 遗传算法中后代最大拟合分数的微小变化(重复)
我正在 python 中实现遗传算法来解码消息。在每一代中,我都会打印总体的最大拟合分数。但在达到特定数量后,它就会停止增长。例如,我看到这些数字:
我随机选择交叉点和突变,但它并没有改进我的算法。谁能给我一个建议来避免这个问题?我认为这是重复问题。另外,当这个问题发生时,我尝试将拟合分数较低的染色体添加到下一个后代的父母中,但没有太大影响。
谢谢。
java - Java 对象数组元素设置为 null
我对遗传算法中的顺序交叉有疑问。它应该在指向后代的指针之间复制第一个父级的一部分,从存在于后代中的第二个父级编号(我的 tsp 问题中的城市编号)中删除,添加一个从第二个父级留下的数字。例如:
父母 1 。. . . . . . . . . . . . 3 4 1 5 2
父母2。. . . . . . . . . . . . 4 2 1 5 3
第一个指针 = 1,第二个指针 = 3
第一步后的后代:null 4 1 5 null
最后的后代。. . . . . . . 2 4 1 5 3
抱歉这一点,它们只是为了对齐
这里的代码,它应该适用于 2 个后代,算法与第一个后代相同
我认为,问题可能出在这一行: parent2Copy[j] = null;
但不太确定,是复制还是参考