算法导论笔记5:贪心算法

P216 第15章动态规划 最优子结构 具有它可能意味着适合应用贪心策略

动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。

剪切-粘贴技术证明 每个子问题的解就是它本身的最优解(利用反证法)

保持子问题空间尽可能简单

P217 在第16章介绍贪心算法,它与动态规划有很多相似之处,最大的不同在于贪心算法不是首先寻找子问题的最优解,然后在其中进行选择,而是首先做出一次贪心选择得到当时(局部)最优解,然后求解选出的子问题——(感觉这点也可以用于生活琐事,是不是最优选择先做了再说,当然也有一定的基础证明这么做结果不会太差)

P218 两个最长简单路径子问题是相关的,两个最短路径子问题是无关的(什么是无关:无关是同一个原问题的一个子问题的解不影响另一个子问题的解)

重叠子问题 适合动态规划方法求解的最优化问题应该具备的第二个性质是子问题空间必须是足够小,即问题的递归算法会反复求解的相通的子问题(这就是重叠子问题),而不是一直生成新的子问题。

P219 15.1节 钢条切割问题的递归算法是如何通过指数次的递归调用来求解小的子问题。动态规划算法讲运行时间从递归算法的指数阶降为平方阶。

P222 最长公共子序列(LCS) 举例:用于比较两个DNA串的相似度

定理15.1 LCS的最优子结构

步骤1:刻画最长公共子序列的特征;

步骤2:一个递归解;

步骤3:计算LCS长度;

步骤4:构造LCS

P226 LCS_LENGTH 的空间需求是可以逐渐减小的

应用案例:设计程序实现语言之间翻译,用最优二叉搜索树(optimal binary search tree,求解它与矩阵乘法相似),提高搜索效率,让频繁出现的单词靠近跟,冷门的词汇远离根。

P237 第16章 贪心算法greedy algorithm,这章有拟阵(matroid)的概念,从贪心算法中衍生出来的

P238 用举办活动的选择问题来解释贪心算法

P242 贪心选择的性质,贪心算法通常是自顶向下的

贪心算法和动态规划算法,二者间有细微差别。

研究一个经典最优化问题的两个变形:0-1背包问题,分数背包问题

0-1背包问题:小偷偷商品,对于任何一个商品要么完整拿走,要么留下,不能只拿一部分或一个商品反复拿

分数背包问题:具备贪心选择性质

引申检索:贪心算法有什么应用

1 关于视频传输领域,查找到一个专利:一种基于贪心算法的全景视频传输方法

针对的是全景视频:对接收到的全景视频进行片段划分,得到若干视频片段;对每个所述视频片段进行块划分,得到与每个所述视频片段对应的基本块集;根据预设的贪心合并分块算法对每个所述基本块集进行处理,得到对应的目标分块集;根据所述目标分块集对所述全景视频进行视频传输。

2 关于视频拼接领域,查找到一个算法题:

获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数目。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java:牛客每日三十题总结-6】

java:牛客每日三十题总结 总结如下 总结如下 transient 变量和序列化有关,这是一个空接口,起标记作用,具体的序列化由ObjectOutputStream和ObjectInputStream完成。transient修饰的变量不能被序列化,static变量不管加没加transie…

element ui中Select 选择器,自定义显示内容

正常情况下,下拉框选项展示内容,就是选择后展示的label内容 如图所示: 但是要想自定义选项内容,但是展示内容不是选项label的内容,可以在el-option标签内增加div进行自定义选项label展示,但选择后结果展示…

RabbitMQ的 五种工作模型

RabbitMQ 其实一共有六种工作模式: 简单模式(Simple)、工作队列模式(Work Queue)、 发布订阅模式(Publish/Subscribe)、路由模式(Routing)、通配符模式(Topi…

高频SQL50题(基础版)-3

文章目录 主要内容一.SQL练习题1.1174-即时食物配送代码如下(示例): 2.550-游戏玩法分析代码如下(示例): 3.2356-每位教师所教授的科目种类的数量代码如下(示例): 4.1141-查询近30天活跃用户数代码如下&…

Python文件、文件夹操作汇总

目录 一、概览 二、文件操作 2.1 文件的打开、关闭 2.2 文件级操作 2.3 文件内容的操作 三、文件夹操作 四、常用技巧 五、常见使用场景 5.1 查找指定类型文件 5.2 查找指定名称的文件 5.3 查找指定名称的文件夹 5.4 指定路径查找包含指定内容的文件 一、概览 ​在…

照片放大软件 Topaz Gigapixel AI mac中文版简介

Topaz Gigapixel AI mac是一款使用人工智能功能扩展图像的桌面应用程序,同时添加自然细节以获得惊人的效果。使用深度学习技术,A.I.Gigapixel™可以放大图像并填写其他调整大小的产品遗漏的细节,使用A.I.Gigapixel™,您可以裁剪照…

LeetCode 面试题 16.20. T9键盘

文章目录 一、题目二、C# 题解 一、题目 在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射…

Xilinx FPGA平台DDR3设计详解(一):DDR SDRAM系统框架

DDR SDRAM(双倍速率同步动态随机存储器)是一种内存技术,它可以在时钟信号的上升沿和下降沿都传输数据,从而提高数据传输的速率。DDR SDRAM已经发展了多代,包括DDR、DDR2、DDR3、DDR4和DDR5,每一代都有不同的…

【Unity之UI编程】编写一个面板交互界面需要注意的细节

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

LeetCode146.LRU缓存

写了一个小时,终于把示例跑过了,没想到啊提交之后第19/22个测试用例没过 我把测试用例的输出复制在word上看看和我的有什么不同,没想到有18页的word,然后我一直检查终于找出了问题,而且这个bug真的太活该了&#xff0c…

YOLOv5算法进阶改进(1)— 改进数据增强方式 + 添加CBAM注意力机制

前言:Hello大家好,我是小哥谈。本节课设计了一种基于改进YOLOv5的目标检测算法。首先在数据增强方面使用Mosaic-9方法来对训练集进行数据增强,使得网络具有更好的泛化能力,从而更好适用于应用场景。而后,为了更进一步提升检测精度,在backbone中嵌入了CBAM注意力机制模块,…

javaEE案例,前后端交互,计算机和用户登录

加法计算机,前端的代码如下 : 浏览器访问的效果如图 : 后端的代码如下 再在浏览器进行输入点击相加,就能获得结果 开发中程序报错,如何定位问题 1.先定位前端还是后端(通过日志分析) 1)前端 : F12 看控制台 2)后端 : 接口,控制台日志 举个例子: 如果出现了错误,我们就在后端…