【发布时间】:2014-09-09 23:49:08
【问题描述】:
我正在寻找一种可以相当有效地支持联合、查找和去联合的数据结构(所有内容至少为 O(log n) 或更好),因为标准的不相交集结构不支持去联合。作为背景,我正在用 MCTS [http://en.wikipedia.org/wiki/Monte_Carlo_tree_search] 编写一个围棋 AI,这将用于跟踪在回溯期间连接和断开连接的棋子组。我认为这可能会更容易,因为解除联合不是在集合中的某个任意对象上,而是始终是最新联合的“撤消”。
我已经阅读了以下论文,虽然我可以执行建议的数据结构,但它似乎有点过头了,需要一段时间才能实现 http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1773&context=cstech
虽然 O(a(n)) 会很好,但当然,我很确定路径压缩不适用于去联合,而且我会对 O(log n) 感到满意。我的直觉告诉我一个解决方案可能与堆有关,但我无法弄清楚任何事情。
【问题讨论】:
-
可能会在 CompSci SE 受到更多关注。
标签: data-structures baduk