[Theory of Computer Game 12]

TSS (Threat Space Search)

Chinese 遊戲AI

written by LiaoWC on 2022-02-18


Threat space search,皆由搜尋 threat 來找有沒有可以獲勝的方式。以五子棋來說,下圖就呈現許多五子棋的 threat。由於這些 threat 跟能不能獲勝有直接的關係,因此透過搜尋 threat 會比直接全域性的搜索還有效率,也因此,threat space search 也可以搭配其它演算法(如 PNS)一起來證明一些盤面是否必勝/必敗。

untitled-22.png

Dependency-Based Search (with Combination of Threats)

單純的檢查各個 threat 可能會錯失能獲勝的下法,因為不同的 threat 可能可以組成新的 threat。以下圖為例:

  • 黑色下 h10/h9 則白色要下 h10
  • 黑色下 i9/j10 則白色要下 j10/i9

untitled-23.png

仔細看會發現,如果黑色下 h10 和 i9 就會形成另一個活三,由於白色要忙著擋黑色的死四,黑色可以把這個活三下成活四來獲勝。從這個例子可以發現不同 threat 可能有 dependency,因此 combination。

其它範例:DLP (Double-Letter Puzzle)

DLP 是一種單人遊戲,一開始會拿到一個英文字串(只會有 a~e),可以藉由結合兩個相鄰的相同字母,變成一個新的字母,如下圖:

untitled-24.png

其實就是變成隔壁的字母。由於只有 a~e,a 的隔壁就是 b 和 e,同理 e 的隔壁是 a 和 d。如果最後能縮減到剩下一個字母即獲勝。

如果拿到一個字串: abbcdd,可以把 bb 變 a ⇒ aacdd,然後可以再把 dd 變 c ⇒ aacc,兩個 a 和兩個 c 都可以變 b ⇒ bb ⇒ a 或 c,成功化簡到剩一個字母,遊戲結束。

這個遊戲也可以用 dependency-based search 解。如果你拿到一個字串 aaccadd:

untitled-25.png

untitled-26.png

untitled-27.png

untitled-28.png

藉由這種方式搜尋,會比用 DFS 等其它全部排列組合硬算的演算法快多了。

Reference

Allis, L. V., Searching for solutions in games and artificial intelligence, Ph.D. Thesis, University of Limburg, Maastricht, 1994.

Allis, L. V., Herik, H. J. van den, and Huntjens, M. P. H. (1996). Go-Moku Solved by New Search Techniques. Computational Intelligence, Vol. 12, pp. 7–23.