FC2ブログ
育成論戦略ダブルバトルパーティー構築検証基礎知識対戦メモ雑記対戦会ポケモンその他コラム
ポケモンの対戦、育成、戦略について簡易な考察をしているブログです。
--.--.-- --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2007.01.01 Mon
あけましておめでとうございます。

私はというと、正月ということでまったりと過ごしています。

これだけでは何なので、年明け前に考えていた理論のラフを簡単に書き綴っておきます。
かなり、大雑把に書いていてまとまってないのですが、自分の考えをまとめるという意図で書いています。
興味ある人が正月の暇つぶしにでも読んでいただければ。

書いている内容はマニアックすぎるので予めご了承願います。
一応、今後、基礎講座とかもゆっくりと作っていくつもりなので、自分に合ったものを選んで、各々で自分なりの考えを発展できる環境を作ることができるといいなあと考えています。
ただ、今回のは自分の趣味も入っているのでかなり読み手を絞っているようで申し訳ないです。


続きを読むからどうぞ。
若葉さんのブログで役割解析なるものが公開されましたね。
これを見て思うのは、やはり、はじめのうちは系を絞って考えて少しずつ応用していく方がいいのかなあと。
かなり、価値あることを書いていると思うので興味ある方は是非是非読んでおくといいと思います。



で、これからが私が今考えていることについて。
シングルバトルで6体見せあいからの3体選出ルールとして書いています。


よく、受けポケモンは確定○発調整とか、防御252HP252振りとかがなされると思います。
確定調整は攻撃回数に注目しているのですが、これは複数の種類のダメージ蓄積に対応することが出来ません。
攻撃技も色々なものを受ける可能性があるし、砂嵐等の定数ダメージもあります。

なので、ダメージ%で議論できるといいのかなと思いました。
ダメージ%とは最大HPに対して受けるダメージの割合ですね。


ここで、突然ですが、ポケモンが倒されるときとはどういうときか。

交換がない場合は、最もダメージを与えられる攻撃手段を互いにとったとき削られるダメージ%と先手後手の関係からどちらが先に倒れるかが決まります。

交換で出す場合は、素早さが関係してきます。
交換で出すポケモンの素早さが相手ポケモンより早いときは、相手が一番ダメージを与えられる攻撃手段に対し1発耐えられれば攻撃機会を得られるし1発耐えられないときは倒される。実際は急所とか追加効果を考慮する必要があります。
後手の場合は交換時と次のターンの2回攻撃を受ける必要があるので、相手が最もダメージを与えられる攻撃手段をとったときのことを考えると2発は耐えられないと倒されることになります。

逆に考えると、先手ポケモンは(100%-最後の1撃のダメージ%)以下のダメージ蓄積しかしていないときは、倒れる可能性は0だし、後手ポケモンは(100%-最後の2撃のダメージ%)以下となります。
これ以上、ダメージが蓄積すると射程圏内となるのですが、最もダメージを受ける攻撃手段をとられなかった場合は生き延びることもあります。
重要なのは射程圏内であるということですね。

ここから先どういう話をするかというと、射程圏内に入るまで、どの程度の攻撃回数を受けることができるかです。

例えば、Aというポケモンが受けるダメージ蓄積を考えましょう。
この場合、相手が決まっていればダメージ計算式から相手の技ごとのダメージ%がわかります。
相手チームにa、b、cの三体のポケモンがいるとき、aのポケモンの上から一番目の技をa1、二番目の技をa2というように技ごとにラベルを貼って、受けるダメージ%をα(ij)とします。
ここで、iはポケモンに、jは技に対応しています。i=1がポケモンa、i=2がポケモンb、i=3がポケモンcでj=1が上から1番目の技……となっています。
攻撃するポケモンと受けて側のポケモンが分かっているので、技ごとのダメージ%が求まり、各i、jごとのα(=ダメージ%)の値が求まります。
ちなみに補助技の場合にはαの値に0を入れます。
痛みわけとかの特殊な技はとりあえず今の考察では除外と言うことで。

ijの技を受ける回数をn(ij)とするとダメージ蓄積は
Σα(ij)n(ij)
となりますね。

よって、
Σα(ij)n(ij)<(100%-射程圏内ダメージ%)
のときは倒されることは無い。

