スポーツスケジューリング 東京大学大学院 情報理工学系研究科 松井 知己 東京大学 今堀慎治 筑波大学 鈴鹿順美 東京大学 藤原伸友 東京大学大学院 情報理工学系研究科 松井 知己 東京大学 今堀慎治 筑波大学 鈴鹿順美 東京大学 藤原伸友 東京農工大学 宮代隆平 筑波大学 吉瀬章子
中央大学 理工学部 松井 知己 東京大学 今堀慎治 筑波大学 鈴鹿順美 東京大学 藤原伸友 東京農工大学 宮代隆平 筑波大学 吉瀬章子 スポーツスケジューリング 中央大学 理工学部 松井 知己 東京大学 今堀慎治 筑波大学 鈴鹿順美 東京大学 藤原伸友 東京農工大学 宮代隆平 筑波大学 吉瀬章子
発表の概要 はじめに スケジュール スケジュール+試合場所 スケジュール→HAT HAT→スケジュール 応用と実用
スポーツ・スケジューリング スポーツ・スケジューリング (対戦日程計画) Timetabling の一分野 初期の研究: 1970 年代後半 スポーツ競技などの最適な対戦日程を決める スケジュール作成アルゴリズムの構築 初期の研究: 1970 年代後半 ここ数年で研究が活発化 Timetabling の中でも大きな分野に
Bibliography on Practice and Theory of Automated Timetabling http://liinwww.ira.uka.de/bibliography/Misc/timetabling.html ~1995まで論文数の推移
はじめに はじめに 読売新聞 2004/11/9 はじまりは,6年前 .....
スケジューリングの実務における現状 (アメリカ) MLB: 26週間の間に30球団による2430試合を開催 公募採用の外部業者が受託 1982--2004は,マサチューセッツ在住の夫婦に依頼. 2005年はカーネギーメロン大学のグループが作成. ~~~(2004年にスケジュール作成会社を起業) NFL: 17週間の間に32チームが16試合ずつ, 年間256試合以上を開催. TV中継の視聴率は40%超で, 1億3000万人以上が観戦していると言われている. 2003年より最適化技術(ILOG社)を用いて開発された システムで作成.
スケジューリングの実務における現状 (日本) プロ野球 セリーグ: 6球団,年間420試合 球団の営業担当者と連盟職員で構成される「日程編成会議」で作成.リーグ理事会の承認を経て前年秋ごろに発表.詳細は非公開 (計算機は用いているらしい). サッカー J1リーグ:10チーム(1993年)から18チーム(2005年)の総当り戦.スケジュール作成の詳細は完全非公開. アイスホッケー アジアリーグ:9チーム各4回戦総当たりとグループゲームを含め、全171試合1チーム38試合。 (中国(3),日本(4),韓国(2)) 海外遠征が頻繁にあり移動コスト削減が課題.航空機運行日程がきつい制約.自由度はかなり低い.特異な制約が多い. アメリカンフットボール 社会人リーグ:18チーム(6チーム×3ディビジョン)による総当たり戦.年間45試合 子問題に分割可能,比較的簡単.事務局長が作成.
スポーツ・スケジューリングの実例 スケジューリングの目的 スケジュールへの要求 現実問題から発生した研究分野 移動距離最小化,観客数最大化, 公平性最大化,… → 収益最大化 スケジュールへの要求 試合開催場所,固定された試合, TV中継,各チームの強さ,予備日,… 現実問題から発生した研究分野
現在の手法 スケジューリング問題の理論的研究 スケジューリングに用いている数理手法 抽象化された問題,先行研究ともに少ない グラフ理論,デザイン理論,実験計画法,… スケジューリングに用いている数理手法 数理計画法 整数計画,分枝限定法,組合せ多面体論,… メタ・ヒューリスティクス SA, GA, ローカルサーチ,タブーサーチ,… 制約論理法
Section 1 スケジュール
スケジュール ① ② ③ ④ ⑤ (スロット) 巨人:中 阪 横 広 ヤ 阪神:ヤ 巨 中 横 広 広島:横 中 ヤ 巨 阪 ① ② ③ ④ ⑤ (スロット) 巨人:中 阪 横 広 ヤ 阪神:ヤ 巨 中 横 広 広島:横 中 ヤ 巨 阪 中日:巨 広 阪 ヤ 横 横浜:広 ヤ 巨 阪 中 リーグ戦のスケジュール ヤクルト:阪 横 広 中 巨 ・ チーム数:2n (チーム) ・ スロット(試合日):2n-1 チーム数が奇数の時はダミーのチームを加える
総当りリーグ戦とグラフ 各チームを頂点とする完全グラフ. 各枝は試合に対応する. 各試合日には,全てのチームが1試合を戦う. 各試合日の試合は,グラフ上の完全マッチング. E D C B A F F A E B D C
スケジュールの存在性 [Kirkman 1847 or earlier] 以下のような円盤を回して,試合を決める. A B C D E F 12345 A:F C E B D B:E F D A C C:D A F E B D:C E B F A E:B D A C F F:A B C D E 12チームの場合 このまま回転を続ける‥‥. 実際のスケジュールは?
同一性判定 与えられた2つのスケジュールがチーム名の付け替えで、一致するか? O(n3) (2n :チーム数) スロットの順も入れ替えてよいときは? NP完全? O(n2) × n 12345 巨人:中 阪 横 広 ヤ 阪神:ヤ 巨 中 横 広 広島:横 中 ヤ 巨 阪 中日:巨 広 阪 ヤ 横 横浜:広 ヤ 巨 阪 中 ヤクルト:阪 横 広 中 巨 12345 A:F C E B D B:E F D A C C:D A F E B D:C E B F A E:B D A C F F:A B C D E 巨広阪ヤ横中 :中 阪 横 広 ヤ 巨 広 阪 ヤ 横
部分スケジュール完成問題 A:J F G C H B B:I G D F E A 10チームのリーグ戦 1 2 3 4 5 6 7 8 9 A:J F G C H B B:I G D F E A 10チームのリーグ戦 C:H D E A F G 6日目まで作成済み D:G C B J I E 7日目以降の E:F J C H B D 対戦を組みたい F:E A I B C H G:D B A I J C H:C I J E A F I:B H F G D J J:A E H D G I
スケジュール完成問題のNP完全性 NP完全な問題 3つのスロット以外がすべて埋められているとき、残りの3スロットを上手に埋めて、スケジュールを完成できるか? [Easton, 2003] 禁止集合P:(i,j,k) ∈P ⇔チームiとjの戦いはスロットkで行ってはいけない。Pで与えられる禁止制約を守るスケジュールが存在するか? [Schaerf, 1999]
Premature Sets [Rosa and Wallis] いくつかのスロットを埋めた時、それを満たしてスケジュールを完成できるか? premature set:スケジュールを完成できない, 部分割当 定理[Rosa and Wallis] nスロットの premature set は存在する。 2n>6ならば、3スロット以下のpremature set は無い。 3スロットまでは、どう決めても大丈夫 Open Problem: 最小 premature set のサイズは?
Carry Over Effects (COE) 1 2 3 4 5 巨人:中 阪 横 広 ヤ 阪神:ヤ 巨 中 横 広 広島:横 中 ヤ 巨 阪 中日:巨 広 阪 ヤ 横 横浜:広 ヤ 巨 阪 中 ヤクルト:阪 横 広 中 巨 COEは、できるだけ均等に分散している方が良い。 阪神は横浜にcoeを与える … 阪神はヤクルトにcoe を与える ヤクルトは横浜にcoeを与える 横浜は巨人にcoeを与える …
COEを均等に分布させる 8チームの場合 1:4567823 2:5483617 3:8652471 4:1276358 5:2138746 完全に均等になるか? 2n = 2k ならば、完全に均等にできる [Russell (1980)] 予想:2n≠2k の時, 完全に均等にできない? 1:4567823 2:5483617 3:8652471 4:1276358 5:2138746 6:7314285 7:6841532 8:3725164 8チームの場合
COE値最小化の現状 6 60 (optimal Henz, Mueller, Thiel) 8 56 (optimal Russell) 2n Value (チーム順序対毎のCOE数の2乗和) 6 60 (optimal Henz, Mueller, Thiel) 8 56 (optimal Russell) 10 122 (Trick) 12 188 (HMT and van Brandenburg) 14 260 (Russell) 16 240 (optimal, Russell) 18 428 (Russell) 20 520 (Russell)
Kirkmanスケジュールを用いる [宮代・松井2006] ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:6 3 5 2 4 1:1 3 5 2 4 2:5 6 4 1 3 2:5 2 4 1 3 3:4 1 6 5 2 3:4 1 3 5 2 4:3 5 2 6 1 仮想的に 4:3 5 2 4 1 5:2 4 1 3 6 変形 5:2 4 1 3 5 6:1 2 3 4 5 6:1 2 3 4 5 チーム n 以外は,1, 3, …, n-1, 2, 4, …, n-2 の対戦順 → 非常に coe値 が大きくなる 置換σをランダムに発生させ, coe値 が小さいスケジュールを求めた 計算時間 10万秒
COE値最小化の現状 6 60 (optimal Henz, Mueller, Thiel) 2n Value (チーム順序対毎のCOE数の2乗和) 6 60 (optimal Henz, Mueller, Thiel) 8 56 (optimal Russell) 宮代・松井(2006) 10 122 (Trick) →108 12 188 (HMT and van Brandenburg) →176 14 260 (Russell) →254 16 240 (optimal, Russell) 18 428 (Russell) →400 20 520 (Russell) →488
Section 2 スケジュール + 試合場
場所付き総当りリーグ戦 各チームに本拠地があり,どちらかの本拠地で試合 1 2 3 1:3 2 4 ← 1対4 (1の本拠地) 本拠地での試合:ホームゲーム 遠征先での試合:アウェイゲーム 1 2 3 1:3 2 4 ← 1対4 (1の本拠地) 2:4 1 3 3:1 4 2 対応 4:2 3 1 ← 1対4 (1の本拠地) スケジュール(4チーム)
試合場所の割当(HAT) ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 巨人:中 阪 横 広 ヤ 巨:A A H A H ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 巨人:中 阪 横 広 ヤ 巨:A A H A H 阪神:ヤ 巨 中 横 広 阪:A H A A H 広島:横 中 ヤ 巨 阪 → 広:H H A H A 中日:巨 広 阪 ヤ 横 中:H A H A H 横浜:広 ヤ 巨 阪 中 横:A H A H A ヤクルト:阪 横 広 中 巨 ヤ:H A H H A Home-Away Table (HAT) 各試合をどちらの本拠地で行う? H:ホーム A:アウェイ
ブレーク HA割当の質の指標:「ブレーク」 チーム t がスロット s に ブレーク を持つ ⇔ … s-1 s … … s-1 s … t : … A A … もしくは t : … H H … t: A A A A H H A → (チーム t のブレーク数)= 4 HHブレークとAAブレークは,(スロット毎に)同じ数. AA AH HA HH
ブレーク数の下界[de Werra] ブレーク数の意味で最も良いHATは? (ブレーク数が少ない方が良い.) ブレーク最小 HAT [de Werra’80] 補題:ブレーク数の最小値 ≧ チーム数-2 証明:ブレークの無いHA-パターンは2つ AHAHAHAHAHAHA HAHAHAHAHAHAH (HAHAHAHAHAHAH) 許容HATの行は互い異なるHAパターンを持つ. 2チームはブレークを持たない. 他のチームは1つ以上のブレークを持つ. In prevous slide, we saw undesired HAT because of unequality among particular teams. What is optimal HAT in terms of equality? As we have seen, HAT consist of small number of breaks is better. It is already known two kinds of HAT with small number of breaks. One, minimizing breaks HAT. Two team have no breaks, and other team have exactly one break. But in this HAT, there is two team which has no breaks. So we prefer equitable HAT rather than minimizing breaks HAT. In equitable HAT, all teams have exactly one break.
ブレーク最小HATのスケジュール[de Werra] ホームゲーム・アウェイゲームを決める. A B C D E F 12345 A:F C E B D B:E F D A C C:D A F E B D:C E B F A E:B D A C F F:A B C D E アウェイ ゲームチーム ホーム 12345 A:F C E B D B:E F D A C C:D A F E B D:C E B F A E:B D A C F F:A B C D E 実際のスケジュールは?
ブレーク均等HATのスケジュール ブレーク数 2n-2 → 若干の不公平 ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 全てのチームが 1個ブレークを持つHA割当 ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:A H A H A 1:H H A H A 2:H A H A H 2:A A H A H 3:A H H A H 3:A H A A H 4:H A A H A 4:H A H H A 5:A H A H H 5:A H A H H 6:H A H A A 6:H A H A A ブレーク数 2n-2 ブレークが各チーム1個 ブレーク最小HAT ブレーク均等HAT (ブレーク2n 個とは違う)
補完パターン[de Werra] ブレーク最小HATの各行(HA-パターン)は下記のようにブレークが1つ(以下)のもの. HAHAHAHAHHAHAHA :HA-パターン AHAHAHAHAAHAHAH :補完パターン 補題:ブレーク最小HATが,あるHA-パターンを含むならば,その補完パターンも含む. 証明: (背理法) s あるパターン: ‥‥‥‥AHAAHA‥‥‥‥‥ ‥‥‥‥HAHAHA‥‥AA ‥ ‥‥‥‥HAHAHA ‥ HH‥‥ ‥‥AA‥AHAHAH‥‥‥‥‥ sスロットとs+1スロットのHとAの数が異なる.矛盾.
10101 12345 A:F C E B D F:A B C D E B:E F D A C C:D A F E B ブレーク最小とブレーク均等スケジュール (ブレーク最小HAT+スケジュール)は、ブレーク位置でユニークに表現できる 最終スロットと開始スロットをつなげる. するとブレークがあるのはn箇所 各チームは(開始スロット含め) ブレークが丁度1個で, 補完パターン対に分かれている 開始スロットが ブレークが有る所:ブレーク最小 ブレークが無い所:ブレーク均等 n個のブレーク最小HAT n-1個のブレーク均等HAT 10101 12345 A:F C E B D F:A B C D E B:E F D A C C:D A F E B D:C E B F A E:B D A C F
ブレーク最小化=ブレーク最化 [Miyashiro&M] ブレーク数最小化/最大化 従来は別々に議論 でも,実は同じ問題 与えられた入力に対して, 「ブレーク数最大化の最適解」 ⇔ 「ブレーク数最小化の最適解」 を行う変換
最小化/最大化の変換[Miyashiro&M] HA割当Τ 偶数スロットのHAを逆転 ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:A H A H A 1:A A A A A 2:H A H A H 2:H H H H H 3:A H H A H 3:A A H H H 4:H A A H A 変換 4:H H A A A 5:A H A H H ⇔ 5:A A A A H 6:H A H A A 6:H H H H A HA割当Τ HA割当Τ’
最小化/最大化の変換[Miyashiro&M] 対戦制約は満たされる ブレーク ← (変換) → ブレーク無し AA → AH or HA HH → HA or AH AH → AA or HH HA → HH or AA ∴ (元のブレーク数)+(変換後のブレーク数) =定数=2n(2n-2) ブレーク数最小化と最大化は等価
ブレーク最大化+(3H,3A 禁止) [Russell & Leung] 3連続H, 3連続Aを持たないHATが存在するスケジュールで,ブレーク数最大のものは? 定理 [Russell & Leung] 3連続H, 3連続Aを持たず、2n(n-1)-(2n-4) 以上のブレークが存在するHATを持つスケジュールが存在する. open problem: 上記の下界は,下限なのか?
Section 3 スケジュール → HAT
スケジュールの作成方法 [Regin]等 ① ② ③ ① ② ③ ① ② ③ 1:2 4 3 1:A H A 1:H H H ① ② ③ ① ② ③ ① ② ③ 1:2 4 3 1:A H A 1:H H H 2:1 3 4 → 2:H H A 2:A A A 3:4 2 1 3:A A H 3:H H A 4:3 1 2 4:H A H, 4:A A H,… 入力:スケジュール 出力:対応するHA割当 制約条件: 対戦ペアの片方はH,片方がA (対戦制約) → 目的関数: “ブレーク数”
HA割当のブレーク数 HA割当に含まれるブレーク数 ① ② ③ ① ② ③ 1:A H A 1:H H H 2:H H A 2:A A A ① ② ③ ① ② ③ 1:A H A 1:H H H 2:H H A 2:A A A 3:A A H 3:H H A 4:H A H 2個 4:A A H 6個 ブレーク数が小 → A と H なるべく交互 ブレーク数が大 → A の連続,H の連続
ブレーク数最適化問題 ブレーク数最小化/最大化問題 ブレーク数が最小/最大のもの. → 最小化,最大化の意味,先行研究 入力: スケジュール (チーム数 2n) 出力: 対戦制約を満たすHA割当のうち, ブレーク数が最小/最大のもの. → 最小化,最大化の意味,先行研究
ブレーク数最小化の目的 ブレーク数最小化の目的 1 2 3 4 5 1 2 3 4 5 1:A A A A A 1:A H H A A できるだけ A と H を交互に (公平性) 1 2 3 4 5 1 2 3 4 5 1:A A A A A 1:A H H A A 2:A H A H A 2:H H H A H 3:H H A A H 3:A H A H A 4:H A H A A 4:H A A H H 5:A A H H H 5:A A H A H 6:H H H H H (14) 6:H A A H A (8)
最小化問題の先行研究 ブレーク数最小化問題 NP-困難?? 先行研究 (分枝限定ベース) Elf et al. による予想 (後述) Regin (1998), 制約論理,~チーム数20 Trick (2000), 整数計画,~チーム数22 Elf, Jünger, Rinadi (2003), MAX CUT + ABACUS, ~チーム数26 Elf et al. による予想 (後述)
最小化の計算時間 チーム数 Regin (CP) Trick (IP) Elf 他 (MAX CUT) 16 5 34 1 18 80 43 6 20 5603 1092 9 22 7802 37 24 73 26 339 (単位:秒) CPU 200MHz 266MHz 300MHz 環境 Solver (ILOG) CPLEX (ILOG) ABACUS
ブレーク数最大化の目的 [Rusell&Leung]等 ブレーク数最大化の目的: 総移動回数最小化 総移動回数=2n(2nー1)-(1/2)(ブレーク数) (移動回数は,リーグの最初と最後の移動を含む) A H H A H (ブレーク数1,移動回数4) → 経験的に,移動距離最小化問題の 良い解を与える (アメリカマイナーリーグ野球等での研究)
最小(¼) –最大(¾)の存在[Miyashiro&M] (元のブレーク数)+(変換後のブレーク数)=4n(n-1) 定理 [Miyashiro&M] 任意のスケジュールは,それに対応するHATで,ブレーク数が n(n-1) 以下のものを持つ.(3n(n-1) 以上のものも持つ.) ブレーク無し スロットを, 2スロット以降を2つづ区切る. 対の後ろのスロットは,ブレークを無くす. 各対毎に,HAを(1/2)の確率で反転. ブレーク総数の期待値は n(n-1) 2n 第 i スロット 第 i +1スロット 各スロットのブレーク数の期待値 n 2n-1
先行研究の予想 ブレーク数最小化問題の計算複雑度 Elf らの予想: MAX CUT が多項式時間で解ける グラフのクラスと関連? NP-困難 ?? Elf et al. (2003); 最小化問題 最小ブレーク数が小さい入力 → 計算時間小 特に 「最小ブレーク数=2n-2 の例」 は 短時間で最適解が求まる (チーム数:2n) → 何らかの特殊構造,多項式時間性?? Elf らの予想: MAX CUT が多項式時間で解ける グラフのクラスと関連?
ブレーク数の判定問題 問題 (P) O(n3) アルゴリズムを開発 入力: チーム数 2n のスケジュール 存在しないなら不能. ブレーク数最小化問題の 判定問題version; 目的関数値 2n-2 O(n3) アルゴリズムを開発
問題の変換 問題 (P) 入力: チーム数 2n のスケジュール 出力: ブレーク数 2n-2 のHA割当; 存在しないなら不能. ←(変換)→(ブレーク数 2n(2n-2) - (2n-2)) 問題(P’) 出力:ブレーク数 2n(2n-2) - (2n-2) のHA割当;
HA割当の変換 ブレーク数 2n-2 ブレーク数 2n(2n-2)-(2n-2) ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:A H A H A 1:A A A A A 2:H A H A H 2:H H H H H 3:H H A H A 3:A A H H H 4:A A H A H 4:H H A A A 5:A H A A H 5:A A A H H 6:H A H H A 6:H H H A A ブレーク 0個のチーム → 全てA or 全てH ブレーク 1個のチーム → 1回だけA→H or H→A
変換後の問題 ① ② ③ ④ ⑤ 1:A H H H H 問題 (P’): 左のような 2:A A A H H HA割当が存在? 2:A A A H H HA割当が存在? 3:H A A A A 注意:対戦制約 4:H H H H H ← 全てH 5:A A A A A ← 全てA 6:H H H A A ← 1回だけ替わる 子問題 (Pi,j’) ( i, j = 1, 2, …, 2n, i<j ) チーム i が全てA,チーム j が全てHと固定
子問題のHA割当 子問題 (Pi,j’) ( i, j = 1, 2, …, 2n, i<j ) 1:4 2 5 3 6 1:A H ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:4 2 5 3 6 1:A H 2:6 1 4 5 3 2: A H 3:5 4 6 1 2 3:A A A A A 4:1 3 2 6 5 4:H H H H H 5:3 6 1 2 4 5:H A 6:2 5 3 4 1 6: H A 入力 子問題(P34’) 残りのチーム: A…AH…H もしくは H…HA…A となる,対戦制約を満たすHA割当が存在するか?
制約条件の伝播 ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:A H 1:A H H 2: A H 2:A A A H ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ 1:A H 1:A H H 2: A H 2:A A A H 3:A A A A A → 3:A A A A A 4:H H H H H 4:H H H H H 5:H A 5:H A 6: H A 6:H H H A A 制約条件:A→H or H→Aが 1回,入力に対応 → Hを FALSE, Aを TRUE とすれば, 2SAT として定式化可能.
計算複雑度の算定 制約式 2SAT: 変数,2-クローズの個数 O(n2) → 子問題 1個あたり O(n2), 問題(P) は O(n4) A→H,H→A が1回だけ起きる 対戦制約を満たす → 2SAT で定式化可能! 2SAT: 変数,2-クローズの個数 O(n2) → 子問題 1個あたり O(n2), 問題(P) は O(n4) アルゴリズムの工夫 → O(n3)
ブレーク数 2n-2 に対する結果 問題 (P) 入力: チーム数 2n のスケジュール 出力: ブレーク数 2n-2 のHA割当; 存在しないなら不能. O(n3) アルゴリズム ブレーク数 2n-2 の解 → 最小化問題の最適解 Elf たちの予想に対する一つの答え
ブレーク数最小化問題を解く [Miyashiro&Matsui 2004] [Suzuka, Miyashiro, Yoshise, Matsui 2005] [Suzuka, Miyashiro, Yoshise, Matsui 2006]
ブレーク数がチーム数以上 与えられたスケジュールが, ブレーク数 2n 以下のHA割当を持たない場合は? → 先行研究(分枝限定ベース)では, 計算時間がかかる 最小ブレーク数が大きい問題例 チーム数の大きな問題
LP/SDP 緩和を用いたアルゴリズム 線形計画/半正定値計画緩和を用いた 多項式時間確率的アルゴリズム MAX(MIN) RES CUT として定式化 LP緩和: ランダム化丸め法を適用 SDP緩和:Goemans, Williamson (1995) の 0.878 確率的近似アルゴリズムを適用 極めて高速な,質の良い解の生成を確認
MAX RES CUT MAX RES CUT 入力: 無向グラフ G=(V, E), 各枝に対する非負重み + 頂点ペア {vi1, vj1}, …, {vik, vjk} 出力: 頂点ペア{vi1, vj1}, …, {vik, vjk}を分け, 重み最大のカット集合 NP-困難 Goemans, Williamson (1995) による 0.878 確率的近似アルゴリズム
ブレーク数最小化問題と MAX RES CUT ① ② ③ ① ② ③ 1:2 4 3 1 ● ● ● 2:1 3 4 2 ● ● ● 3:4 2 1 3 ● ● ● 4:3 1 2 4 ● ● ● 頂点集合を「Aの集合」と「Hの集合」に分割 カット=ブレーク無 A H
MAX RES CUT のグラフ チーム数 頂点数 枝数 近似比 計算時間[秒] 16 240 288 1.000 2.1 18 306 224 1.000 3.4 20 380 360 0.994 4.9 22 462 440 0.995 8.0 24 552 528 0.989 12 26 650 624 0.985< 18 30 870 840 ? 38 40 1560 1520 ? 179
計算実験の結果 チーム数 最適値(IP) SDP緩和 差 近似比率 16 192 192 0 1.000 18 248 248 0 1.000 20 312 310 2 0.994 22 382 380 2 0.995 24 458 452 4 0.989 26 540 or 542 534 6 or 8 0.985< 30 ― 720 ? ? 40 ― 1306 ? ? (超平面分離1000回)
計算時間の比較 チーム数 Régin Trick Elf et al. 本研究 [秒] 16 1 6.5 0.3 2.1 18 18 13 2 3.4 20 1245 323 3 4.9 22 678 12 8.0 24 24 12 26 (2ヶ月<) 111 18 30 38 40 179 (CPU: 900 MHz, SDP Solver: SDPA 6.0, 超平面分離1000回)
総移動距離最小化: 各チームの移動距離の総和 チームkの移動距離: 総移動回数最小化:各ホーム間距離が1の特殊ケース 対戦組合せ表と会場割当が与えられたとき、kのホームを出発し、対戦組合せ表と会場割当で規定される順に、対戦会場を訪問し、最後にkのホームに戻るまでの経路の長さ 総移動回数最小化:各ホーム間距離が1の特殊ケース 総移動回数=2n(2nー1)-(1/2)(ブレーク数) 総移動距離最小化≒ブレーク最大化
計算機実験結果 総移動距離最小化問題:16~40チーム LP緩和:近似比率(1~1.002), 8秒(40チーム) SDP緩和:近似比率(1~1.01), 2000秒(40チーム) 分枝限定法(厳密解法): 52秒(40チーム) 総移動回数最小化問題:16~40チーム LP緩和:近似比率(1.1~1.4), 10秒(40チーム) SDP緩和:近似比率(1~1.16), 2200秒(40チーム) 分枝限定法(厳密解法): 2700秒(18チーム)
Section 4 HAT→スケジュール
スケジュールの作成方法 1 2 3 1 2 3 1:2 4 3 1:2 4 3 ① 対戦相手決定 1 2 3 1 2 3 1:2 4 3 1:2 4 3 ① 対戦相手決定 2:1 3 4 → 2:1 3 4 ② 場所を割当 3:4 2 1 3:4 2 1 4:3 1 2 4:3 1 2 線 1 2 3 1 2 3 1:A H A 1:2 4 3 ① HATを決定 2:H H A → 2:1 3 4 ② 対戦相手を割当 3:A A H 3:4 2 1 4:H A H 4:3 1 2
HAT作成 →(チーム割当)→ スケジュール作成 1 2 3 1 2 3 1 2 3 1:A H A 1:2 4 3 1:2 3 4 2:H H A → 2:1 3 4 2:1 4 3 3:A A H 3:4 2 1 3:4 1 2 4:H A H 4:3 1 2,4:3 2 1 許容HAT: スケジュールを生成できるHAT cf. 不能HAT
HAT 許容性判定問題 HAT 許容性判定問題 Input: HAT (チーム数 2n; 2n-1 スロット); Output: 与えられたHATが許容HATか? 長年の未解決問題 [de Werra 1980, Nemhauser & Trick 1998] 理論的結果ほぼ無し (整数計画法) 計算複雑度は未知 (NP-完全??) 目標: 「許容HATの良い特徴付け」
許容HATである必要条件 1 2 3 4 5 1 2 3 4 5 1:A A H A H 1:A A H A H 1 2 3 4 5 1 2 3 4 5 1:A A H A H 1:A A H A H 2:A H H A H 2:A H H A H 3:A H A A H 3:A H A A H 4:H H A H A 0 1 1 0 0 min{#A, #H} 5:H A A H A 6:H A H H A α({1,2,3}) = (0+1+1+0+0) - 3×2/2 = -1 ⇒ 不能 α(T) = ∑s min{#A(T, s), #H(T, s)} - |T| C 2
関数αの定義 許容HATの必要条件 ∀T⊆U, ∑s min{#A(T, s), #H(T, s)} ≧ |T| C 2 関数αの定義 α(T) = ∑s min{#A(T, s), #H(T, s)} - |T| C 2 許容 HAT であるための必要条件 Ⓐ ∀T⊆U, α(T)≧0
許容HATの必要条件 許容HAT の必要条件 Ⓐ: ∀T⊆U, α(T)≧0 HAT 許容性判定における新たな解析手法 22n 本の不等式による表現 HAT 許容性判定における新たな解析手法 → 特殊なクラスの HAT を考え, それらの許容性と条件 Ⓐ の関係を考察 (最小HAT と均等HAT, 十分条件?)
許容性判定と条件Ⓐ 一般的に好ましい HAT → これらの HAT の許容性を簡単に判定したい ブレーク最小HAT (ブレーク数 2n-2), ブレーク均等HAT (ブレーク数 2n) → これらの HAT の許容性を簡単に判定したい 条件Ⓐ 「∀T⊆U, α(T)≧0」 がどのくらい有効か? → 計算機実験により評価
計算実験の結果 26チーム以下の最小HAT,均等HATならば, 「∀T ⊆U,α(T)≧0 ⇔ 許容HAT」 #teams #総数 # Ⓐ #許容 #teams #総数 # Ⓐ #許容 4 3 3 3 16 6435 255 255 6 10 5 5 18 24310 408 408 8 35 14 14 20 92378 1102 1102 10 126 18 18 22 352716 1995 1995 12 462 55 55 24 1352078 5313 5313 14 1716 91 91 26 5200300 9850 9850 26チーム以下の最小HAT,均等HATならば, 「∀T ⊆U,α(T)≧0 ⇔ 許容HAT」 This table shows results of experiments. THIS column shows the number of teams, the number of PSMB, including both feasible and infeasible, the number of “survived” PSMB, and the number of feasible PSMB. You can see, when the number of teams is less than or equal to 26, the number of “survived” and feasible PSMB are equal !!
実験結果のまとめ 提案した条件 Ⓐ は,非常に強い必要条件 ∀T⊆U, α(T)≧0 ⇔ 許容HAT 26チーム以下の最小HAT,均等HATの場合 ∀T⊆U, α(T)≧0 ⇔ 許容HAT 28チーム以上は未実験 (30チームまでは確認 [池辺 2003]) 未解決予想: 任意のチーム数で必要十分条件
定理の概要 ∀T⊆U ={1,2,…,2n} に対してα(T) を考えると... 証明した定理 任意のチーム数の最小HAT,均等HATに関して, 「∀T⊆U, α(T) ≧ 0 (条件 Ⓐ )」 を満たすか否かは O(n4)でチェック可能
条件Ⓐに関する定理 定理: (チーム番号を前処理でソート後) 任意の均等HAT (最小HAT)について, ∀T⊆U, α(T) ≧ 0 不等式 O(22n) 本 ⇔ 全ての連続な T⊆U に対して α(T) ≧ 0 不等式 O(n2) 本 連続な T : {1, 2, 3}, {5, 6}, {2, 3, 4, 5}, … 非連続な T : {1, 2, 4}, {5, 7}, {2, 5, 6, 7}, …
さらに “良い” 均等HAT を求めるケース有 成果の応用 実用上は,均等HATの中でも さらに “良い” 均等HAT を求めるケース有 許容である スロット 2, 2n-1 のブレークをできるだけ避ける. [Nemhauser&Trick 1998]
MIM予想と柏原の反例 [Miyashiro,Iwasaki,M] 最小HATと均等HATにおいて、 ∀T⊆U, α(T) ≧ 0は、 許容となる必要十分条件。 appearing in recent handbooks [Ikebe]により、30チームまで 反例が無いことが確認された。 一般のHATでは十分でない。 柏原による反例 01:HHHHAAAAHAAAH 02:HHHHAAAAHHAAA 03:HHHHAAAAAHHAA 04:HHHHAAAAAAHHA 05:HHHHAAAAAAAHH 06:HHHHHHHHAAAAH 07:AAAAHHHHHAAAH 08:AAAAHHHHHHAAA 09:AAAAHHHHAHHAA 10:AAAAHHHHAAHHA 11:AAAAHHHHAAAHH 12:HHAAHAAAHHHHH 13:AAHAAHAAHHHHA 14:AAAHAAHHHHHHH
Section 5 応用と実用
Traveling Tournament Problem http://mat.gsia.cmu.edu/TOURN/ (see Trick’s HP) 2重総当り戦 : n で 2n-2 スロット 目的は、総移動距離の最小化 (各チームは、自分のホームから出発し、自分のホームに帰ってくる) どのチームも、3H と 3A は禁止 No repeaters (A 対 Bの直後の B 対 A は禁止) 距離行列は、対称
8チームの問題例(NL8) Feasible Solution: Lower Bound: 41505 (Easton June 4, 1999), 41113 (Easton Jan 27, 2000), 40416 (Cardemil, July 2 2002), 39947 (Zhang, August 19 2002), 39721 (Easton, August 25 2002) Lower Bound: 38760 (Trick Dec 15, 2000), 38870 (Easton Jan 2, 2001), 39479 (Easton Feb 26, 2002)
10チームの問題例(NL10) Feasible Solution: Lower Bound: 68691 (Rottembourg and Laburthe June 2001), 66369 (Dorrepaal, June 21 2002), 66037 (Cardemil, July 2 2002), 64597 (Zhang August 6, 2002), 61608 (Zhang August 19, 2002), 59583 (Van Hentenryck January 14, 2003) Lower Bound: 56506 (Waalewijn July 2001), 57500 (Easton June 2002)
12チームの問題例(NL12) Feasible Solution: 143655 (Rottembourg and Laburthe May 2001), 138850 (Larichi, Lapierre, and Laporte July 8 2002), 125803 (Cardemil, July 2 2002), 119990 (Dorrepaal July 16, 2002), 119012 (Zhang, August 19 2002), 118955 (Cardemil, November 1 2002), 114153 (Van Hentenryck January 14, 2003), 113090 (Van Hentenryck February 26, 2003), 112800 (Van Hentenryck June 26, 2003), 112684 (Langford February 16, 2004), 112549 (Langford February 27, 2004), 112298 (Langford March 12, 2004), 111248 (Van Hentenryck May 13, 2004). Lower Bound: 107483 (Waalewign August 2001)
14チームの問題例(NL14) Feasible Solution: Lower Bound: 301113 (Rottembourg and Laburthe June 2001), 262010 (Larichi, Lapierre, Laport July 8 2002), 216108 (Cardemil, July 2 2002), 207075 (Zhang, August 28 2002), 205894 (Cardemil, November 20 2002), 195555 (Van Hentenryck January 14, 2003), 190368 (Van Hentenryck February 26, 2003), 190056 (Langford April 22, 2004), 189766 (Van Hentenryck May 13, 2004). Lower Bound: 182797 (Waalewign August 2001)
16チームの問題例(NL16) Feasible Solution: Lower Bound: 312623 (Easton January 2002), 308413 (Cardemil, July 2 2002), 301256 (Zhang August 6 2002), 293175 (Zhang, August 28 2002), 284235 (Shen, October 16 2002), 281660 (Shen, January 6 2003) 277766 (Van Hentenryck January 14, 2003), 273802 (Van Hentenryck February 26 2003), 272,902 (Langford, January 16, 2004), 267,194 (Van Hentenryck, June 26, 2003). Lower Bound: 248852 (Easton January 2002)
総移動回数最小化 Traveling Tournament Problem 総移動回数最小化≒ブレーク数最大化 ブレーク数の上界と,改訂ポリゴン法によるブレーク数 n ≡ 0 (mod 3)のとき (4/3)n2 – 2n – ((2/3)n – 2 ). n ≡ 1 (mod 3)のとき (4/3)n (n – 1) – (n – 2) – (2/3) (n – 1). n ≡ 2 (mod 3)のとき (4/3)n (n – 2) – (5/3) (n – 2).
改訂ポリゴン法(n ≡ 1 (mod 3) の場合) 1 3頂点ごとに向きを反転 n
改訂ポリゴン法 (n ≡ 1 (mod 3) の場合) S S n n 3スロット毎に向きを反転 したポリゴンを利用
1重総当たりリーグ戦から2重総当りリーグ戦へ (n ≡ 1 (mod 3) の場合) AAA HHH AAH HAA AHH HAA AAH HHH AAA HHA AHH HAA AHH HHA
n ≡ 0 (mod 3)のとき n ≡ 1 (mod 3)のとき n ≡ 2 (mod 3)のとき 整数計画法を用いた構成法のブレーク数 n ≡ 0 (mod 3)のとき (4/3)n2 – 2n – (n – 2 ). n ≡ 1 (mod 3)のとき (4/3)n (n – 1) – (n – 2) . 最適値 n ≡ 2 (mod 3)のとき (4/3)n (n – 2) – (n – 2). 上界とのギャップ n ≦ 46 について構成可能であることを 計算機実験により確認.
1重総当たりリーグ戦から2重総当りリーグ戦へ 例: n = 22 AAA AAA AAA AAA AAA AAA AAA HHH HHH HHH HHH HHH HHH HHH
1重総当たりリーグ戦から2重総当りリーグ戦へ (n ≡ 1 (mod 3) の場合) AAA AAA AAA AAA AAA AAA AAA HHH HHH HHH HHH HHH HHH HHH
1重総当たりリーグ戦から2重総当りリーグ戦へ (n ≡ 1 (mod 3) の場合) 4連続H(A)がない. Xにおいて,全てのチームが, スロット 3i+1 (i ≧ 1)にブレークをもつ. このようなXが存在することを n ≦ 46 について計算機実験により確認.
比較(ブレーク数の上界との差) 1 2 ポリゴン (2/3)n – 2 (2/3)(n – 1) (5/3)(n – 2) IP n – 2 1 2 ポリゴン (2/3)n – 2 (2/3)(n – 1) (5/3)(n – 2) IP n – 2 n (mod 3) 手法
実例 実例では? 3Hと3Aの禁止 各チームのブレークは2回程度
1993年のJリーグ前半戦(ブレーク数) 1 2 3 4 5 6 7 8 9101112131415161718 K: H H A A H H A H A A A H A A H A H H 7 V: H A A H A A H A H H A A H H A H A H 5 M: A H A A H A H A H A H H A H A H A H 2 E: A H H A H H A H A A H H A A H A H A 5 J: A H A H A A H A H A H A H H A H A H 2 S: H A H H A A H A H H A A H H A H A A 6 F: H A H A H H A H A H A H A A H A H A 2 G: H A H H A A H H A H A A H H A A H A 6 N: A A H H A H A H A H H A H A H A H A 3 R: A H A A H H A A H A H H A A H H A H 6 2 2 6 0 8 0 2 0 4 2 6 0 8 0 2 0 2 43 2重総当り戦 10チーム 望ましい
2001年のJリーグ後半戦のスケジュール 磐田 : H A H A H A A H A A H A H H A 3 市原 : H A A H A H A H A A H A H A H 2 名古屋: H A H A A H A H A A H A H H A 3 浦和 : H A H A A H A H A A H A H A H 2 C大阪 : H A H A H A H H A A H A H H A 3 札幌 : A H A H H A H A H H A H A A H 3 福岡 : A H H A H A H A H H A H A H A 2 G大阪 : A H A H A H A A H H A H A A H 3 横浜FM: H A H A H A H A H H A H A H A 1 神戸 : A H A H A H A H A H A H A A H 1 F東京 : H A H A H A H A H A H H A H A 1 東京V : A H A H A H A H A H A A H A H 1 柏 : A H A H H A H A H H A H A H A 2 清水 : A H A H A H H A H H A H A A H 3 鹿島 : H A H A H A H A H A H A H H A 1 広島 : A H A H A H A H A A H A H A H 1 0 0 2 0 4 0 2 2 012 0 2 0 8 0 32 16チーム 読み方
2001年のJリーグ前半戦のスケジュール 磐田 : H A H A H H A H A H A H A H A 1 市原 : A H H A H A H H A H A H A H H 3 名古屋: H A H A H A H H A H A H A H A 1 浦和 : A H H A H A H H A H A H A A A 4 C大阪 : H A H A A H A H A H A H A H A 1 札幌 : A H A H A H A A H A H A H A H 1 福岡 : H A A H A H A A H A H A H H A 3 G大阪 : A H A H H A H A H A H A H A H 1 横浜FM: H A A H A H A H A A H A H H A 3 神戸 : A H H A H A H A H A H A H A H 1 F東京 : H A A H A H A H A H A A H H A 3 東京V : A H H A H A H A H A H H A A H 3 柏 : H A A H A H A A H A H A H A H 2 清水 : A H A H A A H A H A H A H A H 1 鹿島 : H A A H A H A H A H A H A H A 1 広島 : A H H A H A H A H H A H A A H 3 0 010 0 2 2 0 6 0 2 0 2 0 6 2 32 16チーム 読み方
セリエA2000/2001シーズン(2重総当たり戦) Atalanta : HAAHAHAHAHAHHAHAH AHHAHAHAHAHAAHAHA Bari : HAHAHHAHAHAHAAHAH AHAHAAHAHAHAHHAHA Bologna : AHAHAHHAHAHAHAHAH HAHAHAAHAHAHAHAHA Brescia : AHHAHAHAAHAHAHAHA HAAHAHAHHAHAHAHAH Fiorentina: AHAHHAHAAHAHAHAHA HAHAAHAHHAHAHAHAH Inter : AHAHAHHAHAHAAHAHA HAHAHAAHAHAHHAHAH Juventus : AHAHAHAHAHAAHHAHA HAHAHAHAHAHHAAHAH Lazio : AHAHHAHAHAHAHAHAH HAHAAHAHAHAHAHAHA Lecce : AHAHAAHAHAHAHHAHA HAHAHHAHAHAHAAHAH Milan : HAHAHAAHAHAHHAHAH AHAHAHHAHAHAAHAHA Napoli : HAHAHAHAHAHHAAHAH AHAHAHAHAHAAHHAHA Parma : HAAHAHAHHAHAHAHAH AHHAHAHAAHAHAHAHA Perugia : HAHAAHAHHAHAHAHAH AHAHHAHAAHAHAHAHA Reggina : HAHAHAAHAHAHAHAHA AHAHAHHAHAHAHAHAH Roma : HAHAAHAHAHAHAHAHA AHAHHAHAHAHAHAHAH Udinese : HAHAHAHAHAHHAHAHA AHAHAHAHAHAAHAHAH Verona : AHHAHAHAHAHAAHAHA HAAHAHAHAHAHHAHAH Vicenza : AHHAHAHAHAHAAHAHA HAAHAHAHAHAHHAHAH
セリエA2000/2001シーズン(2重総当たり戦) Atalanta : HAAHAHAHAHAHHAHAHAHHAHAHAHAHAAHAHA Bari : HAHAHHAHAHAHAAHAHAHAHAAHAHAHAHHAHA Bologna : AHAHAHHAHAHAHAHAHHAHAHAAHAHAHAHAHA Brescia : AHHAHAHAAHAHAHAHAHAAHAHAHHAHAHAHAH Fiorentina: AHAHHAHAAHAHAHAHAHAHAAHAHHAHAHAHAH Inter : AHAHAHHAHAHAAHAHAHAHAHAAHAHAHHAHAH Juventus : AHAHAHAHAHAAHHAHAHAHAHAHAHAHHAAHAH Lazio : AHAHHAHAHAHAHAHAHHAHAAHAHAHAHAHAHA Lecce : AHAHAAHAHAHAHHAHAHAHAHHAHAHAHAAHAH Milan : HAHAHAAHAHAHHAHAHAHAHAHHAHAHAAHAHA Napoli : HAHAHAHAHAHHAAHAHAHAHAHAHAHAAHHAHA Parma : HAAHAHAHHAHAHAHAHAHHAHAHAAHAHAHAHA Perugia : HAHAAHAHHAHAHAHAHAHAHHAHAAHAHAHAHA Reggina : HAHAHAAHAHAHAHAHAAHAHAHHAHAHAHAHAH Roma : HAHAAHAHAHAHAHAHAAHAHHAHAHAHAHAHAH Udinese : HAHAHAHAHAHHAHAHAAHAHAHAHAHAAHAHAH Verona : AHHAHAHAHAHAAHAHAHAAHAHAHAHAHHAHAH Vicenza : AHHAHAHAHAHAAHAHAHAAHAHAHAHAHHAHAH
セリエA2000/2001シーズン(ホームゲーム) Atalanta : H H H H H HH H H HH H H H H H H 2 Bari : H H HH H H H H H H H H H H HH H 2 Bologna : H H HH H H H H HH H H H H H H H 2 Brescia : HH H H H H H H H H H HH H H H H 2 Fiorentina: H HH H H H H H H H H HH H H H H 2 Inter : H H HH H H H H H H H H H HH H H 2 Juventus : H H H H H HH H H H H H H HH H H 2 Lazio : H HH H H H H H HH H H H H H H H 2 Lecce : H H H H H HH H H H HH H H H H H 2 Milan : H H H H H HH H H H H HH H H H H 2 Napoli : H H H H H HH H H H H H H H HH H 2 Parma : H H H HH H H H H HH H H H H H H 2 Perugia : H H H HH H H H H H HH H H H H H 2 Reggina : H H H H H H H H H H HH H H H H H 1 Roma : H H H H H H H H H HH H H H H H H 1 Udinese : H H H H H HH H H H H H H H H H H 1 Verona : HH H H H H H H H H H H H HH H H 2 Vicenza : HH H H H H H H H H H H H HH H H 2 030212020022200020202120200132000 33
セリエA2000/2001シーズン(アウェイゲーム) Atalanta : AA A A A A A A A A A A A AA A A 2 Bari : A A A A A AA A A A AA A A A A A 2 Bologna : A A A A A A A A A A AA A A A A A 1 Brescia : A A A AA A A A A AA A A A A A A 2 Fiorentina: A A A AA A A A A A AA A A A A A 2 Inter : A A A A A AA A A A A AA A A A A 2 Juventus : A A A A A AA A A A A A A A AA A 2 Lazio : A A A A A A A A A AA A A A A A A 1 Lecce : A A AA A A A A A A A A A A AA A 2 Milan : A A AA A A A A A A A A A AA A A 2 Napoli : A A A A A AA A A A A A A AA A A 2 Parma : AA A A A A A A A A A AA A A A A 2 Perugia : A AA A A A A A A A A AA A A A A 2 Reggina : A A AA A A A A AA A A A A A A A 2 Roma : A AA A A A A A AA A A A A A A A 2 Udinese : A A A A A A A AA A A A A AA A A 2 Verona : A A A A A AA A A AA A A A A A A 2 Vicenza : A A A A A AA A A AA A A A A A A 2 020212020013200030302120200222000 34
セリエA2000/2001シーズン (ブレーク数) 2重総当り戦 Atalanta : HAAHAHAHAHAHHAHAHAHHAHAHAHAHAAHAHA 4 Bari : HAHAHHAHAHAHAAHAHAHAHAAHAHAHAHHAHA 4 Bologna : AHAHAHHAHAHAHAHAHHAHAHAAHAHAHAHAHA 3 Brescia : AHHAHAHAAHAHAHAHAHAAHAHAHHAHAHAHAH 4 Fiorentina: AHAHHAHAAHAHAHAHAHAHAAHAHHAHAHAHAH 4 Inter : AHAHAHHAHAHAAHAHAHAHAHAAHAHAHHAHAH 4 Juventus : AHAHAHAHAHAAHHAHAHAHAHAHAHAHHAAHAH 4 Lazio : AHAHHAHAHAHAHAHAHHAHAAHAHAHAHAHAHA 3 Lecce : AHAHAAHAHAHAHHAHAHAHAHHAHAHAHAAHAH 4 Milan : HAHAHAAHAHAHHAHAHAHAHAHHAHAHAAHAHA 4 Napoli : HAHAHAHAHAHHAAHAHAHAHAHAHAHAAHHAHA 4 Parma : HAAHAHAHHAHAHAHAHAHHAHAHAAHAHAHAHA 4 Perugia : HAHAAHAHHAHAHAHAHAHAHHAHAAHAHAHAHA 4 Reggina : HAHAHAAHAHAHAHAHAAHAHAHHAHAHAHAHAH 3 Roma : HAHAAHAHAHAHAHAHAAHAHHAHAHAHAHAHAH 3 Udinese : HAHAHAHAHAHHAHAHAAHAHAHAHAHAAHAHAH 3 Verona : AHHAHAHAHAHAAHAHAHAAHAHAHAHAHHAHAH 4 Vicenza : AHHAHAHAHAHAAHAHAHAAHAHAHAHAHHAHAH 4 050424040035400050504240400354000 67 2重総当り戦
課題 各チームのブレーク2回の(スケジュール+HAT)の特徴付け. 2重総当り戦での,ブレーク数最小化 3Hと3Aの禁止 移動距離 観客動員数予想
おわり