gpt4 book ai didi

python - Python 中的 MCTS *tree* 并行化 - 可能吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:16 25 4
gpt4 key购买 nike

我想并行化我的 MCTS 程序。有几种方法可以做到这一点:

  1. 叶并行化,其中每个叶并行展开和模拟。
  2. 根并行化,其中每个线程/进程创建一个单独的树,当完成一定数量的模拟时,树被合并以提供更好的统计数据
  3. 树并行化,其中所有线程/进程共享同一棵树,每个线程/进程探索树的不同部分。

(如果我的解释不清楚,请查看 this review paper on MCTS。在第 25 页,详细描述了并行化 MCTS 的不同方法。)


问题:

由于 Python 中的多处理必须创建单独的子进程,2. 根并行化非常适合,而我假设 3. 树并行化不可行。 (由于树并行化,所有子进程都必须共享同一棵树——这在 Python 中很难做到)

我说的对吗?我浏览了多处理文档,如果我理解正确,似乎可以在某些基本数据类型的子进程之间来回传递信息,但由于速度等原因,我非常不鼓励。

如果是这样,Python 中的树并行化将不是一个好主意,对吧?

最佳答案

是的,您说得对,根并行化是这些变体中最容易实现的。不同的进程本质上将能够完全独立于彼此运行。只有在搜索过程结束时,您才需要以您选择的任何方式汇总结果,我认为这在实现时不会有问题。

我对 Python 中的多处理非常熟悉,知道当您需要更多通信时(其他两种方法需要的那种通信),它……有点痛苦。我对它还不够熟悉,无法 100% 肯定地说它真的“不可能”或“非常不鼓励”,但在实现难易程度方面肯定存在明显差异。

关于python - Python 中的 MCTS *tree* 并行化 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52584142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com