10评论

0收藏

基因演算规则:数学运算

avatar 尹雪 | 4805 人阅读 | 10 人评论 | 2011-12-27

基因演算使用于智能交易的数据优化。 这些用途的范例是一个神经网络的学习,即, 这样的值得到的误差最小。基因演算是以随机搜索的方法为基础的。 随机搜索的主要问题在于我们不能够预测解决问题所需要的时间。为了避免浪费时间,他们运用生物创建的方法,即,方法在研究过程中的起源和革新。在革新过程中只有最适合的东西会留下来。结果是这种运算方法能够适应环境状态的调整。
  这种基因演算最早是由美国密西根大学的 John H. Holland于1975发现的。该算法被命名为 Holland\'的再生计划。这基本上是基因演算方法的全部类型。 我们需要近距离地研究这个计划,将讨论如何将基因演算规则使用到代码的重新编译上。
  介绍对象
  
我们从生物学的特点得知,任何生物体都有自己的典型代表, 就是说,在真实世界上的每个物体都具有本身的基因性, 这个基因性包含该物体的全部信息。在每个典型代表上都会反映每个基因的信息。因此,要解决我们的问题,需要知道现存的物体的模式是否适合使用基因演算。基本演算机制的将来函数在典型代表的基础上,可以避开物体内在的信息,从而对于不同的任务广泛地使用演算。
  比特字串符被广泛地使用于物体基因的基因演算中。 因为,每一个物体基因 都能够代表物体相应的特性。基因是一个固定长度的比特字串符表示这个特性值。
  整数编码特性最简单的代码方法是使用它的比特值。使用这种方法就可以很简单地执行。因为一个基因的中心长度足以表示特性的一些值。但是,这种方法也存在缺点。主要是由于周围的数字号码不同于几个比特值。比如, 7和 8在比特的显示上不同于4个仓位,这种情况就使基因演算很难继续运行。为了避免这个状况的发生,最好选择使用周围数字号码和代码差距较小的仓位,最理想的是相同值。在真实的基因演算中一些可用的 代码为 Gray 代码。这些可用 Gray 代码值在以下的表格中给出:
  
  
二进制代码Gray代码
十进制代码二进制代码十六进制代码十进制代码二进制代码十六进制代码
000000h000000h
100011h100011h
200102h300113h
300113h200102h
401004h601106h
501015h701117h
601106h501015h
701117h401004h
810008h121100Ch
910019h131101Dh
101010Ah151111Fh
111011Bh141110Eh
121100Ch101010Ah
131101Dh111011Bh
141110Eh910019h
151111Fh810008h

  表格1. 相互协调的十进制编码和Gray编码.
  所以,当代码为整数特性时,我们将其分成四元组并按照Gray代码规则传送每个四元组。
  在真实的 基因演算过程中,通常不需要传送特性值到基因值中。 实际执行中要注意相应的基因值必须找到特性值。
  因此,在整数特性基因值的解码问题上就显得很微不足道了。
  浮点编码特性最简单的代码方法是使用它的比特值。在浮点代码特性中使用这种方法的缺点与整数代码特性相同。所以我们要按照以下列出的次序执行:
  

  • 特性允许值的整个间隔时间分为期待精确值部分。
  • 基因值作为整数号码时间间隔使用 (使用Gray代码 )。间隔时间的中间数字用作参量值。
      
我们现在通过范例来了解以上介绍的执行次序:
  我们假设特性值得范围在[0,1]之内。该范围为代码被分裂成 256时间间隔。编码这些数字,我们需要8个比特。比如,基因值为 00100101bG (大写字母 G 表示Gray代码)。首先使用 Gray 代码,找到相应的间隔时间数字: 25hG->36h->54d。现在,我们来检测什么样的间隔时间与其相对应。通过简单的计算,我们得到的间隔时间为 [0,20703125, 0,2109375]。 即, 参量的值将为 (0,20703125+0,2109375)/2=0,208984375。
  非数字数据编码在编译这些非数字数据编码之前,我们必须把它转换成数字。在本网站上有相关的文章-使用神经网络描述。
  如何由对象的基因确定它的典型代表确定对象的典型代表 (对象的特性值),我们需要知道与这些特性相对应的基因值 (对象的基因类型)。基因的完整描述表现在物体基因类型的染色体。在一些实践中被称为标本。 因此,在基因演算的实践中,染色体代表的是一个固定长度比特字符串。字串符的间隔与基因相对应。在染色体内的基因长度可以相同也可以不同。 要经常性地使用相同长度的基因. 现在我们来看看染色体的范例和其值的解析。对象有5个特性,每一个特性编码基因元素的长度为4个。那么,染色体的长度为 5*4=20 比特:
  