このとき、例えばα(11)=17~20、α(12)=34~40……
となっていると、上の不等式を満たすn(ij)の組み合わせが複数求まることになります。
つまり、ijの技を何回までなら受けても大丈夫かが見積もれるようになるわけです。
ここで、一つ注意しておきたいのは相手のポケモンごとに射程圏内ダメージ%が違うことです。なので、最後倒されるときにあてるポケモンによって、n(ij)が変わってきます。

この段階だと確率で起こる事象が入っていないですが、一つの方法としては補正項の導入です。
例えば、kターン目の補正項として通常はβ(k)=1、急所が起こるとβ(k)=2、技が外れるとβ(k)=0という感じで。
ただ、個人的にはこれはあまりいい方法でない気もする。

次に定数ダメージですが、ダメージの種類をmとすれば、m=1が毒、m=2が砂嵐という感じで、Σγ(m)n(m)と書くことができます。
これもどうも上手くない気がする。




次に立ち回りについて。

与えられる選択肢の種類としては、
・技のどれかを使う
・控えポケモンがいるときどれかに交換する

ここで、重要なのは相手にも同じ数の選択肢が与えられていることです。

単純な考え方としては相手の行動に対して強い行動を取れればOKです。
タイマンで勝てるとき、
相手が交換しないなら目の前の相手に一番強い技を、
相手が交換するときは、交換してくる相手に最もダメージを与えられる技か出てくるポケモンに強い控えを出す。

タイマンで勝てないときは、
相手が居座って、今出しているポケモンに強い攻撃手段をとるならそれに強い控えに交換
相手が交換読みで技を出すなら、こちらは居座ってもいいかもしれないし控えが2体いるときは技に強いポケモンを出せるかもしれない
相手が交換読み交換をしてくるなら、それを読んでの交換か居座るか

基本的にこんな感じに行動できれば大丈夫なのかなあと。
そして、ここでリスクを評価する方法の一つとして、先ほどのn(ij)つまり技を受ける回数が重要になってきます。
かなり単純な考え方ですが、n(ij)の大きな攻撃を受けるように立ち回れば少なくとも倒されるまでにかかるターン数は増える。
これが役割理論で言うところの受けの考え方の一つですね。
まあ、n(ij)を増やさずとも速攻で潰せれば(つまり相手のn(ij)の低い所を攻めていく)問題ないんですけどね。
ここで気付いたのですがポケモンaの場合はna(ij)というように技を受けるポケモンごとにnの表記をかえればよかったですね。

あと、書き忘れていましたが、技を受ける回数を稼ぐ方法としてはポケモンを倒された後の無償交換を利用する方法もあります。
つまり、交換で後出ししない分だけ攻撃を受ける機会が減ると。

n(ij)が立ち回りにどの程度影響を与えるかは難しいのですが、各行動の選択肢の選び方には差が出る可能性があります。
ここはかなり論理が飛躍していますが、これ以上のことを考えるだけの頭も無いので勘弁してください。

先ほど書いたとおり、ターンはじめに行動を選択するときには相手の行動に強い行動を取れればいいのですが、実際にそれをするのはかなり難しいですよね。
ちょっと脱線しますが、こちらが、スターミーで、相手の控えがゴローニャ、ニドキング、ガラガラの時は読みの必要なく勝てそうですが、逆にいえばこういう全抜きの状況、つまり全ポケモンが射程圏内に入っているときは勝利の条件をほぼ満たしたことになります。
実際は、はじめから全抜きになることはまず無くて読みの必要が出てきて、どの選択肢をとっても相手の行動次第で利得を得られるときもあれば損をするときもあります。
一方的に有利となる選択肢はまずないので読みで行動するしかない。
ここで、出てくるのが
ttp://www.geocities.jp/fi_hizasi/kamipa/bakutirandom.html
にあるような、ランダム戦略なのかなと。
リンク先の文章では、各選択肢を選ぶ確率が(1÷選択肢の数)となっていますが、そこに確率的な重みをかけてみるといいのではないか。

技1に80の重みをかけ、技2に20の重みをかけるときは技1を選ぶ確率は技2を選ぶ確率の4倍となります。

