收藏 分享(赏)

多机调度问题算法设计.doc

上传人:wo7103235 文档编号:6250387 上传时间:2019-04-03 格式:DOC 页数:29 大小:258KB
下载 相关 举报
多机调度问题算法设计.doc_第1页
第1页 / 共29页
多机调度问题算法设计.doc_第2页
第2页 / 共29页
多机调度问题算法设计.doc_第3页
第3页 / 共29页
多机调度问题算法设计.doc_第4页
第4页 / 共29页
多机调度问题算法设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 本 科 毕 业 论 文多机调度问题算法设计Algorithm Design of Multi-machine scheduling problem姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号:指导教师: 年 月厦门大学本科毕业论文 多机调度问题算法设计1摘 要众所周知,算法分析在当前软件领域发挥越来越大的作用,多机调度问题更是在管理和自动化方面起着不可或缺的作用。然而,手工管理方式在安全性、时效性等方面存在诸多弊端。开发多机调度问题的算法,研究在各种情况下对此问题解决的最佳方式成为当前的当务之急。现有解决多机调度问题的算法有三种,贪心法,模拟退火算法和蚁群算法,本文找

2、出一个经典多级调度问题例子,利用贪心法,模拟退火算法,蚁群算法分别求解,比较过程和结果,最终验证贪心法虽然简便但是很死板,模拟退火可以找到最优解但是需花费很多时间,蚁群算法省时省力也可以找到最优解,详细剖析了三种算法的实用性,并尝试提出思路,贪心法可尝试每台机器单独分配。可利用蚁群思路,反其道而行之,先找最差解早找对立面。关键词:多机调度;模拟退火;蚁群算法厦门大学本科毕业论文 多机调度问题算法设计2AbstractAs is well known, algorithm Analysis is currently playing a role which becomes more and mo

3、re important. Furthermore, the Multi-machine Scheduling problem is indispensable to the aspects of management and automation. The mode of manual administration has a good many of disadvantages in the terms of security and timeliness. As a result, it has been one of the immediate concern to figure ou

4、t what is the best way to solve the problem considering every condition.There are three algorithms to settle multi-machine scheduling problem the greedy algorithm, the simulated annealing algorithm and the ant colony algorithm. This article find a classic example of multi-level scheduling problem,wh

5、ich is respectively solving by greedy method, simulated annealing algorithm,and ant colony algorithm.After that,compare the process and the results. From sevaral examples, we can see that, the greedy algorithm is simple but rigid, the simulated annealing can find the optimal solution but have to spe

6、nd a lot of time, whilt the ant colony algorithm can save time to find the optimal solution. This passage compare the practicalities of those three algorithms and try to find new creative ideas. It can try to assign every machine separately using Greedy algorithm., It can use Ant Colony Optimization

7、 to find out the worst answer to ultimately establish the opposite one as the old saying going,to do exactly the opposite.Keywords: Multi-machine Scheduling; Simulated Annealing; Particle Swarm Optimization厦门大学本科毕业论文 多机调度问题算法设计3目 录 第一章 引言 .11.1 算法概念 .11.2 算法特性 .11.3 算法描述 .21.4 算法作 用 .2第二章 常见的算法设计 方法

8、 32.1 贪心法 .32.2 动态规划 .32.3 回溯法 .42.4 分治法 .52.5 递归法 .52.6 粒 子群算法 .62.7 模拟退火 算法 .72.8 蚁群算法 .82.9 并行 算法 .9第三章 多机调度问题算法设计 .113.1 多机调度问题描述 113.2 贪心法求解多机调度问题 113.3 蚁群算法多机调度问题 153.4 混合遗传模拟退火算法解决多机调度 问题 163.5 算法分析与比较 173.6 实例分析 21第四章 总结 23致谢 .24参考文献 25厦门大学本科毕业论文 多机调度问题算法设计4ContentChapter 1 Introduction 11.1

9、 The Concept of Algorithm Analysis.11.2 The Characteristic of Algorithm Analysis11.3 The Description of Algorithm Analysis .21.4 The Role of Algorithm Analysis 2Chapter 2 General Methods of Algorithm Analysis Design .32.1 Greedy Method.32.2 Dynamic Programming 42.3 Backtracking.52.4 Divide-and-Conqu

