标签: genetic-algorithm

什么是"Hello World!" 遗传算法的好处是什么?

我发现这个非常酷的C++示例,字面意思是"Hello World!" 遗传算法.

我决定用C#重新编写整个代码,就是结果.

现在我问自己:从一群随机字符串开始生成目标字符串是否有任何实际应用?

编辑:我在Twitter上的好友刚刚发推文说"对转录类型的东西很有用,比如翻译.不一定是猴子的".我希望我有一个线索.

c# c++ genetic-algorithm

8
推荐指数
1
解决办法
2586
查看次数

遗传算法中的轮盘赌选择.人口需要先排序?

在遗传算法中,当使用轮盘选择方法选择交叉成员时,群体是否首先需要按健康等级排序?

可能性似乎是:

  1. 首先按提升适应度对人口进行排序
  2. 通过降低健康来对人口进行排序
  3. 不要对人口进行排序,让轮盘球落在可能的位置.

我认为以任何一种方式排序可能没有效果 - 在包含不同尺寸(通过适应性)切片的轮子上随机地着陆卵石将具有完全相同的结果机会,无论更大的切片是否被组合在一起.但我并不是100%相信.

你怎么看?

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

roulette-wheel-selection genetic-algorithm

8
推荐指数
1
解决办法
6430
查看次数

动画系统的神经网络大小

我决定使用神经网络来创建我拥有的动画引擎的行为.神经网络为我拥有的每个身体部位提供3个vector3s和1个欧拉角.第一个vector3是位置,第二个是它的速度,第三个是它的角速度.欧拉角是身体部位的旋转.我有7个身体部位.这些数据类型中的每一个都有3个浮点数.7*4*3 = 84,所以我的神经网络有84个输入.输出映射到角色的肌肉.它们提供适用于每块肌肉的力量,其中有15种.

我同时运行15个网络10秒,通过计算最低能量使用,具有最小量的z和x运动,以及如果身体部位处于与其余部分相比正确的y位置来评定其适合度(hips.y> upperleg.y,upperleg.y> lowerleg.y等),然后通过遗传算法运行它们.我正在运行一个神经网络,每个隐藏层有168个神经元,有8个隐藏层.我试图让角色站直,不要走​​动太多.我跑了3000代,我甚至没有接近.

神经网络和遗传算法是本教程的 C#版本.我将交叉方法从一个点改为混合.

我有84个输入和15个输出.我的神经网络应该有多大?

animation physics machine-learning neural-network genetic-algorithm

8
推荐指数
1
解决办法
1058
查看次数

遗传算法中的最优种群大小,变异率和配合率

我为比赛写了一个游戏程序,它依赖于大约16个浮点"常量".改变常数可以并将对比赛风格和成功率产生巨大影响.

我还编写了一个简单的遗传算法来生成常数的最优值.但是,该算法不会生成"最佳"常数.

可能的原因:

  • 该算法有错误(暂时将其排除在外!)
  • 人口很少
  • 变异率很高
  • 配合率可能会更好

算法如下:

  • 首先创建初始种群
  • 分配每个成员的初始常量(基于我的偏差乘以0.75和1.25之间的随机因子)
  • 对于每一代人群,成员都配对进行游戏比赛
  • 获胜者被克隆两次,如果平局被克隆一次
  • 如果random()小于突变率,则克隆会突变一个基因
  • 突变将随机常数乘以0.75和1.25之间的随机因子
  • 在固定的时间间隔,取决于配偶率,成员配对,基因混合

我目前的设置:

  • 人口:40(至低)
  • 突变率0.10(10%)
  • 交配率0.20(每5代)

人口规模,变异率和配合率的更好价值是什么?

我们欢迎猜测,不会有精确的价值!此外,如果您有类似遗传算法的见解,您想分享,请这样做.

PS:有问题的游戏比赛,如果有人有兴趣:http://ai-contest.com/

genetic-programming genetic-algorithm

8
推荐指数
1
解决办法
6493
查看次数

遗传算法锦标赛选择

我正在写一个遗传算法,我打算从轮盘选择转到锦标赛选择,但我怀疑我的理解可能有缺陷.

如果我只选择人口中的n/2最佳解决方案,那么我的人口肯定会很快耗尽吗?

我对算法的理解是:

for(Member m in currentPopulation){
    Member randomMember1 = random member of currentPopulation which is then removed from currentPopulation
    Member randomMember2 = as above;
    //Mutate and crossover

    if(randomMember1.getScore() > randomMember2.getScore()){
        nextGeneration.add(randomMember1);
    } else {
        nextGeneration.add(randomMember2);
    }
}
Run Code Online (Sandbox Code Playgroud)

我理解正确吗?

java genetic-algorithm evolutionary-algorithm

