250 likes | 374 Views
A Distributed Arrangement Selection Algorithm on a Line Network. å¹³æˆ 13 å¹´ 4 月 24 æ—¥ NTT コミュニケーション科å¦åŸºç¤Žç ”究所 ä½ã€…木 æ·³. left. right. ç·šå½¢ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯. åˆæœŸçŠ¶æ…‹ï¼š. 2. 5. 4. 3. 1. 最終状態:. 1. 2. 分散 Arrangement Selection å•é¡Œ.     ã«å±žã™ã‚‹ k プãƒã‚»ã‚¹ã«ï¼Œæœ€å°å€¤ã‹ã‚‰ k 番目ã«å°ã•ãªè¦ç´ ã¾ã§ã‚’å·¦ã‹ã‚‰æ˜‡é †ã«å‰²å½“. 応用例:資æºå‰²å½“.
E N D
A Distributed Arrangement Selection Algorithm on a Line Network 平成13年4月24日 NTTコミュニケーション科学基礎研究所 佐々木 淳
left right 線形ネットワーク
初期状態: 2 5 4 3 1 最終状態: 1 2 分散Arrangement Selection問題 に属する k プロセスに,最小値から k 番目に小さな要素までを左から昇順に割当
応用例:資源割当 • 同等の資源がネットワーク上に分散して複数存在 • 各プロセスはいずれかひとつの資源が割り当てられれば良い • 各資源を同時に使用できるのは唯一のプロセス • 優先度が高い順に割当 というときの,ひとつの解を与える
関連研究 • 分散 k-selection • k番目に小さな要素を求める • 通信複雑度の最小化が目的 • 分散ソーティング[COMP2000-32] • 要素を左端から昇順に並べ替える • 分散Arrangement Selection問題の部分問題
目的 分散Arrangement Selection問題を 厳密に最適な時間複雑度で解く
同期モデル ※同期メッセージの利用で同期アルゴリズムを 非同期モデル上で実行可能 → 同期アルゴリズムのみを議論 モデル • 同期モデル • 通信がプロセス間で同期して実行 • 1ラウンド:受信,内部処理,送信 (通信回数を表す;最初の送信はラウンド0) • 非同期モデル • 通信はプロセスごと独立に発生 • 通信リンクはFIFO
仮定 • 各プロセスは大域的な情報(大域的な位置,システム中のプロセス数n,等)を持たない • 局所メモリの大きさをO(log L)ビットに, メッセージ長をlog L+O(1)ビットに制限 ※L:要素の最大値
時間複雑度 評価尺度 • 時間複雑度 • 同期モデル: ラウンド数 • 非同期モデル: 最長鎖のメッセージ数 • 通信複雑度 • メッセージ複雑度: 総メッセージ数 • ビット複雑度: 全メッセージの総ビット数
初期状態: 2 5 4 3 1 最終状態: 1 2 分散Arrangement Selection問題 に属する k プロセスに,最小値から k 番目に小さな要素までを左から昇順に割当
簡単な方法 • 要素をセンタに集め,そこで最小値から順にk要素を選択し,ひとつずつ各サーバに割当 • 大容量(O(n)以上)の局所メモリが必要 • 局所計算量が大きく偏る • 局所メモリ量を制限した場合の時間複雑度: n+k-2 • 分散 k-selectionアルゴリズムを利用して最小値から順に k要素を選択し,ひとつずつ各サーバに割当 • 事前に kの算出が必要 • 時間複雑度: 2(n-1) 以上 時間複雑度の下界はn-1 → さらに高速化
従来法の適用 • 分散ソーティング[COMP2000-32]の動的な問題に対するアルゴリズムが利用可能 注) 動的なソーティング: 初期状態と最終状態とで,総要素数は等しいが,各プロセスの要素数は異なる
2 5 4 3 1 25 4 13 2 145 3 1 234 5 1 23 4 5 1 2 3 45 1 2345 1 2 345 解: 1 2 動的なソーティングアルゴリズムの利用
従来法を適用した際の問題点 時間複雑度がn-1よりも大 (kが小さいほど時間がかかる) • 不要な要素が最後まで残る(要素の選択・削除の判断が難しい) • 右端に近いプロセスの解となる要素(特にk番目に小さな要素)の配送が大きく遅れやすい ↓ 最大値よりも最小値の扱い方が重要
アイデア • ネットワークの右半分に,全要素をソートしつつ収集 • 最小値から順にk要素を選択(より大きな要素ほど右のプロセスで選択) • 未選択要素を削除 • 選択した要素を,選択した順に適切なプロセスへ配送
要素の流れの概観(従来法) →プロセス →ラウンド 1要素 2要素 3要素
要素の流れの概観(本手法) →プロセス →ラウンド 1要素 2要素
arrangement状態の基本動作: 左右にある に属するプロセス数と左にある 要素数とを知ることができ,それに基づいて要素を送信 左にある に属するプロセス数と,左 にある要素数とが一致するため終了 要素が互いに送られても,一方が終 了したら,もう一方が両要素を保持 要素が交互に送られたら,それらが 昇順になるように1要素ずつ保持 2,left ここより左に に属するプロセスが なく,全要素が右にあるため終了 に属するプロセス数kと,左にある 要素数の情報により,2要素削除 5,left 4 wait状態の基本動作: 要素を右へ送信 sorting状態の基本動作: 最大値を右へ,最小値を左へ送信 4: 3: 3: 1 2 2: 2: 1 1 2 4 4: 15 24 3 1 4 3 2 5,left 1,right 4 1: 2 3 1: 5 4 13 2 1,right 2 0: 5 4 3 2 1 propagation状態の基本動作: 要素を右へ送信 2 5,left 4 3 0: :propagation 状態 :wait 状態 1,right 3: 1 235 4 :sleep(終了) :sorting 状態 :arrangement 状態 アルゴリズムの動作概要 解(最小値)が確定
アルゴリズムにおける状態遷移 propagation状態 →プロセス wait 状態 →ラウンド sorting 状態 sleep arrangement状態
アルゴリズムの特徴 • sorting状態からarrangement状態に移動する要素は,sorting状態にある要素のなかの最小要素と2番目に小さな要素
アルゴリズムの特徴 →プロセス →ラウンド
解が確定するラウンド →プロセス →ラウンド
アルゴリズムの複雑度 • 時間複雑度:n-1 • 厳密に最適 • 通信複雑度:k=nのときにn(n-1) • 最適値の約倍 • オーダーとしては最適
まとめ • 分散ソーティングと k-selectionを組み合わせた問題(分散Arrangement Selection問題)を,厳密に最適な時間複雑度で解決 • 厳密に最適な時間複雑度を実現できる問題規模を拡大
今後の課題 • 木ネットワークへの拡張の検討 • k要素の並び順に昇順以外の制約を入れた場合の検討