首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GA :避免重复染色体(双染色体)的顺序不计数

GA :避免重复染色体(双染色体)的顺序不计数
EN

Stack Overflow用户
提问于 2014-04-22 12:51:47
回答 1查看 794关注 0票数 0

我正在用JGAP实现一个遗传算法来解决染色体是一个整数列表的问题(我希望在结果中保持N个良好的拟合解,而不仅仅是最合适的)。

每个整数必须在染色体上出现一次(我将fitness=0设置为具有重复等位基因的染色体,这样就可以了.)

我的问题是:

在我的问题中,数字出现在染色体上的顺序是不计数的(12,3和2,1,3)。

因此,在执行结束时,我列出了一些可能的解决方案

我使用这里报告的解决方案(using JGAp (genetic algorithm library) and the duplicated chromosomes)以这种方式删除重复染色体:

代码语言:javascript
运行
复制
      conf.getNaturalSelectors(false).clear();
      BestChromosomesSelector bcs = new BestChromosomesSelector(conf, 0.8d);
      bcs.setDoubletteChromosomesAllowed(false);
      conf.addNaturalSelector(bcs, false);

但它只去除了相同的染色体,例如,它不移除:

代码语言:javascript
运行
复制
A B C D 
A C B D 
B A C D

我问题中的那些染色体代表着同样的解决方案。

因此,我最终得到了一份染色体列表,这些染色体具有相同的适配性和相同的含义,但基因的顺序不同。

我怎样才能删除代表同样的解决方案的染色体,尽管其代表的顺序如何?

谢谢,祝你今天愉快。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 22:44:42

只需先对染色体进行排序,然后再储存。由于同一组整数的不同排列将排序为相同的序列,所以可以使用已经使用的代码删除重复的序列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23220166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档