8 -1 Chapter 8 Dynamic Programming. 8 -2 Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if.

Slides:



Advertisements
Similar presentations
Chapter 11 Inferences About Population Variances
Advertisements

第十二章 常微分方程 返回. 一、主要内容 基本概念 一阶方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程.
概率统计( ZYH ) 节目录 2.1 随机变量与分布函数 2.2 离散型随机变量的概率分布 2.3 连续型随机变量的概率分布 第二章 随机变量及其分布.
概率统计( ZYH ) 节目录 3.1 二维随机变量的概率分布 3.2 边缘分布 3.4 随机变量的独立性 第三章 随机向量及其分布 3.3 条件分布.
Chapter 7 Dynamic Programming.
数据挖掘实验 1 Apriori 算法编程实现. 数据挖掘实验一 (20’) 实验目的:了解关联规则在数据挖掘中的 应用,理解和掌握关联挖掘的经典算法 Apriori 算法的基本原理和执行过程并完成程 序设计。 实验内容:对给定数据集用 Apriori 算法进行 挖掘,找出其中的频繁集并生成关联规则。
Game Theory 窦衍旭. 什么是博弈论 博弈论,经济学中很著名的理论, 就是在 信息不对称的情况下根据对手可能作出的 决策作出决策,通俗地说,如果我这样做, 那么对手会怎样做,而对手基于我的做法 作出决策,我又该怎么做来应对。
位置相关查询处理 研究背景及意义 移动计算、无线通信以及定位技术的快速发展,使 得位置相关的查询处理及基于位置的信息服务技术 已经成为一个热点研究领域 。 大量的应用领域 ( 如地理信息系统、智能导航、交 通管制、天气预报、军事、移动电子商务等 ) 均迫 切需要有效地查询这些数据对象。
细分曲面 傅孝明 SA 目录 细分曲面的基本思想 两个关键问题 一些基本概念 几种简单的细分曲面算法 细分曲面方法分类.
Chapter 7 Dynamic Programming 7.
§ 8 Dynamic Programming Fibonacci sequence
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第六十二讲 ) 离散数学. 最后,我们构造能识别 A 的 Kleene 闭包 A* 的自动机 M A* =(S A* , I , f A* , s A* , F A* ) , 令 S A* 包括所有的 S A 的状态以及一个 附加的状态 s.
1 为了更好的揭示随机现象的规律性并 利用数学工具描述其规律, 有必要引入随 机变量来描述随机试验的不同结果 例 电话总机某段时间内接到的电话次数, 可用一个变量 X 来描述 例 检测一件产品可能出现的两个结果, 也可以用一个变量来描述 第五章 随机变量及其分布函数.
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 3 章 曲线拟合的最小二乘法 给出一组离散点,确定一个函数逼近原函数,插值是这样 的一种手段。在实际中,数据不可避免的会有误差,插值函 数会将这些误差也包括在内。
例9:例9: 第 n-1 行( -1 )倍加到第 n 行上,第( n-2 ) 行( -1 )倍加到第 n-1 行上,以此类推, 直到第 1 行( -1 )倍加到第 2 行上。
主讲教师:陈殿友 总课时: 124 第八讲 函数的极限. 第一章 机动 目录 上页 下页 返回 结束 § 3 函数的极限 在上一节我们学习数列的极限,数列 {x n } 可看作自变量 为 n 的函数: x n =f(n),n ∈ N +, 所以,数列 {x n } 的极限为 a, 就是 当自变量 n.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第三十八讲 ) 离散数学. 第八章 格与布尔代数 §8.1 引 言 在第一章中我们介绍了关于集 合的理论。如果将 ρ ( S )看做 是集合 S 的所有子集组成的集合, 于是, ρ ( S )中两个集合的并 集 A ∪ B ,两个集合的交集.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第四十八讲 ) 离散数学. 例 设 S 是一个非空集合, ρ ( s )是 S 的幂集合。 不难证明 :(ρ(S),∩, ∪,ˉ, ,S) 是一个布尔代数。 其中: A∩B 表示 A , B 的交集; A ∪ B 表示 A ,
线性代数习题课 吉林大学 术洪亮 第一讲 行 列 式 前面我们已经学习了关 于行列式的概念和一些基本 理论,其主要内容可概括为:
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第二十五讲 ) 离散数学. 定理 群定义中的条件 ( 1 )和( 2 )可以减弱如下: ( 1 ) ’ G 中有一个元素左壹适合 1 · a=a; ( 2 ) ’ 对于任意 a ,有一个元素左逆 a -1 适 合 a -1 ·
第二章 随机变量及其分布 第一节 随机变量及其分布函数 一、随机变量 用数量来表示试验的基本事件 定义 1 设试验 的基本空间为 , ,如果对试验 的每一个基 本事件 ,规定一个实数记作 与之对应,这样就得到一个定义在基本空 间 上的一个单值实函数 ,称变量 为随机变量. 随机变量常用字母 、 、 等表示.或用.
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 3 章 曲线拟合的最小二乘法 给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。 在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第三十九讲 ) 离散数学. 例 设 S 是一个集合, ρ ( S )是 S 的幂集合,集合 的交( ∩ ),并(∪)是 ρ ( S )上的两个代数运算, 于是,( ρ ( S ), ∩ ,∪) 是一个格。而由例 知.
7 -1 Chapter 7 Dynamic Programming Fibonacci Sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第四十五讲 ) 离散数学 模 格 定义 设( L , ≤ ) 是一个格,对任意 a , b , c ∈ L , 如果 a≤b ,都有 a  ( b×c ) = b× ( a  c ) 则称( L , ≤ )为模格。
7 -1 Chapter 7 Dynamic Programming Fibonacci sequence (1) 0,1,1,2,3,5,8,13,21,34,... Leonardo Fibonacci ( ) 用來計算兔子的數量 每對每個月可以生產一對 兔子出生後,
非均相物系的分离 沉降速度 球形颗粒的 :一、自由沉降 二、沉降速度的计算 三、直径计算 1. 试差法 2. 摩擦数群法 四、非球形颗粒的自由沉降 1. 当量直径 de :与颗粒体积相等的圆球直径 V P — 颗粒的实际体积 2. 球形度  s : S—— 与颗粒实际体积相等的球形表面积.
量子化学 第四章 角动量与自旋 (Angular momentum and spin) 4.1 动量算符 4.2 角动量阶梯算符方法
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 5 章 解线性方程组的直接法 实际中,存在大量的解线性方程组的问题。很多数值方 法到最后也会涉及到线性方程组的求解问题:如样条插值的 M 和.
主讲教师:陈殿友 总课时: 124 第十一讲 极限的运算法则. 第一章 二、 极限的四则运算法则 三、 复合函数的极限运算法则 一 、无穷小运算法则 机动 目录 上页 下页 返回 结束 §5 极限运算法则.
在发明中学习 线性代数 概念的引入 李尚志 中国科学技术大学. 随风潜入夜 : 知识的引入 之一、线性方程组的解法 加减消去法  方程的线性组合  原方程组的解是新方程的解 是否有 “ 增根 ” ?  互为线性组合 : 等价变形  初等变换  高斯消去法.
Chapter 4 OPTIMIZED IMPLEMENTATION OF LOGIC FUNCTIONS 优化.
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 7 章 矩阵的特征值和特征向量 很多工程计算中,会遇到特征值和特征向量的计算,如: 机械、结构或电磁振动中的固有值问题;物理学中的各种临界 值等。这些特征值的计算往往意义重大。
Optimal binary search trees
9的乘法口诀 1 .把口诀说完全。 二八( ) 四六( ) 五八( ) 六八( ) 三七( ) 三八( ) 六七( ) 五七( ) 五六( ) 十六 四十八 四十二 二十四 二十一 三十五 四十 二十四 三十 2 .口算, 并说出用的是哪句口诀。 8×8= 4×6= 7×5= 6×8= 5×8=
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第五十三讲 ) 离散数学. 定义 设 G= ( V , T , S , P ) 是一个语法结构,由 G 产生的语言 (或者说 G 的语言)是由初始状态 S 演绎出来的所有终止符的集合, 记为 L ( G ) ={w  T *
平行线的平行公理与判定 九年制义务教育七年级几何 制作者:赵宁睿. 平行线的平行公理与判定 要点回顾 课堂练习 例题解析 课业小结 平行公理 平行判定.
第二十四讲 相位延时系统 相位超前系统 全通系统. 一、最小与最大相位延时系统、最小 与最大相位超前系统 LSI 系统的系统函数: 频率响应:
§8-3 电 场 强 度 一、电场 近代物理证明:电场是一种物质。它具有能量、 动量、质量。 电荷 电场 电荷 电场对外的表现 : 1) 电场中的电荷要受到电场力的作用 ; 2) 电场力可移动电荷作功.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
习题课( 1 ) 进程管理及调度. 复习 进程概念、描述及状态 进程概念、描述及状态 进程的同步与互斥及应用 进程的同步与互斥及应用 管程机制 管程机制 进程通信 进程通信 进程调度算法 进程调度算法 进程死锁 进程死锁 线程 线程.
网上预约集港操作指南 一、登录系统 登陆下面图片显示网址:输入堆场用户名、密码和校验码登陆系统.
同学们,这些纸做的彩球漂亮吗? 探究与学习 做彩球除了纸以外, 还需要哪些材料和 工具? 上面几个图中, 用了哪些技法? 用一张或几张彩色纸,经 过折、剪、切、卷、粘等 工序,可以做成各种造型 别致、美观大方的彩球 。
本 的 质 基 性 比 上海市傅雷中学 樊丽华 (1). 分数的基本性质 : 分数的分子和分母同时乘以或 除以相同的数( 0 除外), 分数的大小不变. 填空:
7 -1 Chapter 7 Dynamic Programming Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if.
7 -1 Chapter 7 Dynamic Programming Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if.
8 -1 Dynamic Programming Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if i  2 Solved.
1 、如果 x + 5 > 4 ,那么两边都 可得 x >- 1 2 、在- 3y >- 4 的两边都乘以 7 可得 3 、在不等式 — x≤5 的两边都乘以- 1 可得 4 、将- 7x — 6 < 8 移项可得 。 5 、将 5 + a >- 2 a 移项可得 。 6 、将- 8x < 0.
? 小数乘整数 制作人:吴运粮 复习 1.下面乘积得多少? 8 × 3= 8 × 3用加法表示什么意思? 3个8相加 24.
第一节 物质的量. 聚小成大,聚微成宏 想想看: 你如何用托盘天平称出一粒米的质 量(假设每粒大米的质量一样大 )
名探柯南在侦查一个特大盗窃集团过程 中,获得藏有宝物的密码箱,密码究竟 是什么呢?请看信息: ABCDEF( 每个字 母表示一个数字 ) A :是所有自然数的因数 B :既有因数 5 ,又是 5 的倍数 C :既是偶数又是质数 D :既是奇数又是合数 EF :是 2 、 3 、 5 的最小公倍数.
项目七: PLC 功能指令应用 带进位循环左移指令 XXXXX. 项目七: PLC 功能指令应用 FX2 系列可编程控制器移位控制指令有移位、循环移位、字移位 及先进先出 FIFO 指令等 10 条指令。 带进位循环右移指令 RCR 带进位循环左移指令 RCL 字右移位指令 WSFR 先入先出读出指令.
1 物体转动惯量的测量 南昌大学理学院
§10.2 对偶空间 一、对偶空间与对偶基 二、对偶空间的有关结果 三、例题讲析.
请同学们仔细观察下列两幅图有什么共同特点? 如果两个图形不仅形状相同,而且每组对应点所在的直线 都经过同一点, 那么这样的两个图形叫做位似图形, 这个点叫做位 似中心.
表单自定义 “ 表单自定义 ” 功能是用于制作表单的 工具,用数飞 OA 提供的表单自定义 功能能够快速制作出内容丰富、格 式规范、美观的表单。
力的合成 力的合成 一、力的合成 二、力的平行四边形 上一页下一页 目 录 退 出. 一、力的合成 O. O. 1. 合力与分力 我们常常用 一个力来代替几个力。如果这个 力单独作用在物体上的效果与原 来几个力共同作用在物体上的效 果完全一样,那么,这一个力就 叫做那几个力的合力,而那几个 力就是这个力的分力。
8.1 二元一次方程组. 篮球联赛中,每场比赛都要分出胜负,每队 胜一场得 2 分,负一场得 1 分. 如果某队为了争取 较好名次,想在全部 22 场比赛中得 40 分,那么这 个队胜负场数应分别是多少 ? 引 言引 言 用学过的一元一次方 程能解决此问题吗? 这可是两个 未知数呀?
数学广角——优化 沏茶问题.
向日葵的花盘 画一画 用圆规画圆用圆规画圆 用圆规画圆用圆规画圆 用圆规画圆的方法: ( 1 )把圆规的两脚分开,定好两脚间 的距离(定长) ( 2 )把有针尖的一只脚固定在一点上 (定点) ( 3 )把装有铅笔尖的一只脚旋转一周 ,就画出一个圆(旋转)
◆ ▲ ★ ★ ▲ ◆ ●★ ▲ ◆ ●★ ▲ ◆ ●★ ▲ ◆ ● ▲ ◆▲ ◆▲ ◆▲ ◆▲ ◆▲ ◆ ▲ ● ◆ ★ ★ ▲ ◆ ★● ◆ ★ ★ ▲ ◆ ★ 猜一猜下一个图形是什么.
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
第五章 特征值与特征向量 —— 幂法 /* Power Method */ 计算矩阵的主特征根及对应的特征向量 Wait a second, what does that dominant eigenvalue mean? That is the eigenvalue with the largest.
人 有 悲 欢 离 合, 月有阴晴圆缺。月有阴晴圆缺。 华师大版七年级数学第二册 海口市第十中学 数学组 吴锐.
8 -1 Dynamic Programming Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if i  2 Solved.
§5.6 利用希尔伯特 (Hilbert) 变换 研究系统的约束特性 希尔伯特变换的引入 可实现系统的网络函数与希尔伯特变换.
1 第三章 数列 数列的概念 考点 搜索 ●数列的概念 ●数列通项公式的求解方法 ●用函数的观点理解数列 高考 猜想 以递推数列、新情境下的 数列为载体, 重点考查数列的通 项及性质, 是近年来高考的热点, 也是考题难点之所在.
§9. 恒定电流场 第一章 静电场 恒定电流场. 电流强度  电流:电荷的定向移动  正负电荷反方向运动产生的电磁效应相同 ( 霍尔效应 特例 ) 规定正电荷流动的方向为正方向  电流方向:正方向、反方向  电流强度 ( 电流 ) A 安培 标量 单位时间通过某一截面的电荷.
§7.2 估计量的评价标准 上一节我们看到,对于总体 X 的同一个 未知参数,由于采用的估计方法不同,可 能会产生多个不同的估计量.这就提出一 个问题,当总体的一个参数存在不同的估 计量时,究竟采用哪一个好呢?或者说怎 样评价一个估计量的统计性能呢?下面给 出几个常用的评价准则. 一.无偏性.
Advanced Analysis of Algorithms
Presentation transcript:

8 -1 Chapter 8 Dynamic Programming

8 -2 Fibonacci sequence Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … F i = i if i  1 F i = F i-1 + F i-2 if i  2 Solved by a recursive program: Much replicated computation is done. It should be solved by a simple loop.

8 -3 Dynamic Programming Dynamic Programming is an algorithm design method that can be used when the solution to a problem may be viewed as the result of a sequence of decisions

8 -4 The shortest path To find a shortest path in a multi-stage graph Apply the greedy method : the shortest path from S to T : = 8

8 -5 The shortest path in multistage graphs e.g. The greedy method can not be applied to this case: (S, A, D, T) = 23. The real shortest path is: (S, C, F, T) = 9.

8 -6 Dynamic programming approach Dynamic programming approach (forward approach): d(S, T) = min{1+d(A, T), 2+d(B, T), 5+d(C, T)} d(A,T) = min{4+d(D,T), 11+d(E,T)} = min{4+18, 11+13} = 22.

8 -7 Dynamic programming d(B, T) = min{9+d(D, T), 5+d(E, T), 16+d(F, T)} = min{9+18, 5+13, 16+2} = 18. d(C, T) = min{ 2+d(F, T) } = 2+2 = 4 d(S, T) = min{1+d(A, T), 2+d(B, T), 5+d(C, T)} = min{1+22, 2+18, 5+4} = 9. The above way of reasoning is called backward reasoning.