8
推荐指数
1
解决办法
1万
查看次数

遗传编程 - 健身功能

假设我有一组训练示例,其中A_i是属性,结果是二进制(是或否):

A1,             A2,             A3,             Outcome
red             dark            large           yes
green           dark            small           yes
orange          bright          large           no
Run Code Online (Sandbox Code Playgroud)

我知道我必须定义适应度函数.但这个问题是什么呢?在我的实际问题中有10个参数和100个训练示例,但这是一个类似的问题.

artificial-intelligence machine-learning genetic-programming genetic-algorithm

8
推荐指数
1
解决办法
1537
查看次数

遗传算法:特征选择算法的适应度函数

我有数据集nxm,其中有n个观察值,每个观察值由m个属性的m个值组成.每次观察也观察到分配给它的结果.我很大,对我的任务来说太大了.我试图找到仍然代表整个数据集的m个属性的最佳和最小子集,以便我只能使用这些属性来教授神经网络.

我想用遗传算法.问题是fittness功能.它应该告诉生成的模型(属性子集)如何仍然反映原始数据.而且我不知道如何针对整个集合评估某些属性的子集.当然,我可以使用神经网络(以后将使用这个选定的数据)来检查子集的好坏 - 误差越小,子集越好.但是,在我的情况下,这需要一点时间,我不想使用这个解决方案.我正在寻找一些其他方式,最好只对数据集进行操作.

我想到的是:使用子集S(通过遗传算法找到),修剪数据集,使其仅包含子集S的值,并检查此数据序列中的多少观察值不再可区分(具有相同属性的相同值),而具有不同的结果值.数字越大,它的子集就越差.但在我看来,这似乎有点太耗费精力.

有没有其他方法可以评估属性子集仍然代表整个数据集的程度?

machine-learning feature-selection genetic-algorithm

8
推荐指数
1
解决办法
3556
查看次数

一个自我选择团队

由100名成员组成的团队将由1000名申请人组成.每个申请人都可以选择他/她希望作为队友的其他99名申请人.

每个可能的团队都会得到一个分数,用于衡量其满足其成员的队友偏好的程度.如果Lisa在一个团队中,并且Lisas愿望清单中的11个人也在团队中,团队为Lisa获得11分.所有成员的积分都加起来了.任何可能的团队可以得到的理论最大值是99*100.最小值为0.

现在我们想找到得分最高的球队.试图通过计算每种可能组合的分数(≈10^ 140)来强制解决这个问题不是一种选择.

是否有一个聪明的算法,它将采用最佳答案的快捷方式,还是必须找到一个能找到一个好答案的算法?

algorithm combinations mathematical-optimization genetic-algorithm

8
推荐指数
2
解决办法
260
查看次数

如何在遗传算法中进行基于秩的选择?

我正在实现一个小的遗传算法框架 - 主要是供私人使用,除非我设法做出合理的事情,我将把它作为开源发布.现在我专注于选择技术.到目前为止,我已经实施了轮盘赌选择,随机通用抽样和锦标赛选择.我的列表中的下一个是基于排名的选择.与我已经实现的其他技术相比,我在查找相关信息方面遇到了一些困难,但到目前为止,这是我的理解.

  1. 如果你的人口中有你想让下一轮的合理父母,你首先要通过它,并将每个人的适应度除以人口中的总体适应度.

  2. 然后你使用其他一些选择技术(如轮盘赌轮)来实际确定选择谁进行繁殖.

它是否正确?如果是这样,我是否正确地认为排名调整是一种预处理步骤,然后必须采用实际选择程序来挑选候选人?如果我误解了这一点,请纠正我.我很感激任何额外的指示.

roulette-wheel-selection selection stochastic genetic-algorithm

8
推荐指数
2
解决办法
2万
查看次数

如何正确使用遗传算法进行预测

我正在尝试使用遗传算法进行分类问题.但是,我没有成功获得模型的摘要,也没有预测新的数据框.如何获取新数据集的摘要和预测?这是我的玩具示例:

library(genalg)
dat <- read.table(text = " cats birds    wolfs     snakes
                  0        3        9         7
                  1        3        8         7
                  1        1        2         3
                  0        1        2         3
                  0        1        2         3
                  1        6        1         1
                  0        6        1         1
                  1        6        1         1   ", header = TRUE) 
evalFunc <- function(x) {
        if (dat$cats < 1) 
        return(0) else return(1)
}
iter = 100
GAmodel <- rbga.bin(size = 7, popSize = 200, iters = iter, mutationChance = 0.01, 
                    elitism = T, evalFunc …
Run Code Online (Sandbox Code Playgroud)

r genetic-algorithm

8
推荐指数
1
解决办法
1232
查看次数