问题标签 [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.
algorithm - 轮盘赌选择和基于等级的选择之间的区别
轮盘赌选择和遗传算法中基于等级的选择有什么区别。
我很困惑现在哪一个最适合我。这就是为什么只想知道差异。
python - Python 'NoneType' 对象查询
我是一个 Python 菜鸟。要了解我正在制作一个自然选择模拟器,但我有点卡住了。
一点背景:
我列出了具有随机位模式的生物体列表,如下所示:
有机体繁殖,所以我有一个@classmethod
允许根据它的父母位模式的组合来创建有机体,如下所示:
在某些时候,我会从生物体中返回基因,如下所示:
def returngene(self): """返回基因"""
return self.gene
这适用于由 . 创建的有机体,chromosone.Chromosone(chromosoneSize)
但不适用于用chromosone.Chromosone.makeChromo(newOrganism)
. 我收到此错误:
更新:我给了我的 makeChromo() 一个回报,就像这样:
但我现在得到这个错误:
returngene() 是一个返回基因(字符串)的简单方法。
我认为我的误解在于@classmethod
Python 如何处理类型和对象?
algorithm - 课表组成的遗传算法
我正在编写自动大学日程安排的应用程序并用于此遗传算法。但现在我在实现方面遇到了一些问题。
一开始我假设我们有持续时间为 1 个时隙(时隙 = 1 小时)的课程,我们可以简单地将其放入数组中(表示时间表网格:容量为 numberOfRooms*numberOfDays*numberOfTimeslots 的一维数组)和也可以毫无问题地执行突变和交叉。
但是知道我想改进应用程序并允许有几个时隙持续时间的课程。这里会出现很多问题:
我们如何将一个类对象放入一个数组中并填充类必须占用的所有槽(几个数组单元)(一个对象 - 几个单元)?并且按照我们将如何将其放入数组中,如何执行变异和交叉操作?提前致谢!我真的很感谢你的帮助!
algorithm - 如何将遗传算法与一些启发式方法结合起来
我正在研究大学调度问题并为此使用简单的遗传算法。实际上它工作得很好,并将目标函数值从 0% 优化到 90%(大约)1 小时。但是随后该过程会急剧变慢,并且需要数天才能获得最佳解决方案。我看到很多论文认为将其他算法与基因混合是合理的。请你给我一些建议,告诉我什么算法可以与遗传算法混合,以及如何应用这种算法来加快求解过程。主要问题是如何将任何启发式方法应用于这种复杂结构的问题?我不知道如何在那里应用,例如贪婪启发式。
提前感谢大家!非常感谢您的帮助!
问题描述:
我有:
- 由 ScheduleSlot 对象填充的数组
- 由课程对象填充的数组
我愿意:
- 标准两点分频器
- 突变(将随机课程移动到随机位置)
- 粗选(仅选择 n 个最佳个体进入下一个种群)
@Dougal和@izomorphius的附加信息:
我正在尝试构建一个大学时间表,该课程表在课程、重叠和针对团体和教授的地理分布课程之间没有中断。
适应度函数非常简单:适应度 = -1000*numberOfOverlaps - 1000*numberOfDistrebutedLessons - 20*numberOfBreaks。(或类似的东西,我们可以简单地改变变量的系数)
在开始的时候,我生成我的个人只是将课程放在随机的房间、时间和日期。
如上所述,突变和交叉非常简单:
- 交叉- 取父调度,随机选择交叉点和交叉范围,只交换父调度的部分,生成两个子调度。
- 突变 - 采用儿童时间表并将 n 个随机课程移动到随机位置。
r - R 中的函数、向量和循环
我最近开始尝试将 R 作为一种用于基因编程的语言。我一直在缓慢但肯定地越来越多地了解 R 的工作原理及其最佳编码实践。然而,我遇到了障碍。这是我的情况。我有一个大约 700 行的数据集,每行有 400 列左右。我已经将所有参数设置为与列数相同的函数作为参数发送到评估(健身评分)函数中。我想在数据集中逐行进行,并将一行中每一列中的值传递给正在评估的函数。第一个问题是弄清楚如何将参数分别传递给函数。“单独”是指该函数需要 400 个参数,而不是长度为 400 的向量。为此,我使用了以下内容:
其中 parameters 是月份变量 (1-12) 的向量,它附加到数据集中一行中的值。这很好用,我只是使用了一个 for 循环来迭代数据集中的 700 行,然后在 12 个月内使用另一个循环,并使用上面的方法来累积输出向量。问题是这非常慢,每个函数大约需要 24-28 秒。每一代进化我都有 100-500 个函数被发送到这个评估中。底线是这不是要走的路。接下来我尝试使用 sapply 方法,如下所示。
这应用 (1-12) 作为月份,然后应用 (1-700) 作为数据集的行。这花了同样长的时间。有关解决方案的任何想法都会有所帮助。
genetic-algorithm - 我可以在 JGAP 中拥有可变长度的染色体吗?
我使用 JGAP 为原理图生成测试向量。通过将染色体的基因设置为 bits ,我获得了单个测试向量的最大覆盖率。现在我需要用最少的测试向量获得 100% 的覆盖率。
如果我将每个基因设计为测试向量,则 id 需要根据基因数量和总覆盖率计算适应度函数,并且 id 还需要进化染色体长度和每个测试向量(基因)位。
甚至有可能拥有可变长度的染色体吗?
此类任务是否有任何标准设计?
algorithm - 算法来组合数据进行线性拟合?
我不确定这是否是问这个问题的最佳地点,但是你们过去对我的大量 CS 作业很有帮助,所以我想我会试一试。
我正在寻找一种算法来盲目地将几个因变量组合成一个索引,以产生与外部变量的最佳线性拟合。基本上,它将使用不同的数学运算符组合因变量,包括或不包括每个变量等,直到开发出与我的外部变量最相关的索引。
有没有人见过/听说过这样的事情?即使你能指出我正确的方向或正确的地方问,我会很感激。谢谢。
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。
请任何人告诉我我将如何使用遗传算法。
谢谢你。
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()
表示将两个参数相除或相乘的函数等等。
不,这不是为了学校,是的,这是我使用基因编程的悲惨尝试。
r - 如果在 R 中加权平均的语句
我有一个数百万行长的数据文件,其中包含来自许多组的信息。下面是一个简短的部分:
我想创建频率 (FREQ) 变量的加权平均值(它本身很简单),但是在这种情况下,某些行不匹配(第 3 行和第 4 行)。如果字母没有对齐,则在计算该标记的加权平均值之前,需要将第二组的频率减去 1。
我想设置一个简单的 IF 语句,但我不确定这样一个任务的语法。
任何见解或方向表示赞赏!