大家好
欢迎回来
那么这一段我们还是继续
基于仿生算法的人工智能系统
那么我们在拼图游戏当中来开始
介绍拼图的基因
那么如果我们分析生物学上的
因我们知道基因是生物遗传的最
基本的单位
那么在任何一个生物体的任何
一个细胞当中
都有完整的一套遗传信息
那么在细胞核当中就表现为有
若干个染色体
那么再染色体当中决定生物各种
性状就是基因
当然基因是我们后来发现了
DNA脱氧核糖核酸
这么一个分子当中的一个片段
某一个片段叫做一个基因
那么我们把个体的染色体进行分析的话
我们会发现个体的遗传信息
它会包含若干个染色体
在这个染色体当中
除了蛋白质之外
其实最起决定作用的是一系列的DNA
那么由DNA当中包含了每个片段都有若干个基因
那么而且我们看到基因如果是在片段的位置上
比如说这一个基因编码了一个独特的一个性状
由基因的不同的属性值
它就能够表现出不同的性状出来
比如说决定人的肤色的基因
举个例子
当然它很可能不是这个样子的
但是我们可以知道
比如说有这么一个基因
它决定肤色
那么基因当中的不同的属性值就决定了人的肤色是偏白还是偏黑
还是偏黄还是偏棕
那么它的一个基因的不同的属性值
就会表现出生物个体的不同的性状
那么我们如果回到拼图游戏上来
还是我们如果用128个半透明
的形状各异的不同颜色的三角形
要来组成我们的火狐的图标的话
那么我们就必须把128个
半透明三角形组成的这个东西就看成一个个体
那么个体它的样子就是由这些
三角形它的属性以及绘制出来的形状来决定
那么我们就可以把每个三角形就
看作是一个基因
那么每个三角形都会有不同的属性
有不同的属性的这些基因
然后组合起来成为一个完整的一个个体
那么三角形就是每个基因有哪些属性
就是我们决定三角形的因素
那么首先就是它的颜色
然后第二是三角形的形状和位置
形状和位置由它的顶点的三个坐标来决定
第三个就是三角形的透明度
因为这两个三角形要混合在一起
他交叠在一起的时候
这一块交叠的区域呈现出什么样的颜色
就由三角形本身的透明度来决定
透明度如果高一些
那么它所呈现出来的颜色就会更
偏向于自己三角形
就是三角形的特征
那么其中一个最关键的就是颜色
我们通常的在我们的日常生活
当中表述颜色
就是每一种颜色都对应一个名字
对吧
那么这里头列了我们常见了一些的颜色
如果是这样的话
那么我们会发现颜色的数量其实不够多
因为你如果通过名字来描述颜色的话
那么很可能人的自然语言当中
各种颜色的名字不能够精确的描述一种颜色
所以在计算机当中
我们通常会用RGB模型来描绘一个颜色
那么所谓的RGB模型就是三原色模型
我们知道光线光有红色绿色和蓝色作为三原色
它就可以拼出
就可以混合出千变万化的几乎所有的颜色出来
那么在计算机当中表示颜色
就是红绿蓝每一个分量都用0到255这个数值
256个不同的数字来
表示从全黑到全红
那么绿色也是这样
从全黑到全绿
全黑到全蓝
那么把这三个数字组合在一起
就有256×256×256
大概是1670万种颜色
那么我们这样就可以描绘
我们能够见到的几乎所有的颜色
我们只需要给每个分量随机的产生一个数
就能生成一个颜色作为三角形的
一个颜色的一个属性了
那么第二个就是位置
那么位置和形状
这三角形的位置和形状
我们可以用三角形的三个顶点的坐标来进行描绘
那么这个顶点的坐标只要在我们
绘制图标的正方形内部就可以了
用3个XY就可以连成一个三角形出来
那么第三个属性就是透明度
我们把透明度设为0到百分百之间
这个就决定了三角形基因的第3个属性
也就是当它和其他三角形有交叠的时候
那么交叠的部分所呈现出来的颜色的样子
那么我们制定了这128个基因之后
那么每一个图案就是每一个个体
那么我们刚开始的时候会随机
作为老祖先进化的老祖先
随机生成一系列的坐标值
颜色值和透明度
然后把这些值组合成一个一个的
随机的三角形
那么而且每128个三角形
也就是每128个基因就能够
组成一个初始的一个个体
我们在初始的时候会生成大量的
这样的个体
当然这些个体都是完全随机生成的
这是遗传基因遗传算法的最初的
老祖宗的这一代
那么这些老祖宗的这一代如何
慢慢的再去选择交叉变异进化
一直到从最不像火狐图标的样子
能够经过几十万代的进化
到生成到能够跟我们火狐图标
一模一样的样子
我们下一节我们再来看看