00101010100101001101

  我们现在可以确定特性值
  
特性基因值二进制值特性小数值特性
特性 1001000113
特性 21010110012
特性 31001111014
特性 4010001117
特性 5110110019

  基因演算的基本运算符众所周知,在演变的理论中原有特性对新生事物的遗传影响很重要。在基因演算中, 基因运算符的交叉 使用到改变染色体的程序中。这种运算操作存在以下几种方法:
  

  • 选择两个普遍的单元作为母体;
  • 确定转折点(随意);确定子体作为第一和第二母体的联系部分。
      
我们来看看这些运算符函数
  
染色体_1:0000000000
染色体_2:1111111111
假设转折点放置在第三染色体后,那么:
  
染色体_1:0000000000>> 0001111111结果_ 染色体_1
染色体_2:1111111111>> 1110000000结果_ 染色体_2

  那么结果染色体可能被确定为 0.5作为子体。
  另外一个运算符是维持运算的变化。被称作变种运算符。这个运算符可以从它的初始状态再染色体中改变其值。相应地,每个比特在染色体中从中心位置倒序排列。
  另外,还有一个运算符,被称为倒装运算符 使用在基因演算中。它将染色体分为两个部分并改变染色体的位置。简单地代表如下:
  
0001111111>> 1111111000

  理论上,这两个基因运算符已经可以完成基因演算的操作。不过在实际操作中还需要添加一些运算符,并且对现有的两个运算符做适当的修改。例如, 在基因演算中不可能只有一个交叉点 (如上所述),但是同样可以有多个交叉点。这种情况下,需要创建几个转折点 (通常是两个)。另外,倒装运算符的执行必须是在染色体种选择比特之后随意地使用执行。
  
  基因演算的流程图现在,带着上面的知识我们来解释一下基因值。我们讨论基因演算的函数何在。近距离地观看基因运算的流程图和它的古典表示法。
  

  • 初始化开始时间, t=0. 由k单元随意组成的初始化母体 。 B0 = {A1,A2,…,Ak)。
  • 计算每个单元的合适性, FAi = fit(Ai), i=1…k, 然后进入母体, Ft = fit(Bt)。这个函数的值在一定程度上确定适用于描述的染色体,并能解决问题。
  • 在母体中选择Ac单元。 Ac = Get(Bt)。
  • 在母体的中心概率选择第二个单元 (Pc概率的交叉点), Аc1 = Get(Bt),并执行交叉运算符, Ac = Crossing(Ac,Ac1)。
  • 执行变种运算符( Pm概率的变种), Ac = mutation(Ac)。
  • 执行倒装运算符 ( Pi概率的倒装), Ac = inversion(Ac)。
  • 获取新的染色体到新的母体中,插入(Bt+1,Ac)。
  • 步骤 3 到 7 可以重复 k次。
  • 增加当前时期的数字, t=t+1.如果遇到停止,终端会停止作业。返回至步骤2。
      
一些运算的步骤还需要周密的计划和考虑。
  步骤 3和4,选择染色体的母体步骤在函数的成功运算中扮演着最重要的角色。 对于这个步骤可能有多种多样的选择。最经常使用的方法被称作一般旋轮线 。 当使用这种方法时,这些或那些染色体的概率将会选择确定为它的合适性,即, PGet(Ai) ~ Fit(Ai)/Fit(Bt)。这种方法使用的结果可能会导致子体的单元生成概率的过量。另外一种经常使用的方法是淘汰赛。 它包括几个单元(通常2个)。在母体中随意地选择。最适合的单元将被使用。在一些运算的实施中,会使用名称为 菁英策略,说明保证进入母体的为最优秀的单元。 这种算法常常会加速基因演算的汇合。该策略的缺点是可能增加运算在最小地方点获取值。
  确定运算停止的标准同样非常重要。演算函数的时期限定或演算汇合的确定(通常,当参量确定后,在几个时期内比较母体的适合性) 都需要使用一些尺度。
  [/td][/tr][/table]      
      
        基因, 数学
  [/td][/tr]  [tr][td]   
        分享到:      

基因演算规则:数学运算

基因演算规则:数学运算
QQ空间
  

基因演算规则:数学运算

基因演算规则:数学运算
腾讯微博
  

基因演算规则:数学运算

基因演算规则:数学运算
腾讯朋友
      
  

基因演算规则:数学运算

基因演算规则:数学运算
收藏1
  

基因演算规则:数学运算

基因演算规则:数学运算
顶0
  

基因演算规则:数学运算

基因演算规则:数学运算
踩0
  
  

基因演算规则:数学运算

基因演算规则:数学运算

  
  如果从回帖中问题得到解决,请将帖子改为“已解决”
  

  
[/td]  [/tr]  [tr]  [td][/td]  [td]        回复        使用道具  举报  
   
   
  
  [/td]  [/tr]  [tr]  [td][/td]  [td]  [/td]  [/tr]  [/table]  <div id="post_228043">
     janew   
  
      
  
      janew  当前离线  
  听众数2在线时间135 小时收听数0贡献773 金币315 最后登录2012-11-21注册时间2007-12-6分享0主题43精华1积分2147阅读权限70帖子641   

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算

基因演算规则:数学运算

基因演算规则:数学运算
IP卡
  

基因演算规则:数学运算

基因演算规则:数学运算
狗仔卡
  
  
  
  
   
    [table]  43
主题    1
好友    [td]2147
积分[/td]
  
  金牌会员
  居士

  
   
  金牌会员, 积分 2147, 距离下一级还需 853 积分
  
  听众数2在线时间135 小时收听数0贡献773 金币315 最后登录2012-11-21注册时间2007-12-6主题43分享0精华1阅读权限70帖子641  

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算
  

基因演算规则:数学运算

基因演算规则:数学运算
  
  
  [/td]  [td]      2#        
      发表于 2012-6-13 09:16:24  |只看该作者  
  
  
   
  学习学习
  
   
  
  

    [/td][/tr]  [tr][td]  
  [/td]  [/tr]  [tr]  [td][/td]  [td]        回复        使用道具  举报  
   
   
  
  [/td]  [/tr]  [tr]  [td][/td]  [td]  [/td]  [/tr]

基因演算规则:数学运算

基因演算规则:数学运算

基因演算规则:数学运算

基因演算规则:数学运算
""
还没有人打赏,支持一下

评论|共 10 个

西城威尔士

发表于 2012-11-22 00:28:10 | 显示全部楼层

晕死也不多加点分  

EA-fans

发表于 2012-11-22 00:28:10 | 显示全部楼层

好的外汇EA是稳赚的,但是,那些4%以上的收益率的都是骗人的  

贞子

发表于 2012-11-22 00:28:10 | 显示全部楼层

看看..  

格西8023

发表于 2012-11-22 00:28:10 | 显示全部楼层

帮顶  

格西8023

发表于 2012-11-22 00:28:10 | 显示全部楼层

围观来了哦  

ea流氓

发表于 2012-11-22 00:28:10 | 显示全部楼层

这年头,分不好赚啊  

成都贷款

发表于 2012-11-22 00:28:10 | 显示全部楼层

不看白不看,看也不白看  

anbuimn

发表于 2012-11-22 00:28:10 | 显示全部楼层

哈哈,看的人少,回一下  

guiliu

发表于 2012-11-22 00:28:10 | 显示全部楼层

我也想学习学习~~  

12下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则