shogi686microの仕様

概要

探索は単純なアルファベータ法で、評価関数は駒割+α。強さはLesserkai(4手読み)といい勝負くらい。

仕様

反復深化。アルファベータ法。Rootでは指し手をランダムに並べ替えている(これにより毎回違う将棋になり、勝率も少し上がっている)。それ以外はオーダリングなし(打つ手を移動手より後に生成するなどの工夫はしている)。
評価関数は駒割(歩1枚が100点)と、持ち駒1種類につき50点。

通常探索と静止探索は同じ関数。残り深さが0になったら取る手と成る手を4手まで、王手回避は何手でも読む。勝ちを読み切ったとき、基本的には最も手数が短くなる手順を選ぶが、静止探索で長い詰みを見つけた場合は冗長な詰まし方をすることがある(負けを読み切ったときも同様)。

PVを保存する配列を持ち、それを使って読み筋を表示する。置換表はない。

配列型(Bitboard型ではない)。壁あり。

時間制御は、残り時間の1/60と秒読みの合計だけ考えるようにしている。ただし、最低でも1秒は考える。マージンは100ミリ秒(秒読み1秒なら、900msで思考を打ち切る)。

将棋のルールには全て対応している(バグはあるかもしれないが)。

実装していない技術(簡単で効果がありそうな順)

PVS、Aspiration search、置換表、玉から離れた駒の価値を下げる、局面の出力(デバッグ用)、高速1手詰め、王手延長、undoMove、王手回避生成、その他色々