MiniAlphaGo黑白棋 蒙特卡洛搜索

news2025/1/20 1:11:29

做个笔记。


一、蒙特卡洛在黑白棋的应用

在这里插入图片描述

在这里插入图片描述
输入:棋盘𝑏𝑜𝑎𝑟𝑑、当前执子方𝑐𝑜𝑙𝑜𝑟、搜索时间𝑡𝑖𝑚𝑒_𝑙𝑖𝑚𝑖𝑡、模拟策略𝑠𝑡𝑟𝑎𝑡𝑒𝑔𝑦

创建蒙特卡洛树的根节点𝑟𝑜𝑜𝑡,表示当前棋局𝑏𝑜𝑎𝑟𝑑

在搜索时间内,循环以下步骤生成蒙特卡洛树:

(1)选择 Selection——根据 𝑼𝑪𝑩值 ,搜索返回值最大的叶子结点 𝑳

  • 第一次蒙特卡洛搜索时,必返回根节点𝑟𝑜𝑜𝑡。
  • 之后的每次,会计算并返回𝑈𝐶𝐵1值最大的节点𝐿。

(2)扩展 Expansion——扩展节点𝑳的子结点𝑴

  • 当前执子方落子合法的位置,都作为𝐿的子结点。
  • 随机扩展一个子结点作为𝑀,
  • 其余子结点由于𝑈𝐶𝐵1值无穷,下次优先选择。

(3)模拟 Simulation——模拟当前棋局走向,记录输赢及胜子数量

  • 从结点𝑀开始,模拟双方落子,直到胜负。
  • 模拟策略可以多样化。
    比如,随机策略,贪心策略

(4)回溯 back propagation——从节点𝑴开始回溯

  • 回溯过程为了保持𝑈𝐶𝐵1公式求解,
    不同执子层以相反效果加上回溯值。
  • 计回溯值的策略也可以多样化。
    如以胜负记:胜方记1,负方记0,平局记0.5
    或以胜子数记:
    胜方记胜子数,负方记负子数,平局记0

二、项目

我放在了:Reversi_miniAlphaGo/algo.py,algo.py就是本地可以运行的一个版本。
如果要做前端,可以使用Reversi_miniAlphaGo/ forflask_algo.py。


原理参考:
《人工智能导论:模型与算法——吴飞》
《机器学习-蒙特卡洛搜索树 智能黑白棋》
《 蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事》

代码参考并改进自:
《深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略)》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小米平板5ProWIFI(elish)刷ArrowOS

文章目录警告下载奇兔刷机系统本体及Recovery清除数据刷入AospRec开始刷入警告完成设置输入法变砖头了qwq又是警告芝士截图Root方法结尾警告 此文章只针对 小米平板5Pro Wifi版本(elish) 由于条件限制,本文大部分无配图 请务必仔细认真阅读此…

Airflow用于ETL的四种基本运行模式, 2022-11-20

(2022.11.20 Sun) 基本运行模式(pattern)是data pipeline使用Airflow的DAG的不同结构,基本模式有如下四种 : 序列Sequence平行拆分Parallel split同步Synchronisation单选Exclusive choice 序列模式 序列模式即若干task按先后顺序依次执行,…

中远通在创业板IPO过会:前三季度收入11亿元,罗厚斌为董事长

近日,深圳证券交易所创业板披露的新显示,深圳市核达中远通电源技术股份有限公司(下称“中远通”)获得上市委会议通过。据贝多财经了解,中远通于2021年6月30日在创业板递交申请。 本次冲刺创业板上市,中远通…

以go rabbitmq为例子--用最少的时间最好的掌握消息队列

为什么要使用消息队列? 流量削峰 举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的…

向QTableView单元格插入窗体小部件的功能实现

