ものくろのいず

qwopの攻略~遺伝的アルゴリズム編~

QWOPはキーボードの"q","w","o","p"のキーを使い陸上選手を走らせるゲームである。

www.foddy.net

このゲームは物理演算?を使用しており、非常に難しいゲームで有名である。

ささちーはそんな難しいQWOPをクリアしたいという衝動に襲われてしまうのであった。

 

 

1章  ささちーの限界

ささちーがやってみたが10分経ってもほとんど進まずにストレスだけが溜まるのである。

こうなったら自分ではなくコンピューターにクリアしてもらおっと。

そこで考えつくのがニューラルネットワーク遺伝的アルゴリズムを使う方法である。

 

2章 ニューラルネットワークか?遺伝的アルゴリズムか?

どちらを使ってクリアしようか迷った。

しかし、ゲーム画面を取得する方法を調べてみたが、調べてすぐに見つかった方法では取得に0.3秒もかかる。

その為、ニューラルネットワークで毎フレーム画像を取得することは難しいと考えた。

そこで、遺伝的アルゴリズムでQWOPを攻略すると決めたのである。

 

遺伝的アルゴリズムの説明

遺伝的アルゴリズムは淘汰や進化など、生物の進化を参考に作られた処理で、優秀な個体が生き残ることで、より良い個体を見つけることができる。

 

3章 遺伝的アルゴリズムでQWOP

最後までクリアするのには時間、処理能力的に厳しいので、n秒間で遠くに進むことを目的としようと思う。

 

4秒でどこまでいけるか?

ヘッドスライディングのようにただ単純に前に倒れこむ戦略を多くの個体を行ってしまう。

そこで、倒れることに対してペナルティを与えてみた。

しかし、この方法では倒れるのを恐れてか、モジモジと進む個体が蔓延ってしまった。

 

6秒でどこまでいけるか?

ヘッドスライディング対策で学習の初期段階で人為的に、単純に倒れこむ個体を殺すことで対策しようとした。大虐殺である。

 

その結果、助走?をつけて足から飛び込むのが流行った。

ささちー的には、最初の助走?部分は時間の無駄なような気がしてならない。

しかし、途中でワンステップ入れるところが人間ぽくってなんか面白い。

助走?を行ってしまうのは、人為的に対策したためこのようになってしまったのか?原因は不明だ。

 

10秒でどこまでいけるのか?

色々変更したためか、それとも時間が伸びたためか、ペナルティや人為的な操作なしにゲームの初めのヘッドスライディングが蔓延しなくなった。

その為、これらを行わないようにした。

(変更したポイント

突然変異部分にミスを発見したため直した。

・突然変異などの確率を少し上げた。

・3m付近で距離の読み取りができない不具合が生じていたため、距離が取り消され、優秀な個体が排除されていたため、移動した距離の読み取り精度を高めた。

・人為的な個体の削除や転倒へのペナルティをなくした。

・rキーでゲームをリセットできることに気づきリセットの方法を変更した。

・ゲームが始まってから1秒待ってからゲームを始めるようにした

・処理の時間を延ばした)

6秒の時のような助走は無くなり、非常にキレイに走っているように見える。

最後、ヘッドスライディングした後も、数秒間の余裕がある様に見える。

なので、より多くの個性、または、より長く学習、を行えばさらに成績が伸びるのではないかと考えられる。(あと、突然変異などの確率が高すぎたかも)

<iframe src="https://gifmagazine.net/embed/glp/4532705" width="300" height="240" frameBorder="0" class="gifmagazine-embed" allowFullScreen></iframe><p><a href="https://gifmagazine.net/post_images/4532705" target="_blank">via GIFMAGAZINE</a></p>

 

まとめ

このまま、時間を制限をなく無くせばクリアまでいけそうな気がする。

しかし、処理に時間がかかりすぎる為、ここで満足し終わろうと思う。

 

最後に

処理中にパソコンが1台使えなくなるのが辛過ぎる。

やってると、愛着が湧いてくるのは気のせいだろうか?

 

<iframe src="https://gifmagazine.net/embed/glp/4532705" width="300" height="240" frameBorder="0" class="gifmagazine-embed" allowFullScreen></iframe><p><a href="https://gifmagazine.net/post_images/4532705" target="_blank">via GIFMAGAZINE</a></p>