首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对遗传算法输出的位串中的“基因”进行排序和生成

对遗传算法输出的位串中的“基因”进行排序和生成
EN

Stack Overflow用户
提问于 2015-07-14 09:03:31
回答 2查看 81关注 0票数 1

我想知道是否有人对我如何分析正在被遗传算法置换的输出位串有建议。特别是,如果我能尝试识别似乎能产生理想简历分数的比特模式(我在这里称之为基因),那就太好了。在尝试检查这些数据集时遇到了困难,因为它们很多(我可能已经有大约3000万个140位长的位串,我可能很快就会超过1亿位),所以在我整理出所需的数据之后,仍然有很多潜在的数据集,用眼睛进行相似性比较是不可能的。我的问题是:

我应该如何比较这些位串之间的相似性?

我如何以一种算法(也就是可编程的)方式识别这些位串中的“基因”?

EN

回答 2

Stack Overflow用户

发布于 2015-07-17 23:02:19

当您想要提取常见的基因模式时,看看两个字符串的交集如何。所以如果你有

代码语言:javascript
复制
set1 =          11011101110011...
set2 =          11001100000110...
# apply bitwise '=='
set1 && set2 == 11101110000010...

现在的结果显示了哪些基因是相同的,并可以用于进一步的分析。

票数 0
EN

Stack Overflow用户

发布于 2015-08-05 00:38:03

对于相似性部分,你需要做一个异或(XOR)。这种逐位操作的结果将给出两个位串之间的差异,这可能是最有效和最简单的方法(用于配对比较)。举个例子:

代码语言:javascript
复制
>>> from bitarray import bitarray
>>> a = bitarray('0001100111')
>>> b = bitarray('0100110110')
>>> a ^ b
bitarray('0101010001')

然后,您可以计算差异,快速检查差异所在,等等。

对于第二部分,它取决于课程的表示,以及为实现选择的编程语言(PL)。大多数PL库都有一个搜索功能,可以检索在字符串(或位串或位流...)中找到某种模式的所有或至少第一个索引。如果任务有多个选项,您只需参考所选PL的文档即可了解更多有关性能的信息。

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

https://stackoverflow.com/questions/31395971

复制
相关文章

相似问题

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