1、多目标粒子群算法粒 子 群 算 法 , 也 粒 子 群 优 化 算 法 ( Particle Swarm Optimization) ,缩 写 为 PSO, 是 一 种 进 化 计 算 技 术 (evolutionary computation), 1995 年 由 Eberhart 博 士 和 kennedy 博 士 提 出 , 源 于 对 鸟 群 捕 食 的 行 为 研 究 。PSO 算 法 从 随 机 解 出 发 , 通 过 迭 代 寻 找 最 优 解 , 通 过 适 应 度 来 评 价 解 的 品质 。 但 是 , PSO 比 遗 传 算 法 规 则 更 为 简 单 , 它 没 有 遗
2、 传 算 法 的 “交 叉 ” 和“变 异 ”操 作 , 它 通 过 追 随 当 前 搜 索 到 的 最 优 值 来 寻 找 全 局 最 优 。 这 种 算 法以 其 实 现 容 易 、 精 度 高 、 收 敛 快 等 优 点 , 并 且 在 解 决 实 际 问 题 中 展 示 了 其 优越 性 。1 引言优 化 问 题 是 工 业 设 计 中 经 常 遇 到 的 问 题 ,许 多 问 题 最 后 都 可 以 归 结 为 优化 问 题 . 为 了 解 决 各 种 各 样 的 优 化 问 题 ,人 们 提 出 了 许 多 优 化 算 法 ,比 较 著名 的 有 爬 山 法 、 遗 传 算 法 等
3、 . 优 化 问 题 有 两 个 主 要 问 题一 是 要 求 寻 找 全 局 最 优 点 , 二 是 要 求 有 较 高 的 收 敛 速 度 . 遗 传 算 法属 于 进 化 算 法 ( Evolutionary Algorithms) 的 一 种 ,它 通 过 模 仿 自 然界 的 选 择 与 遗 传 的 机 理 来 寻 找 最 优 解 . 遗 传 算 法 有 三 个 基 本 算 子 :选 择 、 交叉 和 变 异 . 但 是 遗 传 算 法 的 编 程 实 现 比 较 复 杂 ,首 先 需 要 对 问 题 进 行 编 码 ,找 到 最 优 解 之 后 还 需 要 对 问 题 进 行 解
4、码 ,另 外 三 个 算 子 的 实 现 也 有 许 多 参 数 ,如交 叉 率 和 变 异 率 ,并 且 这 些 参 数 的 选 择 严 重 影 响 解 的 品 质 ,而 目 前 这 些 参 数的 选 择 大 部 分 是 依 靠 经 验 。 PSO 算 法PSO 同 遗 传 算 法 类 似 , 是 一 种 基 于 迭 代 的 优 化 算 法 。 系 统 初 始 化 为 一组 随 机 解 , 通 过 迭 代 搜 寻 最 优 值 。 但 是 它 没 有 遗 传 算 法 用 的 交 叉(crossover)以 及 变 异 (mutation), 而 是 粒 子 在 解 空 间 追 随 最 优 的
5、粒 子 进 行搜 索 。 同 遗 传 算 法 比 较 , PSO 的 优 势 在 于 简 单 容 易 实 现 并 且 没 有 许 多 参 数 需要 调 整 。 目 前 已 广 泛 应 用 于 函 数 优 化 , 神 经 网 络 训 练 , 模 糊 系 统 控 制 以 及 其他 遗 传 算 法 的 应 用 领 域 。 2 算法介绍简 介如 前 所 述 , PSO 模 拟 鸟 群 的 捕 食 行 为 。 设 想 这 样 一 个 场 景 : 一 群 鸟 在 随机 搜 索 食 物 。 在 这 个 区 域 里 只 有 一 块 食 物 。 所 有 的 鸟 都 不 知 道 食 物 在 那 里 。但 是 他
6、们 知 道 当 前 的 位 置 离 食 物 还 有 多 远 。 那 么 找 到 食 物 的 最 优 策 略 是 什 么呢 。 最 简 单 有 效 的 就 是 搜 寻 目 前 离 食 物 最 近 的 鸟 的 周 围 区 域 。 PSO 从 这 种 模 型 中 得 到 启 示 并 用 于 解 决 优 化 问 题 。 PSO 中 , 每 个 优 化 问题 的 解 都 是 搜 索 空 间 中 的 一 只 鸟 。 我 们 称 之 为 “粒 子 ”。 所 有 的 粒 子 都 有一 个 由 被 优 化 的 函 数 决 定 的 适 应 值 (fitness value), 每 个 粒 子 还 有 一 个 速度
7、 决 定 他 们 飞 翔 的 方 向 和 距 离 。 然 后 粒 子 们 就 追 随 当 前 的 最 优 粒 子 在 解 空 间中 搜 索 。 PSO 初 始 化 为 一 群 随 机 粒 子 (随 机 解 )。 然 后 通 过 迭 代 找 到 最 优 解 。 在每 一 次 迭 代 中 , 粒 子 通 过 跟 踪 两 个 “极 值 “来 更 新 自 己 。 第 一 个 就 是 粒 子 本身 所 找 到 的 最 优 解 , 这 个 解 叫 做 个 体 极 值 pBest。 另 一 个 极 值 是 整 个 种 群 目前 找 到 的 最 优 解 , 这 个 极 值 是 全 局 极 值 gBest。 另
8、 外 也 可 以 不 用 整 个 种 群 而只 是 用 其 中 一 部 分 作 为 粒 子 的 邻 居 , 那 么 在 所 有 邻 居 中 的 极 值 就 是 局 部 极 值 。描 述在 基 本 粒 子 群 算 法 中 , 粒 子 群 由 n 个 粒 子 组 成 , 每 个 粒 子 的 位 置 xi代表 优 化 问 题 在 D 维 搜 索 空 间 中 潜 在 的 解 。 粒 子 在 搜 索 空 间 中 以 一 定 的 速 度 飞行 , 这 个 速 度 根 据 它 本 身 的 飞 行 经 验 和 同 伴 的 飞 行 经 验 来 动 态 调 整 下 一 步 飞行 方 向 和 距 离 。 所 有 的
9、 粒 子 都 有 一 个 被 目 标 函 数 决 定 的 适 应 值 , 并 且 知 道自 己 到 目 前 为 止 发 现 的 最 好 位 置 (个 体 极 值 pi)和 当 前 的 位 置 (xi)。 除 此 之外 , 每 个 粒 子 还 知 道 到 目 前 为 止 整 个 群 体 中 所 有 粒 子 发 现 的 最 好 位 置 (全局 极 值 pg)。粒 子 群 算 法 的 数 学 描 述 如 下 : 每 个 粒 子 i 包 含 为 一 个 D 维 的 位 置 向 量xi=( xi1, xi2, , xiD ) 和 速 度 向 量 vi = ( vi1, vi2, viD ), 粒子 i
10、搜 索 解 空 间 时 , 保 存 其 搜 索 到 的 最 优 经 历 位 置 p i = ( pi1, pi2, , piD )。 在 每 次 迭 代 开 始 时 , 粒 子 根 据 自 身 惯 性 和 经 验 及 群 体 最 优 经 历位 置 pg = ( pg1, pg2, , pgD )来 调 整 自 己 的 速 度 向 量 以 调 整 自 身 位 置 。c1、 c2 是 正 常 数 ,称 之 为 加 速 因 子 ; r1、 r2为 0, 1中 均 匀 分 布 的 随 机 数 , d 为 D 维 中 的 维 数 ; 是 惯 性 权 重 因 子 。 其 中 , 每 个 粒 子 的 位 置
11、 和 速 度 更 新按 下 式 (1)+1 =+11()+22()(2)+1 =+1式 (1)由 三 部 分 组 成 , 第 一 部 分 是 粒 子 原 来 的 速 度 , 其 值 越 大 , 越 利于 全 局 搜 索 , 其 值 小 则 利 于 局 部 搜 索 能 力 , 具 有 平 衡 全 局 和 局 部 搜 索 的 能力 ; 第 二 部 分 是 粒 子 本 身 的 思 考 , 表 明 粒 子 自 身 经 验 对 当 前 搜 索 倾 向 的 吸引 程 度 , 受 到 c1 r1 的 随 机 调 整 , 是 对 粒 子 所 积 累 经 验 的 利 用 , 使 粒 子 有 了足 够 强 的 全
12、 局 搜 索 能 力 , 避 免 局 部 极 小 ; 第 三 部 分 是 粒 子 学 习 其 他 粒 子 经验 的 过 程 , 表 明 粒 子 间 信 息 的 共 享 和 社 会 协 作 , 受 到 c2r2的 随 机 调 整 , 并与 pg 的 位 置 和 种 群 的 领 域 拓 扑 结 构 直 接 相 关 。 在 这 三 部 分 的 共 同 作 用 下 , 粒 子 根 据 自 己 的 经 验 并 利 用 信 息 共 享 机 制 不 断 调 整 自 己 的 速 度 与 位 置 , 从而 有 效 地 到 达 最 好 位 置 。粒 子 位 置 在 每 一 代 的 上 述 更 新 方 式 可 用
13、下 图 来 描 述由 于 粒 子 群 算 法 具 有 高 效 的 搜 索 能 力 , 有 利 于 得 到 多 目 标 意 义 下 的 最优 解 ; 通 过 代 表 整 个 解 集 种 群 , 按 并 行 方 式 同 时 搜 索 多 个 非 劣 解 , 也 即 搜索 到 多 个 Pareto 最 优 解 ; 同 时 , 粒 子 群 算 法 的 通 用 性 比 较 好 , 适 合 处 理多 种 类 型 的 目 标 函 数 和 约 束 ,并 且 容 易 与 传 统 的 优 化 方 法 结 合 , 从 而 改 进 自身 的 局 限 性 , 更 高 效 地 解 决 问 题 。 因 此 , 将 粒 子 群
14、 算 法 应 用 于 解 决 多 目 标优 化 问 题 上 具 有 很 大 的 优 势 。粒 子 群 算 法 思 想 描 述 如 下 : 初 始 化 种 群 后 ,种 群 的 大 小 记 为 N。 基 于 适应 度 支 配 的 思 想 ,将 种 群 划 分 成 两 个 子 群 ,一 个 称 为 非 支 配 子 集 A, 另 一 个称 为 支 配 子 集 B, 两 个 子 集 的 基 数 分 别 为 n1、 n2, 满 足 两 个 子 群 基 数 之 和 为N。 外 部 精 英 集 用 来 存 放 每 代 产 生 的 非 劣 解 子 集 A, 每 次 迭 代 过 程 只 对 B 中的 粒 子 进
15、 行 速 度 和 位 置 的 更 新 , 并 对 更 新 后 的 B 中 的 粒 子 基 于 适 应 度 支 配思 想 与 A 中 的 粒 子 进 行 比 较 , 若 xi B, 任 意 xj A, 使 得 xi 支 配 xj, 则删 除 xj, 使 xi加 入 A 更 新 外 部 精 英 集 ; 且 精 英 集 的 规 模 要 利 用 一 些 技 术 维持 在 一 个 上 限 范 围 内 , 如 密 度 评 估 技 术 、 分 散 度 技 术 等 。 最 后 , 算 法 终 止的 准 则 可 以 是 最 大 迭 代 次数 Tmax、 计 算 精 度 或 最 优 解 的 最 大 凝 滞 步 数
16、 t 等 。 具 体 步 骤 如 下图 所 示 :图 中 , t 是 迭 代 的 代 数 ,xi是 第 i 个 粒 子 的 位 置 坐 标 , vi是 第 i 个 粒 子的 速 度 ,pi是 粒 子 的 个 体 极 值 ,pg是 粒 子 群 的 全 局 极 值 。粒 子 群 算 法 是 一 种 新 兴 起 的 优 化 算 法 , 其 每 个 粒 子 根 据 自 身 的 最 优 位置 和 群 体 全 局 的 最 优 位 置 更 新 自 己 的 速 度 和 位 置 ,各 粒 子 由 于 群 体 全 局 的 最优 位 置 的 影 响 , 很 快 收 敛 到 全 局 最 优 位 置 附 近 , 这 已
17、 显 示 出 它 的 快 速 性 、有 效 性 和 鲁 棒 性 等 多 种 优 点 。3 遗传算法和 PSO 的比较粒 子 群 优 化 算 法 (PSO)是 一 种 基 于 迭 代 的 优 化 工 具 ,系 统 初 始 化 一 组 随机 解 , 通 过 迭 代 搜 寻 最 优 值 , 不 但 具 有 全 局 寻 优 能 力 , 而 且 具 有 较 强 的 局部 寻 优 能 力 。粒子群算法(PSO )和遗传算法 (GA)都是优化算法,都力图在自然特性的基础上模拟个体种群的适应性,它们都采用一定的变换规则通过搜索空间求解。PSO 和 GA 的 相 同 点 :(1) 都属于仿生算法。PSO 主要模
18、拟鸟类觅食、人类认知等社会行为而提出;GA 主要借用生物进化中“适者生存”的规律。(2) 都属于全局优化方法。两种算法都是在解空间随机产生初始种群,因而算法在全局的解空间进行搜索,且将搜索重点集中在性能高的部分。(3) 都属于随机搜索算法。都是通过随机优化方法更新种群和搜索最优点。PSO 中认知项和社会项前都加有随机数;而 GA 的遗传操作均属随机操作。(4) 都隐含并行性。搜索过程是从问题解的一个集合开始的,而不是从单个个体开始,具有隐含并行搜索特性,从而减小了陷入局部极小的可能性。并且由于这种并行性,易在并行计算机上实现,以提高算法性能和效率。(5) 根据个体的适配信息进行搜索,因此不受函
19、数约束条件的限制,如连续性、可导性等。(6) 对高维复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,都无法保证收敛到最优点。PSO 和 GA 不 同 点(1) PSO 有记忆,好的解的知识所有粒子都保存,而 GA 没有记忆,以前的知识随着种群的改变被破坏。(2) 在 GA 算法中,染色体之间相互共享信息,所以整个种群的移动是比较均匀地向最优区域移动。PSO 中的粒子仅仅通过当前搜索到最优点进行共享信息,所以很大程度上这是一种单项信息共享机制,整个搜索更新过程是跟随当前最优解的过程。在大多数情况下,所有粒子可能比遗传算法中的进化个体以更快速度收敛于最优解。(3) GA 的编码技术和遗传操作比较简
20、单,而 PSO 相对于 GA,不需要编码,没有交叉和变异操作,粒子只是通过内部速度进行更新,因此原理更简单、参数更少、实现更容易。(4) 在收敛性方面,GA 己经有了较成熟的收敛性分析方法,并且可对收敛速度进行估计;而 PSO 这方面的研究还比较薄弱。尽管已经有简化确定性版本的收敛性分析,但将确定性向随机性的转化尚需进一步研究。(5) 在应用方面,PSO 算法主要应用于连续问题,包括神经网络训练和函数优化等,而 GA 除了连续问题之外,还可应用于离散问题,比如 TSP 问题、货郎担问题、工作车间调度等。4 演化计算技术过程大 多 数 演 化 计 算 技 术 都 是 用 同 样 的 过 程 :
21、1. 种 群 随 机 初 始 化 2. 对 种 群 内 的 每 一 个 个 体 计 算 适 应 值 (fitness value).适 应 值 与 最 优解 的 距 离 直 接 有 关 3. 种 群 根 据 适 应 值 进 行 复 制 4. 如 果 终 止 条 件 满 足 的 话 , 就 停 止 , 否 则 转 步 骤 2 从 以 上 步 骤 , 我 们 可 以 看 到 PSO 和 GA 有 很 多 共 同 之 处 。 两 者 都 随 机 初始 化 种 群 , 而 且 都 使 用 适 应 值 来 评 价 系 统 , 而 且 都 根 据 适 应 值 来 进 行 一 定 的随 机 搜 索 。 两
22、个 系 统 都 不 是 保 证 一 定 找 到 最 优 解 。 5 粒子群算法的记忆性PSO 没 有 遗 传 操 作 如 交 叉 (crossover)和 变 异 (mutation). 而 是 根 据 自己 的 速 度 来 决 定 搜 索 。 粒 子 还 有 一 个 重 要 的 特 点 , 就 是 有 记 忆 。 与 遗 传 算 法 比 较 , PSO 的 信 息 共 享 机 制 是 很 不 同 的 . 在 遗 传 算 法 中 ,染 色 体 (chromosomes) 互 相 共 享 信 息 , 所 以 整 个 种 群 的 移 动 是 比 较 均 匀 的 向最 优 区 域 移 动 . 在 P
23、SO 中 , 只 有 gBest (or lBest) 给 出 信 息 给 其 他 的 粒子 , 这 是 单 向 的 信 息 流 动 . 整 个 搜 索 更 新 过 程 是 跟 随 当 前 最 优 解 的 过 程 . 与 遗 传 算 法 比 较 , 在 大 多 数 的 情 况 下 , 所 有 的 粒 子 可 能 更 快 的 收 敛 于 最 优 解 6 PSO 的参数设置从 上 面 的 例 子 我 们 可 以 看 到 应 用 PSO 解 决 优 化 问 题 的 过 程 中 有 两 个 重要 的 步 骤 : 问 题 解 的 编 码 和 适 应 度 函 数 PSO 的 一 个 优 势 就 是 采 用
24、 实 数 编 码不 需 要 像 遗 传 算 法 一 样 是 二 进 制 编 码 (或 者 采 用 针 对 实 数 的 遗 传 操 作 .例 如 对 于 问 题 f(x) = x12 + x22+x32 求 解 , 粒 子 可 以 直 接 编 码 为 (x1, x2, x3), 而 适 应 度 函 数 就 是 f(x). 接 着 我 们 就 可 以 利 用 前 面 的 过 程去 寻 优 .这 个 寻 优 过 程 是 一 个 叠 代 过 程 , 中 止 条 件 一 般 为 设 置 为 达 到 最 大 循环 数 或 者 最 小 错 误 PSO 中 并 没 有 许 多 需 要 调 节 的 参 数 ,下
25、 面 列 出 了 这 些 参 数 以 及 经 验 设 置 。粒 子 数 : 一 般 取 20 40. 其 实 对 于 大 部 分 的 问 题 10 个 粒 子 已 经 足够 可 以 取 得 好 的 结 果 , 不 过 对 于 比 较 难 的 问 题 或 者 特 定 类 别 的 问 题 , 粒 子数 可 以 取 到 100 或 200 粒 子 的 长 度 : 这 是 由 优 化 问 题 决 定 , 就 是 问 题 解 的 长 度 粒 子 的 范 围 : 由 优 化 问 题 决 定 ,每 一 维 可 是 设 定 不 同 的 范 围 Vmax: 最 大 速 度 ,决 定 粒 子 在 一 个 循 环
26、中 最 大 的 移 动 距 离 ,通 常 设 定 为粒 子 的 范 围 宽 度 ,例 如 上 面 的 例 子 里 ,粒 子 (x1, x2, x3) x1 属 于 -10, 10, 那 么 Vmax 的 大 小 就 是 20 学 习 因 子 : c1 和 c2 通 常 等 于 2. 不 过 在 文 献 中 也 有 其 他 的 取 值 . 但 是 一 般 c1 等 于 c2 并 且 范 围 在 0 和 4 之 间 中 止 条 件 : 最 大 循 环 数 以 及 最 小 错 误 要 求 . 例 如 , 在 上 面 的 神 经 网 络训 练 例 子 中 , 最 小 错 误 可 以 设 定 为 1 个
27、 错 误 分 类 , 最 大 循 环 设 定 为 2000, 这 个 中 止 条 件 由 具 体 的 问 题 确 定 . 全 局 PSO 和 局 部 PSO: 我 们 介 绍 了 两 种 版 本 的 粒 子 群 优 化 算 法 : 全 局版 和 局 部 版 . 前 者 速 度 快 不 过 有 时 会 陷 入 局 部 最 优 . 后 者 收 敛 速 度 慢 一 点不 过 很 难 陷 入 局 部 最 优 . 在 实 际 应 用 中 , 可 以 先 用 全 局 PSO 找 到 大 致 的 结果 ,再 有 局 部 PSO 进 行 搜 索 . 惯 性 权 重另 外 的 一 个 参 数 是 惯 性 权 重 , Shi 和 Eberhart 指 出 (A modified particle swarm optimizer,1998): 当 Vmax 很 小 时 ( 对 schaffer 的 f6函 数 , Vmax=3),使 用 权 重 w=0.8 较 好 .如 果 没 有 Vmax 的 信息 ,使 用 0.8 作 为 权 重 也 是 一 种 很 好 的 选 择 .另 外 ,对 于 使 用 时 变 的 权 重 ,结果 不 清 楚 ,但 是 预 计 结 果 应 比 较 好 .