10、er .52.5 Recursive Method.52.6 Particle Swarm Optimization .72.7 Simulated Annealing 82.8 Ant Colony Algorithm82.9 Parallel Algorithm 9Chapter 3 The Algorithm Analysis Design about the Multi-machine 113.1 State of the Multi-machine Scheduling Problem113.2 Solving Multi-machine Scheduling Problem by

11、Greedy Method 113.3 The Research of Parallel on Particle Swarm Optimization 153.4 On Mixed Genetic Simulated Annealing Algorithm163.5 Algorithm Analysis 173.6 Instance.21Chapter 4 Conclusion23Acknowledgements .24References .25厦门大学本科毕业论文 多机调度问题算法设计1第一章 引言1.1 算法概念算法是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算

12、机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+ 数据结构 =程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调试、计时等阶段。算法中包括大概五个方面的内容,首先设计算法, ,算法的设计工作是不能完全自动化的,需要先了解一些已经被实践证明的基本算法,然后加以应

13、用,然后是表示算法,需要用自然语言或者算法预言,再就是确认算法,是人们确信这一算法能够正确无误的工作,紧接着分析这个算法,对这个算法需要的时间和存储空间做出计算,判断算法在什么环境中可以有效运行,最后验证算法,需要详细测试。1.2 算法的特性 确定性。算法的每一种运算必须有确定的意义,该种运算应执行何种动作应无二义性,目的明确; 能行性。要求算法中有待实现的运算都是基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成; 输入。一个算法有 0 个或多个输入,在算法运算开始之前给出算法所需数据的初值,这些输入取自特定的对象集合; 输出。作为算法运算的结果,一个算法产生一个或多个输出,输出是

14、同输入有某种特定关系的量;厦门大学本科毕业论文 多机调度问题算法设计2 有穷性。一个算法总是在执行了有穷步的运算后终止,即该算法是可达的。满足前四个特性的一组规则不能称为算法,只能称为计算过程,操作系统是计算过程的一个例子,操作系统用来管理计算机资源,控制作业的运行,没有作业运行时,计算过程并不停止,而是处于等待状态。1.3 算法的描述(1) 自然语言;(2) 图形,如 NS图、流程图,图的描述与算法语言的描述对应;(3) 算法语言,即计算机语言、程序设计语言、伪代码;(4) 形式语言,用数学的方法,可以避免自然语言的二义性。(5) 用各种算法描述方法所描述的同一算法,该算法的功用是一样的,允

15、许在算法的描述和实现方法上有所不同。1.4 算法的作用算法在程序开发应用中能起到很大的作用,首先可以使程序开发逻辑清晰,使需求分析以及软件的框架变的简便易懂。然后在一些典型的问题框架上,比如:线性规划问题,路径最短问题等等,可以很方便的调用算法迅速解决,节省人力物力,对软件开发起到非常大的作用。厦门大学本科毕业论文 多机调度问题算法设计3第二章 常见的算法设计方法2.1 贪心法贪心法(Greedy algorithm)是一种在每一步选择中都采取在当前状态下最好/优的选择,从而希望导致结果是最好/优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市, 那这就是一种贪心算法。贪心算法在

16、有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。贪心算法与动态规划的不同在于它每对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。贪心法可以解决一些最优性问题,如:求图中的最小生成树、求哈夫曼编码对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不

17、特别精确的问题。2.2 动态规划动态规划的理论基础是最优化原理和嵌入原理。 最优化原理:一个最优策略,具有如下性质:不论初始状态和初始决策(第一步决策)如何,以第一步决策所形成的阶段和状态作为初始条件来考虑时,余下的决策对余下的问题而言也必构成最优策略。最优化原理体现了动态规划方法的基本思想。 嵌入原理:一个具有已知初始状态和固定步数的过程总可以看作是初始状态和步数均不确定的一族过程中的一个特殊情况。这种把所研究的过程嵌入一个过程族的原理称为嵌入原理。通过研究过程族的最优策略族的共同性质得出一般通解,此通解自然也适用于原来的特殊问题。动态规划的基本方法就是根据嵌入原理把一个多步决策问题化为一系

18、列较简单的一步决策问题,可显著降低数学处理上的难度。 厦门大学本科毕业论文 多机调度问题算法设计4特点和应用范围:若多阶段决策过程为连续型,则动态规划与变分法处理的问题有共同之处。动态规划原理可用来将变分法问题归结为多阶段决策过程,用动态规划的贝尔曼方程求解。在最优控制理论中动态规划方法比极大值原理更为适用。但动态规划还缺少严格的逻辑基础。60 年代,沃尔昌斯基对动态规划方法作了数学论证。动态规划方法有五个特点:在策略变量较多时,与策略穷举法相比可降低维数;在给定的定义域或限制条件下很难用微分方法求极值的函数,可用动态规划方法求极值;对于不能用解析形式表达的函数,可给出递推关系求数值解;动态规

