Polarith AI
1.8
Context< TValue, TStructure > Class Template Reference

Description

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.

Template Parameters
TValueType of the objective values defining the objective space.
TStructureType of the structural sensor element defining the problem space.
Inheritance diagram for Context< TValue, TStructure >:
IContext< TValue, TStructure >

Protected Fields

readonly IList< IBehaviourbehaviours = 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< IBehaviourBehaviours [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...
 
Imprint