Class SearchTreeNode.Settings

java.lang.Object
gametree.SearchTreeNode.Settings
All Implemented Interfaces:
Serializable
Enclosing class:
SearchTreeNode<P extends IGamePosition<P>>

public static class SearchTreeNode.Settings extends Object implements Serializable
A class that stores the settings for a SearchTreeNode tree. All nodes in the tree hold a reference to the same SearchTreeNode.Settings object that was used to initialise the tree. The Settings object also holds temporary information such as whether the tree has been frozen (to prevent expansions) or whether pruning is enabled (to reduce memory usage).
See Also:
  • Field Details

    • frozen

      public boolean frozen
    • allow_manual_edits

      public boolean allow_manual_edits
    • prune_positions

      public boolean prune_positions
    • position_pruning_depth

      public long position_pruning_depth
    • prune_irrelevance

      public boolean prune_irrelevance
    • irrelevance_pruning_depth

      public long irrelevance_pruning_depth
    • prune_irrelevance_light

      public boolean prune_irrelevance_light
  • Constructor Details

    • Settings

      public Settings()
    • Settings

      public Settings(long minimum_depth_to_prune_positions, long minimum_depth_to_prune_irrelevance)
    • Settings

      public Settings(long minimum_depth_to_prune_positions, long minimum_depth_to_prune_irrelevance, boolean incorrect_bounds_protection)
    • Settings

      public Settings(boolean enable_position_pruning, long minimum_depth_to_prune_positions, boolean enable_irrelevance_pruning, long minimum_depth_to_prune_irrelevance, boolean incorrect_bounds_protection)
      [NOTE] if 'enable_position_pruning', 'enable_irrelevance_pruning' and 'incorrect_bounds_protection' are all true, re-visited irrelevant nodes may trigger a null error. To prevent this, disable 'enable_position_pruning' in any trees with a (partially) incorrect evaluation function (bounds that are not 100% accurate).
      Parameters:
      enable_position_pruning - to enable the pruning of irrelevant game positions (not recommended if the evaluation function has incorrect bounds)
      minimum_depth_to_prune_positions - the minimum depth from which positions will be pruned
      enable_irrelevance_pruning - to enable the pruning of irrelevant nodes
      minimum_depth_to_prune_irrelevance - the minimum depth from which irrelevant nodes will be pruned
      incorrect_bounds_protection - keeps nodes otherwise pruned by irrelevance pruning around, but only removes their children. Requires the GameTreeNode.position() to not be null if ever revisited by the search.