19、划方法可以解决古典方法不能处理的问题,如两点边值问题和隐变分问题等;许多数学规划问题均可用动态规划方法来解决,例如,含有随时间或空间变化的因素的经济问题。投资问题、库存问题、生产计划、资源分配、设备更新、最优搜索、马尔可夫决策过程,以及最优控制和自适应控制等问题,均可用动态规划方法来处理。2.3 回溯法回溯法可称为通用的解题法。回溯是一个带有系统性又带有跳跃性的搜索算法,用它可以系统地搜索一个问题的所有解或任意解。对于用回溯法求解的问题,首先要将问题进行适当的转化,得出状态空间树。 这棵树的每条完整路径都代表了一种解的可能。通过深度优先搜索这棵树,枚举每种可能的解的情况;从而得出结果。但是,回

20、溯法中通过构造约束函数,可以大大 提升程序效率,因为在深度优先搜索的过程中,不断的将每个解(并不一定是完整的,事实上这也就是构造约束函数的意义所在)与约束函数进行对照从而删除一些 不可能的解,这样就不必继续把解的剩余部分列出从而节省部分时间。1.它在包含问题的所有解的空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索2.回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都要被搜索遍才结束。而回溯

21、法在用来求问题的任意解时,只要搜索到问题的一个解就可以结束。这种以深度优先的方式系统地搜索问题的解算法适用于解一些组合数较大的问题。3.回溯法对解空间做深度优化搜索,因此,在一般情况下用递归法实现回溯法。(代码)厦门大学本科毕业论文 多机调度问题算法设计5Void backtrack(int t)If(tn) output(x);elsefor (int i=f(n,t);i0, 然 后 转 第 2 步 。厦门大学本科毕业论文 多机调度问题算法设计92.8 蚁 群 算 法蚁 群 算 法 (ant colony optimization, ACO), 又 称 蚂 蚁 算 法 , 是 一 种 用

22、来 在 图 中 寻找 优 化 路 径 的 机 率 型 算 法 。 它 由 Marco Dorigo 于 1992 年 在 他 的 博 士 论 文 中 提 出 , 其 灵感 来 源 于 蚂 蚁 在 寻 找 食 物 过 程 中 发 现 路 径 的 行 为 。蚁 群 算 法 是 一 种 模 拟 进 化 算 法 ,初 步 的 研 究 表 明 该 算 法 具 有 许 多 优 良 的 性 质 .针 对PID 控 制 器 参 数 优 化 设 计 问 题 ,将 蚁 群 算 法 设 计 的 结 果 与 遗 传 算 法 设 计 的 结 果 进 行 了 比 较 ,数值 仿 真 结 果 表 明 ,蚁 群 算 法 具

23、有 一 种 新 的 模 拟 进 化 优 化 方 法 的 有 效 性 和 应 用 价 值 。蚁 群 算 法 是 一 种 求 解 组 合 最 优 化 问 题 的 新 型 通 用 启 发 式 方 法 , 该 方 法 具 有 正 反 馈 、分 布 式 计 算 和 富 于 建 设 性 的 贪 婪 启 发 式 搜 索 的 特 点 。 通 过 建 立 适 当 的 数 学 模 型 , 基 于 故障 过 电 流 的 配 电 网 故 障 定 位 变 为 一 种 非 线 性 全 局 寻 优 问 题 。2.9 并 行 算 法并 行 算 法 , 就 是 在 并 行 机 上 用 很 多 个 处 理 器 联 合 求 解 问

24、 题 的 方 法 和 步 骤 。 实 际 上 ,在 自 然 界 中 并 行 是 客 观 存 在 的 普 遍 现 象 , 关 键 问 题 在 于 能 不 能 很 好 的 利 用 。 由 于 人 们 的思 维 能 力 以 及 思 考 问 题 的 方 法 对 并 行 不 太 习 惯 , 且 并 行 算 法 理 论 不 成 熟 , 所 以 总 是 出 现了 需 求 再 来 研 究 算 法 , 不 具 有 导 向 性 , 同 时 实 现 并 行 算 法 的 并 行 程 序 性 能 较 差 , 往 往 满足 不 了 人 们 的 需 求 。 并 行 算 法 的 研 究 历 史 可 简 单 归 纳 为 : 上

25、 世 纪 70 到 80 年 代 , 并 行算 法 研 究 处 于 高 潮 ; 到 上 世 纪 90 年 代 跌 入 低 谷 ; 目 前 , 又 处 于 研 究 的 热 点 阶 段 。 现 在 ,人 们 已 经 可 以 自 己 搭 建 PC cluster, 利 用 学 习 到 的 理 论 知 识 来 解 决 实 际 问 题 , 不 再 是 纸上 谈 兵 , 这 也 为 我 们 提 供 了 新 的 机 遇 和 挑 战 。并 行 算 法 的 研 究 内 容 :(1) 并 行 计 算 模 型 并 行 算 法 作 为 一 门 学 科 , 首 先 研 究 的 是 并 行 计 算 模 型 。 并 行 计

26、 算模 型 是 算 法 设 计 者 与 体 系 结 构 研 究 者 之 间 的 一 个 桥 梁 , 是 并 行 算 法 设 计 和 分 析 的 基 础 。它 屏 蔽 了 并 行 机 之 间 的 差 异 , 从 并 行 机 中 抽 取 若 干 个 能 反 映 计 算 特 性 的 可 计 算 或 可 测 量的 参 数 , 并 按 照 模 型 所 定 义 的 计 算 行 为 构 造 成 本 函 数 , 以 此 进 行 算 法 的 复 杂 度 分 析 。 并 行 计 算 模 型 的 第 一 代 是 共 享 存 储 模 型 , 如 SIMD-SM 和 MIMD-SM 的 一 些 计 算 模 型 ,模 型

27、 参 数 主 要 是 CPU 的 单 位 计 算 时 间 , 这 样 科 学 家 可 以 忽 略 一 些 细 节 , 集 中 精 力 设 计 算厦门大学本科毕业论文 多机调度问题算法设计10法 。 第 二 代 是 分 布 存 储 模 型 。 在 这 个 阶 段 , 人 们 逐 渐 意 识 到 对 并 行 计 算 机 性 能 带 来 影 响的 不 仅 仅 是 CPU, 还 有 通 信 。 因 此 如 何 把 不 同 的 通 信 性 能 抽 象 成 模 型 参 数 , 是 这 个 阶 段的 研 究 重 点 。 第 三 代 是 分 布 共 享 存 储 模 型 , 也 是 我 们 目 前 研 究 所

28、处 的 阶 段 。 随 着 网 络 技术 的 发 展 , 通 信 延 迟 固 然 还 有 影 响 , 但 对 并 行 带 来 的 影 响 不 再 像 当 年 那 样 重 要 , 注 重 计算 系 统 的 多 层 次 存 储 特 性 的 影 响 。 【2】 (2) 设 计 技 术 并 行 算 法 研 究 的 第 二 部 分 是 并 行 算 法 的 设 计 技 术 。 虽 然 并 行 算 法 研 究还 不 是 太 成 熟 , 但 并 行 算 法 的 设 计 依 然 是 有 章 可 循 的 , 例 如 划 分 法 、 分 治 法 、 平 衡 树 法 、倍 增 法 /指 针 跳 跃 法 、 流 水 线

29、 法 破 对 称 法 等 都 是 常 用 的 设 计 并 行 算 法 的 方 法 。 另 外 人 们 还可 以 根 据 问 题 的 特 性 来 选 择 适 合 的 设 计 方 法 。 以 上 是 并 行 算 法 的 常 规 研 究 内 容 。 随 着 时 代 的 进 步 , 我 们 需 要 不 断 调 整 研 究 方 向 。目 前 并 行 算 法 研 究 的 新 走 向 是 : 并 行 算 法 研 究 内 容 不 断 拓 宽 , 并 行 计 算 被 纳 入 研 究 范 畴 ;与 广 大 用 户 领 域 结 合 , 注 重 应 用 , 强 调 走 到 用 户 中 去 , 为 用 户 解 决 问

30、题 ; 重 视 新 的 、 非常 规 计 算 模 式 , 如 神 经 计 算 、 量 子 计 算 等 , 这 些 模 式 能 够 解 决 某 类 特 定 问 题 , 有 其 自 身的 优 越 性 。厦门大学本科毕业论文 多机调度问题算法设计11第三章 多机调度问题算法设计3.1 多机调度问题描述多机调度问题是生产管理与控制的一个基本问题。按照加工设备数量和加工作业的流动方式,一般可分为单机调度、并行机调度、Flowshop 调度、可重入式调度和 Jobshop 调度等多种类型。作业调度中的许多问题,不仅具有随机性、约束复杂、规模大及多目标冲突等特点,而且许多都属于 NP 完全问题,即使在单机情

31、形也是如此。因此,如何寻求有效可行的调度求解方案,一直是生产管理与控制研究的热点和难点。3.2 贪心法求解多机调度问题1提出问题经常遇到这样的问题,设有 n 个独立的作业1,2,n,由 m 台相同的机器进行加工处理。作业 1 所需的处理时间为 t。现约定,每个作业均可在任何一台机器加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。多机调度问题要求给出一种作业调度方案,使 n 个作业在尽可能短的时间内由 m 台机器加工处理完成。2解决方法作业的个数为 n,机器的数目为 mA:n m设 7 个独立的作业(1,2,3,4,5,6,7)由 3 台机器 M1,M2 和 M3 加工处理,个作

32、业所需的处理时间分别为(2,14,4,16,6,5,3) 。这里给出 3 种解决的方法:(1)如果将作业平均分配给每个机器,总共所需的时间为 22。这种算法的优点是比较简单,容易想到。缺点是没有考虑节省时间,机器所运行的作业完全由作业的次序决定,当运行时间比较大的作业集中在一起时,会把他们分配给同一个机器,这样所用的时间比较长,效率比较低,如表 3.1 所示。厦门大学本科毕业论文 多机调度问题算法设计12表 3.1 所有机器作业所需时间(2)作业按从小到大依次分配给空闲的机器时间为:2,7,23。这种算法也容易想到,事先也比较方便,同时也考虑到时间的安排,比第一种算法有了改进。但是运行时间最长

33、的作业一定是最后完成的,如果运行最长作业前,其他机器运行时间差不多就会造成其他几个机器等待一个机器的状况,这样机器的运行效率比较低。如表 3.2 所示.表 3.2 各机器作业量及总时间(3)经过上面两种算法的思考,就会想到把作业按从大到小一次分配给空闲的机器。当 n m 时,首先将 n 个作业依其所需的处理时间从大到小排序,然后依此顺序将作业分配给空闲的处理机。如图 3.3 所示按 Greedy 算法产生的作业调度如图。所需要的加工时间为 17。图 3.3 最大优先算法图示(最优)时间长为 6,11,15,17.这种算法很明显首先挑选了处理时间比较长的作业,这正是厦门大学本科毕业论文 多机调度

34、问题算法设计13贪心算法的特点,总是做出在当前看来最好的选择,也就是说贪心算法并不从整体左右考虑,他所作出的选择只是在某种意义上局部最优的选择。/如果希望增加作业,请增加 aN数组中的元素,以及 N 对应的数值:比如,7 个作业,对应 N 就是 7;/如果希望增加机器,修改 M 的数值即可#include #include #include using namespace std;#define N 7#define M 3typedef struct jobint ID;int time; Job;typedef struct machineint ID;int avail; Machine

35、;Job aN=1,2,2,14,3,4,4,16,5,6,6,5,7,3; /原始作业数据,vector m_vec_job;vector m_vec_machine;bool UDgreater(Job elem1,Job elem2)return elem1.timeelem2.time;bool UDless(Machine elem1,Machine elem2)厦门大学本科毕业论文 多机调度问题算法设计14return elem1.availN)cout:iterator it;it = min_element(m_vec_machine.begin(),m_vec_machine

36、.end(),UDless);cout 规定的循环次数,记录当前蚂蚁的位置(当前的解) 。停止运行,输出最好的解;否则转(2) 。3.4 混合遗传模拟退火算法解决多机调度问题1算法分析自 Davis 首次将遗传算法(Genetic Algorithms,GA)引入到调度问题的研究中以来,进化算法(包括遗传算法)在制造生产零件和生产调度研究领域获得了广泛的应用,并取得厦门大学本科毕业论文 多机调度问题算法设计16了较好的优化效果。遗传算法用于求解某些并行多机调度问题也有不少的研究成果。遗传算法的优点是:不受搜索空间的限制性假设的约束,不必要求诸如连续性、导数存在和单峰的假设,并且具有内在的并行性

