デレメモ

デレステで調べてみたことをまとめておくよ

【デレステ】遺伝的アルゴリズムでチューニングズルコン編成を作る話

遺伝的アルゴリズムさんにユニットメンバーを選んでもらい、理想的なズルコン編成を導き出すことができるか。というお話です。f:id:tacasmi_segg:20210219001128p:plain

背景

 以前の記事で、アンコール入りGRAND編成のメンバーの並び順をどうするか?という問題に遺伝的アルゴリズムを使ってみました。 今度は「どう並べるか?」でなく「誰を選ぶか?」に遺伝的アルゴリズムを使うチャレンジです。

ガチ編成、放置編成を自動で組めたら実用的なのですが、考えることが多くてちょっと難しそうです。そこで今回は一番考えやすいズルコン編成をターゲットにしています。
ガチ編成でも放置編成でもズルコン編成でも、編成を考える上で「手持ちのアイドルの中から誰をユニットに入れるか」という点は同じなので………たまたま、ズルコン編成が扱いやすかっただけです。ズルコンしたい訳じゃないんですよ。

 

目標

 ズルコン編成については既に先人が考え尽くしておりまして、例えば以下の記事で解説・検証されています。

デレステ】チューニングズルコン編成における特技秒数の最適化

rrr19533739.hatenablog.com

 ゲストにレゾナンスを迎える条件の下、ズルコンに使える特技の組み合わせを全パターン計算して、ベストな編成を導き出しています。すごい。

 

この記事によると、2021年2月現在で最もカバー秒数(=MISSをPERFECTにできる効果時間の累計)が高くなる編成は

  •  11秒チューニング(中確率)
  •  11秒チューニング(中確率)
  •  12秒シンデレラマジック
  •   9秒スキルブースト
  •   9秒パーフェクトサポート

の組み合わせらしいです。123.5秒中112.5秒をカバーできるそうです。9割くらいは放っておいてもPERFECTになるってことですよね。(やばい)

ということで、今回は遺伝的アルゴリズムを使ってこの編成が出てくれば成功とします。

 

条件・検証方法

  • ユニットの候補として考える特技は以下。カッコ内は発動間隔秒数。
     SB:スキルブースト(7/8/10)※SSR
     SB:スキルブースト(7/9/11)※SR
     TS:トリコロール・シンフォニー(7/9/11)
     PS:パーフェクトサポート(9/12/15)
     TU:チューニング(7/9/11高/11中/13)
     CM:シンデレラマジック(12)
     EC:アンコール(9/12/15)
  • ユニット候補は上記の各秒数2枚ずつ揃えた計42枚。その中から5枚選んでユニットを編成する。
  • 全員特技Lv10、特技全発動が前提。
  • アイドルの属性は考慮しない。(常に3属性揃う前提)
  • 曲開始から最後のリズムアイコンが落ちてくるまで時間は123.5秒とする。
  • ゲストはセンター効果:レゾナンスのアイドル固定。

アルゴリズムとしては大体以下の感じ

  • カバー秒数を評価値として、エリート選択とルーレット選択で淘汰する。
  • 一定確率で交叉、突然変異させて新たなユニットを生成する。
  • 交叉の方法は一点交叉(ただしメンバーが重複しないようにする)
  • 突然変異はユニットの誰か一人をユニット候補とチェンジ。
  • 1世代あたり20ユニットで、100世代まで計算。

 

結果

遺伝的アルゴリズムで進化していく様子を図示してみました。
横軸に世代、縦軸にカバー秒数をとり、各世代に存在する20ユニットをプロットしています。

 

▼ 交叉する確率を 0.8 (80%) にした場合

f:id:tacasmi_segg:20210227022315p:plain

最大カバー秒数は110秒。理想値の112.5秒に届かず。
110秒を記録した編成の一例は以下。
 11中TU / 8高SB / 12中CM / 11高TU / 9高PS

ユニットの候補をズルコン向けの特技に絞っているからか、ランダムに作った最初の世代の時点でそこそこ高いカバー秒数が出てますね。
5世代目には109.5秒まで上がっていますが、そこからなかなか上がらず。世代数を増やしても最高値にたどり着かず、局所解で終わりそうな気も………
ときどき低い値が居ますが、特技が5種類揃わずレゾナンスが発動しなかったケースかな。

 

▼ 交叉する確率を 0.1 (10%) にした場合

f:id:tacasmi_segg:20210227022310p:plain

 最大カバー秒数は112.5秒。理想値が出たのでとりあえず成功です!
編成も想定通りです。
 11中TU / 9高SB / 12中CM / 9高PS / 11中TU

交叉率0.8に比べるとだいぶ分布が散らかっています。交叉が少ない分、突然変異で積極的にチェンジして、理想値に到達するのも早かったんですかね。

 

ただ、ググった感じ交叉率は高め(80%以上)にしておくものらしいのですが………もしかしたら今回使っている交叉の方法があんまり良くないのかも。。

 

おまけ

シンデレラマジック無しVer も軽く流してみました。
↓ 見つかった中でカバー率高めの3パターン。
アンコール入り編成もちゃんと出てくる。

カバー秒数 109.5秒
 11中TU / 12中EC / 9高PS / 8高SB / 11中TU

カバー秒数 105.5秒
 11中TU / 12中EC / 9高PS / 8高SB / 11高SB

カバー秒数 103秒
 7高TU / 10高SB / 12高PS / 7高TS / 9高PS

 

レゾナンス無しVer も軽く流してみました。
↓ 見つかった中でカバー率高めの3パターン。
鬼強マジックが12秒なのでパフェサポは9秒&15秒。
アンコールが入ってこなかったのはちょっと意外。

カバー秒数 102.5秒
 10高SB / 12中CM / 9高PS / 7高SB / 15高PS

カバー秒数 102秒
 9高SB / 15高PS / 10高SB / 12中CM / 9高PS

カバー秒数 101秒
 15高PS / 11高SB / 12中CM / 9高SB / 9高PS

 

まとめ

遺伝的アルゴリズムさんがズルコン編成を作れました。ガチ編成、放置編成も作れる可能性はありますね。ユニット候補のメンバーが多くなるのと、ユニットの評価方法が難しくなるのが問題。