第 323 回 PTT のお知らせ


日時:2006年 7月 6日(木) 18:30 から


場所:東京大学 本郷キャンパス 工学部14号館 5階 501



話者:
美添 一樹 (東京大学大学院情報理工学系研究科コンピュータ科学専攻)


話題:
DFPN Driven Lambda Search Algorithm の囲碁捕獲問題への適用

概要:
Lambda Search AlgorithmとDFPN Search Algorithmは、異なる特徴を持つ 探索アルゴリズムである。この二つのアルゴリズムの相互の欠点を補う 性質のある探索アルゴリズムとしてDFPN Driven Lambda Search Algorithmを 提案する。 Lambda Search AlgorithmはLambda Orderに着目した探索アルゴリズム である。Lambda Order とは、囲碁では手数、将棋では速度と呼ばれる もので、目的を達するために必要な自分の着手数と相手の着手数の差で ある。Lambda Searchは他の何らかの探索アルゴリズムと組み合わせて 実装されるが、過去にはαβ法との組み合わせのみが研究されている。 DFPN Search Algorithmは証明数/反証数を用いたゲーム木探索アルゴリズム である。世界最強の詰将棋ソルバー及び詰碁ソルバーが、DFPNを用いて 作成されるなど、大きな成功を収めている。 DFPN は自動的に証明/反証が簡単そうな手から探索する「頭の良い」 アルゴリズムであるが、その反面、人間がヒューリスティックを足して 性能向上を図ることが、αβ法と比較して難しい。 我々は、DFPN Driven Lambda Search Algorithmを実装し、囲碁の捕獲 探索に適用し性能を測定した。



第 323 回 PTTメモ

出席者:27名

伊知地宏(ラムダ数教研)、長慎也(一橋大)、駒澤忠良(CGF)、石畑清(明治大)、
和田英一(IIJ)、馬淵茂(コア・インタラクティブ)、清水智弘(富士通研)、
清愼一(富士通ソーシアルサイエンスラボラトリ)、繁富利恵(産総研)、
山口文彦(東京理科大)、加藤英樹、副田俊介、笹田耕一、金子知適、横山大作、
筧一彦、田中哲朗、三輪誠、今福健太郎(東京大)、滝沢洋平、新沢剛、多田好克、
李俊、卜部昌平、寺田実、三好晴樹、丸山一貴(電気通信大)


質疑応答:

Q1, \lambda^n_a 等は局面に対して定義されるものなのか?
    また,それらの値は二値に定まるのか?
A1, そのとおり。正確には探索の結果として定まる。

Q2, 1手、あたりをやってから「シチョウ・ゲタ」をやるような場合はどうなるのか。
A2, lambda^1 探索の中では、シチョウしか探索しないのでゲタの可能性はは無視する。

Q3, オセロの1カ所しか打てないのはZugZwangに入るのか。
A3, 入ることもある。

Q4, DFPNはDepth FirstというよりはBreadth Firstのように見えるが。
A4, ある時点での閾値内ではdepth-firstである、ただし多重反復深化をしている。

Q5, transposition tableで全部覚えるのとメモリ使用量は違うのか。
A5, 重要なnodeを優先して覚えるテクニックが有効なので、だいぶ違う。

Q6, (無限大 - 1) は気持ち悪い…。
A6, 実装としては MAX_INT の半分か1/4を使用している、表記上の問題なので
    ご容赦いただきたい。

Q7, lambda moveの定義を緩和しているとは何か。
A7, 低いlambda orderでの証明/反証の結果が不明なうちは、lambda moveとみなす
    ようにしている

Q8, lambda^nの証明・反証を待たずにlambda^{n+1}を探索できる、とは本当に長所か。
A8, 問題にもよるのだが、反証に非常に時間がかかるケースは特に詰め将棋などで多い。

Q9, 各問の \lambda order について記録しているか?
    また,\lambda-move の定義を緩和すると,しない場合と比べて出力される答えの
    \lambda order が変わる可能性があると思うが,
    実際にそのようなケースは存在したか?
A9, lambda orderは記録している。
    定義を緩和したことで、可能な最小のlambda orderでない解が得られることは
    実際にあった。

Q10, \lambda order の lower bound がわかる場合に利用して...とあったが,
     具体的にはどのような場合にそれがわかるのか?
A10, 囲碁の捕獲探索ではダメの数によって明らかに分かる。

Q11, コウがあると大変じゃない?
A11, コウに対処する方法はいくつか研究があり、それほど大変ではない。
     ちなみに発表時点ではコウは無視している。
    (補足: 局所的なコウダテを打ち合った結果の勝敗を求める)

Q12, 正解率のところ:subsetというわけではないよね。
A12, 候補手の範囲を広げると、正しく解けるようになる問題もあるが、時間切れで
     解けなくなる問題もある。なのでsubsetではない。

Q13, lambda DNPN search:pseudo nodeでlambda_1の中にlambda_0が含まれるのでは。
     別々に計算しているのか。
A13, hash tableを利用しているので、低いlambda orderでの探索の情報は自動的に
     高いorderでも利用される。なので別々ではない。

Q14, 詰め将棋にDFPNを利用するときに、合流するノードのせいで証明数を
     2重にカウントしてしまうことがあるが、どう対処しているか。
A14, ルートからの手数を見て、最短手数が小さい子ノードの証明数は加算しない
     方法を使っている。

Q15, (Q14に便乗)将棋でやるような,DAG による二重カウントはやっているか?
A15, 行っていない。

Q16, 知識で探索する枝を減らす、というのがいいのでは
     (実質的には同等の手が複数ある場合、順序を1通りにするとか)
A16, できれば良いのはもちろんそのとおり。しかし判定するのは難しいかもしれない。

Q17, df-pn+ で言うところの cost 関数に相当するものは使っているか?
A17, Hとcostの併用も実験したが、Hのみの場合の性能が良かったので
     本発表ではcostには触れていない。

Q18, 攻め合いのときのダメの種類を分類しているか?
A18, まったく分類していない。分類するプログラムの研究もあるが、
     探索の中で使うには遅い。

Q19, 1手で終わるところは探索ではなく知識の方がよいのでは
A19, 探索を行わずに攻め合いの勝敗判定をするプログラムはあるが、
     どこでその知識を使うかが問題。探索の中で使うには遅すぎる。

Q20, 最後の実験で pn/dn の初期値をいじることで,
     小さい order から探索をするような実験をしているようだが,
     そのような実験方法では副作用が大きいのでは?
A20, 大きいかも知れないが、今回の実験の範囲では不明。