【0】README

0.1) 本文总结于 数据结构与算法分析, 旨在 理解 “DFS应用——贪婪算法” 的idea;


【1】贪婪算法

1.1)已经看到的三个贪婪算法: Dijkstra算、Prim算法 和 Kruskal 算法;(Dijkstra 寻找一个顶点到其他顶点的最短路径, Prim算法是选取顶点以找出最小生成树, Kruskal算法是一次选取权值最小的边 建立最小生成树)
1.2)贪婪算法是分阶段工作的 : 在每个阶段,可以认为所做的决定是最好的, 而不考虑将来的后果。一般来说, 这意味着选择的是某个局部的最优。
1.3)贪婪算法荔枝(使用最少数目的纸币找零钱):
说找零钱, 大部分人首先数出面值1元的纸币,然后是面值5角的纸币、2角的纸币、1角的纸币等等;这种贪婪算法使用最少数目的纸币找零钱;
贪婪算法的主要问题(添加1元2角的纸币): 该算法不能总是成功,为了找还15角的零钱,如添加面值1元2角的纸币(这仅仅是举例说明)可破坏这种找零钱算法, 因为此时它给出的答案(一个面值1元2角的纸币+1个面值2角的纸币+一个面值1角的纸币==3个)不是最优的(1个面值1元的纸币+1个面值5角的纸币==2个);


【2】一个简单的调度问题

2.1)问题说明: 有作业 j1, j2, ……, jN, 已知对应的运行时间为 t1, t2, …, tN, 而处理器只有一个, 为了把作用平均完成的时间最小化,调度这些作业最好的方式是什么?

对上图的分析(Analysis):

  • A1)我们看到, 2号调度是按照最短的作业最先进行来安排的, 这将总会产生一个最优调度;
  • A2)这个结果也指出了 为什么 os 调度程序一般吧优先权赋予给那些更短的作业的原因;
    2.2)多处理器的情况
  • 2.2.1)我们还是有作业 j1, j2, ……, jN,对应的运行时间为 t1, t2, …, tN,另外处理器的个数为P。不失一般性地, 我们将假设作业是有序的,最短的最先运行。
  • 2.2.2)看个实际荔枝:

2.3)将最后完成时间最小化(即越早结束越好)

  • 2.3.1)假设我们只关注最后作业的结束时间;
  • 2.3.2)看个荔枝(下图中的最小的最后完成时间是 34):
  • 2.3.3)这个问题是NPC类问题, 因此将最后完成时间最小化显然要比把 平均完成时间最小化困难得多;

贪婪算法+小应用(调度问题)相关推荐

  1. 数据结构与算法--图论-深度优先搜索及其应用

    深度优先搜索 深度优先搜索(depth-first search) 是对先序遍历(preorder traversal)的推广,我们从某个顶点v开始处理v,然后递归的遍历所有与v邻接顶点.如果这个过程 ...

  2. 并行机调度问题matlab,顺序依赖并行机调度问题介绍

    生产调度问题是指:给定一个加工任务,根据已有的生产条件,对有限的系统资源进行分配,对产品的加工步骤进行安排,使得某项性能指标最优.在实际生产过程中,所涉及的约束条件主要有:机器的加工能力,机器的数量, ...

  3. 小白的算法初识课堂(part8)--贪婪算法

    学习笔记 学习书目:<算法图解>- Aditya Bhargava 文章目录 教室调度问题 集合覆盖问题 近似算法 代码实现 NP完全问题 教室调度问题 假如我是一个学校的校长,我们学校有 ...

  4. 常用算法大全-贪婪算法

    本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法.最后,应用该算法给出货箱装船问题.背包问题.拓扑排序问题.二分覆盖问题.最短路径问题.最小代价生成树等问题的求解方案. 1.1 最优 ...

  5. 算法(六):图解贪婪算法

    算法简介 参考:https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741375.html 贪婪算法(贪心算法)是指在对问题进行求解时,在每一 ...

  6. vcfab算法示例_用示例解释贪婪算法

    vcfab算法示例 什么是贪心算法? (What is a greedy algorithm?) You may have heard about a lot of algorithmic desig ...

  7. 遗传算法、贪婪算法、粒子群算法、蚂蚁算法概念简介

    遗传算法 遗传算法是计算数学中用于解决最佳化的搜索算法,是进化算法的一种.进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变.自然选择以及杂交等.遗传算法通常实现方式为一种 ...

  8. 智能机器人以及智能控制算法综述小论文

    一.遗传算法 1.介绍:遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法.1962 年霍兰德 (Holland) 教授首次提出了 GA 算法的思想,它借用 ...

  9. 柔性车间调度问题丨一种贪婪策略的应用:以算例MK02例

    车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...

最新文章

  1. mysql数据库主从同步过程详述(三)
  2. 使用XHProf分析PHP性能瓶颈(二)
  3. Android Studio中新建和引用assets文件
  4. java set第n位_数据结构与算法——常用数据结构及其Java实现
  5. python提取图片gps坐标_用python从.docx文件中提取GPS坐标
  6. 访问页面要看什么数据包_股市看盘,我们要看什么?
  7. cmd cd 无法切换目录_一分钟掌握cmd基础操作,告别鼠标
  8. Linux:查看内存和CPU信息
  9. Django支付宝自动转账功能(一)
  10. GITC 2014全球互联网技术大会正式开始
  11. 【扫描线】【POJ-1177】Picture【周长并】
  12. 软件测试的错误优先级,软件测试典型错误
  13. 某互联网公司数据分析岗 SQL 笔试题
  14. 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结
  15. androidstudio的语音唤醒功能
  16. GOIP网关所有型号以及分辨方法 对接场景
  17. 一步一步教你安装MeeGO和Windows 7双系统(上网本或笔记本)
  18. linux rpm安装包忽视所有依赖强制安装
  19. SpringBoot整合TICK(Telegraf+InfluxDB+Chronograf +Kapacitor)监控系列之一:InfluxDB
  20. APDS-9960手势检测、接近检测、数字环境光感(ALS)和色感(RGBC)传感器驱动(基于传感器管理组件)...

热门文章

  1. 【POI2011】LIZ-Lollipop 【构造】
  2. 【NOI2011】兔兔与蛋蛋的游戏【二分图博弈】
  3. 多层图,dj+dp Gym 102501A Environment-Friendly
  4. CF980D Perfect Groups
  5. Sequence Pair Weight
  6. 牛客题霸 反转链表 C++题解/答案
  7. AT2365-[AGC012E]Camel and Oases【状压dp】
  8. NWERC2020J-Joint Excavation【构造,贪心】
  9. CF666E-Forensic Examination【广义SAM,线段树合并】
  10. jzoj4050-寻宝游戏【二分,树状数组,LCA】