本課題では将棋の局面評価をハードウェア化するための検討を行ってきた。 局面評価については基本的に加算が主であるため評価をハードウェア化する事はおおよそ問題ないことが判った。しかし、局面の評価をハードウェア化しても、ゲームを進行させる可能な着手を十分な速度で生成できなければ、満足な性能向上が図れず問題となることが判った。そこで、可能な着手についてもハードウェア化によって十分なスループットで生成することを目指してアルゴリズムの検討を行ってきた。これについても、単に可能な着手を生成するだけならば、比較的小規模な組み合わせ論理回路で生成が可能な見通しが得られた。しかし、将棋には千日手という例外的なルールがあるため、その判定方法が問題となった。可能な局面の数は膨大であるため、ハードウェアによる実装では効率の良いアルゴリズムが存在せず、どうしてもソフトウェアによる正確な検索が必要な事が判った。そこで、ハードウェアでは簡易的なハッシュによる検索によって小規模のFPGA内メモリで同一局面判定を行い、もし同一局面であると判定された場合はソフトウェアによる正確な一致判定を行う方式を検討してきた。これによって初めて、ソフトウェアを呼び出す頻度を大幅に下げて、ハードウェア化によるスループット向上を生かすことが可能になる。 現在の所、ようやく局面評価に必要な全過程のハードウェア化の可能性を論じることができる程度にまでアルゴリズムの詳細化ができたところであり、残念ながら発表に至るレベルの形にはなっていない。しかし、既に問題となった部分については解法が予想できているため、これを実際に動作する形にして近い将来に発表していく予定である。
|