nt)np t where nt := [Tag t を持つサークルの総数] サークル間類似度の定義 Ci , Cj をサークル i, j を表すタグ集合として s(Ci , Cj) := max t∈Ci∩Cj r(t) ▶ 珍しいタグが優遇されるように傾斜をつけた ▶ p は傾斜を調整するパラメータ(調整が辛いので本当は入れたくなかった) ▶ タグが多いサークルが有利にならないよう最大だけを見る 8
う circle C う circle D あ . . . . . . あ size: 3 う size: 3 い size: 2 え size: 2 A B C D E F G H I J A D I B C E F J G H サークル A~J を部分集合に分割 あ size: 3 い size: 2 う size: 3 え size: 2 ▶ 左の感じの表が自動でできる ▶ 実用上は「あ」とかよりももう少し細かくブロックを分ける ▶ 各ブロック内での詳細な並びは別の問題として解く 13
circle B う 2 circle C う 1 circle D あ 3 . . . . . . . . . あ01 あ04 あ02 あ05 あ03 あ06 A D B E C F B E F A C D ブロック内での適切な配置を 決める ▶ 各ブロックごとに具体的な配置を決定する ▶ ここでは誰と隣り合っているかなど細かい条件を考慮する 14
う circle C う circle D あ . . . . . . あ size: 3 う size: 3 い size: 2 え size: 2 A B C D E F G H I J A D I B C E F J G H サークル A~J を部分集合に分割 あ size: 3 い size: 2 う size: 3 え size: 2 ▶ 左の感じの表が自動でできる ▶ 実用上は「あ」とかよりももう少し細かくブロックを分ける ▶ 各ブロック内での詳細な並びは別の問題として解く 18
circle B う 2 circle C う 1 circle D あ 3 . . . . . . . . . あ01 あ04 あ02 あ05 あ03 あ06 A D B E C F B E F A C D ブロック内での適切な配置を 決める ▶ 各ブロックごとに具体的な配置を決定する ▶ ここでは誰と隣り合っているかなど細かい条件を考慮する 26
F J K あ01--あ03 い01--い03 う01--う03 え01--え03 ブロックの位置を人手で入れ替える A D I B C E G H L F J K あ01--あ03 い01--い03 う01--う03 え01--え03 ▶ 同じサイズのブロック同士は位置を交換することができる ▶ ブロックのサイズをできる限り揃えて人間による調整の余地を残す ▶ 元々の「あ」〜「こ」のブロックをもう少し細かく分割 31
· · block N circle 1 1 0 0 · · · 0 circle 2 0 0 1 · · · 0 circle 3 0 0 1 · · · 0 . . . . . . . . . . . . ... . . . circle M 0 1 0 · · · 0 min x m ∑ i m ∑ j n ∑ k sij xik xjk s.t. xik ∈ {0, 1} n ∑ k xik = 1 m ∑ i xik ≤ ck ▶ 同一ブロック内のサークル間類似度の総和を最大化 ▶ ↔ 離れ離れになるサークルの類似度総和(カット)の最小化 ▶ ブロック k には任意のサイズ ck を与えることができる 36