热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

求助:亚马逊棋(Amazons)设计,如何进行高效搜索?

亚马逊棋的博弈树过大,一般的搜索方式都行不通。在尝试了多种搜索算法后,近日使用蒙特卡洛,表现的效果离预期效果相差甚远。于是,希望破灭,程序进展再次陷入僵局。我是这样使用蒙特卡洛的:首先从可走的
亚马逊棋的博弈树过大,一般的搜索方式都行不通。
在尝试了多种搜索算法后,近日使用蒙特卡洛,表现的效果离预期效果相差甚远。于是,希望破灭,程序进展再次陷入僵局。
我是这样使用蒙特卡洛的:首先从可走的那些着法中去掉垃圾着法,保留一些比较好的;然后对保留下的那些着法逐个使用蒙特卡洛的思想进行模拟对局(对局至2至6步),模拟对局的局数为10000局;最后对10000个局面进行整体评估。问题就随之而来了,一个着法模拟对局10000局,每次模拟对局2步,一个着法耗费的时间达到约1秒!于是100个着法的模拟对局会耗费100秒!这种速度是无法容忍的。
与蒙特卡洛算法一起的还有一个UCT算法,我没有用UCT,UCT是使程序有选择的展开那些胜率比较高的着法,应该不会对模拟对局的速度有影响呀。
总之,现在是一头雾水。
希望大家能帮我看看,我想我一定是哪里错了,专家说Amazons使用蒙特卡洛算法的计算速度非常快,而我的却慢如蜗牛。。。

7 个解决方案

#1


怎么,没人(⊙_⊙)?。。。。求助哇

#2


亚马逊棋 没做过,以前做过象棋,
http://topic.csdn.net/u/20090706/18/4361fdac-a26a-431f-bb3a-8a093b471c7c.html

刚开始的时候也一直纠结于纯搜索算法,但事实证明,光有好的算法也没用,一但搜索深度增加到一定程度,博弈树就会成千万倍的增加。
所以需要结合棋谱,过滤掉大部分的无用节点,搜索深度会有很大的提高。

如果还需要继续增加,可以考虑使用分布式结构。使用搜索服务程序分布到局域网中,然后主程序把节点数据依次发给各服务器计算。
以前做的那个象棋程序,我使用了9台机计算机做分布计算。搜索到128层只用了11秒,如果你用单台计算,估计算上几天也算不完。

#3


谢谢楼上的朋友。你讲的很对,但使用多台计算机加快搜索对我来讲是没有条件实现的。

#4


9台计算机11秒能算完,一台最多99秒就能算完了,人家的分布式计算,那是要成千上万的处理器工作的

#5


引用 4 楼 y490095999 的回复:
9台计算机11秒能算完,一台最多99秒就能算完了,人家的分布式计算,那是要成千上万的处理器工作的


LS的朋友可以自己试试。
没有动过手就没有话语权!

节点剪枝+棋谱过滤+9台双核电脑.
一刚开始一部分的节点剪枝过滤算法过滤掉了,然后其它计算机分担计算,而且每一步都会有大量的节点被滤掉,一但有计算机空闲时又可以接受从节点多的计算机发送过来的节点数据。
所以单台计算机运算时间不是11*9=99这样计算的!

另外分布式计算不在于计算机的多少,哪怕是2台计算机,那也叫分布计算。

#6


用CUDA写,一台机器可以搞定吧??

#7


“然后对保留下的那些着法逐个使用蒙特卡洛的思想进行模拟对局(对局至2至6步)”
对局至2到6步是什么意思?就是说不是模拟至游戏结束?

推荐阅读
  • 远程访问用户 Kindle通过电子书实现控制
    介绍自2007年以来,亚马逊已售出数千万台Kindle,令人印象深刻。但这也意味着数以千万计的人可能会因为这些Kindle中的软件漏洞而被黑客入侵。他 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 探讨如何利用先进的算法实现不同电商平台间商品的精准匹配。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 使用亚马逊免费服务部署Discuz!论坛指南(第一部分)
    本文将指导您如何利用亚马逊AWS提供的12个月免费试用服务来部署Discuz!论坛。仅需一张信用卡即可轻松注册并开始使用。文章将详细介绍从账号注册到实例创建的具体步骤。 ... [详细]
  • 混合云架构在本地与云服务间寻求平衡的有效性探讨
    随着云计算技术的发展,混合多云架构因其灵活性和高效性而备受关注。本文将深入探讨混合多云(简称混合云)如何通过结合本地基础设施与云端资源,为企业提供一个更为平衡且高效的IT解决方案。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
author-avatar
郭昊天886688
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有