问题标签 [genetic-programming]

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 投票
3 回答
831 浏览

genetic-algorithm - 使用遗传编程的蚁群行为

我正在研究能够使用基因编程进行食物觅食行为的进化蚂蚁,正如 Koza在这里所描述的那样。每个时间步,我遍历每只蚂蚁,执行它的计算机程序(同一个程序被蚁群中的所有蚂蚁使用)。目前,我已经定义了简单的指令,如MOVE-ONE-STEPTURN-LEFTTURN-RIGHT等。但我也有一个PROGN按顺序执行参数的函数。我遇到的问题是,因为PROGN可以按顺序执行指令,这意味着蚂蚁可以在一个时间步内执行多个操作。与自然不同,我不能并行运行蚂蚁,这意味着一只蚂蚁可能会去执行几个动作,操纵环境,而所有其他蚂蚁都在等待轮到他们。

我只是想知道,这是通常的做法,还是有更好的方法?Koza 似乎没有提及任何关于它的事情。问题是,我想扩展场景以拥有其他代理(例如敌人),这可能依赖于在单个时间步中仅发生一次的事情。

0 投票
1 回答
186 浏览

landscape - 线性遗传规划 - 错误景观问题

我正在探索线性遗传编程的世界,我发现自己陷入了这个问题。在我看来,即使是最简单的问题的错误情况也非常不顺利。特别是,错误景观似乎总是包含这些巨大的恒定错误差距(解决方案的适应度为零的差距)。这将进化算法恶化为在程序空间上进行随机搜索,并导致几乎不可能发现解决方案。有没有人解释人们如何解决这个问题?我错过了什么?

0 投票
2 回答
317 浏览

genetic-algorithm - 高性能且易于使用的非 GPL 遗传编程库

我想构建一个使用遗传编程的应用程序来弄清楚用户到底在问什么。它是面向非程序员的编程应用程序。基本上,用户向应用程序提供了一堆示例,应用程序将从示例中得出构建新程序供用户自己使用/分发所需的规则。

我已经使用线性回归构建了原型,但它只能解决简单的问题。本周我使用 pyevolve 对基因编程进行了实验,它的效果比我预期的要出色得多!但是,我怀疑它是用纯 python 编写的,所以解决一个例子需要几十秒,而在我的应用程序中,我最多只有几秒钟的时间。

我一直在尝试找到一个性能更高的库,它像 pyevolve 一样易于使用,但找不到合适的库。我尝试了 openBeagle,但是在运行了一个示例之后,以及数小时后仔细研究了文档后,我仍然找不到从“Vivarium”中真正挑选出一个人的方法。我见过人们推荐 GAUL,但那是一个 GPL 库,并且会限制我如何许可我未来的应用程序。我尝试下载 lil-gp,但 ftp 下载链接被大学的登录屏幕锁定。

由于该应用程序将是 Mac OS X 可可应用程序,因此我没有考虑 Java、C# 或 Matlab GP ​​库。

0 投票
1 回答
14981 浏览

matlab - 在 Matlab 中使用遗传算法找到“y=x*x”的最小值

有人可以帮我解决这个问题吗?我是 Matlab 的新手......而且我有点难以理解如何在 Matlab 中创建和使用遗传算法。如果有人可以帮助编写一些非常简单的代码来搜索指定函数的最小值/最大值。我读到应该使用 gatool ......但我无法理解 Matlab 帮助网络的示例。我正在执行以下步骤:

  1. 在文本编辑器中,我输入下一个:

    /li>
  2. 然后我启动GATOOL并指定这个函数,比如@parabola

  3. 设置变量数(等于 2)
  4. Initial range = [-10;10].
  5. 其他参数设置为默认

    当我按下Start按钮时,我看到了一个结果:

    Fitnessfcn 中的错误:输入参数“x”未定义。

0 投票
2 回答
6457 浏览

