第8回CSA選手権参加プログラム「乾U」の概要

名称

「乾U」(一応、「けんじ」と読みますが、別に「いぬいに」「いぬいつー」でもかまいません)

動作環境

Windows95上で動作します。

開発言語

C言語で開発後、C++に移行しました。また開発ツールとしては「Visual C++ ver.4.0」を利用しました。大会参加バージョンは思考部分で5500ステップくらい。実行ファイルは400KB弱。

参考書籍

「コンピュータ将棋の進歩」「将棋とコンピュータ」などを参考にしました。これがなかったら、とてもここまで指せるようにはならなかったでしょう。著者のかたがたには大変感謝しています。ありがとうございました。

思考ルーチン

ほとんど上記の書籍に記述されているものを蹴踏しており、ここで説明するより上記の書籍をご覧になったほうがよいかと思いますが、一応、本ソフトの特徴を挙げておくと、

  1. 序盤の定跡を持っていない。とても定跡データベースを作る気力と時間はありません。しかし、このせいで序盤に急戦を挑まれると非常にもろい、ということがわかっており、今後の改善が待たれる部分。コンピュータ将棋大会参加バージョンは先手なら矢倉、後手なら四間飛車に組むようにしていました。本当はもっといろんな細かい芸をするようにしておきたかったのですが、何しろ時間がなくて。。。。駒がぶつからない限り30手前後まではノータイムで指してきます。
  2. 駒組みが終わると思考に入ります。ミニマックス、アルファベータ法を基本としており、キラームーブ等の工夫もしました。千日手はその時点の有利、不利に関わらず回避します。水平線効果による悪手はやはり目に付きます。先読みの深さは最大で5手です。プログラム自体、先読みをもっと深くできるようにはしていたのですが、思考時間が長くなる、悪手を指す確率が高くなるなどの理由からやめました。5手までという先読みはほかのソフトに比べ浅いと思いますが、末端局面における静的評価関数は一応丁寧に作ったつもりです。玉の状態、駒の損得、攻め駒の働き、大駒の自由度を評価しています。思考時間の速さはcpu 133MHzのマシンなら一局10分程度です。コンピュータ将棋大会の全7局中、思考時間が10分を超えたのは1回だけでした。これはそもそもソフトのの開発には50MHzのマシンを使用していたためで、50MHzのマシンで持ち時間の25分ぎりぎりになるようにしていました。こんなに持ち時間を残すようならもう少し強くもできたのでしょうが、今回はあえてマシン変更後、ほとんど改良を加えませんでした。飛び込みで改良を加えると、当日のバグが恐かったからです。
  3. 終盤は相手の詰みを探索しながら思考をします。が、詰めろ、必至等は理解できていません。大会で対戦したソフトはみなこの辺がしっかり作り込まれていて感心しました。この部分も改善の余地ありです。相手の詰みは最大5手詰めまで調べます。対戦したソフトが13手詰めを探索しているのを見たときは正直言って観念しました。。。なにしろ勝ち負けを判定するのは相手のソフトの方が早い!!

その他の機能

  1. 盤面のセーブ、ロード機能。対局途中の盤面を保存することができます。ただし盤面の編集はできません。
  2. 棋譜再現機能。指し継ぎ可能。
  3. 盤面反転機能。盤面を反転して表示することができます。
  4. 最終手の表示。最後に指した手に矢印マークをつけます。
  5. 3段階にレベルを設定できます。また対局途中でもレベルの変更が可能です。

戻る