如何将一组/ a染色体/ s转换为属性?

时间:2011-09-15 23:21:52

标签: genetic-algorithm artificial-life

所以,因为this的答案基本上说我真的应该考虑编码我生物的基因*,我做了!

所以,我创建了以下整齐的小(byte [] - )结构:

  

Gene = {X,X,X,X,Y,Y,Y,Y,Z,Z,Z,Z}

其中

  
      
  • X =表示生物中的某个特征。
  •   
  • Y =这些区块控制如何以及何时发生交叉和突变(16种可能的值,我认为应该绰绰有余!)

  •   
  • Z =链的长度(基本上,这是为了未来的构建,我想让进化控制整个长度链)。

  •   
     

(所以Z和Y可以被认为是META信息)

(在你问之前,是的,这是一个12字节:))

我的问题如下:

我如何将这些'生物'的特征联系起来?

基本上,我是这样看的(这可能就是我将如何实现它): 每个'生物'都可以跑来跑去,吃东西,繁殖,基本的东西。我不认为(我肯定不会希望至少!)我将需要一个健身功能本身,但我希望进化,就像在比赛中对于食物,伙伴和太空将驱使这些生物进化。

这种观点错了吗?它会更容易(请注意,我是程序员,不是数学家!)将它看作一个大图并“简单地”从那里拿走它?

或者,tl;博士:你能指出我正确的方向,文章,研究和/或实施的例子吗?

(更多tl; dr;我如何翻译基因,例如腿的长度?)

*阅读问题,我正在构建一种模拟器。

2 个答案:

答案 0 :(得分:1)

观察Mitchell,1998年,遗传算法导论,第2章。 3.3,我找到了对Forrest和Jones的一个参考,1994,使用Echo建模复杂自适应系统。指的是似乎正在寻找你正在寻找的东西(世界上不断发展的生物)的软件Echo。目前我无法找到它的链接,但这里有关于实施jEcho的论文,作者是Brian McIndoe。

答案 1 :(得分:1)

我之前没有在遗传算法的基因序列中看到像Y和Z这样的元信息(在我有限的技术暴露中)。你的遗传算法是非传统算法吗?

一个生物有多少特质?如果您的X代表特征的值,并且基因序列可以具有可变长度(Z),那么如果没有为所有特征定义足够的X,会发生什么?如果X的数量超过了你对生物的特征,会发生什么?

  • Z应该是固定值。
  • Y应该是遗传进化常规的参数
  • 对于生物的每个特征都应该有一个X(或一组X)(不多也不少)

如果您拥有的X的数量是固定的,那么对于每个特征,您可以指定一个特定的索引(或一组索引)来表示该特征。

修改

您应该确定 X 应该代表的特征的编码:对于一条腿的长度,例如,您可以有几个字节代表腿长。如果字节3-5是腿的长度,您可以像这样表示 X -vector中的长度:

[...101......]

点是其他特征表示。上面的片段表示腿长为5(无论这意味着什么)。下面的基因组仍然有5个腿长,但其他特征也填补了。

[001101011011]