The 29th Workshop on Combinatorial Mathematics and Computation Theory資 料 庫 繁 雜 的 資 料 型 態 與 關 聯 性 , 還 有 提 供<strong>MapReduce</strong> API, 它 擁 有 許 多 切 割 資 料 與 分 割 運算 的 方 法 , 開 發 者 不 需 要 再 耗 費 太 多 時 間 於 工作 分 割 的 程 式 設 計 , 目 前 已 有 許 多 問 題 被 以<strong>MapReduce</strong> 方 式 來 實 作 [7][11][13];Hadoop 因開 放 原 始 碼 的 緣 故 , 至 今 已 被 廣 泛 研 究 與 討 論 ,所 以 已 擁 有 很 多 相 關 研 究 資 源 可 供 使 用 , 因 此相 較 於 其 他 雲 端 平 台 ,Hadoop 在 研 究 與 開 發 上會 較 容 易 。本 論 文 致 力 於 局 部 診 斷 演 算 法 於 Hadoop平 台 上 的 模 擬 , 首 先 以 超 立 方 體 、 交 錯 立 方 體 、以 及 雙 扭 立 方 體 為 診 斷 對 象 , 接 著 以 隨 機 簡 單圖 為 對 象 , 記 錄 診 斷 時 間 與 結 果 , 並 為 兩 種 模擬 程 式 作 分 析 。圖 1. Q 3 的 圖 形 結 構二 . 局 部 診 斷超 立 方 體 是 已 被 廣 泛 研 究 的 一 種 圖 形 , 它擁 有 良 好 的 結 構 與 特 性 , 例 如 對 稱 性 (symmetry)、較 低 的 直 徑 (diameter)、 遞 迴 建 構 性 , 並 且 已 有廣 播 和 路 由 選 擇 的 演 算 法 可 以 使 用 , 因 此 常 被作 為 分 散 式 系 統 的 網 路 架 構 , 而 以 超 立 方 體 為基 礎 所 改 良 的 圖 形 也 很 多 , 其 中 較 有 名 的 是 交錯 立 方 體 [2] 和 雙 扭 立 方 體 [3], 它 們 一 樣 擁 有 良好 的 特 性 , 並 常 被 作 為 基 底 的 網 路 架 構 , 這 些立 方 體 已 有 許 多 診 斷 的 相 關 研 究 [1][8][12]; 我們 把 n 維 的 超 立 方 體 記 為 Q n , 它 擁 有 2 n 個 頂 點 、n2 n−1 條 邊 、 連 通 度 (connectivity) 和 直 徑 皆 為 n,每 個 節 點 都 擁 有 n 個 位 元 所 組 成 的 獨 一 無 二 的編 號 , 且 分 支 度 皆 為 n; 連 線 規 則 也 相 當 單 純 ,相 鄰 的 兩 點 恰 好 一 個 位 元 相 異 , 圖 1 為 Q 3 的 圖形 結 構 。當 進 行 壞 點 診 斷 時 , 須 先 確 立 測 試 者 (tester)和 受 測 者 (testee), 它 們 各 代 表 一 個 節 點 , 且 兩點 必 須 要 直 接 連 線 ; 進 行 測 試 時 , 測 試 者 傳 送信 息 給 受 測 者 , 受 測 者 接 收 信 息 後 , 回 傳 信 息給 測 試 者 , 測 試 者 再 根 據 傳 回 的 信 息 , 判 斷 受測 者 的 狀 態 , 決 定 測 試 結 果 ; 實 際 測 試 方 式 與使 用 的 診 斷 模 型 有 關 , 目 前 已 有 許 多 網 路 診 斷模 型 , 較 常 被 應 用 的 是 PMC 模 型 (PMC Model)[9]。PMC 模 型 的 規 則 是 , 當 測 試 者 和 受 測 者 都是 好 點 , 則 測 試 後 結 果 記 為 0, 若 測 試 者 是 好 點受 測 者 是 壞 點 , 則 結 果 記 為 1, 如 果 測 試 者 是 壞點 , 那 麼 無 論 受 測 者 的 好 壞 , 結 果 均 可 能 為 0或 1, 測 試 規 則 如 表 1; 當 圖 形 上 所 有 節 點 互 相測 試 完 成 後 , 收 集 所 有 到 的 測 試 結 果 , 我 們 稱為 症 狀 (syndrome), 症 狀 將 是 系 統 診 斷 的 依 據 。測 試 者 受 測 者 測 試 結 果好 好 0好 壞 1壞 好 0 或 1壞 壞 0 或 1表 1.PMC 模 型 的 測 試 規 則局 部 診 斷 演 算 法 在 診 斷 圖 中 任 意 一 點 時 ,會 先 計 算 該 點 的 局 部 可 診 斷 度 ,Hsu 等 人 [4] 提出 一 個 結 構 稱 為 Type I, 簡 稱 T 1 , 在 使 用 PMC模 型 的 情 況 下 它 讓 局 部 診 斷 演 算 法 能 確 立 圖 形中 任 意 一 點 的 局 部 可 診 斷 度 ,T 1 的 結 構 定 義 以及 定 理 如 下 所 示 。定 義 1[4]. G(V, E) 是 一 個 圖 形 , 設 v 是 G 中 任 意一 點 ,k 是 一 個 正 整 數 , 且 , 以 v 為 根 點 ,k 條 分 支 的 Type I 結 構 T 1 (v; ) 定 義 如 下 :T 1 (v; ) = |V(v; ), E(v; )|T 1 (v; ) 擁 有 2 + 個 點 和 2k 條 邊 , 如 圖 2, 其點 與 邊 的 定 義 如 下 :• V(v; ) = {v} ∪ {x i , y i | ≤ i ≤ }• E(v; ) = {(v, x i ), (x i , y i )| ≤ i ≤ }圖 2. T 1 (v; ) 的 結 構288
The 29th Workshop on Combinatorial Mathematics and Computation Theory定 理 1[4]. G(V, E) 是 一 個 圖 形 , 設 v 是 G 中 任 意一 點 , 若 G 中 找 得 到 以 v 為 根 點 、t 條 分 支 的 子圖 T 1 (v; t), 則 v 是 t- 局 部 可 診 斷 。由 上 述 內 容 , 我 們 得 知 局 部 診 斷 演 算 法 如何 決 定 一 點 的 局 部 可 診 斷 度 , 從 圖 2 可 看 出 為點 v 建 立 T 1 的 重 點 只 是 替 點 v 的 所 有 鄰 點 找 到 匹配 (matching), 我 們 將 在 下 一 章 介 紹 兩 種 匹 配 方法 。在 2010 年 Kung 等 人 [6] 提 出 隨 機 壞 點 診 斷演 算 法 (Algorithm Diagnose- Random-Fault), 它說 明 如 何 在 PMC 模 型 之 下 根 據 診 斷 得 到 的 症 狀以 及 T 1 來 判 斷 點 的 好 壞 , 此 演 算 法 的 流 程 相 當簡 單 , 我 們 以 ( a,b)代 表 節 點 a 測 試 節 點 b 得到 的 症 狀 , 假 設 圖 形 G 有 一 點 v,v 的 分 支 度 是k 並 已 在 G 上 找 到 一 個 T 1 (v; ) 的 結 構 , 且T 1 (v; ) 上 的 壞 點 數 不 超 過 k, 設 ≤ i ≤ , 我們 要 依 序 檢 驗 v 的 k 條 分 支 ; 若( ( y , x ), ( x , v)) (0,0) 代 表 該 分 支 保 證 v 是iii好 點 , ( ( y , x ), ( x , v)) (0,1)代 表 該 分 支iii保 證 v 是 壞 點 , 檢 驗 完 所 有 分 支 並 作 統 計 之 後 ,若 症 狀 為 (0,0) 的 分 支 數 量 大 於 等 於 (0, ) 的 分 支數 量 , 代 表 v 是 好 點 , 症 狀 是 (0,0) 的 分 支 數 量小 於 (0, ) 的 分 支 數 量 , 則 v 是 壞 點 。定 理 2[6].G(V, E) 是 一 個 圖 形 , 設 v 是 G 中 任 意一 點 ,t = deg G (v), 假 設 G 上 存 在 T 1 (v; t), 則在 T 1 (v; t) 之 中 壞 點 數 量 不 超 過 t 的 情 況 下 , 隨機 壞 點 診 斷 演 算 法 能 正 確 判 斷 v 是 好 或 壞 。三 . 匹 配 方 法從 上 述 內 容 , 我 們 運 用 局 部 診 斷 演 算 法 得知 一 點 好 壞 , 須 先 替 要 診 斷 的 點 建 構 T 1 , 建 構 T 1即 是 找 匹 配 的 問 題 , 匹 配 的 方 式 與 圖 形 結 構 相關 , 因 此 需 針 對 圖 形 設 計 適 合 的 方 法 , 才 能 以規 律 且 較 有 效 率 的 方 式 找 到 匹 配 , 當 T 1 建 構 完成 之 後 , 即 以 定 理 2 的 隨 機 壞 點 診 斷 演 算 法 判斷 點 的 好 壞 , 若 要 診 斷 整 個 圖 形 , 則 對 每 個 點執 行 局 部 診 斷 演 算 法 , 即 可 完 成 全 圖 診 斷 。我 們 提 供 的 第 一 種 匹 配 方 法 , 是 超 立 方 體 、交 錯 立 方 體 以 及 雙 扭 立 方 體 皆 可 使 用 的 方 法 。假 設 n 是 維 度 且 n 3,i 是 圖 形 中 一 點 的 編 號且 0 ≤ i ≤ 2 n − , 本 匹 配 方 法 可 為 任 意 一 點 i建 構 T 1 (i; n), 時 間 複 雜 度 為 O(n), 下 述 是 方 法流 程 , 而 圖 3 是 使 用 本 方 法 建 構 T 1 的 例 子 。匹 配 演 算 法 1.輸 入 : 圖 中 任 意 一 點 i輸 出 :i 的 所 有 鄰 點 的 匹 配1. for j = 0 to n – 2 doAdjacentNode = i 的 第 j 維 鄰 點 ;match[j] = AdjacentNode 的 第 j + 1 維 鄰點 ( 是 AdjacentNode 的 匹 配 點 );2. end for3. AdjacentNode = i 的 第 n - 1 維 鄰 點 ;4. match[n-1] = AdjacentNode 的 第 0 維 鄰 點( 是 AdjacentNode 的 匹 配 點 );5. return match;圖 3. 以 匹 配 演 算 法 1, 替 Q 3 上 的 點 000 建 構 的 T 1第 二 種 匹 配 方 法 則 是 任 意 一 種 簡 單 圖 都 可使 用 , 隨 機 簡 單 圖 中 大 部 分 為 毫 無 規 律 性 的 圖形 , 不 具 備 像 超 立 方 體 那 般 良 好 的 性 質 , 各 點的 局 部 可 診 斷 度 也 不 盡 相 同 , 假 設 0, 我 們無 法 得 知 隨 機 簡 單 圖 上 任 意 一 點 i 的 T 1 (i, ) 的 k其 最 大 值 為 何 , 考 量 到 這 一 點 , 必 須 以 能 找 到最 大 匹 配 為 前 提 來 設 計 匹 配 方 法 ; 首 先 我 們 將尋 找 最 大 匹 配 的 問 題 , 簡 化 為 尋 找 最 大 二 分 匹配 (Maximum Bipartite Matching) 的 問 題 , 最 大 二分 匹 配 只 會 存 在 X 和 Y 兩 個 互 斥 點 集 合 ,X 集合 內 的 點 彼 此 都 不 相 連 且 Y 集 合 也 是 如 此 ,X和 Y 之 間 則 有 邊 相 連 , 我 們 把 隨 機 簡 單 圖 中 任意 一 點 i 的 所 有 鄰 點 當 作 X 集 合 ( 忽 略 X 集 合 中相 連 的 邊 ), 而 X 集 合 中 各 點 的 所 有 鄰 點 ( 扣 除 X集 合 中 的 點 及 點 i) 則 形 成 Y 集 合 ( 忽 略 Y 集 合 中相 連 的 邊 ), 如 此 即 可 化 簡 為 最 大 二 分 匹 配 問 題 ;接 下 來 我 們 以 知 名 的 匈 牙 利 演 算 法 (HungarianAlgorithm) 來 解 決 最 大 二 分 匹 配 問 題 , 匈 牙 利 演算 法 是 Kuhn[5] 基 於 幾 位 匈 牙 利 數 學 家 的 理 論所 發 展 , 於 1955 年 提 出 的 可 解 決 最 大 二 分 匹 配問 題 的 演 算 法 , 設 X 集 合 有 n 個 點 、Y 集 合 有m 個 點 ,m ≥ n, 此 方 法 所 費 時 間 為 O(n 2 m)[10]。四 . 局 部 診 斷 演 算 法 的 <strong>MapReduce</strong> 設 計在 執 行 局 部 診 斷 演 算 法 時 , 必 須 知 道 圖 形的 結 構 與 測 試 後 得 到 的 症 狀 , 這 裡 將 圖 形 結 構和 症 狀 各 自 存 放 到 兩 個 檔 案 ( 分 別 稱 為 檔 案 1 和檔 案 2); 除 了 這 兩 個 檔 案 之 外 還 有 第 三 個 檔 案289