第2个回答 2006-06-05
遗传基因的运算法则
遗传基因的运算法则物体决定哪一个体应该生还,这应该再生, 和应该死。 资讯科技也记录统计学而且决定进化应该继续多久。 典型地一个遗传基因的运算法则没有明显的停止标准。 你一定告诉运算法则何时该停止。 时常数字--世代被当作停止尺寸使用,但是你能使用仁慈--最好-溶液,集中-- 人口 , 或任何的问题- 特性的标准如果你偏爱。
图书馆包含遗传基因运算法则的四种滋味。 第一是被犹太人他的书描述的标准简单的遗传基因的运算法则。 这一个运算法则一种使用非交叠处理人口和可选择的精英主义。 每世代运算法则产生个体的完全新人口。 其次是一个不变的遗传基因的运算法则以使用交叠处理人口。 在这一种变化中,你能叙述多少人口应该在每世代内被代替。 第三种变化是逐渐增加的遗传基因的运算法则哪里每世代有只有一或二个孩子。 逐渐增加的遗传基因的运算法则允许订制的替换方法定义新的世代如何应该进入人口之内被整合。 如此,举例来说,一个崭新产生的孩子可以代替它的父母,代替人口的一个任意的个体, 或像它一样代替一个大多数的个体。 第四个类型是 'deme' 遗传基因的运算法则。 这一个运算法则进展使用一个不变的运算法则的平行多样的人口。 每世代运算法则移动从每人口到其他人口之一的一些个体。
除了基本的内建类型之外, GA lib 定义你将会需要源自你自己的遗传基因的运算法则班级的成分。 例子包括少数的这些引出包括 (1) 一个使用在多样的处理器上的人口 , 和一个遗传基因的运算法则之间的多样人口和 '移民' 的遗传基因的运算法则 '决定论的拥挤' 在进化期间维持个体的不同种。
恶劣的遗传基因的运算法则班级对大多数遗传基因运算法则的滋味包含通常的操作员和数据。 当你源自你能使用这些成员数据和功能掌握统计学和监视器表现的资讯你自己的遗传基因的运算法则的时候。
遗传基因的运算法则包含统计学,替换策略, 和跑运算法则人口物体的叁数, 一个容器对于基因组, 也包含一些统计学和选择而且计数操作员。 一个典型的遗传基因的运算法则将会永远地跑。 当运算法则应该结束的时候,图书馆已经为叙述在功能建造。这些包括有结尾的-在-之上世代, 你叙述一个世代的特定数字为哪一运算法则应该跑, 而且结束-在-之上集中, 你叙述最好-- 世代的得分应该聚合的价值。 你能定制终止功能使用你自己的停止标准。
功能评估的数字是把不同的遗传基因的运算法则与各种不同的其他搜寻方法作比较的一个好方法。 GA lib 遗传基因的运算法则掌握两者的基因组评估和人口评估的数字资讯。
定义表现
使用适合你的问题数据结构。 如果你正在将一个数字的功能最佳化, 使用你的基因组的实数。 如果对你的问题解决办法能与一些想像的数字和一些完整的事物一起表现价值,用这些特性定义一个基因组。
定义适当的表现是使用遗传基因的运算法则的艺术部份。 (而且此时,它仍然是一种艺术, 不一个科学) 使用最小的但是完全表达的表现。 你的表现应该能够表现对你的问题,的任何解决办法但是如果全然可能你应该设计它,以便它不能够表现对你的问题不可实行的解决办法。 记得,如果基因组然后能表现不可实行的溶液客观的功能一定被设计给部分的信用到不可实行的。
表现超过被需要表现对问题的解决办法的那不应该包含数据。 虽然在使用包含 '额外之物' 遗传基因的材料表现方面可能有功绩, 除非适当地实现 ( 共同地以客观的功能和在类型的完全考虑方面和搜寻的特性空间),这容易增加搜寻空间的大小并且如此阻碍遗传基因的运算法则的表现。
可能表现的数字是永无止境的。 你可能选择纯粹数值的表现 , 像是实数的排列。 这些可能被实现如实数,或,在犹太人中- 一连串一点点的风格对实数的地图.( 小心直接地使用实数远的比~明显表现二进-到- 十进位的表现为大多数的问题, 尤其当你使用明理的转线路操作员的时候) 你的问题可能仰赖项目的序列哪里情形以级为基础的表现 ( 或目录或排列) 可能是更适当的。 在大部份这些情形中,你一定选择操作员维持序列的正直; 转线路一定不需要复制目录的任何元素就产生再命令目录。 其他的问题对树状结构结构借他们自己。在这里你可能想要明确地表现溶液当树状结构而且直接地运行在树状结构上的遗传基因的操作。 二者择一地, 许多人入码进入排列或 parsable 之内爬上树线, 然后在线上操作。 一些问题包括一个连续的和不连续元素的混合,在哪一情况你可能需要产生新的结构支撑数据的混合。 在这些情况你一定定义遗传基因的操作员尊敬溶液的结构。举例来说,和完整的事物和漂浮的部份一个溶液可能使用一个转线路,十字架完整的事物和完整的事物部份的部份和浮控舍弃漂浮的部份, 但是从不把漂浮的部份和完整的事物部份混合在一起。
无论那一个表现你选择,确定摘适合你的 rep 表现的操作员。
基因组操作员
每个基因组有三个主要的操作员: 设定初值,变化和转线路。 当你的人口进展的时候,与这些操作员在一起你能使存偏见开始的人口,定义对你的问题表现的一个变化或转线路特性, 或进展遗传基因的运算法则的部份。 GA lib 和为每个基因组类型被预先定义的这些操作员一起来,但是你能定制任何的他们。
设定初值操作员决定基因组如何被设定初值。 当你设定人口或遗传基因的运算法则初值的时候,资讯科技被叫做。 这一个操作员不实际上产生新的基因组, 宁可它 '东西' 和所有的溶液将会进展的原始遗传基因的材料基因组。 人口物体有它自己的设定初值操作员。 预先设定地这只是邀请基因组的设定初值操作员来人口,但是你能定制它做你想要无论什么。
变化操作员为变化每个基因组定义程序。 变化对于不同的数据类型意谓不同的事物。 举例来说, 典型的 mutator 为二元的线基因组用指头弹和给定的可能性的线一点点。 为一个树状结构的典型 mutator, 另一方面,会用给定的可能性交换次树状结构。 大体上,你应该定义一个能做探险和开发的变化; 变化应该能够介绍新的遗传基因的材料和修正现有的材料。 你可能想要为一个单一问题定义变化的多样类型。
转线路操作员为产生来自二个父母基因组的一个孩子定义程序。 喜欢变化操作员,转线路是对数据类型的特性。 不像变化,然而,转线路包括多样的基因组。 在 GA lib 中, 每个基因组 '知道'交配 (假设值转线路方法) 的它优先方法但是它对表演转线路本身是无能力的。 每个遗传基因的运算法则 '知道'该如何然后从它的基因组拿假设值转线路方法使用那一个方法运行交配。 与这一个模型在一起源自新的遗传基因的运算法则是可能的分类被为一个基因组定义的假设值之外的那一个使用交配方法。
每一个这些方法能被根据客户需要修改,以便它是特定的不但到数据类型 , 而且到问题类型。 这是你能把一些问题- 特性的 '智力' 放入遗传基因的运算法则的一个方法 (我将不到处讨论讨论,是否这是做的一件好事物。。.)
除了三个主要的操作员之外,每个基因组也一定包含一个客观的功能以及可能包含一个比较器。 客观的功能用来评估基因组。 比较器 ( 时常称为一 ' 距离功能') 是一用决定不同的一个基因组如何是从另外的。 每一遗传基因的运算法则需要,一个客观的功能被定义-这是遗传基因的运算法则决定哪一个体比其它更好的方式。 一些遗传基因的运算法则需要一个比较器。
图书馆在,中建造一些基本的数据类型,但是如果你已经有排列或列出物体, 举例来说,然后你能很快地建立来自它的一个基因组被从你的物体和基因组繁殖继承反对。 然后你能 se 直接地在遗传基因的运算法则反对的 GA lib 的这个新的物体。
大体上,一个遗传基因的运算法则不需要知道它正在操作的数据结构的内容。 图书馆反映这一个概论。 你能混合而且使基因组类型与遗传基因的运算法则相配。 遗传基因的运算法则知道该如何为了要产生人口,设定基因组初值开始奔跑 , 复制基因组,越过基因组产生孩子, 而且变化基因组。 所有的这些操作经由基因组成员功能被运行。
人口物体
人口物体是基因组的一个容器。 每个人口物体有它自己的 initializer(假设值只是在人口中为每个个体呼叫 initializer) 和 evaluator 。 (假设值只是在人口中为每个个体呼叫 evaluator) 资讯科技也掌握最好,平均,偏离的资讯, 及其他对于人口。 不同能也被记录,但是因为不同计算时常需要很多的加添计算,假设值是不记录不同。
选择方法在人口物体中也被定义。 这一个方法被遗传基因的运算法则用选择哪一个体应该配对。
每个人口物体以它使物体被联合。剥落计画物体皈依者对健身得分的每个基因组的客观得分对于选择的遗传基因的运算法则一种使用。 资讯科技稍后藉着选择方案也为使用贮藏健身数据。
目的功能和健身剥落
因为他们不需要复杂的微分方程式或平滑的搜寻空间,所以遗传基因的运算法则时常是比倾斜度搜寻方法更吸引人。 遗传基因的运算法则只需要的单身衡量单身的个体是多么好与其他个体相较。 客观的功能提供这尺寸; 提供对一个问题的单一解决办法,它多好?
资讯科技是重要注意在健身和目的之间区别得分。 客观的得分是被你的客观功能退还的价值; 它是基因组的生表现评估。 健身得分, 另一方面, 是一可能地- 转换被遗传基因的运算法则用的等级为交配决定个体的健身。 健身得分典型地被生的目的一个线性剥落得分获得。 ( 但是你能定义任何的映射你想要或没有变形全然) 举例来说, 如果你然后计数健身得分的 se 线性起源于目的刻划一唱健身比例的剥落在犹太人的书中被描述的技术。 遗传基因的运算法则使用健身得分而不是客观的得分, 做选择。
你能评估使用以个体为基础的评估功能 (你定义哪一), 或以人口为基础的 evaluator 的人口个体。 ( 也你定义哪一) 如果你使用一个以个体为基础的目的,然后功能被指定给每个基因组。 一个以人口为基础的客观功能能利用个别的客观功能, 或它能设定个体刻划它本身
第3个回答 2006-06-05
遗传基因的运算法则
遗传基因的运算法则物体决定哪一个体应该生还,这应该再生, 和应该死。 资讯科技也记录统计学而且决定进化应该继续多久。 典型地一个遗传基因的运算法则没有明显的停止标准。 你一定告诉运算法则何时该停止。 时常数字--世代被当作停止尺寸使用,但是你能使用仁慈--最好-溶液,集中-- 人口 , 或任何的问题- 特性的标准如果你偏爱。
图书馆包含遗传基因运算法则的四种滋味。 第一是被犹太人他的书描述的标准简单的遗传基因的运算法则。 这一个运算法则一种使用非交叠处理人口和可选择的精英主义。 每世代运算法则产生个体的完全新人口。 其次是一个不变的遗传基因的运算法则以使用交叠处理人口。 在这一种变化中,你能叙述多少人口应该在每世代内被代替。 第三种变化是逐渐增加的遗传基因的运算法则哪里每世代有只有一或二个孩子。 逐渐增加的遗传基因的运算法则允许订制的替换方法定义新的世代如何应该进入人口之内被整合。 如此,举例来说,一个崭新产生的孩子可以代替它的父母,代替人口的一个任意的个体, 或像它一样代替一个大多数的个体。 第四个类型是 'deme' 遗传基因的运算法则。 这一个运算法则进展使用一个不变的运算法则的平行多样的人口。 每世代运算法则移动从每人口到其他人口之一的一些个体。
除了基本的内建类型之外, GA lib 定义你将会需要源自你自己的遗传基因的运算法则班级的成分。 例子包括少数的这些引出包括 (1) 一个使用在多样的处理器上的人口 , 和一个遗传基因的运算法则之间的多样人口和 '移民' 的遗传基因的运算法则 '决定论的拥挤' 在进化期间维持个体的不同种。
恶劣的遗传基因的运算法则班级对大多数遗传基因运算法则的滋味包含通常的操作员和数据。 当你源自你能使用这些成员数据和功能掌握统计学和监视器表现的资讯你自己的遗传基因的运算法则的时候。
遗传基因的运算法则包含统计学,替换策略, 和跑运算法则人口物体的叁数, 一个容器对于基因组, 也包含一些统计学和选择而且计数操作员。 一个典型的遗传基因的运算法则将会永远地跑。 当运算法则应该结束的时候,图书馆已经为叙述在功能建造。这些包括有结尾的-在-之上世代, 你叙述一个世代的特定数字为哪一运算法则应该跑, 而且结束-在-之上集中, 你叙述最好-- 世代的得分应该聚合的价值。 你能定制终止功能使用你自己的停止标准。
功能评估的数字是把不同的遗传基因的运算法则与各种不同的其他搜寻方法作比较的一个好方法。 GA lib 遗传基因的运算法则掌握两者的基因组评估和人口评估的数字资讯。
定义表现
使用适合你的问题数据结构。 如果你正在将一个数字的功能最佳化, 使用你的基因组的实数。 如果对你的问题解决办法能与一些想像的数字和一些完整的事物一起表现价值,用这些特性定义一个基因组。
定义适当的表现是使用遗传基因的运算法则的艺术部份。 (而且此时,它仍然是一种艺术, 不一个科学) 使用最小的但是完全表达的表现。 你的表现应该能够表现对你的问题,的任何解决办法但是如果全然可能你应该设计它,以便它不能够表现对你的问题不可实行的解决办法。 记得,如果基因组然后能表现不可实行的溶液客观的功能一定被设计给部分的信用到不可实行的。
表现超过被需要表现对问题的解决办法的那不应该包含数据。 虽然在使用包含 '额外之物' 遗传基因的材料表现方面可能有功绩, 除非适当地实现 ( 共同地以客观的功能和在类型的完全考虑方面和搜寻的特性空间),这容易增加搜寻空间的大小并且如此阻碍遗传基因的运算法则的表现。
可能表现的数字是永无止境的。 你可能选择纯粹数值的表现 , 像是实数的排列。 这些可能被实现如实数,或,在犹太人中- 一连串一点点的风格对实数的地图.( 小心直接地使用实数远的比~明显表现二进-到- 十进位的表现为大多数的问题, 尤其当你使用明理的转线路操作员的时候) 你的问题可能仰赖项目的序列哪里情形以级为基础的表现 ( 或目录或排列) 可能是更适当的。 在大部份这些情形中,你一定选择操作员维持序列的正直; 转线路一定不需要复制目录的任何元素就产生再命令目录。 其他的问题对树状结构结构借他们自己。在这里你可能想要明确地表现溶液当树状结构而且直接地运行在树状结构上的遗传基因的操作。 二者择一地, 许多人入码进入排列或 parsable 之内爬上树线, 然后在线上操作。 一些问题包括一个连续的和不连续元素的混合,在哪一情况你可能需要产生新的结构支撑数据的混合。 在这些情况你一定定义遗传基因的操作员尊敬溶液的结构。举例来说,和完整的事物和漂浮的部份一个溶液可能使用一个转线路,十字架完整的事物和完整的事物部份的部份和浮控舍弃漂浮的部份, 但是从不把漂浮的部份和完整的事物部份混合在一起。
无论那一个表现你选择,确定摘适合你的 rep 表现的操作员。
基因组操作员
每个基因组有三个主要的操作员: 设定初值,变化和转线路。 当你的人口进展的时候,与这些操作员在一起你能使存偏见开始的人口,定义对你的问题表现的一个变化或转线路特性, 或进展遗传基因的运算法则的部份。 GA lib 和为每个基因组类型被预先定义的这些操作员一起来,但是你能定制任何的他们。
设定初值操作员决定基因组如何被设定初值。 当你设定人口或遗传基因的运算法则初值的时候,资讯科技被叫做。 这一个操作员不实际上产生新的基因组, 宁可它 '东西' 和所有的溶液将会进展的原始遗传基因的材料基因组。 人口物体有它自己的设定初值操作员。 预先设定地这只是邀请基因组的设定初值操作员来人口,但是你能定制它做你想要无论什么。
变化操作员为变化每个基因组定义程序。 变化对于不同的数据类型意谓不同的事物。 举例来说, 典型的 mutator 为二元的线基因组用指头弹和给定的可能性的线一点点。 为一个树状结构的典型 mutator, 另一方面,会用给定的可能性交换次树状结构。 大体上,你应该定义一个能做探险和开发的变化; 变化应该能够介绍新的遗传基因的材料和修正现有的材料。 你可能想要为一个单一问题定义变化的多样类型。
转线路操作员为产生来自二个父母基因组的一个孩子定义程序。 喜欢变化操作员,转线路是对数据类型的特性。 不像变化,然而,转线路包括多样的基因组。 在 GA lib 中, 每个基因组 '知道'交配 (假设值转线路方法) 的它优先方法但是它对表演转线路本身是无能力的。 每个遗传基因的运算法则 '知道'该如何然后从它的基因组拿假设值转线路方法使用那一个方法运行交配。 与这一个模型在一起源自新的遗传基因的运算法则是可能的分类被为一个基因组定义的假设值之外的那一个使用交配方法。
每一个这些方法能被根据客户需要修改,以便它是特定的不但到数据类型 , 而且到问题类型。 这是你能把一些问题- 特性的 '智力' 放入遗传基因的运算法则的一个方法 (我将不到处讨论讨论,是否这是做的一件好事物。。.)
除了三个主要的操作员之外,每个基因组也一定包含一个客观的功能以及可能包含一个比较器。 客观的功能用来评估基因组。 比较器 ( 时常称为一 ' 距离功能') 是一用决定不同的一个基因组如何是从另外的。 每一遗传基因的运算法则需要,一个客观的功能被定义-这是遗传基因的运算法则决定哪一个体比其它更好的方式。 一些遗传基因的运算法则需要一个比较器。
图书馆在,中建造一些基本的数据类型,但是如果你已经有排列或列出物体, 举例来说,然后你能很快地建立来自它的一个基因组被从你的物体和基因组繁殖继承反对。 然后你能 se 直接地在遗传基因的运算法则反对的 GA lib 的这个新的物体。
大体上,一个遗传基因的运算法则不需要知道它正在操作的数据结构的内容。 图书馆反映这一个概论。 你能混合而且使基因组类型与遗传基因的运算法则相配。 遗传基因的运算法则知道该如何为了要产生人口,设定基因组初值开始奔跑 , 复制基因组,越过基因组产生孩子, 而且变化基因组。 所有的这些操作经由基因组成员功能被运行。
人口物体
人口物体是基因组的一个容器。 每个人口物体有它自己的 initializer(假设值只是在人口中为每个个体呼叫 initializer) 和 evaluator 。 (假设值只是在人口中为每个个体呼叫 evaluator) 资讯科技也掌握最好,平均,偏离的资讯, 及其他对于人口。 不同能也被记录,但是因为不同计算时常需要很多的加添计算,假设值是不记录不同。
选择方法在人口物体中也被定义。 这一个方法被遗传基因的运算法则用选择哪一个体应该配对。
每个人口物体以它使物体被联合。剥落计画物体皈依者对健身得分的每个基因组的客观得分对于选择的遗传基因的运算法则一种使用。 资讯科技稍后藉着选择方案也为使用贮藏健身数据。
目的功能和健身剥落
因为他们不需要复杂的微分方程式或平滑的搜寻空间,所以遗传基因的运算法则时常是比倾斜度搜寻方法更吸引人。 遗传基因的运算法则只需要的单身衡量单身的个体是多么好与其他个体相较。 客观的功能提供这尺寸; 提供对一个问题的单一解决办法,它多好?
资讯科技是重要注意在健身和目的之间区别得分。 客观的得分是被你的客观功能退还的价值; 它是基因组的生表现评估。 健身得分, 另一方面, 是一可能地- 转换被遗传基因的运算法则用的等级为交配决定个体的健身。 健身得分典型地被生的目的一个线性剥落得分获得。 ( 但是你能定义任何的映射你想要或没有变形全然) 举例来说, 如果你然后计数健身得分的 se 线性起源于目的刻划一唱健身比例的剥落在犹太人的书中被描述的技术。 遗传基因的运算法则使用健身得分而不是客观的得分, 做选择。
你能评估使用以个体为基础的评估功能 (你定义哪一), 或以人口为基础的 evaluator 的人口个体。 ( 也你定义哪一) 如果你使用一个以个体为基础的目的,然后功能被指定给每个基因组。 一个以人口为基础的客观功能能利用个别的客观功能, 或它能设定个体刻划它本身
第4个回答 2006-06-04
基因算法
基因算法的目的是确定哪些体应该生存, 那些应该繁殖, 哪些应该死去。它记录统计和并且决定演变应该继续多久。一种基因算法典型地没有明显的停着的标准。您必须告诉算法何时停止。很典型地,数字世代被使用当一个停着的措施, 但您可能使用最佳解答、统计人口, 或任一个你更喜欢问题具体标准。图书馆包含基因算法四个方法。一是标准简单的基因算法由戈尔登伯格在他的书中描述。这种算法用途非重叠人口和任意杰出人物统治论。各个世代算法创造个体的整个地新人口。这是使用重叠的人口的一种稳定基因算法。在这变异, 您能指定多少人口应该被替换在各个世代。第三变异是增加基因算法, 各个世代包括只一两个孩子。增加基因算法允许习惯替换方法定义怎么新世代应该是联合入人口。因此, 例如, 一个最近引起的孩子能替换它的父母, 替换任意个体在人口, 或替换是多数象的个体。第四型是基因算法。这种算法演变广泛人口平行使用一种稳定算法。各个世代算法移居一些个体从各人口到其它人口的当中一个。除基本的固定型之外, 定义您将需要获得您自己的基因算法组的组分。例子包括一些这些派生包括(1) 使用广泛人口和' 迁移' 在人口之间在内的一种基因算法, 并且(2) ' 确定拥挤' 维护个体的另外种类在演变期间的一种基因算法。基本的基因算法组包含操作员和数据共同对基因算法多数味道。当您获得您自己的基因算法您能使用这些成员数据和作用记录统计和监测表现。基因算法包含统计, 替换战略, 并且参量为跑算法人口对象, 一个容器为染色体, 并且包含一些统计并且选择和称操作员。一种典型的基因算法永远将运行。图书馆修造了在作用为指定算法应该终止。这些包括终止在世代, 您指定一定数量的世代算法应该运行, 并且终止在汇合, 您指定价值佳世代比分应该聚合。您能定做终止作用使用您自己停着的标准。作用评估的数量是一个好方式不同的基因算法与各种各样的查寻方法比较。解放基因算法记录染色体评估和人口评估的数量。定义表示法使用是适当的为您的问题的一种数据结构。如果您优选数字的作用, 使用实数在您的染色体。如果一对您的问题的解决办法可能代表一些虚数和一些整数价值, 定义一条染色体以这些特征。定义一个适当的表示法是使用基因算法艺术的一部分(和这时, 这是仍然艺术, 不是科学) 。使用最小但完全地传神的一个表示法。您的表示法应该能代表任一种解答对您的problem?but 如果在所有可能您设计它以便它无法代表不能实行的解答对您的问题。记得如果染色体可能代表不能实行的解答然后目标函数必须被设计相信部分不可行。表示法不应该包含信息在那之外必要代表解答对问题。虽然那里也许是优点在使用包含' 额外' 基因的表示法, 除非适当地实施(在音乐会以目标函数和在查寻空间的型和特征的充分的考虑), 这倾向于增加查寻空间的大小和因而妨害基因算法的表现。可能的表示法的数量是不尽的。您可以纯净地选择一个数字表示法譬如实数。这些能被实施作为实数, 或, 在位的串的戈尔登伯格样式映射对实数(当心那使用实数直接地胜过二进制对小数表示法为多数问题, 特别是当您使用合理的天桥操作员) 。您的问题也许取决于项目序列, 在一个基于秩序的表示法(情况下或名单或列阵) 也许是更加适当的。在许多这些箱子, 您必须选择维护序列的正直的操作员; 天桥必须引起被重新安排的名单没有复制任何个元素在名单。其它问题借自己对树结构。您可以想要明确地代表解答作为树和直接地进行基因操作在树。供选择地, 许多人输入树入列阵或并列串 和然后操作串。一些问题包括连续和分离元素的混合, 在您可能需要创造一个新结构拿着信息的混合情况下。在这些情况下您必须定义尊敬解答的结构的基因操作员。例如, 一种解答与整数和浮动零件也许使用横渡整数部分以整数部分和浮动部份与浮动零件的天桥, 但与整数部分从未混合浮动零件。表示法您选择, 是肯定选是适当的为您的表示法的操作员。 染色体操作员各条染色体有三名主要操作员: 初始化、变化, 和天桥。与这些操作员您能偏心最初的人口, 定义变化或天桥具体对您的问题的表示法, 或演变基因算法的部份当您的人口演变。解放来与这些操作员被预定义为各种染色体类型, 但您能定做任何一个。初始化操作员确定怎么染色体初始化。它叫当您初始化人口或基因算法。这名操作员实际上不创造新染色体, 它' 宁可充塞了染色体以所有解答将演变的原始基因。人口对象有它自己的初始化操作员。这简单地叫染色体的初始化操作员在人口, 但您能定做它做什么您想要。变化操作员定义方法为改变各条染色体。变化意味不同的事为不同的数据类型。例如, 一典型的为一条二进制串染色体翻转位在串以一个指定的可能性。一典型的 树, 另一方面, 会交换子树以一个指定的可能性。总之, 您应该定义可能做探险和开发的变化; 变化应该能介绍新基因并且修改现有的材料。您可以想要定义多类型变化为一个唯一问题。天桥操作员定义方法为引起一个孩子从二条父母染色体。象变化操作员, 天桥是具体的对数据类型。不同于变化, 然而, 天桥介入多条染色体。在GA 解放, 各条染色体' 知道了它的更喜欢的方法联接(缺省天桥方法) 但它是不能胜任的执行天桥。各种基因算法' 会得到缺省天桥方法从它的染色体那么使用那个方法进行联接。以这个模型它是可能获得使用联接的方法不同于缺省被定义为染色体的新基因算法组。每个这些方法可能被定做以便它是具体的不仅对数据类型, 而且对问题类型。这是单程您可能投入一些问题具体' 智力' 入基因算法(我将进入讨论不会是否这是一件好事做...) 除三名主要操作员之外, 各条染色体必须并且包含一个目标函数, 也许并且包含比较器。目标函数使用评估染色体。比较器(经常被称为' 距离函数') 是被用于确定多么另外一条染色体是从另。每种基因算法要求, 一个目标函数是定义这是怎么基因算法确定哪个体比其他人好。一些基因算法要求一台比较器。图书馆有一些基本数据类型被建立的 如果您已经有一个列阵或名单对象, 例如, 那么您能迅速建立一条染色体从它倍增继承从您的对象和染色体对象。您能然后se 这个新对象直接地在GA 解放基因算法对象。总之, 一种基因算法不需要知道关于它经营数据结构的内容。图书馆反射这普通性。您能混合和匹配染色体类型以基因算法。基因算法会克隆染色体为了创造人口, 初始化染色体开始奔跑, 横渡染色体引起孩子, 和改变染色体。所有这些操作进行通过染色体成员作用。 人口对象人口对象是一个容器为染色体。各个人口对象有它自己的初始化(缺省简单地称初始化为每个单独在人口) 并且评估者(缺省简单地告诉评估者为每个单独在人口) 。它并且记录最佳, 平均, 偏差, 等为人口。变化可能被记录, 但因为变化演算经常要求很多另外的计算, 缺省将不记录变化。选择方法并且被定义在人口对象。这个方法由个体应该联接的基因算法使用选择。各个人口对象有结垢计划对象与它交往。结垢计划对象转换各条染色体客观比分成健身比分那基因算法用途为选择。它以后并且贮藏健身信息至于使用由选择计划。目标函数和健身称的基因算法比梯度查寻方法经常有吸引力的因为他们不要求复杂的微分方程或一个光滑的查寻空间。基因算法需要唯一一个措施怎样好唯一个体与其它个体比较。目标函数提供这个方案; 被给一种唯一解答问题, 多么好它? 它重要注意分别在健身和客观比分之间。客观比分是价值由您的目标函数返回; 这是染色体的未加工的表现评估。健身比分, 另一方面, 是一个可能被变换的规定值由基因算法使用确定个体的健身为联接。健身比分由未加工的客观比分的线性结垢(仅您典型地获得无法定义任何映射您要或变革根本) 。例如, 如果您se 线性结垢健身比分从宗旨比分然后被获得唱歌健身比例结垢技术描述了在戈尔登伯格的书里。基因算法使用健身比分, 不是客观比分, 做选择。您能评估您定义) 的个体在人口使用您定义) 的一个基于单独的求值函数(, 或一位根据人口的评估者(还。如果您使用一个基于单独的宗旨, 那么作用被分配到各条染色体。一个根据人口的目标函数可能利用各自的目标函数, 或它可能设置各自的比分。本回答被提问者采纳