问题标签 [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.
genetic-programming - 基因表达编程和笛卡尔遗传编程的区别
进化计算中相当烦人的一点是,略有不同和重叠的概念往往会选择截然不同的名称。因此,我最近的困惑是基因表达编程似乎与笛卡尔基因编程非常相似。
- (如何)这些是根本不同的概念吗?
- 我读过 GP 指令的间接编码是一种有效的技术(GEP 和 CGP 都这样做)。是否已经达成某种共识,间接编码已经过时了经典的树基 GP?
artificial-intelligence - Mandelbrot 集的遗传编程
我正在阅读这本引人入胜的书中的一章,内容是关于使用遗传编程交互式进化图像。大多数函数集由简单的算术和三角函数组成(真正操作并返回图像)。这些函数构成了对我们的图像进行编码的解析树的内部节点。树的叶子或终端值是随机数和 x,y 坐标。
有一节关于将复平面的迭代函数添加到函数集:
假设遗传学将一个特定的 Mandelbrot 集作为节点插入到浓密的树的某处。该函数需要两个参数:mandel(cReal, cImag),将它们视为复平面中的实坐标和虚坐标。如果基因组恰好提供了像素坐标 (x,y),并且 mandel() 是根节点,那么您将得到熟悉的 Mset。但是很可能 cReal 和 cImag 本身就是整个函数分支的结果,许多坐标 x,y 的实例散布在叶子之间。进入迭代循环,绕一圈,最后用一些距离 Mset 吸引子的距离来衡量,比如迭代次数。
我的问题是如何将 Mandelbrot 集渲染器作为一个函数,将复平面上点的实坐标和虚坐标作为参数并返回 Mandelbrot 集的渲染?
genetic-algorithm - 非线性联立方程遗传算法中的代码
我需要解三个非线性联立方程
在哪里y1
,y2
和是已知的并且y3
旨在找到, ... 。我需要使用遗传算法来做到这一点。有人可以提供我codz。t
i
r1
r2
r6
terminology - 遗传算法和遗传编程有什么区别?
我想简单解释一下遗传算法和遗传编程之间的区别(不用太多编程术语)。示例也将不胜感激。
显然,在基因编程中,解决方案是计算机程序。另一方面,遗传算法将解决方案表示为一串数字。还有其他区别吗?
genetic-algorithm - 下水道设计最经济的途径
你能帮我用应用遗传算法建立下水道系统布局的优化模型吗
java - Java的遗传编程库
我正在为 JVM 寻找一个好的遗传编程库。(不是遗传算法,而是遗传编程)我尝试了 JGAP (jgap.sourceforge.net) 和 Watchmaker (watchmaker.uncommons.org)。不幸的是,这些工具对遗传编程只有实验性和不成熟的支持(它们主要集中在遗传算法上)。
也许您知道用于 JVM 的更好的基因编程工具(可以用 Java 或任何其他用于 JVM 的编译语言编写)。
我不是在寻找 GP 工具的完整列表,而是在寻找一个好的、流行的工具(就像流行的操作系统是 Windows、Linux 和 Mac,流行的 Java IDE 是 Eclipse、IDEA 和 NetBeans)。
它不一定是基因编程库 (GP),它也可以是(而且可能会更好)基因表达编程库 (GEP)。
编辑(问题两个月后):我分析了您发布的大部分链接,这些链接在 Wiki 中可用,我必须说这些库中的每一个都至少存在以下问题之一:
没有开源,或开源,但非常严格(GPL);
没有文件(或很差的文件);
没有对基因编程或基因表达编程(或实验性编程)的内置支持;
有些使用起来太复杂了。
在这个位置,我最终为该项目编写了自己的简单库(使用基因表达编程方法,这使得它非常简单)。
evolutionary-algorithm - 将达尔文进化论应用于编程
不久前,我记得读过一篇关于将达尔文进化论应用于程序以创建更好的程序的杂志文章(我相信是在连线)。基本上会产生一个程序的多个突变,而表现最好的一个将被选择用于下一轮突变。
不幸的是,我无法使主题听起来像文章中听起来那样有趣,但我找不到这篇文章。
因为这听起来对我来说是最酷的事情,所以我想知道一个程序内部可能有什么突变
clojure - 如何格式化树以使其与 Clojure 的拉链一起使用?
我正在为遗传编程问题创建 s 表达式树,并且需要在进化过程中更改部分树。我遇到了Clojure 拉链功能,它看起来应该是完美的,但对于我的生活,我无法弄清楚如何使用它。
例如,假设我创建了一个拉链
我理解这表示以 + 为根的树,它看起来像这样:
但是,我的拉链不同意这一点:如果我要求第一个节点,(-> zipped zip/down zip/node)
它会给我+
(这是正确的),但它(-> zipped zip/down zip/down)
不会带我去-
,而是返回nil
. 确实,(-> zipped zip/down zip/rights)
将树的其余部分作为根右侧的兄弟姐妹,这表明我根本没有树:
我很确定我正确地表示了我的树,因为当我执行它们时,我得到了正确的答案。拉链是否期望不同的布局?
objective-c - Objective-C 中的遗传编程(GP)实现?
我正在寻找objective-c 中的开源GP 实现。我发现了一些可以嵌入到我的 obj-c 项目中的 C++ 实现,但我想知道那里是否有 GP 的本机 obj-c 实现。
谢谢
genetic-algorithm - 遗传算法中的最优种群规模、变异率和交配率
我为一场比赛编写了一个游戏程序,它依赖于一些 16 个浮点“常量”。改变一个常数可以而且将会对演奏风格和成功率产生巨大的影响。
我还编写了一个简单的遗传算法来生成常数的最佳值。然而,该算法不会生成“最佳”常量。
可能的原因:
- 算法有错误(暂时排除这个!)
- 人口太少
- 变异率太高了
- 配偶率可能会更好
算法是这样的:
- 首先创建初始种群
- 分配每个成员的初始常数(基于我的偏差乘以 0.75 和 1.25 之间的随机因子)
- 每一代人口中的成员都配对进行游戏匹配
- 获胜者复制两次,如果平局则复制一次
- 如果 random() 小于突变率,则克隆会突变一个基因
- 突变将随机常数与 0.75 到 1.25 之间的随机因子相乘
- 以固定的时间间隔,取决于交配率,成员配对和基因混合
我目前的设置:
- 人口:40(低)
- 变异率 0.10 (10%)
- 交配率 0.20(每 5 代)
种群规模、变异率和交配率的更好值是多少?
欢迎猜测,不期望确切的值!另外,如果您对类似的遗传算法有见解,您愿意分享,请这样做。
PS:有问题的游戏比赛,如有兴趣:http ://ai-contest.com/