ぷらぷらドフス日記

MMORPG DOFUSのプレイ日記その他です。purapuraしてます。buraburaしてません。

ドフスで学ぶマルコフ連鎖。

注:「あんまり関係ない話」カテゴリの日記です。いつもの通り門外漢がちょっと調べて考えただけです。
  そのため、内容の正確性はかなり疑わしいものがあります。今回は特に度合いが顕著なので一応前置き。




学生さんは期末テストのシーズンということで、なんやかやあって知人間で出てきた話なんですよ。

[21:05] (/p) ******:誰かマルコフ連鎖を分かりやすく説明して

なにそれ。
なんか話を聞くに、確率とか統計とかの分野の話らしいです。
さあ検索だ。

Wikipedia - マルコフ連鎖
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%82%B3%E3%83%95%E9%80%A3%E9%8E%96


マルコフ連鎖とは (マルコフレンサとは) [単語記事] - ニコニコ大百科
http://dic.nicovideo.jp/a/%E3%83%9E%E3%83%AB%E3%82%B3%E3%83%95%E9%80%A3%E9%8E%96





この辺を読んでみて、俺が理解したざっくり説明。

1.なんか時間経過で変わっていくひとつのパラメータがあります。
2.このパラメータは、マルコフ性という性質を持っています。
3.マルコフ性とは、次の状態は、過去の値がいかなるものであろうと、現在の値のみによって決まる、という性質です。
4.このマルコフ性を持つもののうち、連続的ではなく離散的なものがマルコフ連鎖です。
(時間とパラメータを二次元グラフにしたとき、グラフが連続的な線になるのが連続的、断続的な点で示されるのが離散的)




…ざっくりでもわかりにくい。正直何を言ってるのかわからん。
というわけで安心と信頼のドフス脳でいってみましょう。




1vs1のPvP戦闘を想定してください。
時間の軸に各キャラクターのターン、パラメータとして使用するスキルを定義します。
また、スキルは1Tに1回、1スキルしか使用しないものとします。

すると、{【終結の矢】,【投げボンブ】,【モグラの目】,【対角ラッパ】,…}のような連鎖が得られます。
このデータを大量に取り、『スキルaの次のターンの次にスキルbが使われる確率は○○%』というデータベースを作ります。
このデータベースを参照する≒マルコフ性を持つAI同士に対戦させてみましょう。

するとどうなるか。
AIは、直前の相手の使用したスキルのみを見て自分が使うスキルを判断します。

例えば、相手がフェカで【免疫】を使ってきたとき。
自分がエヌであれば、
・【幽霊シャベル】でバフを解除する
射線があるのであれば、恐らくこれが最もポピュラーな選択でしょう。また、
・【解放】【生きシャベル】【アクセル】で相手との距離を取る
・【失策】【審判のシャベル】【時代の力】で相手のMPを削る
・【買収】【早期退職】でターンを飛ばす
など状況に応じてその他することはいろいろありますが、少なくとも【殺人シャベル】【コイン投げ】など
攻撃効果しか持たないスキルは、【免疫】の次のターンに使用される確率が非常に低いでしょう。

このため{【免疫】,【幽霊シャベル】}という連鎖が起こる確率は高く、
逆に{【免疫】,【殺人シャベル】}という連鎖は起こりにくい。
では【幽霊シャベル】の次のターンにフェカが使うスキルは…といった感じで、連鎖になっていきます。




長いこと書きましたが要約すると
ドフスのターンと使用スキルのデータは離散的な確率分布なので

「俺は今○○のスキルを使った。次にお前が□□のスキルを使う確率は50%(キリッ」

これをどんな状況でも言うことができる環境
が『マルコフ性のある確率過程』であるため、
このスキルの連鎖はマルコフ連鎖であるといえる、ということになります。




もちろん実際のPvPでは、1T1スキル1回限定の戦闘だったとしても
・自分と相手の位置やら残りHPやら使用者の癖やら(別パラメータの入力)、
・スキルやバフにはクールタイムがある(過去のパラメータの参照が必要)、
この辺が関わってくるため、ターン/スキルのデータがマルコフ性を持つわけがありません。

上記の話は、その前提の上で「敢えて」「強引に」マルコフ連鎖の例を説明したものとご理解ください。




正直、なんか「マルコフ連鎖わからん」って人が読むと逆に混乱させてしまう文になったと思う。
だが私は謝らない。
スポンサーサイト
  1. 2013/02/10(日) 09:32:47|
  2. あんまり関係ない話
  3. | トラックバック:0
  4. | コメント:2
<<実に長かった。 | ホーム | Dofus in 2013。>>

コメント

強引すぎワロタw

ちょっと考えてみたのは、コロッシュウムとかで
「すべてのプレイヤーの位置、ステータス、バフデバフ、状態」を確率空間にすれば
ちょっと大きいけど可算集合に(ドフスの場合それどころか有限集合)になる。

で、確率過程を「プレイヤーの誰かのAPorMPの消費or(ターンエンドに伴う)回復」とする。
例えばMPだけで言えば、X_{n+1}でプレイヤーがX_{n}の隣のマスにいる状態以外は確率0だけど
ドッジロールや状態によってはそれすら0になったり
フェカとかイオ、ゼロールみたいなジャンプ持ちの場合は
遠くにいる配置でもX_{n+1}で0にならなかったりする、みたいな。

こんな感じでマルコフ連鎖モデルを作ってAIを走らせれば
いずれ「どっちかの陣営のプレイヤーすべてのHPが0の状況」に収束して
赤が勝つ確率68%、とかできないかなーと。

ただ、マルコフ性を保つ為に確率空間を無駄に大きく取ってるという感じはする。
「Pが3ターン前に鎧を使ったから、次に鎧が解ける」と考えさせない為に
「Pが効果継続あと1の鎧を着ている」という状態をX_{n}に含めちゃってるのよね。
これだと確率分布を作るときのルールがすごい面倒になる気がする...

私も謝らない。
  1. 2013/02/10(日) 18:50:29 |
  2. URL |
  3. Ni #-
  4. [ 編集 ]

ガチ勢キタワー!
なるほど、確率過程をターン経過ではなくAPMP消費で取れば、より実際的っぽくなるわけね、ふんふむ。
というかアレだ、ぶっちゃけX_{n}が格納するパラメータ、単一のものしか考えてなかったわ…。

なんかもう浅い理解で記事書いたなーってのがありありと理解できて恥ずかしくなってくるね!
まあネットの恥はかき捨てってことでこのままにしておきますヽ(´ー`)ノ
  1. 2013/02/11(月) 12:58:46 |
  2. URL |
  3. んぬ #SFo5/nok
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://reconnu.blog.fc2.com/tb.php/94-1f3020bd
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

れこんぬ

Author:れこんぬ
とりあえずドフスやろか^^

最新記事

最新コメント

カテゴリ

日記 (190)
ドフスひとりじょうず (40)
アップデート情報 (41)
同盟関連 (2)
キャラ語り (5)
昔語り (5)
役立ちそう系 (9)
やりたいこと、できたこと (2)
別ゲー (7)
アニメSAOのレコン (8)
あんまり関係ない話 (6)
未分類 (1)

リンク

このブログをリンクに追加する

検索フォーム

RSSリンクの表示