GXNA

less than 1 minute read

Published:

前言

TNNA通过基本的元胞结构,可实现基本人工智能学习框架(包括一般性的神经元,树状及图状网络表达,元胞动态性,状态机…)。但是对于神经元的管理十分繁琐,而对于元胞控制,也十分不方便。在图学习的今天,将一个学习网络结构作为基于元胞自动机的二阶优化方式,是一个极为可信的发展方向。而神经元的管理(比如生灭),我们通过CELL的上级抽象NODE来管理——NODE如同树枝,他的末端生长了CELL;而TREE则为整个网络的支架,如同人的骨架,决定了NODE的生长——骨架构成一个整体分布,末端生出了NODE。由于NODE可生成NODE与CELL,而CELL不可生成CELL,所以NODE是一个树结构上的凌域图结构(也可以通过引入元胞结构进行进化);而CELL是纯粹的元胞过程,元胞生成及邻域联系构成了整个图结构上的数据流。

  • 人工智能
  • 元胞自动机

  • 动态优化
  • 动态储存

原理

数据结构

GXNA的基本单元相比而其中

template<typename Key,typename NodeKernel,typename NodeLink,typename NodeCtrl,typename CellKernel,typename CellTransform>
class CELL{
    public:
    typedef CELL<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Self;
    typedef NODE<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Node;
    typedef std::shared_ptr<Self> This;
    typedef Node*                 Root;
    typedef std::map<Self*,CellTransform> CellIO;
    private:
    std::pair<Root,NodeCtrl> _root;
    Json::Value _args;
    CellKernel _active;
    std::pair<CellIO,CellIO> _relativity;
    mutable std::tuple<GTNAStatus,std::thread,std::timed_mutex> _thread;
};
template<typename Key,typename NodeKernel,typename NodeLink,typename NodeCtrl,typename CellKernel,typename CellTransform>
class NODE{
    public:
    typedef CELL<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Cell;
    typedef NODE<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Self;
    typedef TREE<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Tree;
    typedef std::shared_ptr<Self> This;
    typedef std::shared_ptr<Cell> Leaf;
    typedef std::map<Self*,NodeLink> NodeIO;
    typedef std::map<Cell*,NodeCtrl> CtrlIO;
    private:
    std::variant<std::map<Key,Leaf>,
    std::map<Key,This>> _next;
    std::variant<Tree*,Self*> _root;
    Json::Value _args;
    NodeKernel _active;
    std::pair<NodeIO,NodeIO> _relativity;
    mutable std::tuple<GTNAStatus,std::thread,std::timed_mutex> _thread;
};
template<typename Key,typename NodeKernel,typename NodeLink,typename NodeCtrl,typename CellKernel,typename CellTransform>
class TREE{
    public:
    typedef std::shared_ptr<NODE<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform>> Node;
    typedef TREE<Key,NodeKernel,NodeLink,NodeCtrl,CellKernel,CellTransform> Self;
    typedef std::shared_ptr<Self> This;
    private:
    std::variant<std::map<Key,Node>,
    std::map<Key,This>> _next;
    Self* _root;
    Json::Value _args;
};