智能进化

用遗传的思想,来构建智能进化过程
 

1.定义:

     根据遗传算法的思想,智能的构建解决某一问题的最佳程序来,即构造一个能构造算法的算法
     根据目标对过程不停的迭代,通过变异、交叉(配对)的方式,找到最优解,或者变现足够好、经历了n代、经历n次迭代仍没有得到任何改善
     
     适用场景:根据一组输入输出,找出其对应的映射或者数学函数
  
 
2.程序的设计思路:
     i.以树形方式展现:
  
          a.枝节点代表了应用于其子节点上的操作
          b.而叶子节点为参数或者常量
          c.一旦得出某个分支的值,就会向上传播,使计算进行下去,if节点标识如果左侧分支结果为true,返回中间的分支结果,否则返回右侧分支的结果
     
     ii.python中表现树:
  
  
               以上面的封装创建函数组,并根据函数组创建树:
                              
               树的创建:
         
               树的展现:
                           
          iii.构造初始种群:
               以随机函数的方式来构建种群:
                        
 
3.模型应用:
     i.根据一个已知函数生成测试数据,然后用智能进化的方式,通过测试数据求函数
          
     ii.结果的衡量:
          将输入的参数输入随机tree,然后计算结果和输出的差值,来评价结果
    
               
     iii.对程序(tree)进行变异:
          可以删除树的分支,或者用一棵全新的树来替换某一个子树
          这里通过概率来决定是否需要变异
        
     iv.交叉:
          从众多程序中选出表现优异者,将其组合在一起构造一个新的程序,通常的方式是用一棵树的分支取代另一棵树的分支:
               两棵树同时遍历,如果概率小于某一给定概率,则用一棵树的结果代替另一颗树的结果,并且替换对应位置的分支
               

 

          
     v.随机生成总群进行交叉测试
         

                  

          rankfunction:种群程序优劣的排列函数
          mutationate:变异的概率
          breedingrate:交叉的概率
          popsize:初始种群的大小
          probexp:交叉的筛选概率
          probnew:引入全新程序的概率
 
     vi.多样性的重要性:
          将表现优异的题解和大量成绩尚可的题解组合在一起,往往能得到更好的结果,因为如果一直使用最优异的结果,种群也变得极端化了
 
4.模型的改进:
     其他数值型的函数
          三角函数
          其他数学函数
          统计分布
          距离度量
          三个参数的函数:第一个参数介于第二、三间,则返回1
                                        前两个参数的差小于1,则返回1
 
     其他类型的变量
          字符串
          列表
          字典
          对象
    

 

          
posted @ 2017-01-07 10:13  成金之路  阅读(365)  评论(0编辑  收藏  举报