标签: genetic-algorithm

Java与提高遗传算法的效率

嘿伙计们,我想知道我是否可以就提高实施遗传算法的程序的整体效率提出一些建议.是的,这是一个分配问题,但我已经完成了我自己的任务,并且只是想找到一种方法来让它更好地执行 问题描述

我的程序目前读取由成分类型h或p构成的给定链(示例hphpphhphpphphhpphph)对于每个H和P,它生成随机移动(向上,向下,向左,向右)并将移动添加到arrayList包含在"染色体"对象中.一开始,该计划为10,000个染色体产生了19个动作

   SecureRandom sec = new SecureRandom();
    byte[] sbuf = sec.generateSeed(8);
    ByteBuffer bb = ByteBuffer.wrap(sbuf);
    Random numberGen = new Random(bb.getLong());
    int numberMoves = chromosoneData.length();
    moveList = new ArrayList(numberMoves);
    for (int a = 0; a < numberMoves; a++) {
        int randomMove = numberGen.nextInt(4);
        char typeChro = chromosoneData.charAt(a);
        if (randomMove == 0) {
            moveList.add(Move.Down);
        } else if (randomMove == 1) {
            moveList.add(Move.Up);
        } else if (randomMove == 2) {
            moveList.add(Move.Left);
        } else if (randomMove == 3) {
            moveList.add(Move.Right);
        }

    }
Run Code Online (Sandbox Code Playgroud)