37、,收敛速度快,能够解决非常困难的寻优问题。当然,传统的遗传算法也有许多缺点,其中最为严重的是“过早收敛”问题。所谓“过早收敛”是指在搜索的初期,由于优良个体急剧增加使种群失去多样性,从而造成程序陷入局部,达不到全局最优解的现象。遗传算法的另一个缺陷是“GA 欺骗”问题,即在 GA 的搜索过程中,有可能搜索到最优解然后又发散出去的现象。另外,遗传算法还有参数选择未能定量和不能精确定位最优解等缺陷。 【3】模拟退火算法(Simulated Annealing,SA)又称为模拟冷却法、统计冷却法、MonteCarlo 退火法、随机松弛法和概率爬山法等。模拟退火算法是一种新的统计优化方法,其思想最早是

38、由 NMetropolis 等人借鉴统计力学中物质退火方法而提出的。1983 年Kirkpatrick 等人开展了一些富有成效的工作,成功地将该思想引入组合优化理论。模拟退火算法源于对固体退火过程的模拟,采用 Meteropolis 接受准则,并用一组称为冷却进度表的参数控制算法进程,使算法在多项式时间里给出一个近似最优解。模拟退火算法的主要优点之一就是能以一定的概率接收目标函数值不太好的状态。即算法不但往好的方向走也可向差的方向走;这使得算法即便落入局部最优的陷阱中,理论上经过足够长的时间后也可跳出来从而收敛到全局最优解。模拟退火算法的主要缺点是解的质量与求解时间长短之间的矛盾。为得到一个好

