Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个人可以使用什么数据结构来实现;金斯伯格';“s分区搜索”;在游戏树搜索中?_Java_Artificial Intelligence_Minimax_Alpha Beta Pruning - Fatal编程技术网

Java 一个人可以使用什么数据结构来实现;金斯伯格';“s分区搜索”;在游戏树搜索中?

Java 一个人可以使用什么数据结构来实现;金斯伯格';“s分区搜索”;在游戏树搜索中?,java,artificial-intelligence,minimax,alpha-beta-pruning,Java,Artificial Intelligence,Minimax,Alpha Beta Pruning,我正在构建一个纸牌游戏的游戏树搜索,类似于bridge。所以我开始为桥梁构建一个双虚拟解算器。我试图进一步优化当前的游戏树搜索算法,该算法基于alpha-beta剪枝树搜索,并通过MTD-f进行了增强 . (我当前所有的代码都是用Java编写的) 我一直在读M.Ginsberg关于“分区搜索”的论文。它可以在互联网上的许多地方找到。 根据金斯伯格的说法,他通过这种方式获得了一个数量级的表现 在读了几遍这篇文章之后,我想我或多或少理解了它,至少这个想法相当简单,但解决它却不是 我不能完全理解如

我正在构建一个纸牌游戏的游戏树搜索,类似于bridge。所以我开始为桥梁构建一个双虚拟解算器。我试图进一步优化当前的游戏树搜索算法,该算法基于alpha-beta剪枝树搜索,并通过MTD-f进行了增强 . (我当前所有的代码都是用Java编写的)

我一直在读M.Ginsberg关于“分区搜索”的论文。它可以在互联网上的许多地方找到。 根据金斯伯格的说法,他通过这种方式获得了一个数量级的表现

在读了几遍这篇文章之后,我想我或多或少理解了它,至少这个想法相当简单,但解决它却不是

  • 我不能完全理解如何通过执行空窗口搜索来避免算法中交集的复杂性,尽管不难看出它将复杂问题转化为二进制0或1问题
  • 金斯伯格继续在他的桥牌例子中指出 “尽管近似函数和数据结构的细节取决于桥接规则,并且对其实现的讨论超出了本文的范围”

我完全不知道可以使用什么样的数据结构来实现这一点,例如算法的第一行:

if there is an entry (S,[x,y],z) with p elemOf S return (z,S)
在哪里

  • “条目”指某种形式的“换位表”条目
  • p是一个位置(通常在游戏树中)
  • S是一组位置
  • [x,y]是可能的结果间隔,类似于α和β
这个

  • 不知何故需要一个换位表,其中的关键是位置集
  • 如何确定elemOf?
同样,对于分区系统,本文中称为(p,R,C)。如何构建这些函数的“近似函数”

我似乎找不到这个想法的实现,也找不到支持它的数据结构。。。。有人试过吗?这真的值得所有的努力吗

附言。 我发现,唯一与之类似的是S.Kupferschmid关于:
(虽然完全是德语,但它只定义了考虑Skat特殊性的纸牌之间的等价关系。对于bridge之类的东西,这类似于“等级等价”,即如果你有6和4个相同的花色,并且该花色的5个花色被玩过,那么6和4对于游戏结果是等价的)

我找到了另一个类似的参考,这次它被称为模糊换位表:“…模糊换位表,它将战略上相似的位置聚集到广义的游戏状态。”()但仍然没有关于如何实现它的线索。