gpt4 book ai didi

ruby - 递归 self 完善

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:23 28 4
gpt4 key购买 nike

在开发了一个展示基本智能的简单算法后,我渴望进行递归 self 改进,我遇到的问题是由于我对递归缺乏理解。

我明白,如果我有一些东西来评估我正在使用的算法的“适应性”以进行改进(我为算法提供其自身的二进制表示),那么它会使用它必须产生新的二进制算法的基本智能,比它自己更好)。

然而我需要知道的是,我如何评估算法的适用性?我通常会这样做

if @variable == true
fitness += 1
end

但是如果适应度是从算法本身产生的算法的能力,我该如何衡量它,因为如果不产生新算法本身就无法测试产生的算法等等...

干杯马丁

最佳答案

对于可以使用另一种方法实现的算法,递归几乎总是一个坏主意。 Ruby 在极端堆栈深度下工作时存在许多问题,例如垃圾收集成本增加、堆栈开销显着以及可能导致“堆栈级别太深”错误的相对较低的上限。

创建不共享状态的独立对象可能会更好。与其递归,不如迭代。在适用的情况下,使用您自己的 self 管理堆栈,例如您pushshift 元素的数组。

一些示例代码可能是:

candidate = stack.shift

if (candidate.fitness > minimum_fitness)
stack.push(candidate.spawn)
end

spawn 这样的方法会做任何你需要做的神奇的 GA 事情,并返回一个的独立实例。如果需要,这可以被扩充以与另一个候选人结合。

关于ruby - 递归 self 完善,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938194/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com