ここで、出てくるのが各選択肢を選ぶ際に乱数を振って行動を選択するというものです。
技1に80の重みをかけ、技2に20の重みをかけるときは0~1までの間の一様乱数を降ったときに0.8以下ならば技1を選ぶ、0.8以上なら技2という感じです。


以上のことを利用すれば、対戦を数値計算でシミュレートできるようになります。
各行動選択を取るときに確率的な重みに従って、乱数を振って行動を決定する(モンテカルロ法といいます)。
数値計算でいいのは、技の命中などの確率で起こる事象も乱数を振って命中するか外れるかの分岐もできることです。

一試合だけだと統計誤差がひどいことになりますが、このシミュレートを何万試合、何十万試合とすれば、勝率を求めることが出来そうですね。
そして、各行動選択の重みを初期値とすれば、それに応じた勝率が求まりますが、逆にいえば、勝率が最も高くなるような初期値を求めれば最も勝てる見込みのある行動選択の選び方が逆算されることになります。


以上が机上論で、まだまだ考えはじめの段階です。
ところで、行動選択を選ぶ際の重みですが、上の考え方には致命的な問題があって、対戦途中でもずっと同じなんですよね。
対戦していく過程で、相手の型を絞る材料が出てくると行動選択の重みも変わってくると思われますが、それに対応しきれていないのが問題点です。というより、はじめからポケモンと技を固定しているのが一番の問題ですね。

補助技に対応して無かったりと問題だらけで、今のところは実用性もゼロに近いですが、実用できるようになるとポケモンというゲームを客観的に評価できるようになります。
これが本当に面白いかどうかというと別問題なんですけどね。
ただ、こういう分析が可能になると強くなるとは思います。
スポンサーサイト
くすくす
あけましておめでとうございます。

