问题标签 [mutation]

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 投票
2 回答
262 浏览

list - Scala 对象不改变其内部状态

我看到我正在处理的一些 Scala 2.7.7 代码存在问题,如果它是用 Java 编写的,则不应该发生这种情况。松散地,代码创建了一堆纸牌玩家并将他们分配给桌子。

PlayerRegistrar 在桌子之间分配一些玩家。首先,它计算出需要多少张桌子才能将玩家分开并创建他们的列表。

然后在代码的第二部分,它计算出应该将玩家分配到哪个桌子,从列表中拉出该桌子并在该桌子上注册一个新玩家。

桌子上的玩家列表是一个 var,每次调用 registerPlayer() 时都会被覆盖。我通过一个简单的 TestNG 测试检查了它是否正常工作:

然后我测试表分配:

测试失败并显示“预期:<10> 但为:<0>”。我一直在摸不着头脑,但无法弄清楚为什么 registerPlayer() 没有改变列表中的表格。任何帮助,将不胜感激。

0 投票
4 回答
687 浏览

java - 解释JAVA代码

我需要一些帮助来解释从第 5 行到第 9 行的含义。谢谢

  1. String words = "Rain Rain go away";

  2. String mutation1, mutation2, mutation3, mutation4;

  3. mutation1 = words.toUpperCase();

  4. System.out.println ("** " + mutation1 + " Nursery Rhyme **");

  5. mutation1 = words.concat ("\nCome again another day");

  6. mutation2 = "Johnny Johnny wants to play";

  7. mutation3 = mutation2.replace (mutation2.charAt(5), 'i');

  8. mutation4 = mutation3.substring (7, 27);

  9. System.out.print ("\'" + mutation1 + "\n" + mutation4 + "\'\n");

  10. System.out.println ("Title length: " + words.length());

0 投票
2 回答
1021 浏览

programming-languages - 为什么惰性语言不支持变异?

我正在学习编程语言理论,但我无法弄清楚为什么惰性语言没有突变。有人知道原因吗?

0 投票
2 回答
113 浏览

programming-languages - 为什么不允许 this 绑定的突变?

我正在为一个学校项目构建一个解释器/编译器(现在它变成了一个爱好项目),一位讲师警告我不要允许“this”绑定的突变(他说这很恶心,并且对此做了很多事情) 但我从来不知道为什么这会如此......危险或糟糕。我很好奇为什么会这么糟糕。我认为这种功能可能会以某种方式有用。

我想知道是否有任何熟悉构建语言的人可以告诉我“this”绑定上的突变会导致什么样的问题,以及他们是否知道如果确实允许的话可以做的任何很酷或有用的技巧。

您知道的任何语言是否允许“this”的变异?

谢谢,

0 投票
5 回答
5539 浏览

graph - applying crossover and mutation to a graph (genetic algorithm)

I'm playing arround with a Genetic Algorithm in which I want to evolve graphs. Do you know a way to apply crossover and mutation when the chromosomes are graphs?

Or am I missing a coding for the graphs that let me apply "regular" crossover and mutation over bit strings?

thanks a lot! Any help, even if it is not directly related to my problem, is appreciated!

Manuel

0 投票
6 回答
7203 浏览

java - 在 Java/Swing 中,有没有办法合法地“尝试在通知中改变”?

我想知道是否有某种魔法可以用来绕过 IllegalStateException 并允许 JTextField “尝试在通知中变异”,或者换句话说,如果触发了它的侦听器,则可以设置它自己的文本。

为了您的信息,我正在尝试编写一个自动完成函数,该函数返回 12 个枚举范围内最可能的匹配项,以响应用户在 JTextField 中的输入。

这是代码示例。你必须原谅我笨拙的算法,它会弄出枚举结果。我用注释突出显示了产生异常的代码:

0 投票
2 回答
1985 浏览

c++ - c++遗传算法变异错误

我的遗传算法中的变异函数有问题。我也看不出我做错了什么。我已经查看了这段代码一段时间,我认为逻辑是正确的,它只是没有产生我想要的结果。

问题当我输出位于子结构中的二进制数组时,如果任何位发生突变,那么随机数将被更改,而不是应该更改的那个。

例如

  • 0000000 是二进制字符串
  • 第二位发生了突变
  • 0001000 将是结果

此部分位于主目录内。

这是变异函数

主要是这样输出的

0 投票
3 回答
702 浏览

genetic-algorithm - 在稳态遗传算法中应用变异

我正在实现一个稳态遗传算法来执行符号回归。

我的问题是关于突变和交叉运算符之间的关系。

在应用突变和锦标赛选择以根据他们的错误选择父母之前,我总是咨询突变概率(Pm)。

  • 第一个问题:

突变必须仅应用于交叉后获得的孩子(或另一个遗传算子),或者可以直接应用于一个父母以产生一个新个体?

  • 第二个问题:

交叉操作后获得的孩子必须总是尝试突变(当然是Pm)?

谢谢大家。

0 投票
0 回答
628 浏览

unit-testing - 如何在一个非常简单的 Fortran-77 程序中计算突变体的数量

下周我将在我的课堂上做一个关于突变测试的演讲。教授给了我论文An Experimental Determination of Sufficient Mutant Operators,由 A. Jefferson Offutt 等人撰写。从论文中,我可以得出一个结论,即为程序生成的突变体的数量大致与数据引用数乘以数据对象数的乘积成正比。这是一个简单的 Fortran-77 程序:

作者,即 A. Jefferson Offutt,说上述程序总共有 44 个突变体。我只是不知道如何获得 44 个突变体。有谁知道如何计算数据引用的数量和数据对象的数量并获得 44 个突变体?

任何想法将不胜感激。

现在,我相信 44 个突变体不仅仅是数据引用数量和数据对象数量的倍数。其他突变算子也对上述 Fortran-77 程序的突变总数做出了贡献。我编辑这个问题是为了防止其他人继续回答它。我不知道如何结束问题或将其标记为已回答

0 投票
2 回答
1938 浏览

genetic-algorithm - 用遗传算法、适应度、变异解决填字游戏

我正在努力为学校做一个实验室。我正在尝试使用遗传算法解决填字游戏。问题是这不是很好(它仍然太随机)我将尝试简要说明我的程序现在是如何实现的:

如果我有拼图(# 是块,0 是空白)

以及作为该谜题解决方案候选词的集合。我的 DNA 只是作为一维阵列的矩阵。

我的第一组人从我的话包含的字母池中随机生成了 DNA。

我使用轮盘赌选择进行选择。有一些关于组合和突变机会的参数,但如果发生突变,那么我总是会改变 25% 的 DNA。我用我的字母池中的随机字母对其进行更改。(这可能会产生负面影响,因为突变会破坏已经形成的单词)

现在是适应度函数:我横向和纵向遍历矩阵:如果我找到一个单词然后 FITNESS += word.lengh +1

如果我发现一个字符串是某个单词的一部分,那么 FITNESS += word.length / (puzzle_size*4) 。无论如何,它应该给出一个介于 0 和 1 之间的值。因此它可以从“工具”中找到“到”并将 X 广告到 FITNESS,然后在它从“工具”中找到“太”并将另一个 Y 添加到 FITNESS 之后。

我的几代人实际上并没有随着时间的推移而改善。它们看起来是随机的。因此,即使在 400 代之后,池中的 1000-2000(这些数字并不重要),当解决方案应该有 6 个单词时,我也会得到一个包含 1-2 个单词(2 或 3 个字母)的解决方案。