39、的近似最优解,需要进行反复迭代运算,当问题的规模不可避免地增大时,缺乏可行的解决途径。2多机调度问题的混合遗传模拟退火算法从测试结果来看,混合遗传模拟退火算法在搜优率上较遗传算法和模拟退伙算法有了较大的提高。从运算过程中的数据可以看出,由于混合遗传模拟退火算法中邻域的选择、变异发生的概率都取自模拟退火的接受概率,再加上它采取了适应度拉伸系数 ,使得遗传算法的“早熟”现象得到很好的解决。另外本文所采用的混合遗传模拟算法的还具有以下优点:优化行为的增强。它具有 GA 算法的优化时间性能和 SA 算法可以最终趋于全局最优的优点,克服了 GA 算法“过早收敛”问题和 SA 算法优化时间性能较差的缺点。

40、优化效率的提高。它是一种并行而且具有自动保优功能的算法,同时利用 GA 和 SA 各自不同的邻域搜索结构相结合,这样使得算法在解空间中的搜索能力所增强,优化效率得到提高。鲁棒性的提高。它的多点搜索消弱了 SA 算法对初值的依赖性,同时它还利用 GA 算法不影响平稳分布的特性,厦门大学本科毕业论文 多机调度问题算法设计17提高了整个算法的鲁棒性。 【4】遗传算法和模拟退火两种算法均属于基于概率分布机制的优化算法。遗传算法是通过概率意义下的“优胜劣汰”思想的群体遗传操作实现优化;模拟退火算法的优化机制是通过赋予搜索过程一种时变和最终趋于零的概率突变性,来避免陷入局部极小而达到全局最优。结合这两种算

