人間がプレイする際、1秒に20入力もしないと思いますので、1入力を4フレーム継続することにして、入力数を1/4に減らしてみます。よって、500入力で済むことになります。500[入力]×4[フレーム/入力]=2000[フレーム]です。4](長さ500個)のような感じで、各入力は4フレーム継続されます。マリオがゴール(x座標=3161)に到達できるように、vcopt().dcGA()で入力配列を最適化します。入力配列であるparaを受け取り、ゲームオーバーまでプレイします。スコアとして、ゲームオーバー時のx座標をそのまま返しても良いですが、ジャンプ数ができるだけ少なくなるように設計してみます。len(para))(任意)poolの可視化関数poolを受け取って、エリート個体のゲームオーバー時の1コマを見ることにしましょう。]をparaとして、同様にゲームオーバーまでプレイします。plt.show()GAで最適化para_rangeを用意し、vcopt().dcGA()を実行します。スコアが大きい方向へ最適化しますので、第3引数は大きい数(999999など)にします。本来は個体数は自動設定されますが、ここでは時間短縮のためにpool_num=10のコマンドを追加しています。7818.9290~100世代目の間に、ゴールに到達したparaが見つかりました。その後は、ジャンプの割合が少なくなるように少しずつ最適化が進みましたが、ほとんど突然変異頼みなので、賢い方法とは言えません。結論、1-1は簡単な問題のため、個体数10でもサクッとゴールに到達できました。追記こちらの勉強会では、5種類のアクションでも最適化できました。テスト配信ですので、うまく映らなくても泣かないでください。こちらで視聴可能です。抽選や承認はありませんので、好き勝手にお越しください。...aifashion.connpass.com0:(無入力)1:→2:→+ジャンプ3:→→4:→→+ジャンプ0世代目:56%まで到達200世代目:64%まで到達300世代目:78%まで到達450世代目:87%まで到達500世代目:ついにゴールSlack、勉強会、Twitterをよろしくお願いします質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするvcopt応用vcoptスーパーマリオ遺伝的アルゴリズムこの記事を書いた人Yasuda博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。半額弁当の時間帯を知り尽くしている。out)というパズルがあります。ペントミノと呼ばれる、12種のピースを長方形の枠内に敷き詰めるパズルがあります。vcoptでテント・アンド・ツリーパズルを解く2019/10/27vcopt応用プレミアムパッケージ「vc-grendel」のご紹介2019/09/23vcoptはこちらチュートリアル仕様書プレミアムパッケージフォローする質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするタイトルとURLをコピーしました。