Algorithm Design and Analysis

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

年輕駕駛交通工具 考上駕照的 18 歲, 正好是高中畢業, 離家工作、上大學 的時候。 年輕人對新環境的 好奇及生疏,以及 尚未養成良好駕駛 習慣,造成意外的 產生。
有教無類 因材施教 適性揚才 多元進路 優質銜接
优化备课和讲课 的思考 黄恕伯
基础医学二级学科 竞争力评价研究 李春英 北京大学医学图书馆
窦娥冤 关汉卿 感天动地 元·关汉卿.
聚焦文化竞争力.
关于市场营销的分析 ——以九阳豆浆机为例 品牌经营——让每一个家庭都拥有一台九阳豆浆机 营销管理——采取文化、概念、网络等营销组合
34 府学胡同的文天祥祠,相传是南宋民族英雄文天祥当年遭囚禁和就义的地方,1376年明洪武九年建祠 。
概其要、析其理 ——议论文事实论据修改 昌平二中 王丽娟
统计基础知识 复习指导 (仅供参考) 2013年8月.
“悦”读,飞越 “考场” 心神飞越 温州中学 郑可菜.
知其不可而为之.
中国画家协会理事、安徽省美术家协会会员、 工艺美术师、黄山市邮协常务理事余承平主讲
“淡雅浓香 中国风尚” 山东低度浓香白酒整合传播侧记
第四章 运筹学模型 本章重点: 线性规划基础模型、目标规划模型、运输模型 及其应用、图论模型、最小树问题、最短路问题.
数据挖掘原理与SPSS Clementine应用宝典
规模(限额)以下法人单位普查表(BJ611表)能源部分
2.2.1 等比数列的概念和通项公式.
数列(一) 自强不息和谐发展 授课教师:喻永明.
高考文言文的整体阅读.
變異數的估計 自一個平均數為μ,標準差為σ的常態母體抽出一組隨機樣本X1,X2,…,Xn 樣本平均數 樣本變異數.
美学概论 主讲教师 孙建章 沈阳电大文法系.
第三次全国经济普查 ——611表 西城区统计局牛街统计所 2013年12月.
第十一章 真理与价值 主讲人:阎华荣.
2008年工资统计报表填报要求 及指标解释 人事教育局薪酬与社会保障处
汉字的构造.
诵读欣赏 古代诗词三首.
推行使用散装预拌砂浆 全面贯彻落实禁现政策
授课教师简历 刘付才,男,中学高级教师,亳州一中南校体 育教研组长,全国体育优质课一等奖获得者,华佗 五禽戏第五十八代传承人;长期从事五禽戏教学和 研究工作,参与创编了国家级课题“校园五禽戏”; 2014年全国学生运动会展示中获得优秀表演奖; 2015年指导的五禽戏传人进行的五禽戏教学获得全 国一等奖,编著的《华佗五禽戏之简易健身操》即.
洪涝灾害重点传染病的预防 江苏省疾病预防控制中心 汪华.
二综防火设计分析.
第八章 股票价格指数 王玉霞 证券投资学 东 北 财 经 大 学 第8章 股票价格指数.
青春足迹阅读- 男生贾里/哈利波特的分析 ——张桐需小组.
第七章 固 定 资 产.
小 桔 灯 市场赢利能力与战略 主讲:杨贤耀.
排序.
项目九 猪的一般饲养管理.
践行新时期广东精神 推进广东公路文化繁荣与发展 ——关于广东省公路文化建设与实践的思考
屏東縣105年度 友善校園事務與輔導工作- 國中適性輔導工作專業知能研習(初階課程) 桌遊在班級經營與學生輔導 之應用與連結
贴近教学 服务师生 方便老师.
六年级 语文 下册 第四单元 指尖的世界.
(浙教版)四年级品德与社会下册 共同生活的世界 第四单元 世界之窗 第二课时.
行政院國軍退除役官兵輔導委員會 嘉義榮民醫院.
体育选项课件 健美操理论课 任课教师:黄明礼 湄洲湾职业技术学院.
【敗犬的遠吠】讀書會 99/05/12 & 99/05/19 楊佳穎 諮商心理師.
第六章 计算智能 6.1 概述 6.2 神经计算 6.3 进化计算 6.4 模糊计算 6.5 粗糙集理论 6.6 其他.
依據: 99年12月9日 考試院送行政院之公教保險法修正草案
版权所有,引用请注明出处 第三章、运算方法与运算器 原著 谭志虎 主讲(改编) 蒋文斌.
第三章 信道及其容量.
第十四章 数理统计方法 §14.1 数理统计的基本概念 §14.2 参数的点估计 §14.3 区间估计 §14.4 回归分析 返回.
第3章 整数线性规划 3.1 整数规划问题举例 3.2 割平面法.
机电类 《自动检测技术及应用》 多媒体课件 (共13章,第一章) 统一书号:ISBN 课程配套网站 或 2012年7月版.
主讲人: 吕敏 } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 } Spring 2012 ,USTC.
第1章 熵和互信息量.
第一章 质点的运动 §1 质点 参考系 运动表式 一.质点 忽略物体形状和大小,保留其质量的物理点模型。 .二. 参照系 坐标系
第二章 插值.
翠 鸟 广东省东莞松山湖实验小学 张新元.
模糊聚类分析.
公立學校教職員退休資遣撫卹條例重點說明 苗栗縣政府人事處編製 主講人:陳處長坤榮 107年5月2日.
10066: The Twin Towers ★★★☆☆ 題組:Problem Set Archive with Online Judge
算法设计复习 内容提要: 算法设计思想回顾(递归和分治、动态规划、贪心算法、回溯法、分支限界法) 经典例子讲解 2019/4/9.
第1章 § 1.2 数列的极限 燕列雅 权豫西 王兰芳 李琪.
Xián 伯 牙 绝 弦 安徽淮南市八公山区第二小学 陈燕朵.
有理数的乘方(二).
第16章 典型相關分析 本章的學習主題  1. 典型相關的概念 2. 典型相關分析之基本假設及模型適合度 3. 典型權重和典型變量
比和比值 黃琮聖 林姿均.
幂的乘方.
数列求和 Taojizhi 2019/10/13.
算法基础习题课2 助教:刘倩玉.
Presentation transcript:

