grail (C  1.0.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Grail.Simulation Namespace Reference

Classes

interface  ISimulatedActionTranslator
 Translates actions defined in SimulatedGame onto Behaviors used in Grail. More...
 
interface  ISimulatedGameAction
 Base class for all actions in SimulatedGame. Derive from it for your actions. More...
 
interface  ISimulatedGameHeuristic
 Interface that encapsulates an algorithm responsible for action-selection inside SimulatedGame (MCTS). This action-selection is performed in certain situations instead of sampling from the whole action space. The goal is to reduce the combinatorial complexity or just provide scripted behavior in certain moments of the game. More...
 
interface  ISimulatedGameStateTranslator
 
class  ISimulatedGameUnit
 Base class of a unit in the SimulatedGame framework. A unit represents part of the game-state and peforms actions that affect the game-state. You should not create instances of this class. Use specializations @SimulatedGameThinkingUnit or @SimulatedGameStochasticUnit instead. More...
 
class  SimulatedGame
 The main interface class for the SimulatedGame model based on the MCTS algorithm. The class supports definition of a game, running simulations and obtaining results. More...
 
class  SimulatedGameActionMetadata
 This class represents action defined in the SimulatedGames module with additional statistics (score, visits). More...
 
class  SimulatedGameHelper
 For internal usage only; helps to perform iterations; contains iteration-global variables etc.
 
class  SimulatedGameNode
 
class  SimulatedGameObserverForGUI
 
class  SimulatedGameRuntime
 An interface that is used to terminate simulation in MCTS and set scores to players. Scores are grabbed from here whenever a simulation ends. It is created automatically. More...
 
class  SimulatedGameStochasticUnit
 A base class of a unit in SimulatedGame that peforms actions according to some probability distribution. It does not represents any players in the game. It should be used if either (1) randomness affects actions available to other players (2) randomness heavily affects the game outcome. Random effects should be applied as actions of SimulatedGameStochasticUnit. More...
 
class  SimulatedGameThinkingUnit
 A base class of a unit related to a rational/intelligent player. MCTS chooses actions for this kind of unit. See also SimulatedGameStochasticUnit. All units together represent the game state. More...
 
class  ContinuousInnerDecisionNode
 
class  DecisionNode
 
class  DecisionTree
 
class  LeafDecisionNode
 
class  NominalInnerDecisionNode
 
class  C45Algorithm
 This class encapsulates the C4.5 Algorithm used to generate a decision tree (see Grail.Simulation.DecisionTree) based on the dataset provided. More...
 
class  C45Counter
 
class  C45IterationParameters
 
class  C45SingleIterationResult
 
class  C45ValueDecisionCounter
 
class  Dataset
 Container for data in form of [consideration_values][decision], where consideration values are [float, float,...,float] and decision is TDecisionType. USe it for training the decision tree. More...
 
class  DatasetSample
 Represents elements stored in DataSet. They consist of a vector of consideration values and decision made under those considerations. More...
 
interface  IVectorizer
 Classes implementing this interface provide training data in the offline learning process. More...
 
class  OfflineLearner
 This is the main class you will use to peform the offline learning process. Assign it to the unit of a SimulatedGame. It will gather properly vectorized data. You get access to this data by methods of this class. More...
 
class  TreeDataSample
 Structure for storing results in UniqueTreeDataset. More...
 
class  HashSetExtensions
 
class  UniqueTreeDataset
 A class that stores samples, which are values for given considerations (conditions in decision tree) together with statistics of decisions performed under those considerations. When the learning process is stopped, then you can convert this object to a flat Dataset, that picks the most frequently chosen decision for each sample. More...
 
class  DecisionTreeBinarySerializer
 Used to serialize decision tree in a binary mode. Pass object of this type to the DecisionTree.Serialize method. More...
 
class  DecisionTreeStringListSerializer
 Used to serialize decision tree in a text mode into array of strings. Pass object of this type to the DecisionTree.Serialize method. More...
 
class  IDecisionStringSerializer
 A class that defines objects that can serialize decisions (e.g., actions in SimplifiedGame) to a string. More...
 
class  IDecisionBinarySerializer
 A class that defines objects that can serialize decisions (e.g., actions in SimplifiedGame) to a binary format. More...
 
class  IDecisionTreeSerializer
 A base class for an object that is passed to Serialize() and Deserialize() methods of DecisionTree. Use the concrete implementations such as @DecisionTreeBinarySerializer or @DecisionTreeStringListSerializer. More...
 

Enumerations

enum class  DecisionNodeType { NOMINAL_INNER , CONTINUOUS_INNER , LEAF }
 
enum class  DecisionConsiderationType { NOMINAL = 0 , NUMERIC }
 Defines possible types of considerations (conditions). NOMINAL: represents a switch on values (SWITCH(A): CASE X1...; CASE X2:...; ... CASE XN:...) NUMERIC: represents less than value and greater than value conditions If you need more information, please consult the offline learning manual page. More...
 

Enumeration Type Documentation

◆ DecisionConsiderationType

Defines possible types of considerations (conditions). NOMINAL: represents a switch on values (SWITCH(A): CASE X1...; CASE X2:...; ... CASE XN:...) NUMERIC: represents less than value and greater than value conditions If you need more information, please consult the offline learning manual page.