问题标签 [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 投票
1 回答
443 浏览

genetic - 遗传算法排序,交叉重复数据

我的问题是如何进行交叉并避免重复?

考虑一下p1 = {1, 2, 5, 6, 3, 4}p2 = {2, 6, 5, 4, 1, 3}

其中一个交叉是res = {1, 2, 5 , 6, 1 ,3}

如您所见,存在重复...

我们可以避免吗?



这是我的代码

0 投票
2 回答
2840 浏览

python - Python CMA-ES 算法解决用户定义的函数和约束

我正在努力在 python 中创建一个CMA-ES优化算法的简单示例。使用 CMA-ES 算法优化功能x**2 + 2*y**2 -4*x*y - 0.5*y的最简化方法是什么-2<x<2-1<2*(x**2)*y<1

我查看了 DEAP 库,但无法进行有凝聚力的尝试。我发现他们的文档不够直观。我还查看了cma包,但我不清楚如何实现约束。

0 投票
2 回答
811 浏览

python - 遗传算法/人工智能;基本上,我在正确的轨道上吗?

我知道 Python 不是编写这种性质的任何软件的最佳主意。我的理由是在 Raspberry Pi 3 的决策中使用这种类型的算法(仍然不确定会如何进行),以及我将使用的库和 API(Adafruit motor HAT、Google 服务、OpenCV、各种传感器等)都非常适合在 Python 中导入,更不用说我在这个环境中更适合 rPi 了。我已经诅咒它像 Java 或 C++ 这样的面向对象对我来说更有意义,但我宁愿处理它的低效率并专注于 rPi 集成的更大图景。

我不会在这里解释代码,因为它在整个脚本的注释部分中都有很好的记录。我的问题如上所述;这基本上可以被认为是一种遗传算法吗?如果不是,它必须是基本的人工智能或遗传密码吗?我是否在解决这类问题的正确轨道上?我知道通常有加权变量和函数来促进“适者生存”,但我认为可以根据需要弹出。

我已经阅读了很多关于这个主题的论坛和文章。我不想复制别人我几乎不理解的代码并开始使用它作为我更大项目的基础;我想确切地知道它是如何工作的,所以我不会对为什么在此过程中没有解决问题感到困惑。所以,我只是试图理解它是如何工作的基本思想,并写下我是如何解释它的。请记住,我想为此留在 Python 中。我知道 rPi 有多个 C++、Java 等环境,但如前所述,我使用的大多数硬件组件只有 Python API 用于实现。如果我错了,请在算法层面进行解释,而不仅仅是一段代码(再次,我真的很想了解这个过程)。另外,请不要挑剔代码约定,除非它' 与我的问题有关,每个人都有自己的风格,现在这只是一个草图。在这里,感谢阅读!

0 投票
1 回答
1233 浏览

java - Jenetics 定制基因/染色体

我已经开始尝试使用 Jenetics 库,但是在尝试制作一组​​非常简单的“自定义”基因/染色体时遇到了一些问题。我试图做的是创建一个自定义染色体,其中包含不同(随机)数量的自定义基因。为了简单起见,基因只包含一个整数值。出于同样的简单性,基因的内容只能是从 0 到 9 范围内的数字,并且只有不包含数字 9 的基因才被认为是有效的(再次,迟钝的简单,但我只是想让它们自定义)

这是我的代码:

自定义基因:

自定义染色体:

主要的:

我不明白为什么我会得到这个输出:

我们可以清楚地看到具有最大适应度函数的基因型与所选基因型之间的差异。为什么?我知道我做错了什么,这可能是一个愚蠢的错误,但我似乎真的无法理解我做错了什么。你能帮帮我吗?

非常感谢!

0 投票
1 回答
74 浏览

genetic-algorithm - 遗传算法(使用数字和运算符查找表达式)

我有以下遗传编程问题(家庭作业):我需要使用 5 个数字(0 到 9)和任何运算符(+、-、*、/)来生成一个表达式,给我答案为 30。谁能解释一下我该如何使用遗传编程来解决这个问题?

0 投票
0 回答
46 浏览

scheduling - 调度类问题:不确定最佳算法方法

以下是一些示例数据:

生物 256:

化学 356:

数学 266:

总体而言,一个学生将有 6 个课程(每门课程 1 个讲座和 1 个实验室),我如何从这些数据中找到学生必须在学校度过的最短时间?

我尝试了简单的贪婪算法(按最早结束时间排列,并删除其余组,例如 Lab2 和 Lab3,如果选择了 Lab1),但这不起作用。

0 投票
1 回答
1444 浏览

r - 从逻辑回归手动计算 logLik

我运行了一个混合模型逻辑回归,使用称为GMMAT(函数:)的 R 包使用遗传关系矩阵调整我的模型glmmkin()

我的模型输出包括(取自用户手册):

  • theta: 离散参数估计 [1] 和方差分量参数估计 [2]
  • coefficients:固定效应参数估计(包括截距)。
  • linear.predictors:线性预测变量。
  • fitted.values:在原始尺度上拟合平均值。
  • Y:长度等于最终工作向量的样本大小的向量。
  • P: 尺寸等于样本大小的投影矩阵。
  • residuals:原始尺度上的残差。不由分散参数重新调整。
  • cov:固定效应的协方差矩阵(包括截距)。
  • converged:收敛的逻辑指标。

我试图获得对数似然以计算解释的方差。我的第一直觉是拆开logLik.glm函数以便“手动”计算它,但我一直在尝试计算 AIC。我使用了这里的答案。

我使用逻辑回归进行了健全性检查,stats::glm()其中model1$aic4013.232 是 4013.232,但使用我找到的 Stack Overflow 答案,我得到了 30613.03。

我的问题是——有谁知道如何使用我上面在 R 中列出的输出手动计算逻辑回归的对数似然度?

0 投票
1 回答
656 浏览

c# - .NET (GAF) 中的遗传算法框架 - 适应度函数中人口和条目数之间的联系

NumInGeneration 表示适应度函数内的条目数。当我对每一代的结果进行分组时,我得到了以下结果:

为什么没有 100 个评价,适应度函数有 100 个条目。在这种情况下,第 0 代是 289 次?

我期待看到每一代生成 100 条染色体,这意味着有 100 次评估(适应度函数的 100 个条目)。

当我在第 0 代中对染色体进行分组时,我会重复评估相同的染色体:

另一个问题是为什么同一条染色体的适应度函数调用次数更多。在这个例子中,有可能看到已经进行了 12 次相同的计算?是否需要设置一些内部缓存?

可能我对 GAF 应该如何工作有错误的想法。在这种情况下,请解释人口数和适应度函数的条目数之间的联系。如何设置和控制适应度函数的条目数。如果适应度函数过重,则对同一染色体进行多次评估时会浪费资源。在这种情况下,如果需要,我认为进行“外部”缓存没有问题。

0 投票
1 回答
125 浏览

python - 生成带有约束的示例数据框

我有一个记录数据框,如下所示:

作为遗传算法过程的一部分,我想初始化一组 (10) 记录。我希望我的每个子集都包含 10 条记录,但是我不想包含相同的“Rec-ID”两次。

关于如何生成这 10 个不同的数据帧的任何想法?

谢谢,

0 投票
1 回答
430 浏览

c# - 根据重量和价值将物品存储在 3 辆卡车中的遗传算法

我目前正在编写遗传算法来解决一个可能被认为类似于背包问题的问题,但区别因素是我将物品存储在多辆“卡车”上,它们的价值/重要性基于 1 = 最重要, 3 = 最不重要。

我如何做到这一点是使用二进制整数数组,0 = 不在卡车上,1 = 在卡车上。

在大多数情况下,该程序似乎正在做它需要做的事情。除非我比较染色体以找到每一代最好的三个单独的染色体。个体是没有染色体可以包含相同的项目,因为该项目一次只能在一辆卡车上。

这是我用来比较染色体的函数:

这是我用来将染色体与先前选择的染色体进行比较的函数,以确保它们不包含相同的值。

我通过在代码的不同点使用断点并检查值与预期值将其缩小到导致问题的这两个函数。

最后,到问题本身。getBestSolution() 完美地产生了第一个“最适合”的值。第二个和第三个值保持为它们被初始化为“population[0].fitness”的值并显示出来。

我试图改变育种结构,即育种的选择标准,因为我相信如果没有包含不同值的染色体,它将保持初始化状态。出于同样的原因,我还使用更大的人群进行了测试,所以我相信他们一定是我的代码有问题。

任何帮助深表感谢。