java - 为遗传编程目的在 Java 中创建二叉树

我正在为我正在上的软件工程课程做一个项目。目标是设计一个程序,该程序将使用遗传编程来生成适合提供的训练数据的数学表达式。

我刚刚开始研究这个项目,我正试图围绕如何创建一个允许用户定义树高度并保持每个节点分开以使交叉和突变更简单的二叉树。实施这些流程。

这是我到目前为止创建的节点类。请原谅我确信我明显缺乏经验。

这完成了节点本身所需的一切,但我在试图弄清楚如何将它们变成更大的树时遇到了问题。我意识到我需要使用某种类型的集合类型,但似乎无法在库中找到一个似乎适合我正在尝试做的事情。

即使是朝着正确的方向轻推也将不胜感激。

0 投票
4 回答
545 浏览

genetic-programming - 遗传编程中的指数

我想为终端变量提供实值指数(不仅仅是整数)。例如,假设我想进化一个函数 y = x^3.5 + x^2.2 + 6。我应该如何进行?我还没有看到任何可以做到这一点的 GP 实现。我尝试使用幂函数,但有时初始解决方案的指数太多,以至于评估值超过了“双”界限!任何建议将不胜感激。提前致谢。

0 投票
3 回答
143 浏览

genetic-programming - 遗传编程的阶段

在进化遗传程序时,所需时间如何在不同发育阶段之间分配?我的意思是:是否有 90% 的时间用于变得比随机程序好一点,之后将程序改进到最终版本不是很耗费计算量?

0 投票
4 回答
101 浏览

genetic-programming - 遗传编程中测试用例的动态数量?

在查看遗传编程论文时,在我看来,测试用例的数量总是固定的。然而,大多数突变应该(?)在执行的每个阶段都是非常有害的,即在一个测试用例之后很明显,突变的程序比前一个执行得更差。如果您一开始只尝试很少(一个?)测试用例并查看突变是否有意义,会发生什么?

是否可能是不同的测试用例测试解决方案的不同特性,而一个突变可能只会改进其中一个特性?

0 投票
2 回答
696 浏览

java - 关于在 JGAP 中使用多线程,我应该知道任何“陷阱”吗?

我正在从事一个遗传编程项目,该项目试图生成代表图像的 GP。我的方法是将图像分成不同的独立部分,并让单独的线程对它们进行进化工作。

由于事情将是异步的,自然你也希望对象是独立的。问题是我注意到 JGAP 中的某些对象实际上是共享变量,因此它们将在线程之间共享,这会导致很多问题。例如,我注意到所有具有相同名称的变量都是相同的,这意味着如果我想同时评估多个 IGPProgram,我必须锁定该变量,这确实会影响性能。

我还注意到,如果您尝试创建多个 GPConfiguration,程序会抱怨您必须先重置它。所以在我看来,所有 GPConfigurations 都是共享的(即你不能让多个线程同时创建多个配置),这是一个问题,因为创建 GPProblems 可能需要很多时间,而我正在创建很多 GPProblems ,所以我希望通过将工作分成多个线程来减少所花费的时间。

在使用 JGAP 和线程时,我需要了解任何“陷阱”吗?不幸的是,JGAP 文档中没有过多地涉及多线程,我希望我能从可能有 JGAP 经验的人那里得到一些建议。

0 投票
1 回答
259 浏览

artificial-intelligence - 线性遗传编程常数

在内存寄存器中明确定义常量,而不是最初用常量播种个体并通过遗传算子使它们变异,有哪些优点和缺点?

具体来说,从我的一本关于线性遗传规划的书中读到这个:

在我们的实现中,所有寄存器都保存浮点值。在内部,常量存储在写保护的寄存器中,即不能成为目标寄存器。结果,这组可能的常数保持不变。

我想知道的是,这是否比最初随机生成常量并将它们集成到程序中,然后通过训练过程改进它们更好的方法。

谢谢