数値解析Ⅱ ~五目並べのプログラミング~ C班 メンバー • リーダー:松長 泰典 • プログラマー:小原 和也、薄井 健吾 • アルゴリズマー:山根 佳祐 • パワーポインター:山﨑 全紘 五目並べのルール① • 盤の目に交互に石を置いていき、先に5つの 石を一直線に並べたほうが勝ち • 先手は黒石、後手は白石 • 連珠と違って禁じ手はなし • いわゆるリーチにあたるものは、三(三連、飛 び三)、四(四連、飛び四) 五目並べのルール② 参考プログラム • 2007年度 F班 提出 • 宍戸輝光氏作成 「五目ならべゲーム」 目標 • コンピュータ先手の時の勝率UP →先手有利にも関わらず勝率低い →定石と盤面評価を上手に用いて改良 1手目について • 1手目は真ん中 →盤の中央は、全方位に偏りがなく、打ちだす 側にとって最も優位に展開しやすい場所 2手目について① • 定石を用いる →相手の手に対して浦月と花月(もしくは丘月) という3種類の定石を用いる 2手目について② • 斜めにつけてきたとき →相手の石と一直線にならないよう斜めにおく 例 浦月 2手目について③ • それ以外の時 →自分の一手目に対して斜めにつける 例 丘月 花月 3手目以降について① • 定石は存在するが、相手の手によって何通り もある • 定石では相手のトリッキーな手に翻弄されや すい →3手目以降からはいわゆる盤面評価に切り 替える 盤面評価について① • 盤面につけるのではなく、石の状態に得点を つける →自分5連>相手の5連阻止>自分4連>・・・ という順に点数をつける 盤面評価について② • しかし、この方法だと作っても防がれるだけの 三連を無駄に作ってしまう可能性大 →意味のある三連と意味のない三連を異なる 点に評価したい →現在の状況で得点を評価する静的評価では 不可能 盤面評価について③ • 次の自分の手番の状況を先読みすることが 必要となる →ミニマックス法を適用 ミニマックス法について① • 次の相手の番の局面を読むとき →次に出現するすべての局面の評価値の最小 値を局面の評価値とする • 次の自分の番の局面を読むとき →次に出現するすべての局面の評価値の最大 値を局面の評価値とする ミニマックス法について② • 例 ミニマックス法について③ • すべての局面に対してしらみつぶしに探索を 行うため探索効率が悪い →どこでも石が置ける五目並べでは膨大な計 算量となることが予想される →ミニマックス法を改善したα-β法を用いる α-β法について① • ミニマックス法において、読む必要のない(評 価しなくても支障のない)手を打ちきることで 高速化を図る α-β法について② • 例 戦略のまとめ • 1,2手目は定石を置く • 3手目以降はα-β法を用いた盤面評価を用 いる 次からは実際のプログラミングにつ いて述べる つ 作業① • Javaをインストールしたパソコンで前のプロ グラムを起動しようとした →エラー約28ほど検出 作業② • インターネットや本を駆使し、修正していった →エラーが1つになった →しかし最後の1つがあまりにも難解 →他班にも見てもらったが解決しなかった 結果 • 結果として、断念 →プログラムを作ることではなく、書き換えるこ とを意識しすぎ、泥沼にハマってしまったのが 大きな原因だった 感想 • かなりの時間を費やしたにも関わらず完成に 至らず悔しかった • コンピュータはほんの少しの誤りでも受け付 けず、使うことのむずかしさを痛感した 御清聴ありがとうございました
© Copyright 2024 ExpyDoc