「何人の選手で全チーム所属達成できるか」問題について:Jリーグ2019シーズン編(追記:20190212)

追記の内容(20190212)

・「J1を5人でカバー」の組み合わせが36335通り見つかりました.目的と成果がよくわからなくなってきたので一旦中断しようと思います.

追記の内容(20190207)

・「J1を5人でカバー」の組み合わせが30000通り(以上)見つかりました.なんだかつかれてきたな...

追記の内容(20190204)

・「J1を5人でカバー」の組み合わせが6000通り(以上)見つかりました.上限はいまだ見果てぬ感じです.

発端

似たようなネタで何度も記事を書いててすいません.元ネタはtkqさんの以下のnoteで,

これは面白いなーと思い,この「何人の選手で全クラブ所属達成手できるか問題」についていろいろと作業してツイートしたのが2018年の11月でした.以下のツイートからのスレッドです.

Jリーグの公式データベース内で記録されている所属クラブのデータを取り出して,数理計画問題のうちの「集合被覆問題」として定式化し,それをソルバ(普段使っているMATLABに関数があった)に渡して解が出ました.めでたしめでたし.Twitterのインプレッションもかつて無く伸びました.

そして2019年・・・

2019年2月1日,Jリーグのデーベースが更新されてしまいました.当然来るべき2019シーズンに向けてです.昇格降格があり,チームも1チーム増え,選手の移籍もあったので答えが変わっているかもしれません.これはもう一度やってみなくては!

結論:2019のJ1は5人,J1J2J3では12人でした!

めでたく答えが出ました.5人は結構少ない感じがします.

他の組み合わせは?

プレミアのときに作ったんですが,最小の人数がわかってしまえばそれは制約式に組み込んで,評価関数の係数を適当に変えることで縮退した解空間の中から解を確率的に列挙できるんじゃないの?と思いついて実装しました.多分既知の手法だと思うんですが,調べ方が悪いのか同様の方法がなかなか見つかりません.プレミアのときは20000回解いて,組み合わせが28通りしか見つからなかったので気軽にやってみたのですが...

結論:2019J1を5人でカバーする組み合わせが900通りくらい見つかりました(1000回くらいしか解いてないのに)

予想に反して出るわ出るわ.収束の気配がないのに時間だけ食うので一旦止めました.で,結果をエクセルにしたものを公開します.タイトル未定とありますがエクセルファイルへのリンクです.2019J1_byClub_rnd のシートに列挙してあります.選手IDを辞書式にソートしているので,大まかに言うと左のほうに古い選手が多いと思います.

Webや記事などでこのデータを使いたい場合(使い方が想像つかないですが)は,このnoteへの言及をお願いします.あと,ここに乗っていない組み合わせを見つけたら教えてもらえるとうれしいかもしれません.

それではまた!

追記(20190204)

昨日この記事を公開した後,MATLABのプログラムを走らせっぱなしにしてすごくがんばった(パソコンが)ところ,今日の出勤時に6000通りを超えてなお増加中でした.上限は見果てぬ感じです.本務に差し障るので止めました.

で,結果をエクセルにしたものを公開します.タイトル未定とありますがエクセルファイルへのリンクです.

大量のデータというのは意味があろうかなかろうか圧倒するようなたたずまいがあって楽しいわけですが,エクセルのHWA列とかあまり見慣れなくて面白いですね.縦方向に書けばよかっただけなんですけどね.新たな組み合わせを発見したい!というあなたのために,選手名のみ示したシート(2019J1_byClub_rnd_players)も用意いたしました.ご査収ください.

追記(20190207)

ちょっと高速化や全列挙を狙った修正を試みていたんですが,高速化は成功,全列挙は失敗,という感じです.速くはなったのでとりあえず回数稼ごうと2日くらいがんばった(パソコンが)ところ,「5人でJ1」を30151通り見つけてしまいました.確率的なアルゴリズムなので,新しい組み合わせはどんどん見つかりにくくなっていますが,原理上全列挙できたことを保証できません.リソース食いまくるので一回止めて解の検証をしました.あとは金曜夜に走らせて連休中に不眠不休でがんばる(パソコンが),くらいでしょうか.

今日もお土産です.日本語での選手名取得がうまくいくようになっていた(なにもしていないのに直った!)ので,日本語での5名の組み合わせのみ列挙したものです.クラブとの対応はがんばりきれない(パソコンが)感じだったのでもうあきらめます.

追記(20190212)

部屋を出でる時間が長かった金曜と3連休を利用してパソコンに不休でがんばってもらったところ,36335通りまで記録を伸ばせました.目的も意図もよくわからなくなってきたので,今回はここで一旦中断しようと思います.高速化とか列挙に関心ある方は例題としてお使いください.お土産は36335通りのリストです.

今シーズン終了後,移籍や昇格降格を反映させた新問題でお目にかかりましょう!それでは!

この記事が気に入ったらサポートをしてみませんか?