Boyer-Moore 過半数票アルゴリズム
概要
Boyer-Moore 過半数票アルゴリズム (Boyer-Moore majority vote algorithm) は多重集合から過半数を占める要素 (
Table of Contents
アルゴリズム
Boyer-Moore 過半数票アルゴリズムは「多重集合の中で要素
最初のペアリングフェーズ (pairing phase) では異なる要素を検出したら共に消滅させて残った「候補」を選択する。アルゴリズムの擬似コードを Algorithm 1 に示す。使用する空間は現在の候補とそのカウンターの 2 つである。
| 1. | |
|
| 2. | |
|
| 3. | |
|
| 4. | |
|
| 5. | |
|
| 6. | |
|
| 7. | |
|
| 8. | |
|
| 9. | |
|
| 10. | |
|
| 11. | |
|
このアルゴリズムは過半数の要素が存在しなかったことを報告しないことに注意。データストリームに過半数を占める要素が存在しない場合、アルゴリズムの選択する要素は任意である (最も頻繁に出現した要素であることは保証されない)。
データストリームに過半数の要素が存在していることが確かであれば、ペアリングフェーズで得られた候補が「過半数」の要素であることは正しい。例えば「賛成」か「反対」かしか含まれていないような 2 値のケースでは必ずどちらかが多数となる。
過半数の要素が存在するか不確定な場合、ペアリングフェーズで得られた候補
参考文献
- MOORE, J. Strother. A fast majority vote algorithm. Automated Reasoning: Essays in Honor of Woody Bledsoe, 1981, 105-108.
- Dzejla Medjedovic, Emin Tahirovic, Ines Dedovic. 大規模データセットのためのアルゴリズムとデータ構造. マイナビ出版 (2024)