在此之后,选择从种群到交叉的染色体.我的交叉函数从最适合的20%的人群中随机选择第一条染色体,另一条从最高的20%之外随机选择.然后交叉选择的染色体并调用突变功能.我相信我受影响最大的领域是计算每个染色体的适应度.目前我的健身功能创建了一个二维数组作为网格,从上面显示的函数生成的移动列表中按顺序放置移动,然后循环遍历数组进行适应度计算.(IE发现,位置[2,1]的H是Cord …

java performance genetic-algorithm

4
推荐指数
1
解决办法
744
查看次数

遗传算法中的交叉方法

当阅读关于遗传算法的交叉部分时,书籍和论文通常指的是简单地交换要再现的两个所选候选者的数据中的比特的方法.

我还没有看到用于实际行业应用的实现遗传算法的实际代码,但我发现很难想象它足以在简单的数据类型上运行.

我总是想象遗传算法的各个阶段将在涉及复杂数学运算的复杂对象上执行,而不是仅仅在单个整数中交换一些位.

甚至维基百科也只是为交叉列出了这些类型的操作.

我错过了一些重要的东西,或者这些交叉方法真的是唯一使用的东西吗?

algorithm optimization search genetic-algorithm evolutionary-algorithm

4
推荐指数
1
解决办法
3766
查看次数

遗传算法导论

首先让我澄清一下,我已经看到了这个遗传算法资源问题而它没有回答我的问题.

我正在做生物信息学项目.我必须获取有关细胞核磁共振谱(E.Coli)的数据,并找出细胞中存在的不同分子(代谢物).

要做到这一点,我将在R语言中使用遗传算法.我没有时间阅读有关遗传算法的大书.哎呀!我甚至没有时间阅读小书.(这就是相关问题没有回答的问题)

所以我需要知道哪些资源可以帮助我快速了解遗传算法的作用以及它们是如何做到的.我已经阅读了维基百科条目,这个网页以及关于这个主题的几篇IEEE论文.

R中的任何工作代码(即使在C中)或指向要使用的R模块(如果有)的指针都会有所帮助.

r genetic-algorithm

4
推荐指数
1
解决办法
3590
查看次数

我是否应该向通过遗传算法训练的人工神经网络添加偏差

我有一个控制人工草食动物的人工神经网络.输入是最接近的植物的大小和方向,最接近的配偶的大小和方向,以及草食动物的健康.输出是运动矢量(方向和幅度).如果通过遗传算法训练,是否有必要使用偏见?

artificial-intelligence artificial-life neural-network genetic-algorithm

4
推荐指数
1
解决办法
710
查看次数

遗传算法的时间复杂度

是否有可能计算遗传算法的时间复杂度?

These are my parameter settings:

    Population size (P) = 100
    # of Generations (G) = 1000
    Crossover probability (Pc) = 0.5 (fixed)
    Mutation probability (Pm) = 0.01 (fixed)
Run Code Online (Sandbox Code Playgroud)

谢谢

更新:

 problem: document clustering
 Chromosome: 50 genes/chrom, allele value = integer(document index)
 crossover: one point crossover (crossover point is randomly selected)
 mutation: randomly change one gene
 termination criteria: 1000 generation
Run Code Online (Sandbox Code Playgroud)

健身:戴维斯 - 布尔丁指数

algorithm performance big-o time-complexity genetic-algorithm

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

在TSP中获得健康

我正在使用遗传算法(GA)来优化旅行商问题(TSP).我的问题是我如何计算个人的健康状况.显然,具有较短路线的解决方案更适合但是我如何在不知道最短路径和最长可能路线确定我的解决方案在该范围内的位置的情况下分配适合度值?

artificial-intelligence traveling-salesman genetic-algorithm

4
推荐指数
1
解决办法
2145
查看次数

如何实现有序交叉

所以我有两个父母ABCDE EDCBA

我可以从两者中选择一个子集:来自父级:ACD来自父级二:EDC

然后我将父母一个复制到后代一个,但复制所选子集与父二进制顺序,所以:后代一个:DBCAE后代二:CDEBA

artificial-intelligence genetic-algorithm

4
推荐指数
1
解决办法
7720
查看次数

在Python中解决图形的多目标优化问题

我试图在大图上找到一个复杂且耗时的多目标优化.

这就是问题所在:我想找到一组n个顶点(n是常数,比如100)和m个边(m可以改变),其中一组度量被优化:

  • 公制A需要尽可能高
  • 公制B需要尽可能低
  • 公制C需要尽可能高
  • 度量D需要尽可能低

我最好的猜测是选择GA.我对遗传算法不太熟悉,但我可以花一点时间学习基础知识.从我到目前为止所读到的内容来看,我需要这样做:

  1. 通过m = random [1,2000](例如)边缘生成随机连接的n个节点的图形群
  2. 在每个图表上运行指标A,B,C,D
  3. 是否找到了最佳解决方案(如问题中所定义)?

如果是,那就完美了.如果不:

  1. 选择最佳图表
  2. 交叉
  3. 变异(随机添加或删除边缘?)
  4. 转到3.

现在,我通常使用Python进行我的小实验.DEAP(https://code.google.com/p/deap/)可以帮我解决这个问题吗?如果是这样,我还有很多问题(特别是关于交叉和变异的步骤),但简而言之:步骤(在Python中,使用DEAP)是否足够容易在这里解释或总结?

如果需要,我可以尝试和详细说明.干杯.

python genetic-algorithm

4
推荐指数
1
解决办法
3773
查看次数

我该如何为遗传算法生成随机数?

我正在写一个遗传算法来解决Master Mind游戏.我已经对最佳方法进行了大量研究,拥有多样化的人口非常重要.我正在尝试确定如何在C++中获得非常好的随机数.我已经srand(time(NULL))在我的程序开始时设置种子然后我只是使用了rand().我想知道的是这是多么随机?它不错吗?是否还有其他更好的随机数库?

我知道数论和随机性是一个非常复杂的主题; 在编写自己的版本时,你有什么指针rand()吗?

c++ random number-theory genetic-algorithm

4
推荐指数
1
解决办法
566
查看次数

NeuroEvolution:NEAT算法创新数字

我一直在阅读增强拓扑的NeuronEvolution,而这件事让我很困扰。在阅读肯尼思·斯坦利的《关于NEAT的论文》时,我想到了这个数字:

NEAT突变

在第一个突变时,创新数从1,2,3,4,5,6变为1,2,3,4,5,6,7。

在第二个上,它从1,2,3,4,5,6变为1,2,3,4,5,6,8,9。

我的问题是为什么它跳过数字7而直接上升到8?我没有发现与删除创新数字有关的任何信息。

在第二个图上也是一样,父母1如何失去6,7,而父母2中的第8个基因又去了哪里?

整洁的跨界

machine-learning neural-network genetic-algorithm evolutionary-algorithm es-hyperneat

4
推荐指数
1
解决办法
811
查看次数