解けるはずなので、一旦やめた。次元のベクトルになっている必要があるので、各要素を横に並べたベクトルにした。次元にできるので、ここはもっと改善する必要があるかもしれない。なる報酬はこのように設定している。これは調整する必要がありそうで、例えば「ダメージを与えた」なども報酬に入れると良いかもしれない。核である、行動した結果から行動状態価値を更新する部分はこんな感じになっている。y)価値関数の更新が最も重要なので、いきなりコードを載せてしまった。全体は下記を参照されたい。StupidRandomPlayerJustAttackPlayerElitePlayerhttps://github.com/acro5piano/pokemon_ai/blob/v0.2.0/pokemon_ai/simulator/sample_players.py#L17-L22それぞれ解説する。StupidRandomPlayerただランダムに交代もしくは攻撃をするプレイヤー。割近い勝率を出すことができた。これにはからくりがあり、このようなプレイヤーにはただ単に威力の高い攻撃をしていればほぼ勝ててしまう。そのように学習してしまっていた。これには勝てて当たり前である。JustAttackPlayerただランダムに攻撃をするプレイヤー。交代をしない点で異なる。割くらいにしかならない。相手がランダムに攻撃をしてくるのが分かっているのであれば、有利なポケモンに交代すれば確実に勝てるはずなのだが、なぜかそういう行動を取ってくれない。万ボルトを打ってしまっている。これでは勝てないwエピソード数を増やしたり、報酬を工夫するなど、色々試したが、今の所解決できていない。逆に言うと、これを解決できれば一歩成長したと言えるので、諦めずに解きたいと思っている。ElitePlayerいわゆるエリートトレーナー。こちらのポケモンに、常に有利になるようなポケモンに交代し、かつ効果が抜群の技を使用してくる。勝てたら大きな進歩と言えるだろう。実装したが、全然ちゃんとした学習ができていないので、モデルが悪いのか、アルゴリズムが悪いのか、何かしらバグを作ってしまっているのか、引き続き検証していきたい。