8 -8 Backward approach (forward reasoning) d(S, A) = 1 d(S, B) = 2 d(S, C) = 5 d(S,D)=min{d(S, A)+d(A, D),d(S, B)+d(B, D)} = min{ 1+4, 2+9 } = 5 d(S,E)=min{d(S, A)+d(A, E),d(S, B)+d(B, E)} = min{ 1+11, 2+5 } = 7 d(S,F)=min{d(S, A)+d(A, F),d(S, B)+d(B, F)} = min{ 2+16, 5+2 } = 7

8 -9 d(S,T) = min{d(S, D)+d(D, T),d(S,E)+ d(E,T), d(S, F)+d(F, T)} = min{ 5+18, 7+13, 7+2 } = 9

8 -10 Principle of optimality Principle of optimality: Suppose that in solving a problem, we have to make a sequence of decisions D 1, D 2, …, D n. If this sequence is optimal, then the last k decisions, 1  k  n must be optimal. e.g. the shortest path problem If i, i 1, i 2, …, j is a shortest path from i to j, then i 1, i 2, …, j must be a shortest path from i 1 to j In summary, if a problem can be described by a multistage graph, then it can be solved by dynamic programming.

8 -11 Forward approach and backward approach: Note that if the recurrence relations are formulated using the forward approach then the relations are solved backwards. i.e., beginning with the last decision On the other hand if the relations are formulated using the backward approach, they are solved forwards. To solve a problem by using dynamic programming: Find out the recurrence relations. Represent the problem by a multistage graph. Dynamic programming