41、法的优缺点,将模拟退火的思想引入遗传算法,将模拟退火的接受概率应用于种群的选取以及变异操作,并采用适应值拉伸的方法,极大地缓解了遗传算法的选择压力。它不但丰富和优化了整个过程,而且增强了全局和局部意义下的搜索能力和效率。 【5】 从一些试验结果可以看出,混合遗传模拟退火算法在解决多机任务调度问题时较单一的遗传算法、模拟退火算法在优化行为与效率上有了很大的提高。3.5 算法分析与比较现在通过一个实例来比较各种算法的优劣。多机调度的最经典问题,n 台相同的处理机 P1,P2,Pn,处理 m 个独立的作业A1,A2,Am,以互不相关的方式工作,任何作业可以在任何处理机上运行,未完成的作业不允许中断。

42、作业也不能拆分成更小的子作业,调度的任务是给出一种作业调度方案,使 m个作业尽可能短的时间内由这 n 台相同的处理机完成。1贪心法作业的个数为 n,机器的数目为 m(1)A:n m首先将 n 个作业依其所需的处理时间从大到小排序,然后依此顺序将作业分配给空闲的处理机。厦门大学本科毕业论文 多机调度问题算法设计18图 3.4 贪心法多机分配运行结果2模拟退火算法(1)给定起,止温度 T,T0 和退火速度 c,处理及数目 n,作业数目 m,随机给出一个调度方案 X0 = (Xia)n*m,计算完工时间 f0;(2)若 TT0,转(3),否则算法停止,输出 X0;(3)随机产生作业 a 和处理机 i

