问题标签 [genetic]

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 回答
4585 浏览

algorithm - 轮盘赌选择和基于等级的选择之间的区别

轮盘赌选择和遗传算法中基于等级的选择有什么区别。

我很困惑现在哪一个最适合我。这就是为什么只想知道差异。

0 投票
2 回答
631 浏览

python - Python 'NoneType' 对象查询

我是一个 Python 菜鸟。要了解我正在制作一个自然选择模拟器,但我有点卡住了。

一点背景:

我列出了具有随机位模式的生物体列表,如下所示:

有机体繁殖,所以我有一个@classmethod允许根据它的父母位模式的组合来创建有机体,如下所示:

在某些时候,我会从生物体中返回基因,如下所示:

def returngene(self): """返回基因"""
return self.gene

这适用于由 . 创建的有机体,chromosone.Chromosone(chromosoneSize)但不适用于用chromosone.Chromosone.makeChromo(newOrganism). 我收到此错误:

更新:我给了我的 makeChromo() 一个回报,就像这样:

但我现在得到这个错误:

returngene() 是一个返回基因(字符串)的简单方法。

我认为我的误解在于@classmethodPython 如何处理类型和对象?

0 投票
1 回答
1130 浏览

algorithm - 课表组成的遗传算法

我正在编写自动大学日程安排的应用程序并用于此遗传算法。但现在我在实现方面遇到了一些问题。

一开始我假设我们有持续时间为 1 个时隙(时隙 = 1 小时)的课程,我们可以简单地将其放入数组中(表示时间表网格:容量为 numberOfRooms*numberOfDays*numberOfTimeslots 的一维数组)和也可以毫无问题地执行突变和交叉。

但是知道我想改进应用程序并允许有几个时隙持续时间的课程。这里会出现很多问题:

我们如何将一个类对象放入一个数组中并填充类必须占用的所有槽(几个数组单元)(一个对象 - 几个单元)?并且按照我们将如何将其放入数组中,如何执行变异和交叉操作?提前致谢!我真的很感谢你的帮助!

0 投票
2 回答
797 浏览

algorithm - 如何将遗传算法与一些启发式方法结合起来

我正在研究大学调度问题并为此使用简单的遗传算法。实际上它工作得很好,并将目标函数值从 0% 优化到 90%(大约)1 小时。但是随后该过程会急剧变慢,并且需要数天才能获得最佳解决方案。我看到很多论文认为将其他算法与基因混合是合理的。请你给我一些建议,告诉我什么算法可以与遗传算法混合,以及如何应用这种算法来加快求解过程。主要问题是如何将任何启发式方法应用于这种复杂结构的问题?我不知道如何在那里应用,例如贪婪启发式。

提前感谢大家!非常感谢您的帮助!


问题描述:

  1. 我有:

    • 由 ScheduleSlot 对象填充的数组
    • 由课程对象填充的数组
  2. 我愿意:

    • 标准两点分频器
    • 突变(将随机课程移动到随机位置)
    • 粗选(仅选择 n 个最佳个体进入下一个种群)

@Dougal@izomorphius的附加信息:
我正在尝试构建一个大学时间表,该课程表在课程、重叠和针对团体和教授的地理分布课程之间没有中断。
适应度函数非常简单:适应度 = -1000*numberOfOverlaps - 1000*numberOfDistrebutedLessons - 20*numberOfBreaks。(或类似的东西,我们可以简单地改变变量的系数)
在开始的时候,我生成我的个人只是将课程放在随机的房间、时间和日期。
如上所述,突变和交叉非常简单:

  1. 交叉- 取父调度,随机选择交叉点和交叉范围,只交换父调度的部分,生成两个子调度。
  2. 突变 - 采用儿童时间表并将 n 个随机课程移动到随机位置。
0 投票
1 回答
348 浏览

r - R 中的函数、向量和循环

我最近开始尝试将 R 作为一种用于基因编程的语言。我一直在缓慢但肯定地越来越多地了解 R 的工作原理及其最佳编码实践。然而,我遇到了障碍。这是我的情况。我有一个大约 700 行的数据集,每行有 400 列左右。我已经将所有参数设置为与列数相同的函数作为参数发送到评估(健身评分)函数中。我想在数据集中逐行进行,并将一行中每一列中的值传递给正在评估的函数。第一个问题是弄清楚如何将参数分别传递给函数。“单独”是指该函数需要 400 个参数,而不是长度为 400 的向量。为此,我使用了以下内容:

其中 parameters 是月份变量 (1-12) 的向量,它附加到数据集中一行中的值。这很好用,我只是使用了一个 for 循环来迭代数据集中的 700 行,然后在 12 个月内使用另一个循环,并使用上面的方法来累积输出向量。问题是这非常慢,每个函数大约需要 24-28 秒。每一代进化我都有 100-500 个函数被发送到这个评估中。底线是这不是要走的路。接下来我尝试使用 sapply 方法,如下所示。

这应用 (1-12) 作为月份,然后应用 (1-700) 作为数据集的行。这花了同样长的时间。有关解决方案的任何想法都会有所帮助。

0 投票
1 回答
1023 浏览

genetic-algorithm - 我可以在 JGAP 中拥有可变长度的染色体吗?

我使用 JGAP 为原理图生成测试向量。通过将染色体的基因设置为 bits ,我获得了单个测试向量的最大覆盖率。现在我需要用最少的测试向量获得 100% 的覆盖率。

如果我将每个基因设计为测试向量,则 id 需要根据基因数量和总覆盖率计算适应度函数,并且 id 还需要进化染色体长度和每个测试向量(基因)位。

甚至有可能拥有可变长度的染色体吗?

此类任务是否有任何标准设计?

0 投票
3 回答
999 浏览

algorithm - 算法来组合数据进行线性拟合?

我不确定这是否是问这个问题的最佳地点,但是你们过去对我的大量 CS 作业很有帮助,所以我想我会试一试。

我正在寻找一种算法来盲目地将几个因变量组合成一个索引,以产生与外部变量的最佳线性拟合。基本上,它将使用不同的数学运算符组合因变量,包括或不包括每个变量等,直到开发出与我的外部变量最相关的索引。

有没有人见过/听说过这样的事情?即使你能指出我正确的方向或正确的地方问,我会很感激。谢谢。

0 投票
1 回答
1028 浏览

algorithm - 使用遗传算法和matlab进行资源分配

我正在研究资源分配问题,在这个问题上我总共有 50000 个资源,我想将它分配到 6 个模块上。目标是

并且 a(i),b(i),c1,c2,c3 和 v(i) 是已知的

并且约束是

w(i)<=w ware i=1 到 6

w(i)>=0 并且

r(i)=1-exp(-b(i)*w(i))/1+2*exp(-b(i)*w(i))>=0.9;即每个模块的 r(i) >= 0.9

所以我需要 W(i) i=1 到 6,总 w 是 50000。

请任何人告诉我我将如何使用遗传算法。

谢谢你。

0 投票
2 回答
152 浏览

c - 在 C 中制作函数树

我想在 C 中创建一个函数树,如下所示: http ://scr.hu/5rq/vdja0

所以基本上我希望结果是这样的:http ://scr.hu/5rq/f04uu

wherex是我可以提供的变量(浮点数)。F0 到 F6 是带有两个参数的随机函数(例如乘法、加法或给出随机数的函数)。所以我的确切问题是:我怎么能做到这一点?我知道可以通过将每个函数给出的精确值存储在数组中来轻松完成。但是,当涉及到获得不同的“x”值时,它就变得复杂了。我最初的想法是创建一个函数,将随机函数附加到树中的每个节点,但是,我不确定应该如何完成构建该树的结构,

我想以某种方式更改行“float *value;” 放入可以存储类似Function1(left->value,right->value);但未运行的函数的东西,而不是具有给定参数的函数的确切值,以及 where Function1()orFunction2()表示将两个参数相除或相乘的函数等等。

不,这不是为了学校,是的,这是我使用基因编程的悲惨尝试。

0 投票
1 回答
220 浏览

r - 如果在 R 中加权平均的语句

我有一个数百万行长的数据文件,其中包含来自许多组的信息。下面是一个简短的部分:

我想创建频率 (FREQ) 变量的加权平均值(它本身很简单),但是在这种情况下,某些行不匹配(第 3 行和第 4 行)。如果字母没有对齐,则在计算该标记的加权平均值之前,需要将第二组的频率减去 1。

我想设置一个简单的 IF 语句,但我不确定这样一个任务的语法。

任何见解或方向表示赞赏!