Hans Journal of Wreless Communcatons 无 线 通 信, 2013, 3, 110-114 http://dx.do.org/10.12677/hjwc.2013.35017 Publshed Onlne October 2013 (http://www.hanspub.org/journal/hjwc.html) Cogntve Engne of Case-Based Reasonng Based on VC ++ 6.0 and SQL Guopng Wu, Le Shen, Yuan Lu, Lupng Zhang School of Communcatons Engneerng, Hangzhou Danz Unversty, Hangzhou Emal: shenle@hdu.edu.cn Receved: Sep. 9 th, 2013; revsed: Sep. 16 th, 2013; accepted: Sep. 18 th, 2013 Copyrght 2013 Guopng Wu et al. Ths s an open access artcle dstrbuted under the Creatve Commons Attrbuton Lcense, whch permts unrestrcted use, dstrbuton, and reproducton n any medum, proved the orgnal wor s properly cted. Abstract: Ths paper ams to use the cases of SQL 2008 database storage, mult-objectve optmzaton results and economc beneft of functons, to solve the applcaton problems of dynamc resource allocaton based on case-based reasonng wth optmzaton process dsplayed dynamcally n MFC nterface. VC++6.0 vst SQL2008 database by ADO database access technology, go through the date n case database, choose the executon plan most matchng wth envronmental database, mplement the optmzaton algorthm, sent the optmzed parameters confguraton to database output module, and fnally update case database by optmzed parameters and utlty value. Practce shows that ths scheme s effectve because t can select optmzaton algorthm dynamcally, conduct case update and optmzaton procedure and t leads to the dynamc resource allocaton of cogntve rado. Keywords: VC++; SQL 2008; Case-Based Reasonng; Cogntve Rado 基 于 VC++6.0 和 数 据 库 的 案 例 推 理 认 知 引 擎 武 国 平, 沈 雷, 刘 源, 张 璐 苹 杭 州 电 子 科 级 大 学 通 信 工 程 学 院, 杭 州 Emal: shenle@hdu.edu.cn 收 稿 日 期 :2013 年 9 月 9 日 ; 修 回 日 期 :2013 年 9 月 16 日 ; 录 用 日 期 :2013 年 9 月 18 日 摘 要 : 针 对 基 于 案 例 推 理 的 动 态 资 源 分 配 的 实 际 应 用 问 题, 本 文 利 用 SQL2008 数 据 库 存 储 案 例 多 目 标 优 化 结 果 以 及 效 益 函 数, 在 MFC 界 面 上 动 态 显 示 优 化 过 程 VC++6.0 选 用 ADO 数 据 库 访 问 技 术 访 问 SQL2008 数 据 库, 对 案 例 子 库 的 数 据 进 行 遍 历, 选 择 与 环 境 子 库 中 最 为 匹 配 的 执 行 方 案, 执 行 优 化 算 法, 最 后 将 优 化 后 的 参 数 配 置 送 至 数 据 库 输 出 模 块, 同 效 用 值 一 起 更 新 案 例 子 库 实 践 证 明 本 方 案 灵 活 有 效, 可 以 动 态 选 择 优 化 算 法, 进 行 案 例 更 新 优 化 过 程, 成 功 地 实 现 了 认 知 无 线 电 资 源 动 态 分 配 的 问 题 关 键 词 :VC++;SQL 2008; 案 例 推 理 ; 认 识 无 线 电 1. 引 言 [1] 认 知 无 线 电 (CR) 技 术 是 解 决 频 谱 资 源 匮 乏 的 有 效 手 段, 近 几 年 来, 对 频 谱 分 配 的 研 究 非 常 广 泛, 而 基 于 案 例 推 理 (case-based reasonng CBR) [2] 的 动 态 资 源 分 配 技 术 引 起 了 广 泛 的 关 注 贪 婪 算 法 [3] 背 包 算 法 等 需 要 搜 索 整 个 解 空 间, 然 后 通 过 比 较 选 择 出 最 优 的 参 数 配 置, 不 能 满 足 认 知 无 线 电 系 统 实 时 性 的 要 求 案 例 推 理 技 术 是 一 种 人 工 智 能 学 习 方 法, 模 仿 人 类 基 于 经 验 或 案 例 来 进 行 学 习 理 解 处 理 问 题, 可 以 通 过 把 现 有 无 线 电 环 境 信 息 与 历 史 环 境 信 息 相 比 Copyrght 2013 Hanspub 110
较, 寻 找 最 相 似 的 案 例, 利 用 先 前 的 执 行 方 案 指 导 处 理 现 在 的 问 题 但 是 当 历 史 方 案 应 用 于 现 有 问 题 的 效 用 值 不 高, 即 与 当 前 环 境 信 息 相 似 度 不 高 时, 我 们 需 要 对 历 史 执 行 方 案 进 行 适 当 的 调 整, 以 满 足 当 前 环 境 的 传 输 要 求 在 本 文 中, 我 们 可 以 利 用 量 子 遗 传 和 粒 子 群 算 法 实 现 参 数 配 置 的 优 化 过 程 DS-CDMA 在 GPS 系 统, 低 轨 道 卫 星 通 信 系 统, 无 线 传 感 网 以 及 3G 网 络 等 军 用 民 用 系 统 中 都 有 比 较 广 泛 的 应 用 [4] [5] 量 子 遗 传 算 法 和 粒 子 群 算 法 都 包 括 了 染 色 体 编 码 种 群 初 始 化 和 种 群 更 新 过 程, 理 论 简 单, 具 有 寻 优 能 力 强 早 期 收 敛 速 度 快 收 敛 后 稳 定 性 强 以 及 搜 索 时 间 短 等 优 点 关 于 认 知 无 线 电 动 态 资 源 分 配 的 理 论 研 究 非 常 多, 都 是 基 于 Matlab 给 出 仿 真 结 果, 而 在 软 件 实 现 这 块 一 直 存 在 空 白 本 文 利 用 SQL2008 [6] 数 据 库 存 储 案 例 多 目 标 优 化 结 果 以 及 效 益 函 数, 在 MFC [7] 界 面 上 动 态 显 示 了 优 化 过 程, 软 件 实 现 了 发 射 功 率 调 整 方 式 的 参 数 调 整 2. 软 件 工 作 流 程 根 据 项 目 要 求, 本 软 件 由 数 据 输 入 模 块 数 据 输 出 多 目 标 优 化 以 及 案 例 推 理 四 个 基 本 模 块 组 成, 根 据 组 成 模 块 之 间 的 相 互 关 系, 软 件 工 作 流 程 图 如 图 1 Fgure 1. Flow chart of software wor 图 1. 软 件 工 作 流 程 图 所 示 在 SQL2008 中, 我 们 新 建 了 3 个 数 据 库, 分 别 为 currentproblem 数 据 库 case 数 据 库 以 及 soluton 数 据 库 在 case 数 据 库 中, 包 含 了 3 个 表 :h 表 ( 存 放 信 道 衰 落 因 子 ),power 表 ( 存 放 发 射 功 率 ) 和 mod 表 ( 存 放 调 制 方 式 ),soluton 数 据 库 中 存 放 表 outcome, 各 个 表 中 的 连 接 通 过 相 同 的 主 键 CaseId 实 现 互 联 数 据 输 入 模 块 将 外 界 无 线 环 境 信 息 读 入 到 本 地 数 据 库, 即 currentproblem 数 据 库 中, 供 多 目 标 优 化 模 块 和 案 例 推 理 模 块 调 用 ; 数 据 输 出 模 块 则 是 将 优 化 结 果 存 放 到 soluton 数 据 库 中, 方 便 管 理 者 直 观 读 取 结 果 ; 多 目 标 优 化 模 块 主 要 是 根 据 目 标 函 数 进 行 优 化, 以 适 应 外 界 无 线 环 境 信 息 及 用 户 需 求, 功 能 在 VC++6.0 中 实 现 ; 案 例 推 理 模 块 包 含 了 在 case 数 据 库 中 进 行 案 例 比 较 案 例 查 找 与 选 择 案 例 更 新 3. 软 件 功 能 分 析 3.1. 数 据 库 连 接 数 据 输 入 模 块 和 数 据 输 出 模 块 都 涉 及 到 了 对 数 据 库 的 数 据 进 行 读 写 的 操 作 目 前,VC 访 问 SQL Server 数 据 库, 常 用 的 方 法 有 两 种 : 通 过 ODBC 连 接 和 通 过 ADO 连 接 采 用 ODBC 方 式 要 求 先 创 建 ODBC 数 据 源, 应 用 程 序 通 过 数 据 源 与 数 据 库 连 接 ; 并 且 在 创 建 应 用 程 序 时, 只 能 是 基 于 单 文 档 或 多 文 档, 而 无 法 直 接 创 建 基 于 对 话 框 的 应 用 程 序 而 采 用 ADO 方 式 无 需 创 建 数 据 源, 应 用 程 序 可 通 过 ADO 直 接 与 数 据 库 连 接 ; ADO 方 式 可 以 创 建 基 于 对 话 框 的 应 用 程 序 因 此 我 们 选 择 了 ADO 方 式 我 们 通 过 COM 智 能 指 针 _ConnectonPtr m_p Connecton 和 _RecordsetPtr m_precordset 调 用 COM 组 件 的 方 法, 实 现 数 据 库 操 作 的 基 本 功 能 ADO 封 装 类 里 面 CADODatabase 类 与 CADO Recordset 类,CADODatabase 类 主 要 封 装 了 连 接 数 据 库 的 功 能,CADORecordset 类 主 要 封 装 了 对 数 据 库 记 录 操 作 的 功 能 在 CADODatabase 类 中,OpenDB(LPCTSTR lpstr Connecton) 函 数 实 现 打 开 数 据 库 连 接 的 功 能,IsOpen() 以 及 Close 函 数 实 现 链 接 的 打 开 判 断 及 关 闭 操 作, 错 误 处 理 及 错 误 描 述 通 过 dump_com_error(_com_er- Copyrght 2013 Hanspub 111
ror&e) 函 数 实 现 在 CADORecordset 类 中,Open (LPCTSTR lpstrexec, nt nopton) IsOpen() Close() 函 数 实 现 记 录 集 的 连 接 打 开 判 断 以 及 关 闭 记 录 集 字 段 的 获 取 通 过 SetFeldValue() 函 数 实 现, 其 中, 形 参 的 不 同 表 示 类 型 用 于 获 取 不 同 种 类 的 数 据 记 录 集 遍 历 操 作 通 过 MoveFrst() MoveLast() MoveNext() 等 函 数 实 现 我 们 用 AddNew() Delete() Update() 函 数 达 到 添 加 / 删 除 单 个 记 录 更 新 记 录 集 的 目 的 同 样 的, 错 误 处 理 及 错 误 描 述 通 过 dump_com_error(_com_error&e) 函 数 实 现 3.2. 多 参 数 调 整 多 目 标 优 化 模 块 的 功 能 是 对 匹 配 案 例 的 执 行 方 案 进 行 调 整 优 化, 以 满 足 当 前 用 户 和 网 络 的 需 求, 最 后 将 优 化 后 的 参 数 传 输 至 数 据 输 出 模 块 和 案 例 推 理 模 块 而 这 个 调 整 优 化 过 程, 就 需 要 涉 及 到 多 参 数 调 整 函 数, 本 文 采 用 的 优 化 算 法 为 粒 子 群 算 法 和 量 子 遗 传 算 法, 在 实 验 界 面 中, 对 两 种 算 法 选 其 一, 进 行 发 射 功 率 和 调 制 方 式 的 参 数 优 化 以 下 就 对 选 择 粒 子 群 算 法 的 原 理 以 及 VC++ 实 现 进 行 简 单 介 绍 : 3.2.1. 粒 子 群 算 法 原 理 粒 子 群 算 法 源 于 对 鸟 类 捕 食 行 为 的 研 究, 通 过 交 流 同 伴 位 置 信 息 和 历 史 最 好 位 置 信 息 来 更 新 当 前 位 置, 是 一 种 全 局 搜 索 最 优 解 算 法 假 设 粒 子 群 规 模 为 S, 则 在 一 个 D 维 的 搜 索 空 间 中, 粒 子 的 位 置 信 息 可 以 表 示 为 x x 1, x2,, x D, 速 度 信 息 表 示 为 v, v v1, v 2, D, 粒 子 到 目 前 所 经 历 的 最 好 位 置 p, p,, p p 1 2 D, 其 中 为 第 次 迭 代, 则 群 体 中 所 有 粒 子 到 第 次 迭 代 结 束 后 经 历 过 的 最 好 位 置 为 p 1, pb2,, p b pb bd, 其 中 b 为 具 有 最 优 位 置 粒 子 的 索 引 在 本 文 算 法 中,D 是 2 维 搜 索 空 间, 分 别 是 发 射 功 率 和 调 制 模 式, 最 好 位 置 指 的 是 适 应 度 最 高 的 解 在 迭 代 过 程 中, 速 度 的 更 新 方 程 为 : 1 1 1 1 1 11 2 2 bd v v cr p x c r p x (1) x x v (2) 1 1 其 中 c 1 和 c 2 为 学 习 因 子,r 1 和 r 2 是 分 布 于 [0,1] 之 间 的 随 机 数 为 了 避 免 粒 子 离 开 搜 索 空 间, x 被 限 制 在 V max 和 V max 之 间 本 文 采 用 二 进 制 粒 子 群 算 法, 因 此 位 置 信 息 x 和 p 都 被 限 定 为 0 或 1, 速 度 大 小 需 要 通 过 下 式 转 化 到 [0,1] 之 间 的 概 率 值 : S v 1 (3) 1 exp v 二 进 制 粒 子 群 算 法 的 粒 子 位 置 更 新 公 式 为 : x 1, r S v 0, r S v 其 中 r 为 在 [0,1] 之 间 均 匀 分 布 的 随 机 数 3.2.2. 算 法 软 件 实 现 (4) 由 2.1 介 绍 可 知, 本 文 粒 子 群 算 法 是 基 于 二 进 制 型 的, 因 此 在 初 始 化 的 时 候, 必 须 要 把 案 例 库 中 获 取 的 匹 配 案 例 的 发 射 功 率 和 调 制 方 式 转 化 成 二 进 制 型, 这 里, 我 们 通 过 multcode 函 数 实 现 多 载 波 编 码 每 个 子 载 波 的 发 射 功 率 范 围 为 0~25.2, 精 度 为 0.4, 编 码 为 6 bt, 调 制 方 式 可 为 1, 2, 3, 4, 因 此 编 码 为 2 bt, 单 载 波 编 码 通 过 函 数 code 实 现, 我 们 假 设 有 10 个 传 输 信 道, 因 此 多 载 波 编 码 好 了 的 数 据 为 一 个 大 小 为 80 的 数 组 (8*10), 存 放 在 bestp[80] 中 速 度 的 初 始 化 由 C++ 自 行 产 生 0~1 的 随 机 数 得 到 每 次 进 化 ( 迭 代 ) 运 算 后, 需 要 得 到 效 用 函 数 值, 根 据 效 用 函 数 的 大 小, 分 别 在 pmax[populaton][80] 和 pgmax[80] 存 放 粒 子 到 目 前 所 经 历 的 最 好 位 置 及 所 有 粒 子 到 目 前 所 经 历 的 最 好 位 置, 其 中 populaton 为 种 群 规 模 效 用 值 大 小 通 过 函 数 ftness 实 现 然 后 应 用 公 式 (1), 更 新 速 度 信 息, 根 据 公 式 (4), 更 新 位 置 信 息 x Partcles warm optmzaton 函 数 调 用 以 上 函 数, 实 现 进 化, 完 成 后 返 回 效 用 值 fgmax 多 载 波 发 射 功 率 以 及 多 载 波 调 制 方 式 3.3. 案 例 比 较 更 新 匹 配 案 例 选 择 函 数 案 例 比 较 函 数 是 比 较 数 据 输 入 模 块 中 的 数 据, 即 currentproblem 数 据 库 中 的 数 据 同 case 库 中 h 表 中 的 信 息 进 行 比 较, 函 数 定 义 为 Evf (double *dblvalue1, double *dblvalue2), 函 数 返 回 相 似 值, 相 似 值 越 高, 代 表 案 例 库 中 的 当 前 比 较 案 例 同 当 前 环 境 描 述 越 接 近, 因 此 我 们 可 以 通 过 遍 历 案 例 库 中 的 案 例, 根 据 相 112 Copyrght 2013 Hanspub
似 度 函 数 的 返 回 值 选 取 匹 配 案 例, 返 回 该 案 例 的 索 引 号, 该 功 能 通 过 匹 配 案 例 选 择 函 数 SmlarCase() 实 现 案 例 库 的 大 小 有 一 定 的 规 模 限 制, 太 小, 不 容 易 找 到 特 别 近 似 的 案 例, 延 长 优 化 算 法 的 执 行 时 间, 案 例 库 规 模 太 大, 则 由 于 遍 历 算 法 的 存 在, 延 长 匹 配 案 例 索 引 号 的 获 取 时 间 因 此, 案 例 库 规 模 的 选 择 经 过 衡 量, 本 文 采 用 150 个 案 例 的 规 模 初 始 条 件 下, 案 例 库 为 空, 直 接 执 行 优 化 算 法, 把 信 道 条 件 和 参 数 配 置 作 为 新 案 例 添 加 到 case 库 中, 案 例 库 中 标 号 +1, 所 要 添 加 数 据 的 表 格 为 所 有 表 格, 即 表 h power mod 当 案 例 库 饱 和 后 ( 本 案 例 库 案 例 个 数 上 限 预 定 为 150 个 ), 查 找 案 例 库 中 系 统 效 用 值 最 小 的 案 例 ( 通 过 在 函 数 中 调 用 ADO 类, 在 outcome 表 中 查 找 ), 用 当 前 案 例 替 换, 存 放 到 案 例 库 中 所 要 替 换 掉 的 内 容 包 括 表 h power mod outcome 对 应 序 号 所 存 放 的 数 据 案 例 更 新 所 涉 及 到 的 功 能 通 过 UpdateDB() 函 数 实 现 4. 软 件 实 现 界 面 如 图 2 所 示, 这 是 基 于 案 例 推 理 的 动 态 资 源 分 配 主 界 面 当 我 们 选 择 CBR-PSO 算 法, 目 标 模 式 选 择 为 mod1 时, 我 们 按 确 定 按 钮, 程 序 开 始 执 行, 我 们 可 以 从 主 界 面 上 直 观 看 到 程 序 运 行 过 程, 读 取 优 化 结 果 我 们 也 可 通 过 数 据 库 查 询 按 钮 查 询 case 库 和 soluton 库 中 信 息 如 图 3 所 示, 为 点 击 案 例 库 数 Fgure 2. Man nterface of dynamc resource allocaton 图 2. 动 态 资 源 分 配 主 界 面 Fgure 3. Date query of case base 图 3. 案 例 库 数 据 查 询 Copyrght 2013 Hanspub 113
据 按 钮 后 弹 出 的 窗 口, 可 以 在 查 询 条 件 的 下 拉 菜 单 中 选 择 需 要 查 询 的 表 格, 进 行 查 询 操 作 5. 总 结 本 文 利 用 SQL2008 数 据 库 存 储 案 例 多 目 标 优 化 结 果 以 及 效 益 函 数, 在 MFC 界 面 上 动 态 显 示 优 化 过 程 弥 补 了 在 认 知 无 线 电 在 软 件 实 现 方 面 的 空 白, 具 有 实 际 应 用 价 值 在 算 法 方 面,CBR-PSO 和 CBR-QGA 的 优 势 在 于, 在 优 化 算 法 执 行 之 前, 抛 弃 了 那 些 不 可 能 产 生 更 好 性 能 的 配 置, 把 搜 索 空 间 缩 小 到 最 优 解 的 周 围, 加 快 了 算 法 的 收 敛 速 度 通 过 编 程 运 行 证 明, 本 方 案 灵 活 有 效, 可 以 动 态 选 择 优 化 算 法, 进 行 案 例 更 新 优 化 过 程, 成 功 地 实 现 了 认 知 无 线 电 资 源 动 态 分 配 的 问 题 6. 致 谢 在 此 表 示 感 谢 参 考 文 献 (References) [1] Federal Communcatons Commsson. Spectrum polcy tas force report. ET Docet, 2002, 02-135. [2] R. C. Schan. Dynamc memory: A theory of remndng and learnng n computers and people. New Yor: Cambrge Unversty Press, 1982. [3] D. Sun, B. Zheng. A novel mult-user low complexty bt allocaton algorthm n cogntve OFDM networs based on AM-GM nequalty. IET 3rd Internatonal Conference on Wreless, Moble and Multmeda Networs (ICWMNN 2010), 2010: 217-220. [4] A. Narayanan, M. Moore. Quantum-nspred genetc algoruthms. Proceedngs of IEEE Internatonal Conference on Evolutonary Computaton, 1996: 61-66. [5] J. Kennedy, R. C. Eberhart. A dscrete bnary verson of the partcle swarm algorthm. IEEE Internatonal Conference on Evolutonary Computaton, 1998: 84-88. [6] 康 会 光, 马 海 军. SQL Server 2008 中 文 版 标 准 教 程 [M]. 北 京 : 清 华 大 学 出 版 社, 2009. [7] S. B. Lppman, J. La Joe and B. E. Moo. C++Prmer[M]. 北 京 : 人 民 邮 电 出 版 社, 2006. 本 论 文 得 到 浙 江 省 大 学 生 新 苗 计 划 项 目 的 资 助, 114 Copyrght 2013 Hanspub