このように戦闘を分析するのは、私は絶対に無理だと思ってました。
(まあ、本当に戦闘を分析しているのかすらわからなかったりしますが;)
なので自分でも作れるようなパーティを考えると、
ブラキパとか爆パなどの方針が決まったパーティしか作れませんでした。
ですが、aonaさんや若葉みどりさんのブログを読んでいると、
できる人ならできるんだなぁと思うようになりました。
自分はできない人なので、期待しています。
大学数学を学べば自分だって、、、、やっぱりできそうにないです((

それでは今年もよろしくお願いします。
2007.01.01 Mon 18:31 URL [ Edit ]
夕凪
明けましておめでとうございます。
本年も宜しくお願い致します。
2月まで忙しいとのことですが、あまり無理はせず、ご自愛ください。

今回の記事を読んでいて、ポケモン対戦は「マジック:ザ・ギャザリング」というカードゲームに何処となく似ていると思‥‥‥すみません、分かりませんよね(汗

話は変わりますが、勝率を考える上では、確率的な重みを持たせるのと同様に、ポケモンやパーティに「点数」をつけると良いのではないかと思いました。
実際のポケモン対戦には、規模の大小に拘らずメタが存在するので、勝率の最も高いパーティは、時と環境によって変動します。
例えば、友人にヘラクロスを使われて負けたからボーマンダを使おう、とか、ネットでルンパッパが流行っているから対策しておこう、とか、そんな感じです。
対策された側は勝率が低くなるでしょうし、逆に対策した側は勝率が高くなるでしょう。
そんなわけで、身の回りのメタに常に目を向けて、パーティ/ポケモンに点数をつけ、その集合の中での勝率計算に役立てることができないかなー、と。
点数の付け方は、まずメタを無視した単純なパワー(例えばガブリアスの全抜き性能の高さ等)を評価し、その上で、評価時点のメタにどれだけ適しているか(相性の良いパーティ/ポケモンの多さ等)、またメタの変化に左右されにくいか等を加算していく感じになると思います。
その結果高い点数が付いたものが、評価時点のメタで勝率を高める要素を多く持っているということになります。
それは裏を返せば次の対戦で対策されやすいということなので、そのままパーティのコンセプトを維持するか、それとも鞍替えするかは、結局は読みになりますけどね。

そして、このような評価をまとめた点数表を作れば、ある程度行動選択の見通しが立ちやすいのではないかと。
これに沿って確率的な重みを持たせることもできますしね。
ただ、「評価」の基準が曖昧なので、それはしっかり定める必要があると思います。
そもそもどうやって評価するかという大問題がありますが;

何だか感覚的な話になってしまいました。
分子コンピュータが使えれば、膨大な数の事象も容易にシミュレートできそうなのですが‥‥‥。
(まだ何か気づいたら追記するかもしれません。)
2007.01.01 Mon 22:24 URL [ Edit ]
Mr.T
こんばんは、年明けを祝えない身なのですが、
今年も宜しくお願いしますm(_ _)m

という訳で早速若葉さんのブログ拝見させていただきましたー、
「コスト」ってのは2ポケ間の攻防からポケ同士のコンビネーション、パーティの骨組みまで色々応用できそうな考え方ですね。


耐久力に%式を用いるのはアナログ的な考え方が出来そうで良いですね。
%とはまた別かも知れませんが、技の威力と相性から相対ダメージを求めるってのは実戦では重要な気がします。
相性普通タイプ一致の10万ボルトと相性普通タイプ不一致のめざパのダメージ率はほぼ2:1とか。
味方の耐久比も頭に入れておけば相手の配分だけでなく自分の仲間が喰らうダメージも大体推測できますから、情報戦を制するには役に立つのではないかな、と。応用すれば相手のHPの減り具合から配分を推測する事もできますからね。

立ち回りなどについては長文になってしまいそうなので後日機会があれば何か書かせていただくかも知れません。

何はともあれ今年を元気に過ごして頂けたらなと思います。
2007.01.02 Tue 02:35 URL [ Edit ]
あけましておめでとうございますー。今年もよろしくお願いします。

こういった分析を見るとポケ関連の記事を書くのをやめたくなりますね;
何このレヴェルの違い。気軽に読もうと思ったけど途中で挫折しました;
2007.01.02 Tue 18:51 URL [ Edit ]
銀炎
明けましておめでとうございます
今年もよろしくお願いします

ふ、複雑ですね・・・
何となく理解は出来ましたが、不透明です
これを実戦中にやるのは難しそうです;;

そういえば前回のマニューラなんですが
とんぼ返りを入れてみるのもありなんじゃないかと思います
持たせた役割外の敵が出てきた時は当て逃げさせれば
いいのではないかと思います
そうすれば襷を持たせていても無傷で控えに戻せますし・・・
130組が来た時はお手上げですが(何
2007.01.03 Wed 03:19 URL [ Edit ]
aona
あけましておめでとうございます。
では、返信します。

>くすくすさん
私はなんだか小難しそうなことを書いていますが、とりあえず、まだ実戦に使えるほどではないので、これから先どこまでいけるかですね。
くすくすさんのように様々な相手を想定して場合わけして考えることも非常に重要だと考えています。
今年もよろしくお願いしますね。

>夕凪さん
「マジック:ザ・ギャザリング」は知らないです。
確かに、対戦環境が予めどういう状態にあるかが分かればそれに強いパーティーも作れそうですね。
点数付けは明らかな劣化とかそういう状態があまりなく、どのポケモンも方向性の違う部分でどこかしら一長一短があるので少し難しそうです。
ガブリアスが頭一つ飛び出しているのは確かだと思うんですけどね。
数値計算は最近の家庭用のパソコンでも恐らくそれほどかからず計算できると思います。
一番問題なのは私にプログラムを作るスキルがないことなんですけどね。
では、今年もよろしくお願いします。

>Mr.Tさん
今年もよろしくお願いします。
コストは2ポケ間の関係を見るときに特に役立ちそうな気がしますね。
立ち回りについてですが、例えば、とんぼがえりだけでもかなり書けそうですね。
では。

>賽さん
今年もよろしくお願いしますね。
一応、それっぽいことは書いていますが、まだまだ、机上段階なので、実際に対戦してみると私は弱いと思いますよ。
まだまだ、上がいることは知っているので、もう少し頑張ってみます。

>銀炎さん
私の中でまだ考えがまとまっていない部分もあるし、実用性は怪しいです。はい。
マニューラですが、実はとんぼ返りを覚えないようです。
ただ、非常に面白い技なので、分析しておきたいですね。
では、今年もよろしくお願いします。
2007.01.04 Thu 17:31 URL [ Edit ]
管理者にだけ表示を許可する

TrackBackURL
→ http://aonablog.blog54.fc2.com/tb.php/85-1ad615b6
Template by まるぼろらいと
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。