(57)【特許請求の範囲】
【請求項１】
コンピュータ対人間が交互に手を進める型の対戦型思考ゲームにおいて、コンピュータが次の一手のための思考に要するであろう予測時間を求める予測時間表示方法であって、
インタフェース部が、
前記コンピュータの着手数及び前記コンピュータの先読みの深さの量をメモリに格納し、
思考部が、
前記コンピュータの一着手当りの平均時間を求めて前記メモリに格納し、
定石を格納したデータベースを検索し、前記コンピュータの現在の局面で着手すべき手が、格納した定石と一致するか否かを判断し、一致しない場合に、前記メモリより前記思考部に、前記コンピュータの着手数及び前記コンピュータの先読みの深さの量を読み込んで、前記コンピュータの探索総手数を、前記コンピュータの着手数及び前記コンピュータの先読みの深さの量に基づいて求めて前記メモリに格納し、
前記メモリより前記思考部に、前記探索総手数及び前記一着手当りの平均時間を読み込んで、前記コンピュータが次の一手のための思考に要するであろう予測時間を、前記探索総手数及び前記一着手当りの平均時間に基づいて求めて前記メモリに格納し、
前記インタフェース部が、
前記メモリより前記一手思考の予測時間を前記インタフェース部に読み込んで表示部に視覚的に表示させる
予測時間表示方法。
【請求項２】
請求項１に記載の予測時間表示方法において、
前記コンピュータの探索総手数を、
（探索総手数）＝Σｎi（ｎは着手数、ｉは先読み深さ）
により求め、
前記コンピュータが次の一手のための思考に要するであろう予測時間を、
(一手思考の予測時間)=（探索総手数）×(一着手あたりの平均時間)    （１）
により求める
予測時間表示方法。
【請求項３】
請求項２に記載の予測時間表示方法において、
前記思考部が、一手思考開始から現在までの思考時間の経過時間を求めて前記メモリに格納し、
前記メモリより前記思考部に、一手思考の予測時間及び前記思考時間の経過時間を読み込んで、前記予測時間に対する残り時間を、
(残り時間)＝(一手思考の予測時間)−(思考時間の経過時間)
により求めて前記メモリに格納し、
前記インタフェース部が、
前記メモリより前記残り時間を前記インタフェース部に読み込んで表示部に視覚的に表示させる
る予測時間表示方法。
【請求項４】
請求項２または３に記載の予測時間表示方法において、
前記思考部が、
現在の探索手数を求めて前記メモリに格納し、
前記メモリより前記思考部に、現在の探索手数及び探索総手数を読み込んで、前記コンピュータの手数の進行度合を
（手数の進行度合い）(%)=(現在の探索手数/探索総手数)×100
により求めて前記メモリに格納し、
前記メモリより前記思考部に、前記思考時間の経過時間及び一手思考の予測時間を読み込んで、前記コンピュータの予測時間の進行度合を
（予測時間の進行度合い）(%)
=(思考時間の経過時間/一手思考の予測時間)×100
により求めて前記メモリに格納し、
前記メモリより前記思考部に、前記手数の進行度合いと前記予測時間の進行度合いとを読み込んで比較し、これらが一致するか否かにより前記一手思考の予測時間と実際の実行時間との間の差異を検査し、前記一手思考の予測時間と実際の実行時間との間に差異が生じた場合に、前記メモリより前記思考部に、前記思考時間の経過時間、現在の探索手数、及び探索総手数を読み込んで、一手思考の予測時間を、前記式（１）に代えて、補正された次式
(一手思考の予測時間)=(思考の経過時間/現在の探索手数)×(探索総手数)
により求める予測時間表示方法。
【請求項５】
コンピュータ対人間が交互に手を進める型の対戦型思考ゲームにおいて、コンピュータが次の一手のための思考に要するであろう予測時間を求める予測時間表示装置であって、
前記コンピュータの着手数、前記コンピュータの先読みの深さの量、前記コンピュータの一着手当りの平均時間、前記コンピュータの探索総手数、前記コンピュータの一手思考の予測時間を格納するメモリと、
前記コンピュータの一着手当りの平均時間を求めて前記メモリに格納し、
定石を格納したデータベースを検索し、前記コンピュータの現在の局面で着手すべき手が、格納した定石と一致するか否かを判断し、一致しない場合に、前記メモリより前記コンピュータの着手数および前記コンピュータの先読みの深さの量を読み込んで、前記コンピュータの探索総手数を、前記コンピュータの着手数および前記コンピュータの先読みの深さの量に基づいて求めて前記メモリに格納し、
前記メモリより前記思考部に、前記探索総手数及び前記一着手当りの平均時間を読み込んで、前記コンピュータが次の一手のための思考に要するであろう予測時間を、前記探索総手数及び前記一着手当りの平均時間に基づいて求めて、前記メモリに格納する思考部と、
前記コンピュータの着手数、前記コンピュータの先読みの深さの量を前記メモリに格納し、前記メモリより前記一手思考の予測時間を読み込んで表示部に視覚的に表示させるインタフェース部と、
を備えた予測時間表示装置。
【請求項６】
請求項５に記載の予測時間表示装置において、
前記コンピュータの探索総手数を
（探索総手数）＝Σｎi（ｎは着手数、ｉは先読み深さ）
により求め、
前記メモリより前記思考部に、前記探索総手数及び前記一着手当りの平均時間を読み込んで、前記コンピュータが次の一手のための思考に要するであろう予測時間を、次式
(一手思考の予測時間)=（探索総手数）×(一着手あたりの平均時間)    （２）
により求める
予測時間表示装置。
【請求項７】
請求項６に記載の予測時間表示装置において、
前記思考部が、一手思考開始から現在までの思考時間の経過時間を求めて前記メモリに格納し、
前記メモリより前記思考部に、一手思考の予測時間及び前記思考時間の経過時間を読み込んで、前記予測時間に対する残り時間を、
(残り時間)＝(一手思考の予測時間)−(思考時間の経過時間)
により求めて前記メモリに格納するものであり、
前記インタフェース部が、
前記メモリより前記残り時間を前記インタフェース部に読み込んで表示部に視覚的に表示させるものである
予測時間表示装置。
【請求項８】
請求項６または７に記載の予測時間表示装置において、
前記思考部が、
現在の探索手数を求めて前記メモリに格納し、
前記メモリより前記思考部に、現在の探索手数及び探索総手数を読み込んで、前記コンピュータの手数の進行度合を
（手数の進行度合い）(%)=(現在の探索手数/探索総手数)×100
により求め、
前記メモリより前記思考部に、前記思考時間の経過時間及び一手思考の予測時間を読み込んで、前記コンピュータの予測時間の進行度合を
（予測時間の進行度合い）(%)
=(思考時間の経過時間/一手思考の予測時間)×100
により求め、
前記求めた手数の進行度合及び予測時間の進行度合を前記メモリに格納し、
前記メモリより前記思考部に、前記手数の進行度合いと前記予測時間の進行度合いとを読み込んで比較し、これらが一致するか否かにより前記一手思考の予測時間と実際の実行時間との間の差異を検査し、前記一手思考の予測時間と実際の実行時間との間に差異が生じた場合に、前記メモリより前記思考部に、前記思考時間の経過時間、現在の探索手数、及び探索総手数を読み込んで、一手思考の予測時間を、前記式（２）に代えて、補正された次式
(一手思考の予測時間)=(思考の経過時間/現在の探索手数)×(探索総手数)
により求めるものである
予測時間表示装置。
【請求項９】
コンピュータ対人間が交互に手を進める型の対戦型思考ゲームにおいて、コンピュータが次の一手のための思考に要するであろう予測時間を求める機能をコンピュータに実現させるためのプログラムを記録したコンピュータ読取り可能な記録媒体であって、
コンピュータの着手数、前記コンピュータの先読みの深さの量、前記コンピュータの一着手当りの平均時間をそれぞれメモリに格納する機能と、
定石を格納したデータベースを検索し、前記コンピュータの現在の局面で着手すべき手が、格納した定石と一致するか否かを判断し、一致しない場合に、前記メモリより前記コンピュータの着手数及び前記コンピュータの先読みの深さの量を思考部に読み込んで、前記コンピュータの探索総手数を、前記コンピュータの着手数及び前記コンピュータの先読みの深さの量に基づいて求めて前記メモリに格納する機能と、
前記コンピュータが次の一手のための思考に要するであろう予測時間を、前記探索総手数及び前記一着手当りの平均時間に基づいて求めて前記メモリに格納する機能と、
、前記メモリより一手思考の予測時間を読み込んで表示部に表示させる機能と
をコンピュータに実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１０】
請求項９に記載の記録媒体において、
前記コンピュータの探索総手数を
（探索総手数）＝Σｎi（ｎは着手数、ｉは先読み深さ）
により求め、
前記コンピュータが次の一手のための思考に要するであろう予測時間を、次式
(一手思考の予測時間)=（探索総手数）×(一着手あたりの平均時間)    （３）
により求める
コンピュータ読取可能な記録媒体。
【請求項１１】
請求項１０に記載の記録媒体において、
一手思考開始から現在までの思考時間の経過時間を求めて前記メモリに格納する機能と、
前記一手思考の予測時間及び前記思考時間の経過時間を読み込んで、前記予測時間に対する残り時間を、
(残り時間)＝(一手思考の予測時間)−(思考時間の経過時間)
により求めて前記メモリに格納する機能と、
前記メモリより前記残り時間を前記インタフェース部に読み込んで表示部に視覚的に表示させる機能と
をコンピュータに実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１２】
請求項１０または１１に記載の記録媒体において、
前記コンピュータの手数の進行度合いを、前記メモリより現在の探索手数及び探索総手数を読み込んで、次式
（手数の進行度合い）(%)=(現在の探索手数/探索総手数)×100
により求めて前記メモリに格納する機能と、
前記コンピュータの予測時間の進行度合いを、前記メモリより前記思考時間の経過時間及び一手思考の予測時間を読み込んで、次式
（予測時間の進行度合い）(%)=(思考時間の経過時間/一手思考の予測時間)×100
により求めて前記メモリに格納する機能と、
前記メモリに格納された前記手数の進行度合いと前記予測時間の進行度合いとを比較して、これらが一致するか否かにより前記一手思考の予測時間と実際の実行時間との間の差異を検査する機能と、
前記一手思考の予測時間と実際の実行時間との間に差異が生じた場合に、一手思考の予測時間を、前記式（３）に代えて、補正された次式
(一手思考の予測時間)=(思考の経過時間/現在の探索手数)×(探索総手数)
により求める機能とを
備えた記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータと人間が対戦する型の思考ゲームにおいて、コンピュータの思考時間を予測して出力させる予測時間表示方法および装置に関する。
【０００２】
【従来の技術】
現在、将棋、囲碁、オセロ（登録商標）等の対戦型思考ゲームソフトをコンピュータに思考させ、人間対コンピュータの対戦を可能としたソフトが多く出回っている。
【０００３】
一般にコンピュータ思考部は一手の着手に、より多く時間を消費して思考する程強くなる傾向があり、それに対して人間側のニーズとしては、より強くはもちろんのこと、「より速く」コンピュータが着手することが求められている。
【０００４】
人間対コンピュータの対戦において、人間が求める実用的な思考速度は恐らく、一局３０分からせいぜい１時間で終局し、その上でコンピュータの思考時間が人間の思考時間と同程度以下であることであろう。
【０００５】
現在、最強と言われるコンピュータ思考部でも、人間が求める実用的な思考速度では将棋ではアマチュア初段〜２段程度、囲碁に至ってはアマチュア１０級〜５級程度であり、アマチュア高段者にとってはとても楽しめるレベルに無いのが現状である。このことは家庭用テレビゲーム機等のコンピュータの演算速度の遅い機器では、より顕著な問題となる。
【０００６】
【発明が解決しようとする課題】
対戦型思考ゲームでは、コンピュータは思考時間を短くすると弱くなり、思考時間を長くすると強くなる。したがってアマチュア高段者に、対戦型思考ゲームをより快適に楽しんで貰うためには、コンピュータの思考時間を増やす必要がある。
【０００７】
しかしコンピュータの思考時間を増やすと、コンピュータの着手する時間が大幅に遅くなる。これは上述した「より速く」というニーズに反する。したがって、ゲームソフトにおいて、コンピュータの思考時間を増やすことなく、コンピュータが次の一手にどの程度の思考時間を費やすかをゲーム相手の人間に知らせることができれば、対戦型思考ゲームをより快適に楽しむことが可能となる。
【０００８】
ところでパソコンソフトでは、パソコンのインストール時や、インターネット等のファイルのダウンロード時などに、データ容量およびマシンの処理速度の実績値などから、要する待ち時間（予測時間）を求め、予測時間を表示するものがある。これを対戦型思考ゲームに適用して、思考完了までの予測時間を表示させることができれば頗る便利である。
【０００９】
ここに両者の機能を述べて比較してみる。図９がその対比表である。この表をもとに説明する。以下、（１）〜（６）において、▲１▼はパソコンソフト（ダウンロード、インストール）、▲２▼はゲームソフト（思考予測時間）、▲３▼は比較考察である。
【００１０】
（１）目的
▲１▼作業完了までの予測時間を表示する。
▲２▼思考完了までの予測時間を表示する。
▲３▼完了までの予測時間を表示する点で目的は同じ。
【００１１】
（２）効果（重要性）
▲１▼これは進行中であることを告知すること。
ダウンロードの場合は、通信コストがかかるため、総時間を知ることが重要である。
▲２▼思考の強さを強くするほど、思考に時間を要するため、後どれくらいかかるか告知することが重要。
▲３▼それぞれ効果は異なる。
【００１２】
（３）対象物
▲１▼対象物は定量的で明確なプログラムソフトであるため、対象物を予測する必要はない。
▲２▼対象物は、思考による分岐が複雑な一手に要する手順であるため、局面による変化が大きい。したがって対象物自身を予測する必要がある。
▲３▼固定的な作業物と変動的な対象物に分れる。
【００１３】
（４）予測時間
▲１▼対象物（作業量）が明確であるため、実行過程において、実行実績から予測時間を求めることが可能。
▲２▼予測した対象物（作業量）から、実行過程において、実行実績より予測時間を求める。
▲３▼予測時間を求める手法自体は同じでも、対象物が異なるから、全体として手法は異なる。
【００１４】
（５）誤差の要因
▲１▼コンピュータの処理状況（マルチタスクなど）により誤差が予測される。特にダウンロードでは、通信回線の状況変化により誤差が予測される。
▲２▼作業量があくまでも見込であることにより誤差が予測される。
▲３▼双方とも誤差はある。
【００１５】
（６）誤差の補正
▲１▼実績値より予測時間の補正は容易である。
▲２▼対象物を予測しているため、対象物の予測方法に依存するが、ある程度は実績値より予測時間の補正は可能である。
▲３▼それぞれ異なる。
【００１６】
上述した考察から、パソコンで行われているダウンロードやインストールの作業完了までの予測時間表示方式は、対象物が定量的であるので、対象物が変量的であるゲームにはそのまま適用できないことが分る。
【００１７】
本発明の課題は、パソコンソフトとは異なる手法を対戦型思考ゲームに導入することによって、上述した従来技術の問題点を解消して、コンピュータの思考時間を適切に予測して、より快適にゲームを楽しむことができる予測時間表示方法および装置を提供することにある。
【００１８】
【課題を解決するための手段】
本発明の予測時間表示方法を実施するための予測時間表示装置は、図７に示すように、ディスプレイ１とコントローラまたはキーボードおよびマウス等からなる入力部３を有し、前記ディスプレイ１上に映し出された画像（盤面）において、入力部３より必要な操作手順を入力するゲーム機本体またはパソコン本体２を用いたゲーム機およびパソコン（コンピュータ）を前提とする。本体２で行う予測時間の計算方法は種々あり、思考ゲームの種類に合わせて任意に選択する。本体２には、プログラムを記憶した記憶媒体が設けられる。記憶媒体としては、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、ＲＯＭカートリッジ等、プログラムを記憶でき、かつコンピュータが読取可能な記憶媒体であれば、その記憶形式はいずれの形態であってもよい。また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づき本実施形態を実現するための各処理を実行する。
【００１９】
請求項１の発明は、コンピュータ対人間が交互に手を進める将棋等の対戦型思考ゲームにおいて、コンピュータが思考を開始する際に、次の一手のためにコンピュータが思考に要するであろう予測時間を求めるとともに、コンピュータが思考を開始してからの経過時間または前記予測時間に対する残り時間を求め、前記予測時間、経過時間または残り時間を直感的に判断できる形でリアルタイム表示させることを特徴とする予測時間表示方法である。本発明によれば、コンピュータの思考時間を適切に予測して、予測時間を直感的に判断できるようにしたので、より快適にゲームを楽しむことができる。
【００２０】
請求項２の発明は、前記コンピュータの一手の思考に要するであろう予測時間が、次式
( 一手思考の予測時間)=( 探索総手数) ×( 一着手あたりの平均時間)
(1) から求められる請求項１に記載の予測時間表示方法である。
【００２１】
ここで、探索総手数は、Σｎi （ｎは着手数、ｉは先読み深さ）であり、一着手あたりの平均時間は、過去複数回の着手に要した実績時間から求めた一回の着手平均時間をいう。なお前記着手数とは、先読みした局面において考えられる手の数をいう。
本発明によれば、探索総手数に一着手あたりの平均時間を乗ずるだけの簡単な式を計算するだけで、コンピュータの一手に要する時間を把握することができる。
【００２２】
請求項３の発明は、コンピュータが思考を開始してからの前記予測時間に対する残り時間が、次式
( 残り時間) ＝( 一手思考の予測時間) −( 経過時間)
から求められる請求項１または２に記載の予測時間表示方法である。
【００２３】
ここで、経過時間は、一手思考開始から現在までの経過時間
本発明によれば、一手思考の予測時間から経過時間を減ずるだけの簡単な式を計算するだけで、コンピュータの残り思考予測時間を把握することができる。
【００２４】
請求項４の発明は、請求項２または３に記載の予測時間表示方法において、次式
0003909736.tif 000002
をそれぞれ求め、前記手数の進行度合いと予測時間の進行度合いとを比較して、これらが不一致になって前記一手思考の予測時間が実際の実行時間との間で差異が生じたとき、式（１）に代えて予測時間を補正する次の式
( 思考の経過時間/ 現在の探索手数) ×( 探索総手数)
を一手思考の予測時間を求める式とする予測時間表示方法。
【００２５】
本発明によれば、手数の進行度合いと予測時間の進行度合いとに不一致が生じたときは、一手思考の予測時間を求める式を補正するので、実際との実行時間との差異を解消でき、より実際に近い予測時間を求めることができる。
【００２６】
請求項５の発明は、インタフェース部からパケットを介して通知された情報を基に思考する思考主体部および思考予測手数評価部を有し、前記思考主体部で思考の動作を、前記思考予測手数評価部で思考予測の動作をそれぞれ開始し、結果をパケットを介してインタフェース部に通知する思考部と、前記思考部とは別に設けられ、人間の着手の入力や盤の表示等を受け持ち、それらの情報を思考部に通知するインタフェース部と、前記インタフェース部と前記思考部の双方から読み書きできるリアルタイム情報用の共有メモリとして機能するパケットと、人間の着手の入力を行う入力部と、盤の表示や予測時間を表示する表示部と、表示部を制御する表示制御部とを備えたコンピュータ対人間が交互に手を進める将棋等の対戦型思考ゲームの予測時間表示装置である。
【００２７】
前記思考予測手数評価部は、思考部本体からの着手数とインタフェース部からのコンピュータの強さに対応する先読みの深さが入力され、Σｎi （ｎは着手数、ｉは先読み深さ）から探索総手数を求め、更にこの探索総手数に一着手当たりの平均時間を乗じたものを一手思考の予測時間として出力するものであり、表示制御部は、前記一手思考の予測時間に基づいて予測時間を直感的に判断できる形で前記表示部に表示させるものである予測時間表示装置である。
【００２８】
思考部とインタフェース部を切り分けたので、思考部設計者はインタフェース部等の設計にわずらわされることなく思考部の開発に専念できる。本発明によれば、コンピュータの思考時間を適切に予測して、より快適にゲームを楽しむことができる。
【００２９】
請求項６の発明は、請求項５に記載の予測時間表示装置において、前記思考予測手数評価部は、さらに次式
0003909736.tif 000003
をそれぞれ求め、
前記手数の進行度合いと予測時間の進行度合いとを比較して、これらが不一致になって、前記一手思考の予測時間が実際の実行時間との間で差異が生じたとき、式（１）に代えて予測時間を補正する次の式
( 思考の経過時間/ 現在の探索手数) ×( 探索総手数)
から求めたものを一手思考の予測時間として出力するものである
予測時間表示装置。
【００３０】
請求項７の発明は、コンピュータ対人間が交互に手を進める将棋等の対戦型思考ゲームにおいて、コンピュータが思考を開始する際に、次の一手のためにコンピュータが思考に要するであろう予測時間を次式
( 一手思考の予測時間)=( 探索総手数) ×( 一着手あたりの平均時間)
(1) から求める機能と、コンピュータが思考を開始してからの経過時間または前記予測時間に対する残り時間を次式
( 残り時間) ＝( 一手思考の予測時間) −( 経過時間)
から求める機能と、
0003909736.tif 000004
を求める機能と、
0003909736.tif 000005
を求める機能と、前記手数の進行度合いと予測時間の進行度合いとを比較して、これらが不一致になって、前記一手思考の予測時間が実際の実行時間との間で差異が生じたとき、式（１）に代えて、次の一手のためにコンピュータが思考に要するであろう予測時間を次式
( 思考の経過時間/ 現在の探索手数) ×( 探索総手数)
から求める機能と、
前記予測時間、経過時間または残り時間を直感的に判断できる形でリアルタイム表示させる機能と
をコンピュータに実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体である。
【００３１】
ここで、探索総手数は、Σｎi （ｎは着手数、ｉは先読み深さ）、一着手あたりの平均時間は、過去の複数着手に要した実績時間から求めた平均時間、経過時間は、一手思考開始から現在までの経過時間である。
本発明を実施例に対応する図１を用いて説明すると、対局開始時にはその対局の初期条件に関する全ての情報（初期盤面状態、それぞれの対局者の手番、持ち時間、コンピュータ側の強さ（難易度）の設定等）がインタフェース部２５から思考部１１に通知され、思考部１１はそれを受けて自らの初期化を行う。人間とコンピュータ双方の着手の後には、着手の情報が伝えられ、思考部１１は内部の棋譜を更新する。
【００３２】
コンピュータの手番においてコンピュータの思考部１１を呼び出す時には、思考部１１はインタフェース部２５とは別スレッドとして呼び出され、思考部１１とインタフェース部２５が" 同時" （マルチタスク）に動作できるようにする。
【００３３】
前記呼出しには図８に示すような一般的な処理方式を採用する。例えばテレビゲーム等の画像表現を用いるプログラムは、テレビの同期信号に合わせて垂直方向の同期サイクル（Ｖブランク）に同期した約１／６０秒毎の割込み処理によりプログラムを実行する。一般的には、マルチタスクにより、モジュール毎にスレッドをもち、割込み処理時、タスクコントローラよりスレッドが呼び出される仕組みを取る。
【００３４】
図１において、インタフェース部２５は思考部１１に現局面を認識するために必要な全ての情報（盤面状態、初期盤面状態、現在までの棋譜、現在の消費時間など）と一緒に、リアルタイムで情報をやりとりするためのパケット２１のアドレスを通知する。インタフェース部２５はこの時に思考部１１の動作をなるべく妨げないように必要最小限の動作しか行わないように設計する必要がある。そして、対局終了時には対局結果等が思考部１１に通知され、思考部１１はこれを受けて自らの終了処理を行う。
【００３５】
インタフェース部２５は、思考を促すために思考部１１を呼び出した後、思考部１１と" 同時" に動作しながら、パケット２１に思考部１１が書き込んだ情報をもとに、思考部１１の思考時間の予測値と進行状況を表示し続け、最後に思考完了時に思考部１１が決定した着手を受け取り、その表示と盤面の更新を行う。
【００３６】
上述の思考部１１とインタフェース部２５を切り分けた手法により、思考部設計者はインタフェース部２５等の設計にわずらわされることなく思考部１１の開発に専念できる。しかるに、与えられた任意の局面に対して思考部１１の思考時間を予測することや、リアルタイムにその予測を修正することは、思考部１１の設計の複雑さと比例して困難となることが予想される。よって、思考部開発作業には、今までと同様の思考部１１のチューニング作業の終了後、思考時間予測のための統計作業や実装作業という新たなフェーズが付け加えられることとなる。
【００３７】
また、思考時間予測の精度は思考部設計者に完全に委ねられるため、著しく予測精度の悪い思考部１１の場合、返って人間側のストレスの原因ともなりかねない。これらの困難さと注意点を認識した上で設計に当たれば予測精度は向上すると考えられる。
【００３８】
【発明の実施の形態】
以下に本発明の実施の形態について説明する。図１は、予測時間表示装置のブロック図を示し、主に思考部１１、パケット２１、インタフェース部２５から構成され、これらはプログラムによって各機能が実現されるものである。ここでは予測時間を表示させるために、コンピュータ対人間の対戦を実現する対戦型思考ゲームの機能を整理して、インタフェース部２５と思考部１１とをプログラム上明確に切り分けてある。
【００３９】
思考部１１は、インタフェース部２５からパケット２１を介して通知された情報を基に思考等の動作を開始し、結果をパケット２１を介してインタフェース部２５に通知する。思考部１１は、ここではフェーズ(I) １３とフェーズ(II)１４とを有する最も古典的な手法を採用している。思考予測手数評価部１５はコンピュータの一手に要する時間を予測するための探索総手数計算部１６を有する。フェーズ(II)１４で求めた結果は思考予測手数評価部１５に渡される。
【００４０】
前記フェーズ(I) １３は、定石（定跡）等のデータベースの検索で、この検索がヒットすればフェーズ(II)１４に移ることなく着手を決定する。なお、ゲームにより差はあるが、手法は対局開始時から数十手までは一般的に単純な局面配置のため、この手法が有効利用される。
【００４１】
前記フェーズ(II)１４は合法着手の評価、現在の探索手数を求める。ここで合法着手とは、ゲームのルールに基づきその局面において打つことが可能な全ての候補手数のうち、コンピュータが評価可能な手数のことである。与えられた局面からあらゆる合法着手を評価していく。任意の着手により更新された局面に対して同様の評価を行い、以下予め定めた深さまで評価する。最終的に、初期の与えられた局面において最高の評価を下された着手を選択することになる。
【００４２】
この手法では、フェーズ(I) １３にて終了した場合は極めて短時間に思考を終了することが出来るため、思考時間予測は行わない。フェーズ(II)１４においては、
▲１▼１局面の一着手を評価するのにかかる時間をまず計測し（この計測は対局開始の初期化時に予め行っておいてもよい。）、
▲２▼次に、予測される評価数を計算してそれを乗ずることにより行う。評価数の計算は与えられた局面の「合法着手数」と予め定めた「先読みの深さ」、理論的な「枝刈効率の予測値」等からおおまかに計算することが出来る。ここで枝刈効率とは、採用する探索効率化アルゴリズムに依存する効率化の期待値である。
【００４３】
多くの思考部１１は、上述した古典手法の変形である。これらの手法はフェーズ(II)１４が極めて複雑であり、予め評価数を予測することが極めて困難である場合がある。その場合でも、最終的にチューニングされた思考部１１を予め動作させて統計をとることで、与えられた局面からおおまかな評価数を算出することは可能である。
【００４４】
また、思考部１１によっては、フェーズ（III ）以降としてフェーズ(II)１４とは別の評価を行ってそれらの総合評価を行う場合もあるが、それらの場合も各フェーズの１評価当たりにかかる時間を初期化時などに予め測定しておくか、統計により、フェーズ(II)１４とそれ以降のフェーズの実行速度の比率等を算出しておけば予測可能である。
【００４５】
パケット２１は、インタフェース部２５と思考部１１の双方から読み書きできるリアルタイム情報用の共有メモリとして機能する。インタフェース部２５からパケット２１は、思考を開始してからの経過時間がミリ秒単位（実際の分解能はハードウエアやＯＳ等に依存する）で通知され、思考部１１からインタフェース部２５へは思考完了予測時間が秒単位で通知される。また、思考部１１に対する人間の中断要求や、思考部１１が現在最善手とみなしている着手などリアルタイム性を要求される情報がこのパケット２１を通じてやり取りされる。パケット２１は、思考主体部１２でコンピュータが思考した結果等を格納する思考結果格納部２２、局面の盤面情報を格納する盤面情報格納部２３、および予測時間の計算に必要な探索情報を格納する探索情報格納部２４を有する。
【００４６】
パケット２１から思考部１１の思考主体部１２へは盤面情報１８が供給され、思考主体部１２からパケット２１へは思考結果１７が送られる。また思考部１１の思考予測手数評価部１５からパケット２１へは手数の進行度合い（＝現在の探索手数／探索総手数）が供給され、パケット２１から思考予測手数評価部１５へは盤面情報２０が送られる。
【００４７】
また、インタフェース部２５は、人間の着手の入力や盤の表示等を受け持ち、それらの情報を思考部１１に通知する。インタフェース部２５は、初期盤面状態，対局者の手番，持ち時間，現在の消費時間，現在の盤面状態，対局開始から現在までの情報（履歴），コンピュータの強さ等を記憶する盤面情報記憶部２８、人間からの入力を処理する入力情報処理部２９、盤面表示，予測時間表示を表示するディスプレイ３２を制御する映像表示制御部３０を有する。
【００４８】
インタフェース部２５の盤面情報記憶部２８からパケット２１の盤面情報格納部２３に盤面情報・探索情報２６が格納される。逆にパケット２１からインタフェース部２５の盤面情報記憶部２８に思考結果２７が加えられる。入力部（コントローラまたはキーボード及びマウス）３１の情報はインタフェース部２５の入力情報処理部２９に加えられる。インタフェース部２５の映像表示制御部３０からディスプレイ３２に盤面表示、予測時間表示信号が加えられる。
【００４９】
なお、インタフェース部２５から思考部１１を呼び出すタイミングは、概ね、対局開始時に初期化のために１回、双方の着手の後に着手を通知するために１回ずつ、コンピュータの手番の時にコンピュータに思考を促すために１回ずつ、対局終了時に終了処理を促すために１回である。
【００５０】
つぎに図２〜図５を用いて、予測時間表示装置による思考予測手数評価〜画面表示までの時系列に沿った処理形態を説明する。図２、図３は実施形態による処理形態（時系列）の前半部のシーケンス図および後半部のシーケンス図、図４の例は着手数３、先読みの深さ３の場合の予測構成を示し、（ａ）は探索の系統図、（ｂ）は時系列図である。また図５は主要項目をまとめた表図である。
【００５１】
（１）ゲーム開始（初期設定）
▲１▼インタフェース部２５から、対局の初期条件に関する全ての情報（初期盤面状態，それぞれの対局の手番，持ち時間，コンピュータの強さ等）を、パケット２１の盤面情報格納部２３へ格納する。この情報に基づいて対局が開始される。
【００５２】
（２）思考予測手数の初期設定
▲１▼盤面情報格納部２３に格納した盤面情報２０のうちの局面を思考部１１の思考予測手数評価部１５へ読み込む。
▲２▼思考予測手数評価部１５の探索総手数計算部１６は、前記局面においてゲームルールに基づき評価可能な「着手数」を求める。「着手数」は、図４の例ではいずれの局面においても一律に３個としてある。
【００５３】
▲３▼盤面情報格納部２３に格納した盤面情報２０のうちのコンピュータの強さを思考予測手数評価部１５へ読み込む。コンピュータの強さは先読みの深さに対応する。
▲４▼思考予測手数評価部１５はコンピュータの強さより予め定めた「先読みの深さ」より先読みの着手数（探索総手数）を求める。先読みの深さは、図４の例では３である。
▲５▼思考予測手数評価部１５は、「着手数」＝ｎ、「先読みの深さ」＝ｉとすると、「探索総手数」を次式にしたがって求める。
【００５４】
Σｎi ＝「探索総手数」（ｉ＝１、２、…）
図４の例では、先読みの深さは３であるから、
「３1 」＋「３2 」＋「３3 」＝「３９」
となる。
▲６▼思考部１１の探索総手数計算部１６で求めた「探索総手数」をパケット２１の盤面情報格納部２３に格納する。図４の例では、探索総手数「３９」を盤面情報格納部に格納する。
【００５５】
（３）思考の進行状況をパケットへ返す
▲１▼思考部１１はゲームルールに基づき思考主体部１２で思考（評価）を行う。
▲２▼思考予測手数評価部１５は、思考プログラムの現在の進行状況として探索した着手数を探索状況１９の「現在の探索手数」として、パケット２１の探索情報格納部２４に格納する。図４の例では、現在の探索手数は「３」である。
【００５６】
なお、思考部１１にて一手が確定した場合には、「完了フラグ」および「結果」を思考結果１７としてパケット２１の思考結果格納部２２に格納する。
▲３▼思考予測手数評価部１５で例えば過去１００着手を思考（評価）するのに要した実績時間から、「一着手あたりの平均時間」を求める。ここで一着手あたりの平均時間とは、一手あたりにコンピュータが要した思考の平均時間である。図４の例ではｔm で示し、ｔm ＝２秒としている（図５）。
【００５７】
思考開始後、過去１００着手未満の場合は、例えば予め定めた固定値を定数として「一着手あたりの平均時間」とする。これらの「一着手あたりの平均時間」をパケット２１の探索情報格納部２４に格納する。
▲４▼思考予測手数評価部１５は、一手思考するのに要している一手思考開始から現在までの経過時間を「経過時間」として探索情報格納部２４に格納する。この経過時間は、図４の例ではＴで示し、Ｔ＝４５秒としている（図５）。
【００５８】
（４）思考予測時間の算出
▲１▼パケット２１の探索情報格納部２４より思考部１１に「探索総手数」、
「一着手あたりの平均時間」、「現在の探索手数」を読み込む。図４の例では、それぞれ「３９」、「２秒」、「１５」を読み込む。
▲２▼思考予測手数評価部１５の探索総手数計算部１６は、一手思考するのに要するであろう予測時間を次式により求める。
【００５９】
「探索総手数」×「一着手あたりの平均時間」＝「一手思考の予測時間」 (1)
図４の例では
「３９」×「２秒」＝「７８秒」＝「１分１８秒」
となる。
▲３▼思考予測手数評価部１５は、「一手思考の予測時間」をパケット２１の探索情報格納部２４に格納する。図４の例では「１分１８秒」を格納する。
【００６０】
（５）思考予測時間の画面表示
▲１▼インタフェース部２５は、パケット２１の探索情報格納部２４より「一手思考の予測時間」、「経過時間」を思考結果２７として盤面情報記憶部２８に読み込む。図４の例では「１分１８秒」、「４５秒」を読み込む。
▲２▼「一手思考の予測時間」、「経過時間」を映像表示制御部３０に送って、ディスプレイ３２に思考予測時間の画面表示を行う。図４の例では、コンピュータの一手思考の予測時間が「１分１８秒」であり、思考を開始してからの経過時間が「４５秒」であることがディスプレイ３２に直感的に判断できる形で表示される。
【００６１】
（６）一手終了確認
▲１▼インタフェース部２５はパケット２１の思考結果格納部２２より「完了フラグ」を読み込む。
▲２▼「完了フラグ」が立っていない場合は、思考中であることから（３）▲１▼へ戻る。
【００６２】
（７）一手思考完了処理
▲１▼パケット２１の思考結果格納部２２よりインタフェース部２５は「思考結果２７」を読み込む。
▲２▼盤面情報記憶部２８に記憶されている更新盤面を映像表示制御部３０に送って、盤面を更新しディスプレイ３２に表示する。
▲３▼インタフェース部２５で「完了フラグ」をクリアし、これを盤面情報・探索情報２６としてパケット２１の盤面情報格納部２３に格納する。
【００６３】
▲４▼インタフェース部２５で更新した対局情報を盤面情報・探索情報２６として盤面情報格納部２３に格納する。
▲５▼人間が次の一手を指すまでループする。すなわち入力部３から、インタフェース部２５の入力情報処理部２９に入力されるまで待機する。
▲６▼更新した対局情報を盤面情報・探索情報２６として盤面情報格納部２３に格納する。
【００６４】
▲７▼インタフェース部２５は、ゲーム終了か否かチェックし、終了でない場合は（２）▲１▼へ戻る。
▲８▼終了であればゲームを終わる。
【００６５】
ところで、上記実施の形態で取り上げた「一手思考の予測時間」の算出原理は、過去１００着手における実績をベースとし「一着手あたりの平均時間」を求めていること、さらに「探索総手数」はコンピュータの先読みの深さを単純に基本（現状）の盤面の着手数との積により求めていることから、実際との実行時間との差異が生じる。このため予測時間の補正が必要となる。以下に補正の一例を挙げる。
【００６６】
図５の（３）▲２▼で求めた「現在の探索手数」を利用し、
0003909736.tif 000006
図４の例では
（「１５」／「３９」）×１００＝３８．５％
となる。
【００６７】
0003909736.tif 000007
図４の例では、
（「４５秒」／「７８秒」）×１００＝５７．７％
となる。
【００６８】
式（２）と式（３）の結果を比較する。その結果、
ケース１：
予測時間の進行度合いが手数の進行度合いより大きい場合（図４の例）
当初見込んだ「一手思考の予測時間」では、思考が完了しない恐れがあるため、「一手思考の予測時間」を次式（４）で見直す。
【００６９】
0003909736.tif 000008
(4)
図４の例では、
（「４５秒」／「１５」）×「３９」＝１１７秒（＝１分５７秒）
となる。
【００７０】
ケース２：
予測時間の進行度合いが手数の進行度合いより小さい場合
当初見込んだ「一手思考の予測時間」以内で、思考が完了する恐れがあるため、「一手思考の予測時間」を見直す。式は、式３と同じ。
【００７１】
ケース３：
ケース１、２に該当しない場合
見直しの必要はなし。
【００７２】
上述した各ケースに応じて必要であれば全体の予測値を計算し直して、その補正した予測時間をディスプレイ３２に表示させる。
【００７３】
上述したディスプレイ３２の思考予測時間は、この例では次のように表示する。
「一手思考の予測時間」＝１：５７（１分５７秒）
「経過時間」＝０：４５（０分４５秒）
また、ディスプレイ画面表示例を図６に示す。図中、「あと１：１２」は残り思考予測時間を意味し、算出方法はつぎの通りである。
【００７４】
残り＝「一手思考の予測時間」−「経過時間」
図４の例では
７２秒（１分１２秒）＝「１１７秒」−「４５秒」
である。
【００７５】
画面表示例のように、アナログ表示またはデジタル表示を行う。アナログ表示（棒状や円状）では視覚的に半分（５０％）は終了したことが瞬時に把握でき、デジタル表示は具体的な残時間が「あと１分１２秒」であると判断できる。表現方法はこれらに限定されるものではなく、この他にもビジュアル的に多々可能である。
【００７６】
以上述べたように本実施の形態によれば、コンピュータが思考を開始する際につぎの着手のためにどの程度の思考時間を費やすかを予測し、思考過程において全体のどの程度の割合の演算を完了したかをリアルタイムに表示することができる。この場合、思考開始時点において正確な思考時間を計算することは非常に困難であるから、初期の予測値はおおまかな値とし、思考過程において予測値を補正しながら表示する。
【００７７】
コンピュータが、あとどの程度考えるかがディスプレイに直感的に理解できるように表示されるので、コンピュータの思考時間の体感上の長さを短くすることができる。また、予測時間が把握できることにより、人間側がその間に他の用事を済ませる等の行動が取り易くなる。従って、この予測時間表示機能を対戦型ゲームソフトに搭載することにより、アマチュア高段者が、より強力ではあるが、それほど速くもないコンピュータの思考部１１と対戦しやすい状況を喚起することが出来るようになる。
【００７８】
なお、上述した実施の形態では、２つのフェーズをもつ思考部という最も古典的な手法を採用したが、その他、ニューロネット等を使用した特殊な思考部も考えられ、それらも予め実行時間の統計を取っておくことにより、予測可能である。また、思考過程で或程度区切りがよくなった段階で改めて全体の予測値を計算し直して調整を繰り返せば、さほどの狂いなく予測表示を行うことが可能であると考えられる。
【００７９】
【発明の効果】
本発明によれば、コンピュータのつぎの一手に要する予測時間が把握できるので、予測時間が把握できないものに比べて、より快適にゲームを楽しむことができる。また、思考開始時点において正確な思考時間を予測することは非常に困難であるが、初期の予測値はおおまかな値とし、思考過程において予測値を補正しながら表示するので、より正確な予測が行える。
【図面の簡単な説明】
【図１】実施形態による予測時間表示装置を構成する思考部、パケット、インタフェース部のブロック図である。
【図２】実施形態による処理形態（時系列）の前半部のシーケンス図である。
【図３】実施形態による処理形態（時系列）の後半部のシーケンス図である。
【図４】実施形態による着手数３、先読みの深さ３の場合の具体的な予測構成を示し、（ａ）は構成図、（ｂ）は時系列を示す図である。
【図５】図４の例の主要項目をまとめた表である。
【図６】実施形態による思考予測時間の画面表示例を示す図である。
【図７】実施形態によるシステムの概略構成図である。
【図８】基本的なプログラムの処理方式を示す説明図である。
【図９】従来のパソコンソフト（ダウンロード、インストール）とゲームソフト（思考の予測時間）の対比表である。
【符号の説明】
１１    思考部
１５    思考予測手数評価部
２１    パケット
２５    インタフェース部
３１    入力部
３２    ディスプレイ（表示部）
【図１】
0003909736.tif 000009
【図２】
0003909736.tif 000010
【図３】
0003909736.tif 000011
【図４】
0003909736.tif 000012
【図５】
0003909736.tif 000013
【図６】
0003909736.tif 000014
【図７】
0003909736.tif 000015
【図８】
0003909736.tif 000016
【図９】
0003909736.tif 000017