热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java四子棋实验报告_四子棋机器对弈项目实验报告

4、计算UCB值每个节点UCB值的设计是蒙特卡洛算法中比较关键的一点,分为两部分,前部分为计算该节点上的胜率,胜率越高被选择的几率越大&#

4、计算UCB值

每个节点UCB值的设计是蒙特卡洛算法中比较关键的一点,分为两部分,前部分为计算该节点上的胜率,胜率越高被选择的几率越大,而后一部分则是为了平衡模拟方向,使得之前模拟次数越少的点越有机会被选中 nodes[sel].winRound/(nodes[sel].totRound+epsilon) +

C*sqrt(log(nodes[fNode].totRound+1)/(nodes[sel].totRound+epsilon)))

实现语言: c++

编译工具:g++

运行环境:Windows

编译方式:同目录下运行makefile

【测试结果】

1、 与62-100.dll对战结果(胜场数/总场数):

1cd7e9f5fb6eda65c6e2c736adada4b7.png

2、与100.dll对战100场(50rounds)结果(AI为A方):

Stat:

ratio of A wins : 0.57

ratio of B wins : 0.43

ratio of Tie : 0

ratio of (A wins + tie) : 0.57

ratio of (B wins + tie) : 0.43

【结果分析】

5c34161e44f6b82c623f7d1cf5eb09e6.png

在测试过程中我打印了所选节点的胜率,结果基本符合之前的收敛分析,在



推荐阅读
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
  • 本文探讨了C语言中关于函数定义与调用的一些基本规则,特别是解释了为何函数定义不可嵌套,而函数调用却可以嵌套,并通过具体示例加以说明。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • 我们正在使用GNU Make来构建我们的系统,在makefile文件的末尾,我们通过一个名为Makedepends的包含来生成一系列的.d文件。然而,当文件被删除或移动时,依赖关系会中断,我们需要寻找一种方法来优雅地处理这种情况。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 深入解析达内Java基础练习题
    本文精选了几道典型的Java基础题目,旨在帮助学习者巩固基础知识,提升编程技能。通过这些题目,你可以检验自己的Java基础掌握程度。 ... [详细]
  • 本文将指导你如何通过自定义配置,使 Windows Terminal 中的 PowerShell 7 更加高效且美观。我们将移除默认的广告和提示符,设置快捷键,并添加实用的别名和功能。 ... [详细]
  • 解决JavaWeb项目中因IPv6导致的IP转换错误
    本文探讨了在JavaWeb项目中,当尝试将客户端IP地址从字符串形式转换为整数时遇到的问题,并提供了详细的解决方案。具体问题表现为在本地环境中通过`request.getRemoteHost()`获取到的IP地址为IPv6格式,而非预期的IPv4格式。 ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 本文探讨了 Rust 编程语言中 'eq()' 方法与 '==' 运算符之间的差异,并通过示例说明了它们在不同类型比较时的行为。 ... [详细]
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
author-avatar
mobiledu2502875545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有