8 -12 The resource allocation problem m resources, n projects profit p(i, j) : j resources are allocated to project i. maximize the total profit.

8 -13 The multistage graph solution The resource allocation problem can be described as a multistage graph. (i, j) : i resources allocated to projects 1, 2, …, j e.g. node H=(3, 2) : 3 resources allocated to projects 1, 2.

8 -14 Find the longest path from S to T : (S, C, H, L, T), =13 2 resources allocated to project 1. 1 resource allocated to project 2. 0 resource allocated to projects 3, 4.

8 -15 The traveling salesperson (TSP) problem e.g. a directed graph : Cost matrix:

8 -16 A multistage graph can describe all possible tours of a directed graph. Find the shortest path: (1, 4, 3, 2, 1) =17 The multistage graph solution

8 -17 The representation of a node Suppose that we have 6 vertices in the graph. We can combine {1, 2, 3, 4} and {1, 3, 2, 4} into one node. (3),(4,5,6) means that the last vertex visited is 3 and the remaining vertices to be visited are (4, 5, 6).

8 -18 The dynamic programming approach Let g(i, S) be the length of a shortest path starting at vertex i, going through all vertices in S and terminating at vertex 1. The length of an optimal tour : The general form: Time complexity: ( ),( ) (n-k)  (n-1)

