树搜索
- class lzero.mcts.tree_search.mcts_ctree.MuZeroMCTSCtree(cfg: EasyDict = None)[源代码]
基类:
object- 概述:
MCTSCtree for MuZero。核心的
batch_traverse和batch_backpropagate函数是用 C++ 实现的。- 接口:
__init__, roots, search
- __init__(cfg: EasyDict = None) None[源代码]
- 概述:
使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。
- config = {'env_type': 'not_board_games', 'pb_c_base': 19652, 'pb_c_init': 1.25, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
- classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) mz_ctree[源代码]
- 概述:
使用根数和合法动作列表初始化 CRoots。
- 参数:
root_num (-) – 当前根的编号。
legal_action_list (-) – 这个根的法律行动的向量。
- search(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any]) None[源代码]
- 概述:
对根节点执行MCTS(并行处理一批根节点)。在模型推理中并行。使用cpp ctree。
- 参数:
roots (-) – 一批扩展的根节点
latent_state_roots (-) – 根的隐藏状态
to_play_batch (-) – 在自对弈模式棋类游戏中使用的 to_play_batch 列表
- search_with_reuse(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any], true_action_list=None, reuse_value_list=None) None[源代码]
- 概述:
对根节点并行执行蒙特卡洛树搜索(MCTS)。利用cpp ctree以提高效率。更多详情请参阅 https://arxiv.org/abs/2404.16364。
- 参数:
roots (-) – 一批扩展的根节点。
model (-) – 神经网络模型。
latent_state_roots (-) – 根节点的隐藏状态。
to_play_batch (-) – 自我对弈模式下玩家的列表或批处理指示器。
true_action_list (-) – 一个可重用的真实操作列表。
reuse_value_list (-) – 可重用的值列表。
- class lzero.mcts.tree_search.mcts_ctree.EfficientZeroMCTSCtree(cfg: EasyDict = None)[源代码]
基类:
object- 概述:
EfficientZero 的 MCTS(批处理格式)的 C++ 实现。它通过调用模块
ctree_efficientzero中的函数来完成roots和search方法,这些函数是用 C++ 实现的。- 接口:
__init__,roots,search- ..注意:
同时搜索一批节点的优势在于,它可以在模型推理期间并行化,从而节省时间。
- __init__(cfg: EasyDict = None) None[源代码]
- 概述:
使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。
- 参数:
cfg (-) – 用户传入的配置。
- config = {'pb_c_base': 19652, 'pb_c_init': 1.25, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
- classmethod default_config() EasyDict[源代码]
- 概述:
一个返回 EasyDict 对象形式的默认配置的类方法。
- 返回:
默认配置的字典。
- 返回类型:
cfg (
EasyDict)
- classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) ez_ctree.Roots[源代码]
- 概述:
初始化一批根目录,以便稍后并行搜索。
- 参数:
root_num (-) – 一批中的根数。
legal_action_list (-) – 根的法律行动向量。
- ..注意:
初始化通过
ctree_efficientzero模块中的Roots类实现。
- search(roots: Any, model: Module, latent_state_roots: List[Any], reward_hidden_state_roots: List[Any], to_play_batch: int | List[Any]) None[源代码]
- 概述:
对一批根节点执行蒙特卡洛树搜索。模型推断是并行的。使用C++实现树搜索。
- 参数:
roots (-) – 一批扩展的根节点。
latent_state_roots (-) – 根的隐藏状态。
reward_hidden_state_roots (-) – 根的LSTM中的值前缀隐藏状态。
model (-) – 用于推理的模型。
to_play (-) – 在自对弈模式棋类游戏中使用的 to_play 列表。
备注
核心函数
batch_traverse和batch_backpropagate是用 C++ 实现的。
- search_with_reuse(roots: Any, model: Module, latent_state_roots: List[Any], reward_hidden_state_roots: List[Any], to_play_batch: int | List[Any], true_action_list=None, reuse_value_list=None) None[源代码]
对根节点并行执行蒙特卡洛树搜索(MCTS),利用模型推理并行进行。此方法使用cpp ctree以提高效率。更多详情请参阅 https://arxiv.org/abs/2404.16364。
- 参数:
roots (-) – 一批扩展的根节点。
model (-) – 用于推理的模型。
latent_state_roots (-) – 根节点的隐藏状态。
reward_hidden_state_roots (-) – LSTM 根部的隐藏状态值前缀。
to_play_batch (-) – 在自玩模式棋盘游戏中使用的 to_play_batch 列表。
true_action_list (-) – 可重用的真实操作列表。
reuse_value_list (-) – 可重用的值列表。
- 返回:
无
- class lzero.mcts.tree_search.mcts_ctree.GumbelMuZeroMCTSCtree(cfg: EasyDict = None)[源代码]
基类:
object- 概述:
Gumbel MuZero 的 C++ 实现(批处理格式)。它通过调用模块
ctree_gumbel_muzero中的函数来完成roots和search方法,这些函数是用 C++ 实现的。- 接口:
__init__,roots,search- ..注意:
同时搜索一批节点的优势在于,它可以在模型推理期间并行化,从而节省时间。
- __init__(cfg: EasyDict = None) None[源代码]
- 概述:
使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。
- 参数:
cfg (-) – 用户传入的配置。
- config = {'num_simulations': 50, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
- classmethod default_config() EasyDict[源代码]
- 概述:
一个返回 EasyDict 对象形式的默认配置的类方法。
- 返回:
默认配置的字典。
- 返回类型:
cfg (
EasyDict)
- classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) gmz_ctree[源代码]
- 概述:
初始化一批根目录,以便稍后并行搜索。
- 参数:
root_num (-) – 一批中的根数。
legal_action_list (-) – 根的法律行动向量。
- ..注意:
初始化是通过
ctree_gumbel_muzero模块中的Roots类实现的。
- search(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any]) None[源代码]
- 概述:
对一批根节点执行蒙特卡洛树搜索。模型推断是并行的。使用C++实现树搜索。
- 参数:
roots (-) – 一批扩展的根节点。
latent_state_roots (-) – 根的隐藏状态。
model (-) – 用于推理的模型。
to_play (-) – 在自对弈模式棋类游戏中使用的 to_play 列表。
备注
核心函数
batch_traverse和batch_backpropagate是用 C++ 实现的。