次に、各項目を一つのクラスターに対応させた 個のクラスターから始めて、クラ
スター数が
になるまで、次々と二つのクラスターを統合し、新しいクラスターを
つくる bottom-up merging による階層的な手法を問題の評価基準に沿って導出する。
項目を
の
個のクラスターに分割
する場合、問題の評価基準(5.2)は、
![]() |
(265) |
最終的評価値(5.2)を小さくするためには、クラスターを統合する時、 統合後の評価値を最小にする、つまり、統合の前と後の評価値の差を最大にするクラ スターの対を統合すればよい。
統合前のクラスターを
,
とし、
クラスター
と
,
を統合する場合を考える。統合
前の評価値は(5.5)で与えられ、統合後の評価値は、
![]() |
(267) |
従って、統合前と統合後の評価値の差は、
![]() |
(268) |
![]() |
(269) |
![]() |
(270) |
また、 と
の統合によって新しく作られるクラスターの代
表ベクトル
は、上述の議論から、
![]() |
(271) |
![]() |
(272) |
階層的クラスタリング手法には、二つのクラスター間の測度をどう定めるかによって
多くの変種が存在する[3]。例えば、Single Linkage法では、最も似た
二つのベクトルを各クラスターの代表ベクトルとして、それらの間に定義された測度
を二つのクラスター間の測度と定義している。これに対し、ここで提案した手法では、
評価基準から各クラスターの代表ベクトルおよびクラスター間の測度 が一意に
定まりそれぞれ明確な論理的意味を持っている。
測度 は離散的な値を取るため値が等しい(タイの)場合の処理方法を考えておく
ことは重要である。トップダウンに何等かの距離(メトリック)を導入した場合には、
これは非常に難しい問題であるが、日程表作成問題では、題意から簡単なheuristics
が考えられる。延べ出席日数を最小とするためには、各クラスターに関係する人の数
を少なくする必要がある。従って、タイの場合には、統合後のクラスターに関係する
人の数の少ないクラスター対を統合すればよい。統合後のクラスター対に関係する人
の数は、二つのクラスター代表ベクトルの要素ごとの OR を取ったベクトルの
の
個数に他ならない。それは、測度
の計算と同時に計算できる。従って、タイの
場合の処理を加えても計算量はほとんど変わらない。
実際のアルゴリズムでは、クラスターの統合を定数時間で実行するため、各クラスター をそのクラスターに属する項目のダブルリンクドリストで表現している。