Algorithm Design and Analysis 计算机科学与技术专业课程 Algorithm Design and Analysis 算法设计与分析 宋传鸣 chmsong@lnnu.edu.cn 辽宁师范大学计算机与信息技术学院

最长公共子序列问题的描述 子序列的定义 公共子序列的定义 给定序列X={x1,x2,…,xn}和序列Z={z1,z2,…,zn},若存在一个严格递增的下标序列{i1,i2,…,ik},使得对于任意j=1,2,…,k,有zj=xij,则称Z是X的子序列 例:设X=“zxyxyz”, Z=“xyy”是X的子序列 公共子序列的定义 给定两个序列X和Y,若另一个序列Z既是X的子序列,又是Y的子序列,则称Z是X和Y的公共子序列 例:再设Y=“xyyzx”,Z=“xyy”和“xyyz”都是X和Y的公共子序列 最长公共子序列问题:给定序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的一个最长公共子序列 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的朴素解法 基本思想 时间复杂度分析 找出X序列的所有子序列,并验证其是否为Y的子序列.检查过程中记录长度最长的公共子序列 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的动态规划解法 最长公共子序列的最优子结构性质 两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列 设序列Xm={x1,x2,…,xm}和Yn={y1,y2,…,yn}的一个最长公共子序列为Z={z1,z2,…,zk},则有 如果xm=yn,那么zk=xm=yn,且Zk-1是Xm-1和Yn-1的最长公共子序列 如果xm≠yn,且zk≠xm,那么Zk是Xm-1和Yn的最长公共子序列 如果xm≠yn,且zk ≠ yn,那么Zk是Xm和Yn-1的最长公共子序列 两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的动态规划解法 建立最优解的递归结构 求最长公共子序列的递归过程 最优值的递归关系 如果xm=yn,那么只需找出Xm-1和Yn-1的最长公共子序列,然后再在其尾部加上xm 如果xm≠yn,那么分别求出Xm-1和Yn的最长公共子序列,以及Xm和Yn-1的最长公共子序列,然后从二者中取出较长者 最优值的递归关系 设c[i][j]表示序列Xi和Yj的最长公共子序列的长度,其中Xi={x1,x2,…,xi},Yj ={y1,y2,…,yj}, 则有 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的动态规划解法 计算最优值 由递归式写出递归解法,需耗费指数级时间 Xm序列仅包含m个前缀,Yn仅包含n个前缀,所以子问题的数目有 个 动态规划的求解方法:以自底向上的方式求解,以 c[i][j]存储Xi和Yj的最长公共子序列的长度,b[i][j]记录c[i][j]的值是由哪一个子问题的解得到的 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的动态规划解法 动态规划算法的步骤 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长公共子序列的动态规划解法 计算复杂度分析 关于空间复杂度的改进 算法中包含一个二重循环和两个二维数组 T(n)=O(mn) S(n)=O(n2) 关于空间复杂度的改进 去掉数组b 每次只保存c的两行 S(n)=O(min{n,m}) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的描述 背景举例 操作系统要处理n个请求,并且只能在0~W时间内提供服务,每个请求进程需wi时间处理.如何调度这些进程使得W时间内CPU尽可能地忙碌 形式化描述:给定n项{1,2,…,n},每项具有一个非负权值wi (i=1,2,…,n),以及一个界W,要求从n项中选出若干项组成集合S,且: 问题描述 给定n个整数(可能为负数)组成的序列a1,a2,…,an,求该序列形如 的子段和的最大值 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的朴素解法 基本思想 算法步骤 时间复杂度分析 尝试各种可能,即在任意位置开始,计算任意长度的子段和 算法包含两重循环,T(n)=O(n2) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的分治解法 基本思想 将所给的序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出两段的最大子段和 原序列的最大子段和有三种情形 等于a[1:n/2]的最大子段和 等于a[n/2+1:n]的最大子段和 等于 ,且 子问题的合并:以a[1:n/2]最后一个元素为终点的最大子段和与以[n/2+1:n]第一个元素为起始点的最大子段和的和 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的分治解法 算法步骤 计算复杂度分析 两个一重循环和两次规模为n/2的递归求解 T(n)=O(nlog2n) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的动态规划解法 最大子段和的最优子结构性质 建立最优解的递归结构 最大子段和的定义为: 令 ,则有 又 , 此时有 令 ,则有 又 , 此时有 若b[j-1]<0,则b[j]=a[j]+b[j-1]<a[j],即b[j]=a[j] 若b[j-1]>0,则b[j]>a[j],即b[j]=a[j]+b[j-1] 若b[j-1]=0,则b[j]=a[j] 建立最优解的递归结构 b[j]=max{b[j-1]+a[j],a[j]} (i≤j≤n) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

