Modular Architecture
SkyAI
/
Documentation
/ Modular Architecture
-- Use page as template --
Demonstrations
Developers
Developers/akihikoy
Documentation
Documentation/Architecture Overview
Documentation/Installation Guide
Documentation/Installation Guide/Debian and Ubuntu
Documentation/Installation Guide/Mac
Documentation/Introduction
Documentation/Keywords
Documentation/Modular Architecture
Documentation/Running Demos
Documentation/Running Demos/Common Usage
Documentation/Running Demos/bioloid
Documentation/Running Demos/humanoid01
Documentation/Running Demos/maze2d
Documentation/Script Language
Documentation/Tutorial - Example - Maze
Documentation/Tutorial - Example - Mountain Car
Documentation/Tutorial - Making Executable
Documentation/Tutorial - Making Module
Documentation/Tutorial - Making Original Domain
Documentation/Tutorial - Making RL Module
Documentation/Tutorial - Writing Agent Script
FormattingRules
Help
InterWikiName
License
MenuBar
Recent Changes
Recent Changes/0.2.0
RecentDeleted
SandBox
SkyAI
* Elements [#f291c0d4] A module of SkyAI is a C++ class; in order to be compatible with the SkyAI system, each module should be a subclass of ''TModuleInterface''. Of course, a module can be inherited from any subclass of TModuleInterface. Each module consists of the following elements: ** Port [#l09828fe] Generally in C++, classes communicate with each other through their member functions. In SkyAI, a port is a kind of member function for the inter-module communication, but is encapsulated as a ''port class'' in order to enable the user to connect and disconnect the ports in an agent script. Each module can have any number of ports. Ports can be connected and disconnected at any time in execution, which enables to reconfigure the modular structure. There are four kinds of ports: :Slot port & Signal port| A ''signal port'' is connected to a ''slot port''; these ports provide a signal/slot architecture (i.e. an event-driven architecture). A callback function is associated with a slot port. When a signal port emits a signal (this is like a function call), the slot port caches the signal and execute the callback. In default, a signal port can be connected to any number of slot ports, and a slot port can be connected to any number of signal ports. :Out port & In port| An ''out port'' is connected to an ''in port''; these ports provide a function call architecture. A function is associated with an out port. An in port can execute the function of a connected out port like an usual function. In default, an out port can be connected to any number of in ports, and an in port can be connected to only one out port. ** Configuration Box [#xc17979a] A ''configuration box'' is the configuration-parameter manager of a module. The configuration box manages configuration parameters, such as a learning rate, a time step, and a discount rate; it provides an interface to access these parameters from an agent script. Namely, the variables of C++ registered to the configuration box can be manipulated by an agent script. ** Memory Box [#oc79e8c5] A ''memory box'' is the memory-parameter manager of a module. The memory box is almost the same as the configuration box; the difference is that the memory box manages memory parameters, such as an action value table.
Do not change timestamp
* Elements [#f291c0d4] A module of SkyAI is a C++ class; in order to be compatible with the SkyAI system, each module should be a subclass of ''TModuleInterface''. Of course, a module can be inherited from any subclass of TModuleInterface. Each module consists of the following elements: ** Port [#l09828fe] Generally in C++, classes communicate with each other through their member functions. In SkyAI, a port is a kind of member function for the inter-module communication, but is encapsulated as a ''port class'' in order to enable the user to connect and disconnect the ports in an agent script. Each module can have any number of ports. Ports can be connected and disconnected at any time in execution, which enables to reconfigure the modular structure. There are four kinds of ports: :Slot port & Signal port| A ''signal port'' is connected to a ''slot port''; these ports provide a signal/slot architecture (i.e. an event-driven architecture). A callback function is associated with a slot port. When a signal port emits a signal (this is like a function call), the slot port caches the signal and execute the callback. In default, a signal port can be connected to any number of slot ports, and a slot port can be connected to any number of signal ports. :Out port & In port| An ''out port'' is connected to an ''in port''; these ports provide a function call architecture. A function is associated with an out port. An in port can execute the function of a connected out port like an usual function. In default, an out port can be connected to any number of in ports, and an in port can be connected to only one out port. ** Configuration Box [#xc17979a] A ''configuration box'' is the configuration-parameter manager of a module. The configuration box manages configuration parameters, such as a learning rate, a time step, and a discount rate; it provides an interface to access these parameters from an agent script. Namely, the variables of C++ registered to the configuration box can be manipulated by an agent script. ** Memory Box [#oc79e8c5] A ''memory box'' is the memory-parameter manager of a module. The memory box is almost the same as the configuration box; the difference is that the memory box manages memory parameters, such as an action value table.
View Text Formatting Rules