1、第 27卷 第 8期 计 算 机 应 用 与 软 件 Vol127 No. 82010年 8月 Computer App lications and Software Aug. 2010稀 疏 矩 阵 快 速 转 置 算 法 的 分 析 与 优 化王 敏(渭 南 师 范 学 院 计 算 机 科 学 系 陕 西 渭 南 714000)收 稿 日 期 : 2009 - 11 - 05。 国 家 自 然 科 学 基 金 项 目 ( 60803132) ;渭南 师 范 学 院 研 究 生 专 项 基 金 (10YKZ057)。 王 敏 ,硕 士 ,主 研 领 域 :软 件算 法 研 究 。摘 要 介
2、绍 稀 疏 矩 阵 的 三 元 组 表 压 缩 存 储 方 案 时 ,提 出 了 利 用 数 组 首 下 标 元 素 存 储 稀 疏 矩 阵 总 行 数 、 总 列 数 和 非 零 元 素 总 个 数三 方 面 信 息 的 改 进 的 存 储 定 义 方 式 。 给 出 了 基 于 新 的 定 义 结 构 上 用 C语 言 编 写 的 快 速 转 置 算 法 ,并 通 过 对 算 法 性 能 进 行 分 析 ,提出 了 仅 使 用 一 个 数 组 的 两 种 改 进 的 快 速 转 置 算 法 。 经 过 对 比 两 种 改 进 算 法 的 时 间 复 杂 度 和 空 间 复 杂 度 ,总 结
3、 出 既 具 有 原 快 速 转 置算 法 时 间 复 杂 度 低 的 优 点 ,又 降 低 了 算 法 的 空 间 复 杂 度 的 优 化 算 法 ,达 到 了 对 原 快 速 转 置 算 法 进 行 优 化 的 目 的 。关 键 词 稀 疏 矩 阵 三 元 组 表 压 缩 存 储 快 速 转 置 时 间 复 杂 度 空 间 复 杂 度ANALY S IS AND O PT IM ISAT IO N O F FAST TRANSPO S IT IO NAL GO R ITHM O F SPARSE M ATR IXW ang M in(D epartm ent of Com puter Sc
4、ience , W einan Teachers U niversity, W einan 714000, Shaanxi , China)Abstract W hen describing the trip le list comp ression storage methods of the sparse matrix, in this paper we p ropose an imp roved storagedefining method which uses an array element in the first subscrip t of sequence trip le li
5、st array to store the information in regard to the totalnumber of rows, total number of columns and total number of non2zero elements of the sparse matrix. The paper gives the matrix fast transpo2sition algorithm written in C and based on the new structure definition p roposed, and p resents two kin
6、ds of imp roved fast transposition algo2rithm, both use just one array, through the analysis of algorithm performance. After comparing the time comp lexity and space comp lexity ofthese two kinds of imp roved algorithm, we conclude to an op tim ised algorithm that possesses the advantage of lower ti
7、me comp lexity in existingfast transposition algorithm while reduces the space comp lexity of that algorithm as well, and it reaches the purpose of op tim ising existing fasttransposition algorithm.Keywords Sparse matrix Trip le list comp ression storage Fast transposition Time comp lexity Space com
8、p lexity0 引 言计 算 机 中 存 储 矩 阵 的 一 般 方 法 是 采 用 二 维 数 组 ,其 优 点 是可 以 随 机 地 访 问 每 一 个 元 素 ,从 而 易 于 实 现 矩 阵 的 各 种 运算 1 。 但 对 于 稀 疏 矩 阵 (设 m n的 矩 阵 中 有 t个 不 为 0的 元素 ,令 = tm n,称 为 矩 阵 的 稀 疏 因 子 ,通 常 认 为 0. 05时为 稀 疏 矩 阵 2 )来 说 ,大 量 零 元 素 的 存 储 会 造 成 存 储 空 间 的 浪费 。 为 了 在 实 现 矩 阵 相 关 操 作 时 提 高 存 储 空 间 的 利 用 率
9、,一 种有 效 的 压 缩 存 储 方 案 是 采 用 三 元 组 压 缩 存 储 技 术 ,即 每 个 非 零元 素 记 录 元 素 值 的 同 时 给 出 其 所 在 行 、 列 的 下 标 位 置 ,构 成 形 如( row, colum n, value)的 非 零 元 素 三 元 组 。本 文 将 给 出 一 种 改 进 的 稀 疏 矩 阵 三 元 组 顺 序 表 存 储 定 义 ,同 时 给 出 在 该 定 义 方 式 下 用 C语 言 编 写 的 矩 阵 快 速 转 置 算 法 。通 过 对 算 法 进 行 时 间 复 杂 度 和 空 间 复 杂 度 的 分 析 ,提 出 一 种
10、 通过 减 少 原 算 法 辅 助 空 间 达 到 降 低 算 法 空 间 复 杂 度 的 改 进 的 快 速转 置 算 法 。1 稀 疏 矩 阵 三 元 组 表 存 储 方 式采 用 三 元 组 表 压 缩 存 储 技 术 时 ,稀 疏 矩 阵 中 的 非 零 元 素 三元 组 按 “ 行 序 为 主 、 列 序 为 辅 ” 的 顺 序 构 成 一 种 线 性 序 列 ,此 时可 采 用 顺 序 和 非 顺 序 两 种 方 式 进 行 存 储 ,具 体 采 用 哪 种 主 要 取决 于 将 设 计 实 现 矩 阵 的 那 些 操 作 。 非 顺 序 存 储 方 式 主 要 采 用 链式 存
11、储 结 构 (比 如 十 字 链 表 ) ,适 用 于 设 计 实 现 对 稀 疏 矩 阵 的 非零 元 素 个 数 有 改 变 的 一 类 操 作 (比 如 矩 阵 相 加 、 相 减 、 相 乘 等 ) ;而 对 于 矩 阵 转 置 之 类 非 零 元 素 个 数 不 变 的 操 作 ,则 采 用 顺 序 存储 结 构 (比 如 一 维 数 组 )实 现 较 为 方 便 ,即 三 元 组 顺 序 表 2, 6 。稀 疏 矩 阵 的 存 储 信 息 还 应 包 括 矩 阵 总 行 数 、 矩 阵 总 列 数 和矩 阵 中 非 零 元 素 的 总 个 数 。 大 多 数 参 考 文 献 中 关
12、 于 稀 疏 矩 阵 存储 结 构 的 定 义 均 额 外 定 义 了 用 于 存 储 这 三 方 面 信 息 的 结 构 体 成员 变 量 ,而 这 种 存 储 处 理 其 实 可 以 进 行 简 化 :由 于 前 述 三 种 信 息的 类 型 同 三 元 组 的 各 个 成 员 类 型 相 兼 容 ,因 此 可 将 三 元 组 向 量的 首 下 标 单 元 的 对 应 三 元 分 别 用 于 存 放 这 三 方 面 信 息 。 三 元 组顺 序 表 存 储 结 构 的 稀 疏 矩 阵 可 使 用 C语 言 定 义 如 下 :#define MAX 1000typedef structint
13、 row, col;Elem type val;第 8期 王 敏 :稀 疏 矩 阵 快 速 转 置 算 法 的 分 析 与 优 化 73 Trip le 3, 4 ;typedef Trip le TSMatrix 3. 4 MAX ;由 于 矩 阵 的 行 列 编 号 一 般 从 1起 始 ,因 而 可 将 C语 言 数 组的 0下 标 单 元 用 于 存 储 前 述 三 种 信 息 。2 稀 疏 矩 阵 快 速 转 置 算 法 及 其 分 析矩 阵 转 置 是 矩 阵 的 常 见 操 作 之 一 ,下 面 将 待 转 置 矩 阵 记 作A,转 置 矩 阵 记 作 B ,分 析 基 于 三
14、元 组 顺 序 表 存 储 结 构 的 快 速 转置 算 法 。2. 1 算 法 设 计 思 想该 算 法 的 基 本 设 计 思 想 :依 次 将 待 转 置 矩 阵 A的 三 元 组 行列 互 换 后 ,直 接 放 到 转 置 矩 阵 B 的 三 元 组 表 中 的 正 确 位 置 。 需考 虑 两 方 面 因 素 :一 是 矩 阵 A每 列 中 非 零 元 素 的 个 数 (即 转 置矩 阵 B 每 一 行 中 非 零 元 素 的 个 数 ) ;二 是 矩 阵 A 各 列 中 第 一 个非 零 元 素 三 元 组 在 B 中 的 正 确 位 置 (即 矩 阵 B 各 行 中 第 一 个
15、非零 元 素 三 元 组 在 B 中 的 正 确 位 置 ) 3 。 其 它 文 献 中 的 类 似 解 决方 案 :设 置 两 个 数 组 num 和 position ,前 者 用 来 存 放 A中 第col列 (B 中 第 col行 )的 非 零 元 素 个 数 ,后 者 用 以 存 放 A中 第 col列 (B 中 第 col行 )中 第 一 个 非 零 元 素 在 三 元 组 表 B 中 的 正 确 位置 3 。 这 样 ,计 算 num col 可 通 过 一 遍 对 矩 阵 A 的 循 环 扫 描 ,将 其 中 列 号 为 col的 元 素 的 对 应 num col 加 1;计
16、 算 position col的 方 法 使 用 如 下 递 推 公 式 :position col =1 ( col = 1)position col - 1 + num col - 1 (1 col A 0 . col)得 到 上 述 两 个 数 组 的 对 应 值 后 ,要 将 A中 的 三 元 组 直 接 放到 B 中 的 正 确 位 置 ,可 利 用 position 数 组 实 现 : position col的初 值 为 矩 阵 A中 第 col列 (B 中 第 col行 )的 第 一 个 非 零 元 素 三元 组 在 B 中 的 正 确 位 置 ,当 A 中 第 col列 有
17、一 个 元 素 加 入 三 元组 表 B 时 ,则 对 应 position col的 值 加 1,使 position col 始 终 指向 三 元 组 表 A中 第 col列 中 下 一 个 非 零 元 素 在 三 元 组 表 B 中 的正 确 位 置 3, 5 。2. 2 算 法 的 C语 言 描 述基 于 前 述 存 储 类 型 TSMatrix的 C语 言 算 法 描 述 如 下 :void FastTransMatrix( TSMatrix A, TSMatrix B) int col, i, j; / /col作 为 辅 助 数 组 下 标/ / i指 示 矩 阵 A的 三 元
18、组 表 下 标 , j指 示 B的 三 元 组 表 下 标int num MAX , positionMAX ;B 0 . row =A 0 . col;B 0 . col =A 0 . row;B 0 . val =A 0 . val;if(A 0 . val) / /有 非 零 元 素 三 元 组 则 进 行 转 置 for( col = 1; col =A 0 . col; col + + )num col = 0; / /矩 阵 A各 列 非 零 元 素 个 数 计 数 预 置 0for( i = 1; i =A 0 . val; i + + )num A i. col + + ; /
19、 /矩 阵 A各 列 非 零 元 素 个 数 计 数position 1 = 1;for( col = 2; col =A 0 . col; col + + ) / /求 col列 中 第 一 个 非 零 元 素 三 元 组 在 B中 的 正 确 位 置position col = position col - 1 + num col - 1 ;for( i = 1; i =A 0 . val; i + + )/ /对 矩 阵 A的 三 元 组 表 扫 描 一 遍 完 成 转 置 j = positionA i. col;B j. row =A i. col;B j. col =A i. ro
20、w;B j. val =A i. val;positionA i. col + + ; 2. 3 算 法 分 析该 算 法 由 前 后 四 个 循 环 部 分 组 成 ,调 用 时 各 个 循 环 的 基 本语 句 分 别 执 行 了 A 0 . col、 A 0 . val、 A 0 . col - 1和 A 0 . val次 ,其 中 A 0 . val即 非 零 元 素 个 数 ,看 作 问 题 的 规 模 n。 假 设 A为 M 行 N 列 的 矩 阵 ,则 算 法 的 平 均 时 间 复 杂 度 为 T ( n) = O (N+ n)。 随 着 问 题 的 规 模 n逐 渐 增 大
21、,即 非 零 元 素 个 数 接 近 矩 阵的 行 列 之 积 (M N )时 ,则 快 速 转 置 算 法 的 时 间 复 杂 度 接 近 非压 缩 存 储 的 经 典 双 重 循 环 的 转 置 算 法 (其 时 间 复 杂 度 为 T ( n)= O (M N ) )。该 算 法 在 空 间 上 除 了 矩 阵 中 的 非 零 元 素 本 身 所 占 的 三 元 组表 空 间 外 ,还 引 入 了 两 个 辅 助 向 量 num N 和 position N 。 其空 间 复 杂 度 为 S ( n) =O ( 2 N )。 虽 然 算 法 在 时 间 效 率 上 有 所提 高 ,但 却
22、 是 以 付 出 更 多 的 存 储 空 间 为 代 价 的 ,可 考 虑 对 其 进 行优 化 。3 快 速 转 置 算 法 的 改 进前 述 快 速 转 置 算 法 中 的 position 数 组 用 以 存 放 矩 阵 A第col列 (B 中 第 col行 )中 第 一 个 非 零 元 素 三 元 组 在 转 置 矩 阵 B 中的 正 确 位 置 ,该 位 置 是 通 过 辅 助 数 组 num 计 算 出 的 。 如 果 将计 算 position col 的 方 法 加 以 修 改 , 则 可 省 略 辅 助 数 组 numN 。3. 1 改 进 设 计 方 案 一该 方 案 的
23、算 法 设 计 思 想 按 照 以 下 步 骤 计 算 position col 的各 值 :第 一 步 :初 始 化 各 position col 的 值 为 1,即 初 始 假 定 A 中各 列 第 一 个 非 零 元 素 均 从 B 的 第 1个 下 标 位 置 开 始 存 放 ;第 二 步 :循 环 扫 描 一 遍 矩 阵 A的 三 元 组 表 ,每 遇 到 一 个 列 号为 col的 元 素 ,就 将 对 应 的 从 position col + 1 开 始 的 其 余 元 素 值增 1 (即 列 号 为 col + 1开 始 的 其 余 三 元 组 在 B 中 的 起 始 位 置
24、后移 一 位 )。经 过 第 二 步 修 改 后 , position col 中 的 值 即 为 矩 阵 A 第 col列 (B 中 第 col行 )中 第 一 个 非 零 元 素 三 元 组 在 转 置 矩 阵 B 中 的正 确 位 置 。第 三 步 :对 矩 阵 A的 三 元 组 表 扫 描 一 遍 完 成 转 置 。 当 A中第 col列 有 一 个 元 素 加 入 三 元 组 表 B 时 ,则 对 应 position col 的值 加 1,使 position col始 终 指 向 三 元 组 表 A 第 col列 中 下 一 个非 零 元 素 在 三 元 组 表 B 中 的 正
25、确 位 置 。3. 2 方 案 一 算 法 的 C语 言 描 述基 于 方 案 一 设 计 思 想 的 快 速 转 置 算 法 可 用 C语 言 描 述如 下 :void FastTransMatrix( TSMatrix A, TSMatrix B) int col, i, j; / /col作 为 辅 助 数 组 下 标/ / i指 示 矩 阵 A的 三 元 组 表 下 标 , j指 示 B的 三 元 组 表 下 标int positionMAX ;B 0 . row =A 0 . col;B 0 . col =A 0 . row;74 计 算 机 应 用 与 软 件 2010年B 0 .
26、 val =A 0 . val;if(A 0 . val) / /有 非 零 元 素 三 元 组 则 进 行 转 置 for( col = 1; col =A 0 . col; col + + )position col = 1;/ /初 始 化 col列 中 第 一 个 非 零 元 素 三 元 组 在 B中 的 位 置for( i = 1; i =A 0 . val; i + + )for( j =A i. col; j A 0 . col; j + + )position j + 1 + + ;/ /计 算 col列 中 第 一 个 非 零 元 素 三 元 组 在 B中 的 正 确 位 置
27、for( i = 1; i =A 0 . val; i + + ) / /对 矩 阵 A的 三 元 组 表 扫 描 一 遍 完 成 转 置 j = positionA i. col;B j. row =A i. col; B j. col =A i. row;B j. val =A i. val;positionA i. col + + ; 3. 3 改 进 设 计 方 案 二将 position 同 时 用 于 统 计 A中 各 列 非 零 元 素 个 数 和 指 示各 个 非 零 元 素 在 B 中 的 正 确 位 置 。 算 法 步 骤 如 下 :第 一 步 :将 position 统
28、计 的 A各 列 非 零 元 素 个 数 初 始 化为 0;第 二 步 :利 用 position col 统 计 A中 各 列 非 零 元 素 个 数 ;第 三 步 :通 过 利 用 t1、 t2两 个 变 量 记 录 并 计 算 position 数组 的 元 素 值 ,使 其 成 为 矩 阵 A第 col列 (B 中 第 col行 )中 第 一 个非 零 元 素 三 元 组 在 转 置 矩 阵 B 中 的 正 确 位 置 。 具 体 方 法 是 : position 1 赋 值 1 (即 B 中 的 第 1个 下 标 位 置 ,而 将 其 所统 计 的 第 1列 元 素 个 数 暂 存
29、在 变 量 t1中 ) ; t1暂 存 第 col - 1列 的 非 零 元 素 个 数 (即 position col 的原 值 ) , t2暂 存 第 col列 的 非 零 元 素 个 数 , position col 的 值 即 为position col - 1 + t1,然 后 再 将 t2中 的 值 赋 值 给 t1。重 复 第 步 求 得 全 部 N个 position 值 。第 四 步 :对 矩 阵 A的 三 元 组 表 扫 描 一 遍 完 成 转 置 。 当 A中第 col列 有 一 个 元 素 加 入 三 元 组 表 B 时 ,则 对 应 position col 的值 加
30、 1,使 position col始 终 指 向 三 元 组 表 A 第 col列 中 下 一 个非 零 元 素 在 三 元 组 表 B 中 的 正 确 位 置 。3. 4 方 案 二 算 法 的 C语 言 描 述这 种 改 进 的 快 速 转 置 算 法 可 用 C语 言 描 述 如 下 :void FastTransMatrix( TSMatrix A, TSMatrix B) int t1, t2, col, i, j;/ / t1, t2临 时 记 录 A某 列 非 零 元 素 数 , col作 为 辅 助 数 组 下 标/ / i指 示 矩 阵 A的 三 元 组 表 下 标 , j指
31、 示 B的 三 元 组 表 下 标int positionMAX ;B 0 . row =A 0 . col;B 0 . col =A 0 . row;B 0 . val =A 0 . val;if(A 0 . val) / /有 非 零 元 素 三 元 组 则 进 行 转 置 for( col = 1; col =A 0 . col; col + + )position col = 0;/ /矩 阵 A各 列 非 零 元 素 个 数 计 数 预 置 0for( i = 1; i =A 0 . val; i + + )positionA i. col + + ; / /统 计 A各 列 非 零
32、 元 素 数t1 = position 1 ;for(position 1 = 1, col = 2; col =A 0 . col; col + + ) t2 = position col;position col = position col - 1 + t1; t1 = t2; / /计 算 col列 中 第 一 个 非 零 元 素 三 元 组 在 B中 的 正 确 位 置for( i = 1; i =A 0 . val; i + + ) / /对 矩 阵 A的 三 元 组 表 扫 描 一 遍 完 成 转 置 j = positionA i. col;B j. row =A i. col
33、; B j. col =A i. row;B j. val =A i. val;positionA i. col + + ; 3. 5 两 种 改 进 算 法 的 测 试 与 分 析不 失 一 般 性 ,设 稀 疏 矩 阵 A如 图 1所 示 ,采 用 三 元 组 顺 序 表存 储 结 构 时 对 应 的 存 储 结 构 如 图 2所 示 。0 12 - 7 0 0- 3 0 0 0 00 0 0 0 140 0 25 0 04 5 51 2 121 3 - 72 1 - 33 5 144 3 25图 1 待 转 置 矩 阵 A 图 2 矩 阵 A的 三 元 组 顺序 表 存 储 结 构进 行
34、 矩 阵 转 置 后 得 到 的 B 矩 阵 如 图 3所 示 ,对 应 的 三 元 组顺 序 表 存 储 结 构 如 图 4所 示 。0 - 3 - 7 012 0 0 0- 7 0 0 250 0 0 00 0 14 05 4 51 2 - 32 1 123 1 - 73 4 255 3 14图 3 转 置 矩 阵 B 图 4 矩 阵 B的 三 元 组 顺序 表 存 储 结 构为 测 试 算 法 的 正 确 性 ,特 将 矩 阵 A初 始 化 为 上 例 各 值 ,另 外添 加 了 稀 疏 矩 阵 的 输 出 函 数 ,并 先 后 采 用 原 快 速 转 置 算 法 和 改进 后 的 两
35、种 快 速 转 置 算 法 在 VC环 境 下 运 行 ,其 输 出 结 果 均 如图 5所 示 。图 5 VC环 境 下 运 行 改 进 的 快 速 转 置 算 法 输 出 结 果从 改 进 方 案 一 的 算 法 C语 言 描 述 中 可 以 看 到 ,算 法 程 序 由(下 转 第 85页 )第 8期 王 敏 等 :一 个 基 于 关 注 点 分 离 的 实 时 与 交 互 协 同 模 型 85 不 同 类 型 的 独 立 的 实 体 :导 航 器 、 交 通 控 制 中 心 、 时 控 协 同 器 、 交互 协 同 器 。 导 航 器 只 是 一 个 决 策 者 ,根 据 自 己 的
36、状 态 信 息 和 收到 的 消 息 决 定 路 径 的 选 择 ;交 通 控 制 中 心 提 供 及 时 的 路 况 信 息服 务 ;时 控 协 同 器 通 过 特 定 事 件 向 导 航 器 施 加 实 时 约 束 条 件 ;交互 协 同 器 在 导 航 器 、 交 通 控 制 中 心 和 GPS系 统 之 间 按 时 间 要 求建 立 连 接 和 转 发 消 息 。 其 中 ,导 航 器 、 GPS系 统 和 交 通 控 制 中 心就 是 模 型 中 的 计 算 实 体 。当 汽 车 到 达 一 个 决 策 点 时 ,用 户 触 发 导 航 器 产 生 一 个 Infor2mation2
37、requested事 件 ,同 时 发 出 Information2requested消 息 ,请 求提 供 路 况 信 息 。 时 控 协 同 器 观 察 到 Information2requested事 件后 ,根 据 此 事 件 的 参 数 和 实 时 要 求 ,为 事 件 模 式 ( Information2re2queste, Information2received)施 加 20秒 的 时 间 约 束 。 当 与 一 个 交通 控 制 中 心 连 接 成 功 时 ,交 互 协 同 器 将 发 出 Traffic2Center事 件 ,表 明 了 交 互 协 同 器 已 经 在 交
38、通 控 制 中 心 和 导 航 器 之 间 建 立 了 一个 连 接 ,时 控 协 同 器 为 ( Traffic2Center, Traffic2Center) 事 件 模 式施 加 5分 钟 的 时 间 约 束 。 交 互 协 同 器 当 观 察 到 Information2re2quested和 Traffic2Ceter2Timout事 件 后 ,根 据 汽 车 当 前 的 位 置 和目 的 地 ,利 用 find2traffic2center服 务 查 找 一 个 合 适 的 交 通 控 制 中心 ,将 其 与 导 航 器 连 接 ,否 则 导 航 器 与 GPS连 接 。 在 对
39、事 件 模式 施 加 实 时 约 束 之 前 ,如 果 已 经 对 事 件 模 式 施 加 实 时 约 束 ,应 该先 解 除 实 时 约 束 ,然 后 再 施 加 新 的 时 间 约 束 。通 过 对 ( Information2requested, Information2received)的 事 件模 式 施 加 时 间 约 束 满 足 获 取 交 通 信 息 的 实 时 要 求 ; 通 过 对( Traffic2Center, Traffic2Center)事 件 模 式 施 加 时 间 约 束 满 足 更 新交 通 控 制 中 心 的 实 时 要 求 。5 结 论本 文 为 开 放
40、的 分 布 式 实 时 信 息 系 统 提 出 了 一 个 实 时 与 交 互协 同 模 型 ,不 仅 取 得 了 分 布 式 系 统 中 实 时 行 为 、 交 互 连 接 行 为 和纯 的 计 算 行 为 的 分 离 ,而 且 提 供 了 计 算 实 体 交 互 布 局 与 实 时 约束 的 动 态 适 应 性 。模 型 的 架 构 采 用 Java消 息 服 务 技 术 和 EJB技 术 实 现 并 在 导航 系 统 中 得 到 应 用 ,这 表 明 了 该 方 法 具 有 以 下 优 点 : (1) 该 模 型的 实 现 不 需 要 特 殊 的 体 系 结 构 或 实 时 程 序 设
41、计 语 言 的 支 持 ,为 此类 分 布 式 应 用 的 开 发 提 供 了 良 好 的 框 架 ; (2) 时 控 协 同 器 、 交 互协 同 器 和 计 算 实 体 是 互 相 分 离 的 ,可 以 独 立 设 计 和 建 模 ,简 化 了此 类 应 用 系 统 的 设 计 和 实 现 ,增 加 了 软 件 的 复 用 性 和 灵 活 性 ;(3) 时 控 协 同 器 可 以 动 态 向 计 算 实 体 施 加 或 解 除 实 时 约 束 条 件 ,交 互 协 同 器 可 以 动 态 地 改 变 计 算 实 体 之 间 的 交 互 布 局 ,提 供 了 计算 实 体 交 互 布 局 与
42、 实 时 约 束 的 动 态 适 应 性 。 因 此 ,此 模 型 及 实 现架 构 适 合 于 采 用 一 般 技 术 的 又 有 软 实 时 要 求 的 信 息 系 统 。参 考 文 献 1 Papadopoulos G. A, A rbab F. Coordination of system s with real2timep roperties in manifold C / /Proceedings of 20 th International Com2puter Software and App lications Conference, COMPSAC 96, IEEEPress
43、, Aug. 1996: 50255. 2 马 晓 星 ,余 萍 ,陶 先 平 ,等 . 一 种 面 向 服 务 的 动 态 协 同 架 构 及 其 支 撑平 台 J . 计 算 机 学 报 , 2005, 28 (4) : 4672477. 3 Ren S, Shen L, Tsai J. Reconfigurable coordination model for dynam icautonomous real2time system sA . In The IEEE International Confer2ence on Sensor Networks, Ubiquitous, and
44、Trustworthy Computing.IEEE, 2006: 60267. 4 Papadopoulos G. A, A rbab F. Coordination models and languages J .Advancesin Computers, 1998, 46: 3292400. 5 L inda W ills, Kennan S. An open p latform for reconfigurable control J . IEEE Control System sMagazine, 2001, 21 (3) : 49264. 6 Theophilos L imniot
45、es, Costas Mourlas, George A. Papadopoulos. Event2driven coordination of real2time components C / /D istributed Compu2ting System s Workshop s Proceedings. 22nd International Conferenceon, 2002, 225 (7) : 5892594.(上 接 第 74页 )前 后 三 个 循 环 部 分 组 成 ,调 用 时 各 个 循 环 的 基 本 语 句 分 别 执 行了 A 0 . col、 A 0 . val
46、(A 0 . col - 1)和 A 0 . val次 ,从 而 算法 的 平 均 时 间 复 杂 度 为 T ( n) = O (N n)。 空 间 上 由 于 只 使 用了 一 个 position N 辅 助 向 量 ,从 而 算 法 的 空 间 复 杂 度 为 S ( n) =O (N )。 同 原 快 速 转 置 算 法 相 比 ,虽 然 在 空 间 上 有 所 节 省 ,但 时间 效 率 却 有 所 降 低 ,可 见 是 以 时 间 换 取 了 空 间 。从 改 进 方 案 二 的 算 法 C语 言 描 述 中 可 以 看 到 ,算 法 程 序 由 前后 四 个 循 环 部 分 组
47、 成 ,调 用 时 各 个 循 环 的 基 本 语 句 分 别 执 行 了 A0 . col、 A 0 . val、 (A 0 . col - 1)和 A 0 . val次 ,同 原 快 速 转 置算 法 一 样 ,算 法 的 平 均 时 间 复 杂 度 为 T ( n) =O (N + n)。 空 间 上除 了 使 用 一 个 positionN 辅 助 向 量 外 ,仅 仅 增 加 了 两 个 变 量 的 辅助 空 间 ,从 而 算 法 的 空 间 复 杂 度 仍 为 S ( n) = O (N )。 这 样 ,该 算法 同 原 快 速 转 置 算 法 相 比 ,能 够 在 保 持 较 低
48、 时 间 复 杂 度 的 基 础 上降 低 空 间 复 杂 度 ,从 而 实 现 了 对 原 快 速 转 置 算 法 的 优 化 。4 结 论在 对 矩 阵 采 用 三 元 组 顺 序 表 压 缩 存 储 技 术 时 ,利 用 三 元 组顺 序 表 向 量 的 首 元 素 空 间 存 放 稀 疏 矩 阵 的 总 行 数 、 总 列 数 和 三元 组 的 总 个 数 ,解 决 了 另 外 再 定 义 这 些 成 员 变 量 对 算 法 编 写 所带 来 的 麻 烦 。在 对 矩 阵 采 用 三 元 组 顺 序 表 压 缩 存 储 技 术 后 实 现 矩 阵 转 置时 ,采 用 快 速 转 置 算 法 的 平 均 时 间 复 杂 度 降 低 ,但 其 它 文 献 中 介绍 的 快 速