8 -19 The longest common subsequence (LCS) problem A string : A = b a c a d A subsequence of A: deleting 0 or more symbols from A (not necessarily consecutive). e.g. ad, ac, bac, acad, bacad, bcd. Common subsequences of A = b a c a d and B = a c c b a d c b : ad, ac, bac, acad. The longest common subsequence (LCS) of A and B: a c a d.

8 -20 The LCS algorithm Let A = a 1 a 2  a m and B = b 1 b 2  b n Let L i,j denote the length of the longest common subsequence of a 1 a 2  a i and b 1 b 2  b j. L i,j = L i-1,j if a i =b j max{ L i-1,j, L i,j-1 } if a i  b j L 0,0 = L 0,j = L i,0 = 0 for 1  i  m, 1  j  n.

8 -21 The dynamic programming approach for solving the LCS problem: Time complexity: O(mn)

8 -22 Tracing back in the LCS algorithm e.g. A = b a c a d, B = a c c b a d c b After all L i,j ’ s have been found, we can trace back to find the longest common subsequence of A and B.

课堂练习 设有 n 种不同面值的硬币,各硬币的面值 存在于数足 T[n] 中。现要用这些面值的 硬币来找钱。可以使用的各种面值的硬 币个数存于数组 Coins[n] 中。对任意钱数 0<=m<=2010 ,设计一个用最少硬币找 钱 m 的方法。 8 -23

Description 在 Mars 星球上,每个 Mars 人都随身佩带着一串 能量项链。在项链上有 N 颗能量珠。能量珠是一 颗有头标记与尾标记的珠子,这些标记对应着 某个正整数。并 且,对于相邻的两颗珠子,前 一颗珠子的尾标记一定等于后一颗珠子的头标 记。因为只有这样,通过吸盘(吸盘是 Mars 人 吸收能量的一种器官)的作用,这两颗 珠子才 能聚合成一颗珠子,同时释放出可以被吸盘吸 收的能量。如果前一颗能量珠的头标记为 8 -24

