问题标签 [evolutionary-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.
algorithm - 是什么阻碍了基因编程?
我已经非常成功地完成了大量关于遗传算法的工作,但迄今为止忽略了遗传编程。据我所知,大多数程序仍然由程序员编写,我很想知道是什么阻碍了基因编程?
我想到的一些可能的解释是:
- 搜索空间太大,无法在噪音中找到有用的程序
- 大多数实际应用程序无法提供足够的数据来对此类空间进行适应性评估。
- 很难将许多实际应用程序的功效降低到单一的适应度度量。换句话说,编写一个合适的适应度函数可能需要与编写实际程序相同的工作量。
有任何想法吗?
c# - 在车辆路径问题中使用图论
我正在处理单个站点的车辆路线问题。问题定义如下。有 n 个车辆需要前往 m 个站点。每个站点都有其特定的限制,例如只有具有一定容量的车辆才能为站点提供服务,某些站点需要在一天中的特定时间提供服务。此外,车辆将具有不同的容量,并且将具有不同的开始和结束时间。
这个想法是为了最大限度地减少车辆从仓库出发的旅行时间。
我正在为该问题构建成本矩阵。虽然不是图论专家,但我知道如果问题落入经典的旅行推销员问题,我可以使用哈密顿循环来解决问题。但是,因为它属于多次旅行推销员问题,我想知道如何使用哈密顿循环来解决这个问题,或者是否有另一个专门针对此类问题设计的过程?
任何帮助将非常感激。
algorithm - 遗传算法:如何在“子集”问题中进行交叉?
我有一个问题,我试图用遗传算法来解决。问题是选择 100 个整数的某个子集(比如 4 个)(这些整数只是代表其他东西的 id)。顺序无关紧要,问题的解决方案是一组整数而不是有序列表。我有一个很好的健身功能,但在交叉功能方面遇到了麻烦。
我希望能够交配以下两条染色体:
[1 2 3 4] 和 [3 4 5 6] 变成有用的东西。显然,我不能使用典型的交叉功能,因为我的孩子最终可能会出现重复,这代表无效的解决方案。在这种情况下,最好的交叉方法是什么。
java - 遗传算法比赛选择
我正在编写一个遗传算法,我计划从轮盘赌选择转向锦标赛选择,但我怀疑我的理解可能存在缺陷。
如果我只选择人口中的 n/2 个最佳解决方案,我肯定会很快用完人口吗?
我对算法的理解是:
我是否正确理解这一点?
haskell - Haskell:抽象遗传算法
我是 Haskell 编程世界的新手,我正在尝试一种简单的遗传算法来寻找旅行商问题的良好解决方案。我将解决方案表示为整数的排列,所以我有这种类型的同义词
算法本身是一组对解进行操作的函数:
我不确定我的代码有多少与我的问题相关,所以请询问是否需要更多详细信息。可能值得一提的是,上面的类型签名实际上是简化的,我实际上是在使用 State monad 来携带,StdGen
所以所有这些函数实际上都返回有状态的计算。
有几件事我想用这个做,但不能完全理解。我想让为解决方案选择不同的表示形式成为可能,在我看来,这将是使用类型类的自然场所,因此这Genome
将是类型类和[Int]
this 的特定实例Genome
。
现在,我希望能够对实现进行试验,并且希望能够在其他项目中使用该代码。使用这样的类型类需要我创建的每个新算法都需要我创建另一个实例Genome
,这是创建库的好方法吗?
一个额外的问题,只是一直困扰我的一件事,有没有办法为函数创建类似类型同义词的东西,这样如果我正在编写一个以函数作为参数的函数,我可以编写同义词而不是整个类型函数的签名,即这样的东西可以工作。
是的,希望这是对问题的足够清晰的解释,感觉就像我错过了真正明显的答案,但它并没有跳出来。干杯
heuristics - 有趣的元启发式算法,易于学习,在实际应用中有很多用途
我从来没有对优化感兴趣。虽然我几乎所有的教授都在里面。所以我得到了一些主题,这些主题将在我的论文中使用(这是一个好词吗?)。其中之一。结果应该是一个应用程序。所以我正在寻找一种有趣的元启发式进化算法,......,它不太难理解并且有多种用法。也许有人有一些经验?
主题是:
差分进化算法
元启发式算法中的协同进化多目标进化算法...
java - 员工入围
我在队列中有 n 件事情,我必须根据开放标准类别 C { X,YZ) 找到最好的事情(这里 X,Y,Z 是 C 变体)。什么是时间复杂度最低的最佳建议通用算法?
例如:
假设一家公司在 C++、C、银行领域、STL、5-10 年...等领域发布工作。100人申请了同一个职位。有些在 C 中具有 exp,有些在 C++、Java 中。有些在 C、C++、电信领域……等等。我的问题是:如何找到最好的员工?如何对它们进行排名?
genetic-algorithm - 在稳态遗传算法中应用变异
我正在实现一个稳态遗传算法来执行符号回归。
我的问题是关于突变和交叉运算符之间的关系。
在应用突变和锦标赛选择以根据他们的错误选择父母之前,我总是咨询突变概率(Pm)。
- 第一个问题:
突变必须仅应用于交叉后获得的孩子(或另一个遗传算子),或者可以直接应用于一个父母以产生一个新个体?
- 第二个问题:
交叉操作后获得的孩子必须总是尝试突变(当然是Pm)?
谢谢大家。
algorithm - 通过遗传算法生成代码
进化编程似乎是解决许多优化问题的好方法。这个想法很简单,实施也没有问题。
我想知道是否有任何方法可以在 ruby/python 脚本(或任何其他语言)中进化地创建程序?
这个想法很简单:
- 创建程序群
- 执行遗传操作(轮盘赌选择或任何其他选择),从最佳程序继承创建新程序等。
- 循环点 2 直到找到满足我们条件的程序
但是还是有几个问题:
- 染色体将如何表示?例如,染色体的一个细胞应该是一行代码吗?
- 染色体是如何产生的?如果它们是代码行,我们如何生成它们以确保它们在语法上是正确的,等等?
可以生成的程序示例:
创建将 N 个数字作为输入并返回其均值作为输出的脚本。
如果有任何尝试创建这样的算法,我会很高兴看到任何链接/来源。