chipiron.players.move_selector.treevalue.recommender_rule package

Submodules

chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule module

This module defines recommender rules for selecting moves in a tree-based move selector.

The recommender rules are implemented as data classes that define a __call__ method. The __call__ method takes a MoveAndValueTree object and a random generator, and returns a recommended chess move.

The available recommender rule types are defined in the RecommenderRuleTypes enum.

The module also defines a RecommenderRule protocol that all recommender rule classes must implement.

Example usage:

rule = AlmostEqualLogistic(type=RecommenderRuleTypes.AlmostEqualLogistic, temperature=0.5) move = rule(tree, random_generator)

class chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule.AlmostEqualLogistic(type: ~typing.Literal[<RecommenderRuleTypes.AlmostEqualLogistic: 'almost_equal_logistic'>], temperature: float)[source]

Bases: object

Recommender rule that selects the best move allowing for random choice for almost equally valued moves.

__call__(tree: MoveAndValueTree, random_generator: Random) int[source]

Selects the best move from the tree, allowing for random choice for almost equally valued moves.

Parameters:
Returns:

The recommended chess move.

Return type:

chess.Move

temperature: float
type: AlmostEqualLogistic: 'almost_equal_logistic'>]
class chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule.RecommenderRule(*args, **kwargs)[source]

Bases: Protocol

Protocol that all recommender rule classes must implement.

__call__(tree: MoveAndValueTree, random_generator: Random) int[source]

Selects the best move from the tree.

Parameters:
Returns:

The recommended chess move.

Return type:

chess.Move

type: RecommenderRuleTypes
class chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule.RecommenderRuleTypes(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

Enum class that defines the available recommender rule types.

AlmostEqualLogistic = 'almost_equal_logistic'
Softmax = 'softmax'
class chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule.SoftmaxRule(type: ~typing.Literal[<RecommenderRuleTypes.Softmax: 'softmax'>], temperature: float)[source]

Bases: object

Recommender rule that selects the best move using the softmax function.

__call__(tree: MoveAndValueTree, random_generator: Random) int[source]

Selects the best move from the tree using the softmax function.

Parameters:
Returns:

The recommended chess move.

Return type:

chess.Move

temperature: float
type: Softmax: 'softmax'>]
chipiron.players.move_selector.treevalue.recommender_rule.recommender_rule.recommend_move_after_exploration_generic(recommend_move_after_exploration: AlmostEqualLogistic | SoftmaxRule, tree: MoveAndValueTree, random_generator: Random) int[source]

Recommends a move after exploration based on a generic rule.

Parameters:
  • recommend_move_after_exploration (AllRecommendFunctionsArgs) – The recommend_move_after_exploration function.

  • tree (trees.MoveAndValueTree) – The move and value tree.

  • random_generator (random.Random) – The random number generator.

Returns:

The recommended move.

Return type:

chess.Move

Module contents

This module provides classes for defining recommender rules.

Classes: - RecommenderRule: Represents a recommender rule. - AllRecommendFunctionsArgs: Represents the arguments for all recommend functions.

class chipiron.players.move_selector.treevalue.recommender_rule.RecommenderRule(*args, **kwargs)[source]

Bases: Protocol

Protocol that all recommender rule classes must implement.

__call__(tree: MoveAndValueTree, random_generator: Random) int[source]

Selects the best move from the tree.

Parameters:
Returns:

The recommended chess move.

Return type:

chess.Move

type: RecommenderRuleTypes