需要点、供給点、辺容量を持つ 木を分割するアルゴリズム 関西学院大学 川端真生 西関隆夫 1 研究背景 • 電力配送問題 [伊藤 et al. ‘05] – 各供給点はどの需要点にどれだけの電力を送れ ばよいのか – 各送電線には流せる電力量に上限(辺容量)が ある [本研究] 2 分割問題 需要点 発電所 送電線 3 分割問題 需要点 供給可能な 量 供給点 必要な電力 8 25 7 2 15 8 3 4 2 20 5 3 7 1 18 6 8 4 分割問題 需要点 8 供給点 15 25 7 辺容量 必要な電力 3 12 2 6 11 10 7 供給可能な 量 Yes, No 判定問題 2 3 20 8 7 7 7 1 15 15 辺容量 5 7 20 8 8 4 12 18 15 6 11 8 辺を除去し, いくつかの連結成分に分割 供給点 需要点 5 分割問題 13 15 8 8 7 15 供給点 需要点 7 3 3 12 2 6 5 20 Yes, No 判定問題 8 6 5 2 10 11 3 77 1 7 2 3 7 1 15 7 15 辺容量 25 18 7 8 20 8 8 4 4 12 18 14 15 6 8 11 8 18 各成分にちょうど1つの供給点 フロー その供給量は需要量の合計以上 流れるフローは辺容量を超えない(フロー≦辺容量)6 分割問題 結果 • (辺容量のない)一般のグラフ対してNP完全 [伊藤 et al. ‘05] • (辺容量のある)木に対して 線形時間アルゴリズムを与える 7 最大分割問題 7 6 8 9 8 6 15 14 1 6 20 9 17 10 2 9 5 5 6 23 7 13 3 8 3 4 15 8 7 2 8 7 4 辺容量 供給点 需要点 分割はない 電力が供給される需要量を最大にする 8 最大分割問題 8 7 14 6 8 9 8 8 7 1 15 6 15 3 5 14 14 10 8 5 3 6 6 20 9 8 17 8 2 9 23 7 2 13 3 8 4 2 充足量:45 15 12 8 7 4 8 7 4 辺容量 供給点 需要点 電力が供給される需要量を最大にする 9 最大分割問題 7 6 8 9 8 6 15 14 1 6 20 9 17 10 2 9 5 5 6 23 7 13 3 8 3 4 15 8 7 2 8 7 4 辺容量 供給点 需要点 電力が供給される需要量を最大にする 10 最大分割問題 8 7 17 6 8 9 8 7 8 16 6 15 3 5 14 6 10 8 5 3 6 5 1 20 6 9 8 13 11 7 2 17 2 3 2 9 4 2 8 23 充足量:49 15 13 8 7 8 7 4 辺容量 供給点 需要点 電力が供給される需要量を最大にする 11 最大分割問題 結果 • (辺容量のない)木に対してすらNP困難 [伊藤 et al. ‘05] • (辺容量のある)木に対してアルゴリズムを与える – 擬多項式時間 – FPTAS n:点数 • 任意の誤差εについて,nとεの多項式時間である 極めてよい近似アルゴリズム 12 分割問題アルゴリズム 需要点 • 入力: – 木(需要点,供給点,辺容量) 17 • 出力: 6 – 分割がある – 分割がない 28 25 • 時間計算量: 辺容量 5 10 5 15 7 8 4 供給点 – 線形時間 n:点数 13 分割問題アルゴリズム 9 14 26 4 19 7 4 1 1 3 26 32 32 12 14 7 5 45 14 7 9 4 3 1 2 8 5 14 分割問題アルゴリズム 7 需要量≦辺容量 需要量>辺容量 1 12 14 3 14 4 1 9 4 19 7 4 1 1 3 26 32 32 12 14 7 5 分割なし 26 45 14 7 9 4 3 1 2 8 5 15 分割問題アルゴリズム 7+1+3 7 5 4 1 3 9 12 14 14 需要量≦辺容量 19 7 4 1 11 5 3 12 26 14 4 26 32 32 12 14 7 5 45 14 7 9 4 3 1 2 8 5 16 分割問題アルゴリズム 11 11 12 9 12 14 14 12 min{14,12} 4 19 32 26 32 11 12 14 7 5 26 45 14 7 9 4 3 1 2 8 5 17 分割問題アルゴリズム 11 1 12 9 14 12-11 12 26 4 19 26 32 32 11 12 12 7 5 45 14 7 9 4 3 1 2 8 5 18 分割問題アルゴリズム 9 14 26 4 19 1 26 32 32 7 5 45 14 7 9 4 3 1 2 8 5 19 分割問題アルゴリズム 9 14 26 4 19 1 26 32 27 45 14 7 9 4 3 1 2 8 5 20 分割問題アルゴリズム 9 14 26 4 19 1 32 27 26 45 14 10 9 8 5 21 分割問題アルゴリズム 9 14 26 4 19 1 32 27 26 45 14 10 14 22 分割問題アルゴリズム 9 14 26 23 26 45 14 10 14 23 分割問題アルゴリズム 9 14 23 26 2 24 分割問題アルゴリズム 5 分割あり 25 分割問題アルゴリズム 分割あり 9 14 26 9 4 19 26 32 13 7 4 1 1 35 3 32 11 45 14 7 9 10 14 12 5 7 1 2 3 5 8 14 5 1 2 5 4 26 分割問題アルゴリズム 9 14 26 4 7 19 12 18 10 1 4 8 3 7 25 27 14 7 4 6 3 8 3 1 4 27 分割問題アルゴリズム 9 14 4 19 8 26 7 12 18 10 6 28 分割問題アルゴリズム 9 14 8 26 7 29 分割問題アルゴリズム 16 分割はない 時間 30 最大分割問題アルゴリズム 需要点 • 入力: – 木(需要点,供給点,辺容量) 17 • 出力: 6 – 最大分割 • 供給される需要点の需要量 が最大になる分割 • 時間計算量 – 擬多項式時間( 辺容量 5 10 5 28 25 15 7 8 4 供給点 ) n:点数 =min{22,30}=22 5+6+7+4=22 25+5=30 31 擬多項式時間アルゴリズム • 動的計画法 – 小さな部分解からより大きな部分解を計算する 5 8 4 3 2 10 20 10 6 7 3 10 4 2 6 5 1 14 15 7 10 5 4 4 2 32 擬多項式時間アルゴリズム 目的:木全体での最大分割を求めたい 5 での電力の流れはど うなるか 5 4 2 の外へ出ていく の中へ入ってくる 2 には流れない 動的計画法で計算する 10 6 7 3 10 10 20 3 4 2 6 5 1 14 15 7 10 5 4 4 2 33 • 出分割 :部分木 が 以上の需要を満たすとき、 から の外にどれだけの電力を供給できるか その最大値 3+2+5+2=12≧10=x 3 5 2 7 5 6 3 5 2 10 4 20 2 10 5 6 5 34 • 出分割 :部分木 が 以上の需要を満たすとき、 から の外にどれだけの電力を供給できるか その最大値 3+2+5=10≧10 =x 4 5 2 3 6 6 7 10 9 10 4 20 2 5 6 5 35 • 5 2 6 7 3 5 10 20 2 4 2 5 7 10 6 5 13 36 • 出親分割 :部分木 が 以上の需要を満たすとき、実際に から の親 にどれだけの電力を供給できるか その最大値 ・・・ 37 • 入分割 :部分木 が 以上の需要を満たすために、 の外から へ入れないといけない最小の電力 3 5+4+3=12≧10 =x 5 3 10 5 9 9 4 10 8 6 4 2 7 4 38 • 入分割 39 • 入親分割 :部分木 が 以上の需要を満たすために、 から へ入れないといけない最小の電力 ・・・ 40 • 孤立分割 に電力を供給しないとき、 部分木 は 以上の需要を満たせるか : 5+6+7=18≧17 =x 5 2 9 6 16 11 15 7 5 12 7 8 5 3 2 7 7 10 13 存在しない 41 • 孤立分割 42 5 8 4 2 10 20 3 10 6 7 3 10 4 2 6 5 1 14 15 7 10 5 4 4 2 43 5 8 4 2 10 20 3 10 6 7 3 10 4 2 6 5 1 14 15 7 10 5 4 4 2 44 擬多項式時間アルゴリズム 23 22 5 5 8 8 4 4 充足量=max{23,22}=23 3 2 6 1 0 3 2 0 1 0 4 2 1 0 7 1 6 5 1 5 1 4 7 1 0 6 5 2 0 1 0 7 4 2 1 0 1 0 3 4 4 2 3 2 1 6 5 1 1 4 5 7 1 0 5 4 4 2 45 計算時間量 • 各 x ( 0 x F )の値に対して 各y ( 0 y F )の中から最大値を探す F 時間で求まる ⇒各 時間 46 計算時間量 時間 時間 時間 47 計算時間量 • 各 x ( 0 x F )の値に対して 各y ( 0 y F )の中から最大値を探す F時間で求まる ⇒各 ⇒1つの表に対して 5 4 8 • 葉から根まで計算する ⇒高々 2n 回 2 6 (点数+合成回数) • 合計 O( F n) 2 3 10 20 4 2 3 10 7 10 6 5 1 14 15 7 10 5 4 4 2 48 FPTAS(Fully Polynomial-Time Approximation Scheme) • 完全多項式近似スキーム 0<ε<1なる任意の精度εに対して 最大化問題 最適解: f 近似解: f A • f A (1 ) f 計算時間がnと1/εの多項式になる 49 FPTAS • 擬多項式時間アルゴリズムを変更する Fの値まで1ずつ計算する t md : 最大の需要量 8 2 6 1t 7 3 10 10 4 6 20 2 5 5 4 10 1 14 15 3 7 5 10 4 4 2 50 FPTAS 最適解 t 2nt 近似解 51 FPTAS • t ごとに計算している 1回計算するごとに 誤差がt 生じる 各点誤差t 合成回数:n-1 • 木全体で誤差は高々2nt nt+(n-1)t 52 FPTAS 最適解 近似解 md : 最大の需要量 53 FPTAS • 時間計算量 – 擬多項式時間 FPTAS md : 最大の需要量 54 結論 • 辺容量のある木に対する – 分割問題 • 線形時間アルゴリズム – 最大分割問題 • 擬多項式時間アルゴリズム • FPTAS を与えた. 55 課題 • より大きなグラフのクラスについて 考える. 直並列グラフ • 計算時間量の削減. FPTAS 56
© Copyright 2024 ExpyDoc