THE じゃんけん *メンバー* 酒井 史彦(リーダー、アルゴリズム係) 井沢 賢(広報、プレイヤー) 天野 峻介(プログラマー) 謙 優希(パワーポイント係) 小林 勇介(アルゴリズム係) 目次 • コンピューターにとっての勝ち負け • 戦略の強化1 • 戦略の強化2 • 戦略の強化3 • 問題点 • 最後に Computerにとっての勝ち負け Man グー 0 チョキ 1 パー 2 Computer グー 0 チョキ 1 パー 2 ○ × ○ × ○ × グー、チョキ、パーをそれぞれ0,1,2で表し、コン ピュータと人間の手を作ると上の表のようになる 戦略の強化1 • コンピュータと人間が前の手で何を出したか、 そしてどちらが勝ったかのデータを蓄積させ、 どの局面で何を出すのが最も勝つ確率が高 いかを選ぶアルゴリズムをつくりました。 戦略の強化1の戦略テーブル man グー M チョキ パー グー 2 1 4 チョキ 5 2 1 パー 1 3 1 人間が1つ前に出した手をM,いま出した手をmanとす るときに上の表のような戦略テーブルの table[M][man]の内容を+1とする。これをじゃんけ んをする度に行なっていく。例えば上の表のような戦 略テーブルが作られたとすると… 戦略の強化1 • コンピュータはこの表を見ながら、相手は グーの後にパー、チョキのあとにグー、パー の後にチョキを出しやすいことがわかる。した がって相手の前の手がグーなら、今回パーを 出す可能性が高いのだから、コンピュータは チョキを出せば勝てる可能性が高いことにな る。 –ただこれではあま りにも単純なので、 次のような三次元 の戦略テーブルを 考えました。 戦略の強化2の戦略テーブル • • 一つ前のコンピュータの手をC、人間の手をM、今出したコンピュータの手を computerとする。 たとえば、一つ前のコンピュータの手がグー、人間の手がパーで、今コン ピュータがパーを出して勝った場合table[グー][パー][パー]の内容を+1、 負けた場合は-1、引き分けの場合はパーに勝てるチョキの位置を table[グー][パー][チョキ]の内容を+1する。 戦略の強化2 • これを繰り返すことで一つ前の局面C,Mに対 し、コンピュータが今回出した手で勝ったか負 けたかのデータが蓄積されていく。従って、コ ンピュータは1つ前の局面C,Mに対し、最も 勝つ確率の高い手をテーブルから選べばよ い。 問題点 • 戦略1,2の場合コンピュータは一定のアルゴ リズムの範囲でしか出せないので、人間がそ のアルゴリズムに気づいてしまうとコンピュー タの勝率は下がってしまう。 戦略の強化3 そこでコンピュータのアルゴリズムを複雑にす れば、人間が瞬時にコンピュータのアルゴリ ズムを推測できなくなるだろうと考え、強化1, 2を参考にしてコンピュータの二手前と人間 の二手前までを考慮したプログラムを作ろう としました。 考察 ここで戦略3の問題点として初期段階では統計情報 が不足していることがあげられる。その解決策とし て、今までに出現していない組み合わせの時は戦 略の強化2を適用し、強化2でも出現していない組 み合わせの時は、強化1を適用すると、コンピュータ の勝率はあがると考えました。 • 戦略の強化1,2は河西朝雄著 技術評論社 「javaによるはじめてのアルゴリズム入門」を 参考にしました。それを基に強化3のソースプ ログラムをつくりました。 • 強化1、2をコンパイルして実行することがで きませんでした‥強化3も強化1,2を参考に していたため実行できていません。そこで強 化2と同じアルゴリズムを持つプログラムをサ イトから見つけたので、対戦してみました。 強化2との対戦してみました • コンピュータのアルゴリズムを知っている人 小林 60戦42勝(70%) • コンピュータのアルゴリズムを知らない人 Aさん 100戦43勝(43%) Bさん 100戦52勝(52%)
© Copyright 2024 ExpyDoc