问题标签 [genetic-algorithm]

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

machine-learning - 智能代码完成?有人工智能通过学习编写代码吗?

我问这个问题是因为我知道这里有很多读得很好的 CS 类型可以给出明确的答案。

我想知道这样的人工智能是否存在(或正在研究/开发),它通过自己生成和编译代码来编写程序,然后通过从以前的迭代中学习来进步。我说的是努力让我们这些程序员过时。我正在想象通过反复试验来学习编程语言中哪些有效,哪些无效的东西。

我知道这听起来像是天方夜谭,所以我想知道已经做了什么,如果有的话。

当然,即使是人类程序员也需要输入和规范,所以这样的实验必须有仔细定义的参数。就像人工智能要探索不同的计时功能一样,这方面必须明确定义。

但是有了一个复杂的学习人工智能,我很想知道它会产生什么。

我知道有很多人类品质是计算机无法复制的,比如我们的判断、品味和偏见。但是我的想象力喜欢这样的想法:一个程序经过一天的思考后会吐出一个网站,让我看看它想出了什么,即使如此,我仍然经常认为它是垃圾;但也许每天一次,我可能会给它反馈并帮助它学习。

这种想法的另一个途径是提供一个高级描述,如“菜单式网站”或“图像工具”,它会生成足够深度的代码,作为代码完成模块,然后我可以在细节。但我想这可以设想为一种非智能的静态分层代码完成方案。

这个怎么样?

0 投票
2 回答
984 浏览

language-agnostic - 遗传算法的每一代应该有多少个单元?

我正在制作一个 roguelike 并且正在使用 GA 来生成关卡。我的问题是,我的 GA 的每一代应该有多少个级别?而且,它应该有多少代?每一代都有几个级别,多代,还是相反?

0 投票
3 回答
6826 浏览

genetic-algorithm - 遗传算法中的轮盘赌选择。人口需要先排序?

在遗传算法中,当使用轮盘选择方法选择成员进行交叉时,是否首先需要对种群进行适应度排序?

可能性似乎是:

  1. 首先按适应度升序对种群进行排序
  2. 按适应度降序对种群进行排序
  3. 不要对人口进行排序,让轮盘赌球落在它可能的地方。

我认为无论哪种方式进行排序都可能没有效果 - 无论较大的切片是否组合在一起,随机落在包含不同大小(按健身)切片的轮子上的鹅卵石将具有完全相同的结果机会。但我不是 100% 相信的。

你怎么看?

每一代都需要进行排序也会影响算法的速度,所以我不希望这样做(如果使用精英主义,我会进行排序,但我不在这种情况下)。谢谢,如果你知道,因为我无法通过谷歌等找到明确的答案。

0 投票
5 回答
670 浏览

language-agnostic - 如何表示遗传算法的路径?

我想使用 GA 来确定从 A 到 B 的最佳路径,满足某些条件(长度、匝数等)

路径的示例是:上 4、左 8、下 3、右 3、下 1、左 10、上 4、左 1、上 3

问题是,我真的不知道一种很好的方式来表示这样的信息,以便在 GA 中使用,特别是因为路径的长度是可变的。

有谁知道如何做这样的事情?

0 投票
4 回答
6087 浏览

c# - C#中的遗传算法?

如何在 C# 中编写遗传算法?有图书馆吗?喜欢 C++: http: //lancet.mit.edu/ga/

0 投票
2 回答
1563 浏览

genetic-algorithm - 近交系数/莱特算法/遗传学

我正在寻找一个好的伪代码 - 或者更好的实际代码片段 - 在我为存储在 SQL Server 数据库中的绵羊的家谱数据库上实现 wrights 算法。

我有一个非常古老的 C 程序,它针对一个平面文本文件工作,直到人口变得如此之大,算法崩溃了——因为整个事情都是在内存中完成的,所以对数据库的实现会更好......

任何人都看到过这样的事情,他们可以指点我吗?

0 投票
2 回答
407 浏览

model-view-controller - 用于没有数据层的桌面应用程序的 MVC

问题可能很棘手(因为它的性质或我描述它的方式),所以在回答之前请认真阅读。