1.前言 我们知道:QTableWidget类有如下函数: void QTableWidget::setCellWidget(int row, int column, QWidget *widget) 可以实现在指定的单元格插入窗体部件QWidget对象,如下代码: setCellWidget(row, column, new QLineEdi…

2023年天津财经大学珠江学院专升本管理学原理专业考试大纲

天津财经大学珠江学院2023年高职升本科专业课考试《管理学原理》考试大纲一、本大纲系天津财经大学珠江学院2023年高职升本科《管理学原理》课程考试大纲。所列考试范围出自徐碧琳主编的教材《管理学原理(第二版)》,机械工业出版社&#xff0…

刨根问底 Kafka,面试过程真好使

大家好,这里是 菜农曰,欢迎来到我的频道。 充满寒气的互联网如何在面试中脱颖而出,平时积累很重要,八股文更不能少!下面带来的这篇 Kafka 问答希望能够在你的 offer 上增添一把🔥。 Kafka最初是由Linkedin公…

【掌握K8S集群部署】手把手真正实现Kubernetes集群的配置与部署(附问题解决方法)

1、环境准备 IPHOSTNAME10.10.20.15k8s110.10.20.16k8s210.10.20.17k8s3 注意hostname不要用下划线、小数点与字母。 2、环境配置(所有节点) # stop firewalld systemctl stop firewalld systemctl disable firewalld# disable selinux sed -i s/enfo…

读 RocketMQ 源码,学习并发编程三大神器

笔者是 RocketMQ 的忠实粉丝,在阅读源码的过程中,学习到了很多编程技巧。 这篇文章,笔者结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类&#xff…

高性能MySQL-创建高性能索引

什么是索引 MySQL并没有统一的索引标准,不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。 索引是存储引擎用于快速找到记录的一种数据结构&…

LeetCode 图解 | 206.反转链表(附有知识点回顾)

206.反转链表题目描述思路分析递归方式代码实现迭代方式(非递归)代码实现知识点回顾题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 /*** Definition for singly-linked list.* public class ListNode {*…

AtCoder Beginner Contest 279 G. At Most 2 Colors(计数/组合数学/dp递推)

题目 n(2<n<1e6)个格子&#xff0c;从左到右一字排开&#xff0c; 现在需要给格子涂色&#xff0c;有c(1<c<1e9)种颜色&#xff0c; 要求连续的k(2<k<n)个格子的颜色数最多只有2种&#xff0c; 求方案数&#xff0c;答案对998244353取模 思路来源 TOYO…

3. HTML的语法规范

3. HTML的语法规范 3.1.2 注释的作用和写法 ➢ 注释的作用&#xff1a; ​ •为代码添加的具有解释性、描述性的信息&#xff0c;主要用来帮助开发人员理解代码 ​ •浏览器执行代码时会忽略所有的注释 ➢ 注释的快捷键&#xff1a; ​ • 在VS Code中&#xff1a;ctrl / 3.1.…

中国的LPR改革及其意义

中国的LPR改革及其意义 – 潘登同学的宏观经济学笔记 文章目录中国的LPR改革及其意义 -- 潘登同学的宏观经济学笔记LPR的两次改革为什么需要LPR改革LPR改革的意义LPR的两次改革 LPR&#xff1a;商业银行对其最优质的客户执行的贷款利率 LPR在我国经历了两次改革&#xff0c;一…

PyTorch中torch.gather()函数

一. torch.gather()函数 官方文档&#xff1a;torch.gather函数&#xff0c;定义&#xff1a;从原tensor中获取指定dim和指定index的数据。 看到这个核心定义&#xff0c;我们很容易想到gather()的基本想法其实就类似从完整数据中按索引取值般简单&#xff0c;比如下面从列表中…

Kafka - 07 Zookeeper中存储的 Kafka 信息

我们在前面的文章中搭建了 Kafka 集群&#xff0c;分别是伪集群和真实的集群&#xff1a; Kafka - 03 Kafka安装 | 单机环境搭建 | 伪集群环境搭建 (一台虚拟机) Kafka - 06 Kafka 集群环境搭建&#xff08;三台虚拟机&#xff09; 两种方式中&#xff0c;Zookeeper 存储的 …

微机-------8086/8088寻址方式

目录 8086/8088寻址方式8086/8088寻址方式 1、立即寻址 立即数只能作为源操作数 MOV AL,80H MOV AX,306AH2、寄存器寻址 8位操作数的寄存器可以是:AH、AL、BH、BL、CH、CL、DH、DL 16位操作数的寄存器可以是:

如何录制视频?有了这款视频录制软件,粉丝多了,转发量也起来了

一款好用的视频录制软件&#xff0c;可以为视频录制工作带来便捷&#xff0c;高效的解决如何录制视频的难题。视频经济时代&#xff0c;很多人都用视频录制软件来进行视频录制&#xff0c;并分享到社交平台。但是很多时候&#xff0c;往往是两极分化&#xff0c;有的人粉丝几百…

[操作系统笔记]内存管理1

内容系听课复习所做笔记&#xff0c;图例多来自课程截图 覆盖与交换 下图为覆盖技术图示&#xff1a; 交换技术和中级调度密切相关&#xff1a; 中级调度&#xff08;内存调度&#xff09;&#xff1a;就是要决定将哪个处于挂起状态的进程重新调入内存 在哪保存被换出的进程 具…

m基于遗传优化算法的公式参数拟合matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遗传算法的原理 遗传算法GA把问题的解表示成“染色体”&#xff0c;在算法中也即是以二进制编码的串。并且&#xff0c;在执行遗传算法之前&#xff0c;给出一群“染色体”&#xff0c;也即是假…