!!!結果 !!対戦結果 {{ref_image Result_GAT2016.png}} !!ログ {{ref Log_GAT2016.zip}} !!100試合対戦結果 {{ref_image GAT2016_100_result.png}} !!100試合対戦ログ {{ref GAT2016_100_log_1.zip}}{{br}} 混乱の試合結果についてはおって更新いたします。 !!!大会参加プログラム !!歩 - 大渡 勝己 ::プログラム紹介文 モンテカルロ木探索によって着手を決定します。{{br}} 第2回UEC杯バージョンからバグを修正し、{{br}} 方策関数の評価要素と先読み中の候補着手を調整しました。 ::実行ファイル *{{ref 1_AyumuGAT1_160306added.zip}} //::ソースファイル !!DIS (Deep Imitation System) - 益子 直 ::プログラム紹介文 深層学習モデルを用いてショットを決定します。{{br}} モデルの学習データにはGCCSのショットを用いました。 ::実行ファイル *{{ref 2_DIS.zip}} **実行にはVisual Studio 2015のインストールが必要です。 //::ソースファイル !!CSACE - 城戸 皓己 ::プログラム紹介文 「Introduction to Curling Strategy」に基づいて{{br}} エンドプランというエンドの目標を8つ設定している。点差・先攻後攻・エンド数によって{{br}} エンドプランを変更する。エンドプランごとに異なるショットの生成するようになっている。{{br}} 第1回UEC杯デジタルカーリング大会優勝プログラム「歩」の候補手部分に{{br}} 1〜8投までエンドプランで作成される候補手を適用した。 ::実行ファイル *{{ref 3_CSACE.zip}} //::ソースファイル !!GCCS - 森 健太郎 ::プログラム紹介文 第1回UEC杯優勝プログラムである歩に対し、序盤において 戦略書「Introduction to Curling Strategy」に基づく知識ベースのショット選択を導入しています。 ::実行ファイル *{{ref 4_GCCS_GAT.zip}} //::ソースファイル !!じりつくん - 加藤 修 ::プログラム紹介文 投球目標座標と回転方向を候補手,盤面状態をノードとし,Minimax法をベースとして不確実性を考慮した深さ2のゲーム木探索を行う.{{br}} 投球目標座標はドローを想定してプレイエリア内の座標を一定間隔で離散化したものと,テイクアウトを想定してプレイエリア遠方の座標を横一列に一定間隔で離散化したものの2種類をからなり,合計3000以上の候補手を生成する.{{br}} また,末端ノードの評価を行う局面評価関数は,「得点差」「残りエンド数」「自分の手番」の3要素からなる勝率テーブルと,盤上のストーン配置を評価する関数の二つから構成されている. ::実行ファイル *{{ref 5_Jiritsu-kun.zip}} **実行にはVisual Studio 2015のインストールが必要です。 //::ソースファイル !!混乱 - Sebastian Backstad ::プログラム紹介文 A simple recursive simulation strategy is used to find the highest scoring move. ::実行ファイル *{{ref 6_混乱.zip}} //::ソースファイル !!SUC-Ks - 北橋尚浩 ::プログラム紹介文 先攻では,序盤はフリーガードゾーンを狙い,中盤は相手のストーンを減らすショットを狙い,終盤はハウス中心付近を狙います.{{br}} 後攻では,序盤と終盤は基本的に先攻と同じ考えで,中盤のみハウス中心付近を狙います. ::実行ファイル *{{ref 7_SUC-Ks.zip}} //::ソースファイル !!!概要 !!はじめに ::GAT(Game AI Tournament @UEC)とは GATは、電気通信大学エンターテイメントと認知科学研究ステーションを主体とするゲームAIを題材とした学術的目的の総合コンペティションです。{{br}}  詳細は[公式サイト|http://minerva.cs.uec.ac.jp/gat_uec/wiki.cgi]にてご確認ください。 ::レギュレーションについて       本大会では、UEC杯からレギュレーションの一部を変更しています。主な変更点は以下、<<赤字>>で強調して記載しています。 *'''参加プログラム一覧を追加いたしました。(2016/02/29) - new!!''' *<<相手番での資源消費に関するレギュレーションを追加しました。(2016/02/28) - new!!>> *'''ポスター発表の申し込み締め切りが2月25日まで、懇親会申し込みが27日までに変更となりました。(2016/02/21) - new!!''' *<<シミュレータのバージョンが変更となりました。(2016/02/20) - new!!>> *'''ポスター発表についての記述を追加いたしました。(2016/2/6) - new!!''' *<<懇親会についての記述を追加いたしました。(2016/01/31) - new!!>> *'''プログラムに関するレギュレーションを追加しました。(2016/01/10)''' !!1.日程{{br}} *2016年3月9日(水曜日)午後〜{{br}} *タイムテーブル **13:00-16:00 ゲームAIトーナメント **16:30-17:30 ポスター発表(ゲームAI大会のみ参加者用) **18:00- 懇親会 !!2.場所{{br}} *電気通信大学 東地区B棟101{{br}} !!3.参加資格{{br}} *デジタルカーリングAIのプログラムで、公式クライアントを介して対戦が可能であること。{{br}} *終了後参加したプログラムのバイナリ、ソースコードを公開できること。{{br}} ※当日会場に来れない方はメールでプログラムのみを送っていただくことでも参加が可能です。{{br}} !!4.大会レギュレーション{{br}} ::大会形式 *16投を1エンドとし、<<8エンド>>の総得点で勝敗を決める。{{br}} *8エンドの総得点が同じ場合には延長戦を行う。{{br}} *6チーム以内ならば総当たり戦を行う予定。(7チーム以上の場合はスイス式トーナメントへ変更する可能性があります。){{br}} ::延長戦について *8エンドの総得点が同じ場合は延長戦(エクストラエンド)を行う。 *延長戦は以下の設定で新しいゲームとして行ないます。 **エンド数: 1エンド(16投) **持ち時間: 28秒 **先手後手: 最終エンドで得点したほうを先手とする。 ::プログラムについて<<(2016/01/10追加)>> *<>、これを超える大きさのショットは無効とする。(y < -33.7419 の場合はx=0.0000, y=0.0000, angle=0のショットとして扱われる) **'''乱数をかける前のベクトルの大きさをチェックします。'''乱数の仕様上、実際のショット(RUNSHOT)の値はこの上限を超えることがあります。 **x成分の大きさのチェックは行いません。 *<<自分の手番でないときに資源を消費する行為の禁止>>==メッセージ受信の際は1ループ毎に100[ミリ秒]のスリープを入れること。== **ダウンロードで配布しているサンプルプログラムは、main関数内のループにより自分の手番でないときに資源を消費してしまいます。 **サンプルプログラムをベースにAIを開発されている方は、例えば次のようにmain関数を変更するようお願い致します。 // main関数の変更例 void main() { char Message[1024]; DWORD dwThreadId; DWORD NumberOfBytesWritten; // 関数の読み込み if (LoadFunction() != TRUE) { return; } // スレッドの作成はせずに、main関数内で受信する //CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ReceiveCUIThread, NULL, 0, &dwThreadId); // コマンド受信 while (1) { memset(Message, 0x00, sizeof(Message)); Recv(Message, sizeof(Message)); DoCommand(Message); } return; } !!5.持ち時間{{br}} *<<219秒>>{{br}} !!6.表彰{{br}} *上位1位〜3位を表彰します。{{br}} !!7.シミュレータ{{br}} *大会で使用するサーバーのシミュレータの<<バージョンはVer.2.3>>とする。[[ダウンロードはこちら|ダウンロード]]{{br}} *Ver.2.xxの変更点{{br}} **ホッグラインに到達していないストーンが次のショットの処理開始までゲームから除外されないバグを修正しました。 **乱数の初期化に関するバグを修正しました。 **SimulationEx関数の乱数をGAT仕様に変更しました。 **Ver.2.xxでのプレイエリアのホッグラインに関する記述の誤りを修正しました。 **乱数のx軸成分を半分にしました。(正規乱数のσをσ/2へ変更) **フレームレートを600f → 1000fに変更しました。 **乱数のy軸成分を倍にしました。(正規乱数のσを2σへ変更) **一部の変数が初期化されていないバグを修正しました。(Simulation関数内のShotPos.angle, TeePos.angleおよびbFreeGuard) *Ver.2.3の変更点 **内部で持っている情報と描画のずれが生じるバグを修正しました. **フリーガードゾーンのティーライン側の処理を変更しました.(ラインにかぶっているストーンはフリーガードゾーン外とする) !!8.乱数{{br}} *乱数には[正規乱数|http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83]を使用し、<>とする。(クライアント上の乱数の設定は0.145となります。){{br}} !!9.大会で使用する計算機のスペック{{br}} *オペレーティングシステム:Windows 7 Professional 64 ビット{{br}} *プロセッサ:Intel(R) Core i7-6700K @ 4.00GHz (8Cores){{br}} *メモリ:16GB RAM (DDR4 2133MHz){{br}}\ *<<変更となりました(2015/12/17)>> !!10.参加申し込み方法、及び問い合わせ先(主催){{br}} *dcurling.mori@gmail.com まで、以下の必要事項をご記入の上、'''10日前(2月28日)までに'''、メールでお申し込みください。{{br}} *プログラムはこちらで動作確認をしますので'''大会の7日前までに'''必ずメールで送ってください。{{br}} *現時点で大会参加予定の方はなるべく早めに申し込みをお願いします。 (申し込み時にプログラムが完成していなくても構いません){{br}} *<<大会参加者(当日会場に来られる方)は懇親会への申し込みをお願いいたします。(必須)>> 懇親会申し込みは[こちら|https://jp.surveymonkey.com/r/B8KPTVQ](2016/02/27まで。[懇親会詳細|http://minerva.cs.uec.ac.jp/gat_uec/wiki.cgi#p9]){{br}} *'''GATではポスター発表も募集しています'''([詳細|http://minerva.cs.uec.ac.jp/gat_uec/wiki.cgi#p8])。学生の発表者は懇親会費が無料となります。奮ってご発表ください。 {{br}}  大会全般のお問い合わせもdcurling.mori@gmail.comでお受けします。 {{br}}  主催:電気通信大学 エンターテイメントと認知科学研究ステーション {{br}} !!<申し込みフォーム>{{br}}   以下の参加フォームにご記入の上、メールでお申し込み下さい。{{br}} (1)参加プログラム名 (2)参加代表者の氏名 (3)参加代表者のメールアドレス (4)その他、連絡事項(当日会場に来られない方は「プログラムのみの参加」とご記入ください) (5)プログラム指し手決定方法などプログラムの特徴に関する簡単な紹介文