我有这个应用程序要写:
a)桌面应用程序;
b) 没有数据库、文件或任何其他存储库意义上的数据层(无需保存、存储或加载数据);
c)应用程序将实现一些计算算法(遗传算法);
b) 提供 GUI,它将显示应用程序和计算结果的控件。

我正在考虑使用 MVC 模式,但我怀疑如何使用它。由于我没有(例如)数据库意义上的数据层(数据是在执行过程中根据用户输入生成的),我担心在这个实现中使用 MVC 的方式。到目前为止,我提出了两种方法:

  1. GUI 是视图。遗传算法是控制器。GeneticAlgorithmResults 是模型(作为仅存储数据的类)。基本流程:

    • View 将用户输入发送到 Controller;
    • 控制器正在处理用户输入并生成数据;
    • Controller将生成的数据发送给Model;
    • Model 通知 View 新数据;
    • 视图拉取新数据并更新显示。
  2. GUI 是视图。AppEngine 是控制器。遗传算法和遗传算法结果是模型。现在我们有:

    • View 将用户输入发送到 Controller;
    • 控制器正在处理用户输入并向模型发送控制信号。
    • 模型更新其内部状态(生成新数据);
    • 模型通知控制器新数据;
    • Controller 拉取数据到模型;
    • 控制器处理数据;
    • 控制器将处理后的数据推送到视图;
    • 视图更新显示。

第一种方法似乎更直接,更像 MVC。问题是模型中必须有一些逻辑 - 决定何时通知模型,因为不会显示所有数据更新,或者可能会使用数据集而不是每一个微小的变化来更新显示。这些决定将基于用户输入。更重要的是,在实际显示之前可能需要对数据进行一些额外的处理。这将在视图中。

另一方面,第二种方法似乎更复杂,看起来要传递很多消息来完成任务。但是它将Logic的完全控制权交给了Controller,并将View、Controller和Model的职责分开(这是MVC的主要目的)。

您会推荐哪种方法?或者,也许我应该将它们混合使用并使用第一种方法架构和第二种方法的通信流?还是一些不同的设计?

0 投票
3 回答
329 浏览

language-agnostic - 专门的寻路方法?

我在(非常少的)空闲时间制作了一个 roguelike。每个级别基本上都是几个由路径连接在一起的矩形房间。然而,我希望房间之间的路径看起来自然且多风。例如,我不会考虑以下自然外观:

我真的想要更像这样的东西:

这些路径必须满足一些属性:

  1. 我必须能够指定它们的边界区域,
  2. 我必须能够参数化它们的风和长度,
  3. 线条不应看起来像是从一条路径开始并在另一条路径结束。例如,上面的第一个例子看起来好像从 A 开始,在 B 结束,因为它基本上反复改变方向,直到它与 B 对齐,然后就直奔那里。

我希望使用 A*,但老实说,我不知道我的启发式方法是什么。我也考虑过使用遗传算法,但我不知道这种方法最终会有多实用。

我的问题是,什么是获得我想要的结果的好方法?请不要只指定“A*”或“Dijkstra 算法”之类的方法,因为我还需要一个好的启发式帮助。

0 投票
4 回答
742 浏览

algorithm - 进化图像匹配模拟的新适应度测量

我相信很多人已经看过使用遗传算法生成与样本图像匹配的图像的演示。你从噪声开始,逐渐变得越来越接近目标图像,直到你有一个或多或少精确的副本。

然而,我看到的所有示例都使用了相当简单的逐像素比较,从而导致最终图像的“淡入”相当可预测。我正在寻找的是更新颖的东西:一种比天真的方法更接近我们所认为的“相似”的适应度测量方法。

我没有具体的结果——我只是在寻找比默认值更“有趣”的东西。建议?

0 投票
7 回答
6641 浏览

matlab - 神经网络优化 w/ 遗传算法

遗传算法是优化隐藏节点数量和人工神经网络训练量的最有效方法吗?

我正在使用 Matlab 中的 NNToolbox 对神经网络进行编码。我对优化技术的任何其他建议持开放态度,但我最熟悉 GA。