尾标记为 r ,后一颗能量珠的头标记为 r ,尾标记 为 n ,则聚合后 释放的能量为 m*r*n ( Mars 单位 ),新产生的珠子的头标记为 m ,尾标记为 n 。 需要时, Mars 人就用吸盘夹住相邻的两颗珠 子,通过聚合得到能量,直到项链上只剩下一颗 珠子为止。显然,不同的聚合顺序得到的总能量 是不同的,请你设计一个聚合顺序,使一串项链 释放出的总能量最大。 例如:设 N=4 , 4 颗珠子的头标记与尾标记依 次为 (2 , 3) (3 , 5) (5 , 10) 8 -25

(10 , 2) 。我们用记号⊕表示两颗珠子的聚合操 作, (j ⊕ k) 表示第 j , k 两颗珠子聚合后所释放的 能量。则第 4 、 1 两颗珠子聚合后释放的能量为: (4 ⊕ 1)=10*2*3=60 。 这一串项链可以得到最优值的一个聚合顺序所释 放的总能量为 ((4 ⊕ 1) ⊕ 2) ⊕ 3 ) =10*2*3+10*3*5+10*5*10=710 。 Input 输入的第一行是一个正整数 N ( 4≤N≤100 ),表 示项链上珠子的个数。第二行是 N 个用空格隔开 的正整数,所有的数均不超过 1000 。第 i 个数为 第 i 颗珠子的头标 8 -26

/1 knapsack problem n objects, weight W 1, W 2, ,W n profit P 1, P 2, ,P n capacity M maximize subject to  M x i = 0 or 1, 1  i  n e. g.

8 -28 The multistage graph solution The 0/1 knapsack problem can be described by a multistage graph.

8 -29 The dynamic programming approach The longest path represents the optimal solution: x 1 =0, x 2 =1, x 3 =1 = = 50 Let f i (Q) be the value of an optimal solution to objects 1,2,3, …,i with capacity Q. f i (Q) = max{ f i-1 (Q), f i-1 (Q-W i )+P i } The optimal solution is f n (M).

8 -30 Optimal binary search trees e.g. binary search trees for 3, 7, 9, 12;

8 -31 Optimal binary search trees n identifiers : a 1 <a 2 <a 3 < … < a n P i, 1  i  n : the probability that a i is searched. Q i, 0  i  n : the probability that x is searched where a i < x < a i+1 (a 0 =- , a n+1 =  ).

8 -32 Identifiers : 4, 5, 8, 10, 11, 12, 14 Internal node : successful search, P i External node : unsuccessful search, Q i The expected cost of a binary tree: The level of the root : 1

8 -33 The dynamic programming approach Let C(i, j) denote the cost of an optimal binary search tree containing a i, …,a j. The cost of the optimal binary search tree with a k as its root :

8 -34 General formula

8 -35 Computation relationships of subtrees e.g. n=4 Time complexity : O(n 3 ) when j-i=m, there are (n-m) C(i, j) ’ s to compute. Each C(i, j) with j-i=m can be computed in O(m) time.

8 -36 Matrix-chain multiplication n matrices A 1, A 2, …, A n with size p 0  p 1, p 1  p 2, p 2  p 3, …, p n-1  p n To determine the multiplication order such that # of scalar multiplications is minimized. To compute A i  A i+1, we need p i-1 p i p i+1 scalar multiplications. e.g. n=4, A 1 : 3  5, A 2 : 5  4, A 3 : 4  2, A 4 : 2  5 ((A 1  A 2 )  A 3 )  A 4, # of scalar multiplications: 3 * 5 * * 4 * * 2 * 5 = 114 (A 1  (A 2  A 3 ))  A 4, # of scalar multiplications: 3 * 5 * * 4 * * 2 * 5 = 100 (A 1  A 2 )  (A 3  A 4 ), # of scalar multiplications: 3 * 5 * * 4 * * 2 * 5 = 160

8 -37 Let m(i, j) denote the minimum cost for computing A i  A i+1  …  A j Computation sequence : Time complexity : O(n 3 )