最长子段和问题的动态规划解法 算法步骤 计算复杂度分析 包含一重循环 T(n)=O(n), S(n)=O(n) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

0-1背包问题的描述 背景举例 操作系统要处理n个请求,并且只能在0~W时间内提供服务,每个请求进程需wi时间处理.如何调度这些进程使得W时间内CPU尽可能地忙碌 形式化描述:给定n项{1,2,…,n},每项具有一个非负权值wi (i=1,2,…,n),以及一个界W,要求从n项中选出若干项组成集合S,且: 矩阵连乘 最长公共子序列 最大子段和 0-1背包

0-1背包问题的描述 问题描述 给定n种物品和一个背包.物品i的重量是wi,其价值为vi,背包的容量为c.选择装入背包中的物品,使得装入背包中物品的总价值最大.注意:每种物品只有装入背包或不装入背包两种可能,故称“0-1背包” 形式化描述 给定c>0,wi>0,vi>0,1≤i≤n,要求找出n元0-1向量 (x1,x2,…,xn), xi∈{0,1},使得 ,且 达到最大,即 矩阵连乘 最长公共子序列 最大子段和 0-1背包

0-1背包问题的朴素解法 基本思想 时间复杂度分析 尝试各种可能的取法 共有2n种可能的取法 T(n)=O(2n) 矩阵连乘 最长公共子序列 最大子段和 0-1背包

0-1背包问题的动态规划解法 0-1背包问题的最优子结构性质 建立最优解的递归结构 若(y1,y2,…,yn)是0-1背包问题的一个最优解,则(y2, y3,…,yn)是下述问题的一个最优解 建立最优解的递归结构 设m(i,j)表示背包容量为j,可选择物品i,i+1,…,n时 0-1背包问题的最优值,则有 矩阵连乘 最长公共子序列 最大子段和 0-1背包 (边界条件)

0-1背包问题的动态规划解法 动态规划算法的步骤 矩阵连乘 最长公共子序列 最大子段和 0-1背包

0-1背包问题的动态规划解法 示例:假如有容量为9的背包,要装入4种重量为2,3,4和5的物品,它们的价值分别为3,4,5和7.求解该0-1背包问题 时间复杂性分析 计算量集中在二重循环, T(n)=O(cn) 矩阵连乘 最长公共子序列 最大子段和 0-1背包 j=0 1 2 3 4 5 6 7 8 9 i=1 i=2 i=3 i=4 12 4 5 7 9 11

本章回顾 动态规划算法的主要思想 动态规划算法的要素 动态规划算法与分治、备忘录算法的异同 用动态规划算法求解的几个典型问题 矩阵连乘 最长公共子序列 最大字段和 0-1背包 要求掌握用动态规划算法求解问题的原理、主要步骤,掌握典型问题的最优子结构性质的证明方法 矩阵连乘 最长公共子序列 最大子段和 0-1背包