43、,令 Xki = 0(k = 1,2,n,ki),Xia = 1,此时变量记为 X1;(4)计算完工时间 f1,E = f1 - f0,若Erand(0,1),也接受新值,X0X1,TcT,转(2);否则转(3)。厦门大学本科毕业论文 多机调度问题算法设计19图 3.5 模拟退火的计算过程和结果3蚁群算法人们经过大量研究发现,蚂蚁个体之间是通过一种称之为外激素的物质进行信息传递,从而能相互协作,完成复杂的任务。蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质的存在及其强度,并以此指导自己的运动方向,蚂蚁倾向于朝着该物质强度高的方向移动,因此,由大量蚂蚁

44、组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。 【6】在作业 Ai(i=1,2,m)处分别设置 1 个蚂蚁,作业分配给处理机 A,蚂蚁就在处理机 A 上留下外激素,设 ra(a=1,2,n)表示处理机 a 的总的外激素,每个蚂蚁选择处理机 a 概率为;Pa = ra / ra ,ma = 1更新方程为;ra(new) = *ra(old) + Q/FF 为此次分配后完工时间, 表示强度的持久性系数,一般取 0.5 到 0.9 左右,Q 为一正常数。解多机调度问题的蚁群算法如下:(4)nc0(nc 为循环次数),给 ra(a=1,2,n

45、)赋相同的数值,给出 Q, 的值,随机给出一个调度方案;(5)对每个蚂蚁按转移概率 Pa 选择下一个节点,计算本次分配完工时间 F,按更新方程修信息强度;厦门大学本科毕业论文 多机调度问题算法设计20(6)比较这次循环的结果,若目标函数 F 有改进,保留当前解为最好解,否则,外激素量采用上次最好解时的外激素量,ncnc + 1;(7)若 nc 规定的循环次数,记录当前蚂蚁的位置(当前的解)。停止运行,输出最好的解;否则转(2)。图 3.6 蚁群算法的计算过程3.6 实例分析通过实例进行算法比较分析贪心法的思路是先将作业按运行时间的长短从大到小排成非递增序,然后给空闲的处理机依次分配作业。假设有

46、 3 台处理机和 9 个作业,运行时间分别为 81,40,26,4,65,98,53,71,15.按贪心法,调度结果为 P1(87,40,4),P2(81,53,26),P3(71,65,15),完工时间为 160。如果采用模拟退火算法,起始温度 20000,终止温度 T0 = 1,退火速度 c = 0。95,测试 50 次,平均时间 58,平均值 165.2,最好解 152,最差解 177。蚁群算法(= 0.8,Q = 100),循环了 50 次,最好解 152,最差解 167,平均时间14,这是最佳调度方案。厦门大学本科毕业论文 多机调度问题算法设计21表 3.3 模拟退火与蚁群算法结果比

47、较(1)贪心法:对于多机调度问题,贪心法算法简单易懂,但其缺点是往往得不到 最优解,对于相对复杂的问题就需要重新选择算法。(2)模拟退火算法:由于固体退火必须缓慢降温,因此控制参数的值必须慢慢衰减,才能确保模拟退火算法最终却与优化问题的整体最优解,但是也显示出了问题,迭代时间会很长,对时间有需求,需要快速解决的问题不适合。(3)蚁群算法:与模拟退火某方面相同,同样采用概率改变变量,模拟退火是在 解的附近随机找下一个解,用概率找,而蚁群有一种外激素的概念,好的解附近外激素多,被选取的概率大,所以蚁群相对的迭代次数比模拟退火少,是个不错的选择。在企业项目中遇到多机调度问题,首先应考虑问题的复杂性,如果问题单一简洁,可直接选用贪心法解决,节省资源和时间,如果遇到较复杂的问题需要分类讨论,先分析用模拟退火和蚁群算法各自需消耗的资源和时间,如资源差不多又想节省时间可以选择蚁群算法,当然,具体情况还要根据资源分析和企业需求来定论。贪心法可尝试每台机器单独分配。可利用蚁群思路,反其道而行之,先找最差

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报