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