mirror of
https://gitee.com/drinkjava2/frog.git
synced 2024-11-25 16:04:06 +08:00
.. | ||
src/main/java/com/gitee/drinkjava2/frog | ||
LICENSE | ||
maven_clean.bat | ||
maven_eclipse_clean.bat | ||
maven_eclipse_eclipse.bat | ||
pom.xml | ||
README.md | ||
run.bat | ||
run.sh |
2021-11-26 多参数的细胞分裂
这次更新在history\009a_fish3d目录下,只是在上次细胞分裂基础上改进了速度,将三维cell对象数组改为long型数组,节省了对象创建和销毁开销,速度有明显改进。long类型有64位,所以一个细胞可以有64维独立参数,应该够用了。下图是一个6倍速显示的三维鱼分裂生成动图。它一共用到4维参数,分别是细胞的位置和三个不同颜色的细胞色彩参数,每一维分别一个细胞分裂算法单独控制,参数之间没有做关联关系:
这个动画的每一帧是细胞分裂到最小不可再分的最终结果,而且是从400个青蛙中生存下来的最佳个体,这就是遗传算法,遗传算法就是穷举法。这个16x16x16的大立方体要理解成第一个细胞,只是画的大了而已。以后等有时间可以做1个细胞分成8个,8个变64个的动画,能更好地演示分裂的中间过程。
细胞分裂研究到此结束,下面要开始生成神经网络空间结构了。我的思路是,脑结构也无非就是三维细胞的空间排布而已,细胞有各种参数,比如触突长度、方向、密度、信号收发阀值、信号强度、信号遗忘曲线等,只要每个细胞不超过64个构造参数,就可以用分裂算法来随机试错把神经网络的空间结构给试出来。分裂算法的优点是遵循从主干到细节的生成次序,如果要完成的任务(即外界信号输入输出)也是从简单到复杂,就可能正好符合这个脑的空间结构生成顺序。