あるチェス・プログラムの研究に関する論文か記事の情報を探しています。

話に聞いただけなので、ぜひ原典にあたってみたいのです。

そのチェス・プログラムは「N手先まで、すべての手をしらみつぶしに調べる」
という超単純なアイデアです。仮に名づけるなら「N手マシン」。
たとえば最初に指せる手が20通りで、その手に対する手も20通りあるなら、
400手すべて調べるのが2手マシンです。

もちろんそんなアイデアでは、チェス自体は弱いのですが、

「N手マシンのプログラムの強さは、ただ1つのNというパラメータに依存し、
 Nが大きくなるにつれ単調に強くなる。
 だからN手マシンを、他のプログラムの強さの評価に使っていただきたい。

 たとえばあるプログラムXが8手マシンに勝ち9手マシンに負けたのなら、
 プログラムXの強さは8から9の間だ。
 このアイデアで、理論的には、どんな複雑で強力なプログラムでも、
 強さをただ1つの値で表すことができる」

と主張したとのことで、僕にはとても鮮やかに思えたのです。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Daniel No.2

回答回数23ベストアンサー獲得回数4

ポイント50pt

自分も質問にあるロジックには問題があると思います。それはN手マシンの説明に1つ重要なステップが抜けているからだと思うのですが、実際には


1. N手先までの可能な手を全て読む(calculate)

2. 読んだ結果を評価して(evaluate)一番いい手を指す


というものになるのではないでしょうか?2.のステップで使われることになるのが評価関数(evaluation function)等であるわけですが、この評価の仕方によって同じN手マシンでも強さは千差万別となりえます。そういうわけで、そもそも質問のようなロジックを用いた論文等が存在したのかどうか、それ自体がちょっと疑わしく思います。

一方でNの値を固定しておいて評価の仕方の異なるプログラムを戦わせれば、それらの相対的な強さを見ることができるでしょう。ひょっとしたらこっちのロジックのような話ではないか、という気がするのですが…。

参考urlの19ページから始まる”Optimizing a Chess Engine with EA-Techniques”という論文は1.2.のステップがあるという枠組みを前提として、2.の評価の方法の異なるプログラム同士を戦わせ、強いプログラムはそのままに、弱いプログラムは変化させてゆき、さらに強いプログラムに進化させていこうというもののようです。ただ、プログラム同士の相性が勝敗に影響してくるために、「強さをただ1つの値で表すことができる」かということはこっちの話でも重要です。この論文では人間のチェスの試合でも使われるレーティング方式を流用してプログラムの強さを決めているようです。

id:lionfan

ありがとうございます。とても参考になりました。

僕がこのアイデアに感心したのは、

 「強いプログラムを作る」のではなく、

 「他の指標となるようなプログラムを作る」という発想にあります。

ですから、そのようなアイデアを最初に提案した論文に興味があります。

もしチェス界では非常に有名で、研究者ならだれでも知っているような論文や学者でしたら、知りたかったのです。

2005/05/08 14:33:37

その他の回答1件)

id:YasudaS No.1

回答回数351ベストアンサー獲得回数5

ポイント50pt

http://cwww.fun.ac.jp/cgi-bin/staff/staff.cgi?name=hitoshimatsub...

公立はこだて未来大学 - 教員・研究紹介

あいにくと、直な情報ではありません。

この手のことは、松原先生なら知っているかもしれません。

ただし、この理屈に大きな弱点があります。


N手先をどう評価するかという、評価関数が問題になります。この評価関数の出来によっては、9手マシンに勝ち、8手マシンに負けるというプログラムがありえます。

http://ja.wikipedia.org/wiki/評価関数:detail]

逆に評価関数が完璧ならば、手を読む必要がないわけです。

id:lionfan

ありがとうございました。

はてなでどうしても解決しなかった場合、

恐れながら松原先生に伺うかもしれません。

質問は継続させて頂きます。

2005/05/08 09:55:25
id:Daniel No.2

回答回数23ベストアンサー獲得回数4ここでベストアンサー

ポイント50pt

自分も質問にあるロジックには問題があると思います。それはN手マシンの説明に1つ重要なステップが抜けているからだと思うのですが、実際には


1. N手先までの可能な手を全て読む(calculate)

2. 読んだ結果を評価して(evaluate)一番いい手を指す


というものになるのではないでしょうか?2.のステップで使われることになるのが評価関数(evaluation function)等であるわけですが、この評価の仕方によって同じN手マシンでも強さは千差万別となりえます。そういうわけで、そもそも質問のようなロジックを用いた論文等が存在したのかどうか、それ自体がちょっと疑わしく思います。

一方でNの値を固定しておいて評価の仕方の異なるプログラムを戦わせれば、それらの相対的な強さを見ることができるでしょう。ひょっとしたらこっちのロジックのような話ではないか、という気がするのですが…。

参考urlの19ページから始まる”Optimizing a Chess Engine with EA-Techniques”という論文は1.2.のステップがあるという枠組みを前提として、2.の評価の方法の異なるプログラム同士を戦わせ、強いプログラムはそのままに、弱いプログラムは変化させてゆき、さらに強いプログラムに進化させていこうというもののようです。ただ、プログラム同士の相性が勝敗に影響してくるために、「強さをただ1つの値で表すことができる」かということはこっちの話でも重要です。この論文では人間のチェスの試合でも使われるレーティング方式を流用してプログラムの強さを決めているようです。

id:lionfan

ありがとうございます。とても参考になりました。

僕がこのアイデアに感心したのは、

 「強いプログラムを作る」のではなく、

 「他の指標となるようなプログラムを作る」という発想にあります。

ですから、そのようなアイデアを最初に提案した論文に興味があります。

もしチェス界では非常に有名で、研究者ならだれでも知っているような論文や学者でしたら、知りたかったのです。

2005/05/08 14:33:37

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません