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 |
当前008_frog3d_shape目录简介
这次本来想模仿生物细胞的分裂,从一个细胞开始分裂出任意指定的三维形状,并设计了split、goto等基因命令,但是做来做去做不出结果,细胞们就象跳蚤一样乱跑不听使唤,最终还是决定放弃,细胞分裂这个算法太难了。细胞分裂的优点是更“象”生物,而且估计可以利用分形原理缩小基因的长度,基因相当于一种自带循环和条件判断的计算机语言。 最终生成三维形状这个目标还是借助简单遗传算法完成,通过细胞在相邻位置随机生成,并在基因里记录每个细胞的坐标的方式来实现,基因命令被删得只剩一个了,就是随机生成细胞。
用遗传算法来生成任意形状,就好象一个画家在画画,但是画什么根本不知道,只知道听从旁边人打分,画的好就打高分,画的不好就打低分,这样一直循环下去,最终画的内容只由打分的人决定。目前速度上还有改进余地,比如让新细胞有更多变异率。
生成三维形状目的是为生成三维脑结构做准备,神经网络空间上应该是三维的,这样实现模式识别会很方便,而早期随机连线结构损失了空间位置信息,三维全息演示问题则是它是手工设计的,优化困难。