狠狠撸

狠狠撸Share a Scribd company logo
本位田研(东大)-大须贺?田原研(电通大)合同
    プログラミングコンテスト: チームC発表資料
    題材: HTTP://AICHALLENGE.ORG/
        (ただし,一対一対戦に限定)
     発表時間: 5-10分程度
1




                       2012年 7月 7日
背景:様々なタスクを考慮する必要

 ?視野を広げる
 ?敵と戦う
 ?敵蟻塚を占領する
 ?餌を集める
 ?自分の蟻塚を守る

様々な目的の実現方法と,
                       2
どの蟻に割り振るかということを考える必要
方針:陣取りゲームだと考える

自陣が広ければ
? 視野を確保できる
? 餌を集めやすい
? 自分の蟻塚を守れる
? やがて敵蟻塚を占領できる



                 3
目的


1.   効率良く蟻が広がる
2.   敵陣との境界線で,
     うまく戦闘する



                 4
1. 蟻を効率良く広げる
 どの蟻がどのタイルに一番早く到達可能かを計算



                ●
広い方へ動く
            ●
                    ●

                          5
2. うまく戦闘する(1/2)
  次のターン戦闘しうる蟻をグループ化
   → 探索状態数の削減
 各グループ中の蟻に対して,min-max法




                         6
2. うまく戦闘する(2/2)
  Min-maxでは探索可能な蟻の数に限界
      → α-β法の実装
         (たいして改善しなかった...)




                            7

 ヒューリスティックによる戦闘で対応
まとめ


1.   効率良く蟻が広がる
     →広い方へ動く

2.   うまく戦闘する
     →グルーピングしてα-β

その他ヒューリスティックス
                    8
デモ(1/2)
1「蟻を効率良く広げる」実装後
http://daisy-lab.sakura.ne.jp/ants-demo/game_logs/vs_champion_0_spreading.htm

○0~50ターンあたり
 チャンピオンと比べても遜色ない速度で効率良く広がり,
 餌を集めることが出来た
×100ターン以降
 戦闘をうまく行うことが出来ず,
 徐々に自軍の数を減らされてしまった

 青: 公式チャンピオン(Xathis)のBot
https://github.com/xathis/AI-Challenge-2011-bot                         9

 赤: CチームのBot
デモ(2/2)
2「うまく戦闘する」実装後
http://daisy-lab.sakura.ne.jp/ants-demo/game_logs/vs_champion_1_battling.htm

○100-200ターン
 拡散をつづけながらも,不利な戦闘は避け,
 チャンピオンよりも自軍の数を増やすことに成功した
×   300ターンあたり
 均等に拡散する我々のBotと,
 戦闘地帯に蟻を集めるチャンピオンとの戦略の違いにより,
 不利な戦いもしくは退却を余儀なくされてしまった

青: 公式チャンピオン(Xathis)のBot                                                 10

赤: CチームのBot
補足
α-β法がうまく行かなかった理由(推測)
評価値として,「戦闘の結果による敵味方の死者数の差」を用いたが,
敵味方が賢いとすると,たいていの場合引き分け(評価値0)になると予想され
枝刈りが十分に出来なかった?



考えられる改善例
- 十分拡散した後は戦略を替える(領域境界に集まるなど?)
- 行動決定時に,明示的に仲間蟻のグルーピングを行い,
  2:1などを積極的に作りに行く
- 敵の蟻塚を攻める戦略を追加する
                                   11

More Related Content

础滨颁丑补濒濒补苍驳别発表资料