ウディタAI企画3に参加してきました

「ウディタAI企画」という、ある決められたルールに対して強いルーチンを作る催しに参加してきました。

概要

ウディタAI企画3特設サイト

主催はtohさん。数学とプログラミングに強い人の印象があります。AI企画に関しても、破綻しないルールを作ってAIを集めて配信するという難しいことを一人でやってしまうすごい人です。

タイトルに「3」とつきますので、第三回のようです。一回目は知りませんが、二回目は「数字と演算子が交互に書かれたマスを進んで解を10にする」という難しそうなお題でした。

今回私が参加したのは4人対戦のカードゲーム風。詳しくは上の特設サイトにありますが、+1~+10、-1~-5のカードで自由に20枚のデッキを作り、指示された順位になるように手持ちのカードを出していくゲームです。

screenshot_2016_1031_18_26_07

ルールの確認

ルールを読んだり実際に動かしてみると、いくつかの攻略を思いつきました。

  1. 指定された順位を獲得し、その利益を最大化
  2. 指定された順位をあえて取らせ、相手の損失を最大化
  3. ドローのときの損失を最小化

1は自分の得点に直接関係してくるので重要。2は相手を確定できないので、あまり重要じゃない気がする(たぶん)。3は直感的にわかりづらいです。ちょっと計算してみました。

ドローの確率を計算

組み合わせとか確率とか苦手なので間違ってるかもしれませんが、計算したら以下になりました。

  1. 7.14%
  2. 14.25%
  3. 14.25%
  4. 7.14%

2016/11/04追記

Excel先生によると、正しくは

  1. 12.9%
  2. 24.5%
  3. 24.5%
  4. 12.9%

だったようです。

すべてがランダムのときに以上の確率なので、自分以外の頭脳明晰な方々が戦術を考えたときには似たような出し方になるのでドローが頻発するんじゃないだろうか?と考えました。

以上を踏まえて、私の戦術

ほんと申し訳ないです、こんなので。カードを選ぶ処理は実質1行、デッキ選択も2行で済んでます。-1を10枚と+1を10枚をデッキにし、場から何かを読むわけでもなくひたすら手札をランダムで「愚直」に出し続けるだけの処理です。AI企画なのに、このコードからはインテリジェンスは読み取れません。

ただひたすらドローの損失を避ける、かつ対戦相手に手札を読む処理があった場合に備えて-1と+1を同数ランダム(損失は同じなので)に出すだけなので、相手次第ではボロボロに負けます。指定の順位が「1」だった場合、「指定された順位をあえて取らせ、相手の損失を最大化」をするAIが対戦相手だった場合は一気にマイナスになります。

ただ、今回は+1と-1のデッキを多く含む相手がいたために割と健闘し、指定「1」のときに「+1,+1,-5,-5」のような感じで強いAIの勢いを削いだりしていました。

結果

 

%e5%90%8d%e7%a7%b0%e6%9c%aa%e8%a8%ad%e5%ae%9a

配信からのスクリーンショット

8人ちゅう4位の結果になりました。思ったより健闘しましたね。

次回はルールを少し変えて来週土曜(2016/11/05)に開催されるようです。今度は自由時間が8時間ぐらい取れそうなのでちゃんと作ろうと思います。

Tweet about this on TwitterShare on FacebookShare on Google+

ウディタAI企画3に参加してきました” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です