Individual是LycoirisNet最小粒度的完整计算单元,是增强拓扑的基础,也是交配、突变等操作的原子单元。这个类的头文件定义得相当简单,头文件定义如下:
包含set、get等基本所需的函数。值得一说的存储元信息的数据结构,除了inputNum、outputNum、innovationNum、nodeSum、fitness外,还有一个存储node序列的容器“vector *nodeSlice”,以及一个辅助计算的字典“map *nodeMap”。
在前馈计算中,所调用的是forward函数,实现代码如下:
forward过程中,有时候由于mutate的操作,在individual中会有不参与计算的节点,代码实现中根据一定的随机概率进行移除: