Builds the very foundation for all AI computations related to the multicriteria optimization (MCO) pipeline (implementation as abstract base class).
Context<TValue, TStructure> connects the dots for the different AI modules and brings everything together. It provides references to all important modules belonging to the AI system. The method Evaluate executes the AI main loop and defines/solve a MCO Problem storing the results within the associated Decision instance.
This abstract base class serves as main algorithm template specifying how the AI main loop works. Nevertheless, this class needs to be abstract due to the MakeDecision method which is responsible for building a complete decision. This process relies on a concrete TStructure type and on other specific type related information which cannot be known in this inheritance layer so that the methods Evaluate and MakeDecision needs to be overridden/extended in derived classes.
The type TValue is used by the MCO related classes IProblem<T> and ISolver<T> for the objective values, as against the type TStructure is used by ISensor<T> in order to sample an agent's world and define its problem space representation.
TValue | Type of the objective values defining the objective space. |
TStructure | Type of the structural sensor element defining the problem space. |
Protected Fields | |
readonly IList< IBehaviour > | behaviours = new List<IBehaviour>() |
Holds IBehaviour instances intended to be processed. More... | |
ISolver< TValue > | solver |
Module used for solving the actual Problem. More... | |
ISensor< TStructure > | sensor |
Determines how an agent samples its environment. More... | |
ReadOnlyCollection< int > | solutionIndices |
Read-only reference to the found solution indices. More... | |
Properties | |
abstract IProblem< TValue > | Problem [get] |
Holds objective values defining a MCO problem to be solved (read only). More... | |
abstract IDecision< TValue, TStructure > | Decision [get] |
Container for storing the results from Evaluate (read only). More... | |
IList< IBehaviour > | Behaviours [get] |
Holds IBehaviour instances intended to be processed. More... | |
ISolver< TValue > | Solver [get, set] |
Module used for solving the actual Problem. More... | |
ISensor< TStructure > | Sensor [get, set] |
Determines how an agent samples its environment. More... | |
Public Methods | |
virtual void | Evaluate () |
Processes the AI main loop for defining and solving the hold Problem writing the results into the Decision, therefore and for solving, the MakeDecision method gets called. More... | |
Protected Methods | |
virtual void | MakeDecision () |
This is the place for solving the given MCO Problem and collecting all information which are necessary for a complete Decision. More... | |