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 |
## 009_wa3d_shape目录简介
2021-11-08 成功的细胞分裂尝试
这次的细胞分裂算法采用自顶向下的策略,也就是从单个细胞开始,一个细胞分裂成8个(因为1个正方体切三刀正好是8个小正方体)这种方式来进行。这种方案不是从目标形状的局部开始填充,而是从毛胚、从目标的粗轮廓开始利用遗传算法细化,直到细化出每个细节。这种方案的优点是更接近生物实际,符合“从总体到局部”的正常逻辑,而且有高效的基因压缩存储率。
它与008_frog_shape目录的分裂演示是不同的分裂模式,是先有总体后有细节。项目中实际采用的是8叉树,深度用细胞边长表示。
细胞分裂算法一方面可以利用来生成和优化物理形状(比方虚拟风叶、翅膀、受力结构等形状),另一方面它和神经网络的形成算法是有共通点的,因为众所周知心脏形状、血管网络、大脑神经网络都是由基因控制细胞分裂出来的。所以以后有可能利用这个算法来自动生成和优化神经网络触突三维空间分布结构。
顺便说一下,自顶向下的问题是它一旦主分支被误敲除,就不容易补回去,实际的生物例子就是人眼结构还不如章鱼。自然界是用生物的多样化和环境的连续化来保证各种主分支都有尝试。我们电脑模拟只能尽量保持环境的连续化,从低到高一步步走。