计算机问题求解 – 论题3-2 - 贪心算法 2018年09月18日.

Slides:



Advertisements
Similar presentations
九族文化村兩天一夜遊 組員 : 傅淳鈺 9A0E0019 黃湘蓉 4A 陳誌龍 9A0K0026 潘韋舜 9A0B0951 何奇龍 4A
Advertisements

全国普通高等院校招生统一 考试考务培训. 考 试 时 间 全国统考科目时间表 考试日期上 午下 午 6 月 7 日 星期日 语文( 9:00-11:30 )数学( 15:00-17:00 ) 6 月 8 日 星期一 文课综合 / 理科综合 ( 9:00-11:30 ) 英语( 15:00-16:40.
不知者無罪嗎 ? 【本報台北訊】國內知名大學胡姓研究 生進口豬籠草在網路上販售,涉嫌違反 植物防疫檢疫法,胡姓研究生表示不知 道豬籠草是違禁品並當場認錯道歉 台北地檢署檢察官念他初犯,昨 天處分緩起訴,但命他繳交六萬 元緩起訴處分金作公益。 豬籠草有潛移性線蟲寄生,一旦植物感 染後,輕則枯萎凋零,重則危害農業經.
台生vs.陸生— 生涯競爭力面面觀 主講人:吳正興
報告書名:父母會傷人 班級:二技幼四甲 姓名:吳婉如 學號:1A2I0034 指導老師:高家斌
情緒管理與壓力調適 連廷嘉.
这是一个数字的 乐园 这里埋藏着丰富的 宝藏 请跟我一起走进数学的 殿堂.
路加福音講道系列 作主的門徒 路加福音中看耶穌的門徒訓練.
Introduction to Computer Science
行政法 之 行政救济篇.
新材料作文.
-CHINESE TIME (中文时间): Free Response idea: 你周末做了什么?
媽,我們真的不一樣 青少年期與中年期 老師: 趙品淳老師 組員: 胡珮玟4A1I0006 馬菀謙4A1I0040
一、平面点集 定义: x、y ---自变量,u ---因变量. 点集 E ---定义域, --- 值域.
小论文的选题技巧与写作要领.
学风建设- 班级-我 ERP 班.
挖掘市场预期分布 建立有效投资策略 权证市场2006年中期投资策略
请说出牛顿第一定律的内容。.
数学既不严峻,也不遥远, 它既和几乎所有的人类活动 有关,又对每个真心感兴趣的 人有益. R.C.Buck.
掌握未來,實現夢想 I can, and so can U!
通用技术II General Technology II
2016届高三期初调研 分析 徐国民
班級:二幼三甲 姓名:郭小瑄 、 詹淑評 學號:1A2I0029 、1A2I0025
第八課 蓼莪.
初中语文总复习 说明文 阅读专题 西安市第六十七中学 潘敏.
管理学基本知识.
诸葛亮广场.
指導老師:陳韻如 姓名:吳宜珊 學號:4A0I0911 班級:幼保二乙
导 论.
滁州学院首届微课程教学设计竞赛 课程名称:高等数学 主讲人:胡贝贝 数学与金融学院.
和大樹做朋友 一起去探索兒童公園的動植物生態吧! 財源老師技術指導、詩韻老師整理製作.
1.1.2 四 种 命 题.
欢迎再次走进 思想政治的课堂.
傳統童玩遊戲創新 組別:第八組 班級:幼保二甲 組員: 4A0I0005柯舒涵 4A0I0011謝孟真
第三节 细胞外被与细胞外基质 1、胶原 细胞外被(糖萼)指细胞外覆盖的一层粘多糖(糖蛋白或糖脂)
第六课 我们的 中华文化.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
走自立自强之路 自己的事情自己做.
人類的循環系統.
拾貳、 教育行政 一、教育行政的意義 教育行政,可視為國家對教育事務的管理 ,以增進教育效果。 教育行政,乃是一利用有限資源在教育參
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
92-90數學課程綱要比較 -- 不含數與計算 台北市立師範學院 數學資訊教育系副教授 李源順.
課程銜接 九年一貫暫行綱要( )  九年一貫課程綱要( ) 國立台南大學數學教育系 謝 堅.
第八章二元一次方程组 8.3实际问题与二元一次方程组.
第八章二元一次方程组 8.3实际问题与二元一次方程组 (第3课时).
2.4 二元一次方程组的应用(1).
霸气车辆.
CH1 Number Systems and Conversion
Chapter 4 歸納(Induction)與遞迴(Recursion)
The Greedy Method.
演算法方式總覽 The Divide-and-Conquer Strategy (個各擊破)(binary Searching、Quick Sort…. ) The Greedy Method(貪婪演算法) (Prim MST、Kruskal MST、Djikstra's algorithm) Dynamic.
Simulated Annealing 報告者:李怡緯 OPLAB in NTUIM.
Greedy Algorithm.
XBRL未來發展趨勢 2009年12月 For information on applying this template onto existing presentations, refer to the notes on slide 3 of this presentation. The Input.
计算机问题求解 – 论题2-14 -B树 2018年6月10日.
How to get there? Day 1.
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
105-1 Data Structure Exam /12/27.
(Dynamic programming)
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
10465: Homer Simpson ★★★☆☆ 題組:Problem Set Archive with Online Judge
2011年教學觀摩會 教學心得報告 共同學科軍訓室馬毓君 2011年4月28日.
计算机问题求解 – 论题 算法方法 2016年11月28日.
講師:郭育倫 第12章貪婪演算法 講師:郭育倫 演算法導論,探矽工作室.
Remember the five simple rules to be happy 快樂的五個簡單常規
最短通路问题.
第二章 古典贸易理论.
介入及追蹤紀錄表 編號: 姓/稱謂: 初次103年 月 日 追蹤 月 日 問題型態 (可複選) □ 1. 覺得西藥都很傷胃
Dynamic Programming II
用加減消去法解一元二次聯立方程式 台北縣立中山國中 第二團隊.
Presentation transcript:

计算机问题求解 – 论题3-2 - 贪心算法 2018年09月18日

问题1: 你还记得什么是“Optimal Substructure”吗? 该结构特 性对求解最优解问题有什么启 发? 最优子结构性质:最优解包含的子问题的解也一定是最优的; 最优子结构性质,能够保证我们这么一点:最优解必定是某些子问题的最优解的组合,因此,找出所有子问题的最优解,一定能够得到最优解。

Activity Selection Problem 贪心:无需求出所有子问题的最优解。 一个样本输入:

问题2: Activity Selection问题是否具 有“最优子结构”,为什么? 具象思考:任取一种最优解,假设包含活动ak,那么a1到ak的子问题以及ak+1到an的子问题的解,一定是最优的; 再抽象思考(可以借鉴矩阵连乘):将问题归结为求ai到aj的最优解,可以得到下一页的递归公式

Sij表示开始时间不早于活动ai的结束时间,而结束时间早于aj的结束时间的所有活动的集合。 假设我们知道其中包含活动ak。 Sij中最多相互兼容的活动数

问题3: 是否有可能不必解所 有的子问题? 动态规划解法 在上述递归关系中,ak可以是Sij中任一活动,每选定一个特定的ak, 则确定特定的子问题。动态规划方法按照合适的次序解所有的子问题。 问题3: 是否有可能不必解所 有的子问题? 如果我们每次都能很确定地定位那个最优解中必定存在的ak,则问题就简单很多了 比如:当前格局下,最早完成的活动,必定出现在最优解中。 但是特别要注意:这不是最优子结构性质带来的必然,因此我们必须要证明:在某种子问题分解方案中,我们的每一步选择都是最优解的选择(贪心特性)

问题4: 所谓“Greedy”是指什 么? 本质上说就是:每次确定一个子问题的解,并确保它必定是最优解的一部分。 多数时候表现为在一个线性多阶段决策中,选择当前最优解并能够确保是最终的最优解的一部分。

Activity Selection: the Idea 要解的问题用 表示,S是原始问题所给的所有活动的集合,则原始问题为S0; Greedy方法: 选择完成时间最早的活动,假设是a1; 解子问题S1。 Greedy可以指不同的“最”,但有的“最”可以得到正确的解,有的“最”却未必! 特别关注,通常我们的多阶段选择会将C[I,j]简化为Sk

如何去“编程表达”这样的递归式? 解子问题S1

问题5: 为什么不需 要递归? 为什么无条件地把a1放到最优解中? 输入活动可以按照结束时间单调递增排序; 问题6: 为什么代价是线性的?

问题7: 仅仅具有“最优子结构” 能保证贪心算法的正确吗? 还需要什么条件? 两个子问题中:一个子问题的规模为1(广义上的1),剩余问题空间为另一个子问题。 需要证明:贪心选择的安全性;贪心选择+剩余子问题最优解=完整问题最优解。两个需要可以合并到后者中去证明

问题8: 你能设想一个证明这个特性的基本方法吗? 贪心选择特性: 替换法证明。证明当前的最优选择Ck,必定存在于Sk子问题的某个最优方案中(贪心选择的策略不变)。 如果证明了这一点,我们可以结合最优子结构性质得到结论:

贪心算法解活动选择问题的正确性

How to prove your greedy choice property? 替换法

问题9: 为什么这个定理保证我 们需要的正确性? Sk定义下的子问题划分方法,形成了一个最优子结构性质; 数学归纳法 最优子结构

Greedy vs. Dynamic Programming 能用贪心算法你不用,你就“亏”了; 不能用贪心算法你用了,你就错了! 0-1背包问题和fraction背包问题均有最优子结构性质:任意将某个装包方案分为两阶段,两个独立阶段的装包方案均是最优的。 0-1背包问题不具备“依据单价最高原则优先选择”的贪心选择特性:反例 Fraction背包问题具备“依据单价最高原则优先选择”的贪心选择特性:任意找到某个最优解方案,采用替换方法证明这种贪心选择一定在该最优方案中 问题10: 你觉得为什么fractional knapsack 行,0-1就不行?

Review the idea of Activity Selection 要解的问题用 表示,S是原始问题所给的所有活动的集合,则原始问题为S0; Greedy方法: 选择完成时间最早的活动,假设是a1; 解子问题S1。 Greedy可以指不同的“最”,但有的“最”可以得到正确的解,有的“最”却未必! 问题:一个问题能否采用贪心方法,依赖于“如何贪心”吗?

问题11: 字母编码,用固定长度与 可变长度,各有什么利弊?

0.0.101.1101 前缀码可以发挥可变长编码的优点,又可以避免使用界限符。 界限符: 前缀码:没有任何码字是其它码字的前缀。解码没有歧义。

哈夫曼编码: 使得B(T)最小的dT(c)如何构造? 给定一段位串001011101,如何解码?

Huffman Code

Q 是一个最小优先队列。 下划线部分,在后期证明贪心时用到 两次extract和一次Insert之后,我们面临了一个“新”的子问题。

问题12: 最优前缀码问题满足 greedy-choice property, 这一点该如何表述? 当前选择+子问题的最优解=原问题的最优解 最不频繁使用的,最长码长;树中高度最高,最先合并。 替换法

Xy是频率最低的两个字母; T是某种最优编码,但xy不是最深的兄弟,ab是最深的; 构造一棵新树(编码)T’’,新树代价更小 E .

问题13: 最优前缀码问题满足 optimal-substructure property,这点该如何 表述? 最优子结构:最优解包含相关子问题的最优解,且子问题独立求解。 一个问题的最优解,包含了某种分解方向下的子问题的最优解,该问题具有最优子结构性质(在该分解方案下)。 继而,一旦存在这种方案,则问题本身具有最优子结构特性。

注意: 给定一个C,求其最优前缀码: 给定某种编码方式产生的最优解:一定可以表现成一颗满二叉树,总是存在第一个选择:哪两个是最底层的叶节点 首选(最不频繁使用的)两个字母:choice 子问题:zxy和C‘’ C‘’最优; 如果T是一个最优解,T‘和{z,x,y}也一定是最优解。 即:

T’’’和T’都是C‘的最优编码树。’

Open Topics: 1,Ternary Huffman. Trimedia Disks Inc. has developed .ternary. hard disks. Each cell on a disk can now store values 0, 1, or 2 (instead of just 0 or 1). To take advantage of this new technology, provide a modified Huffman algorithm for compressing sequences of characters from an alphabet of size n, where the characters occur with known frequencies f1; f2; : : : ; fn. Your algorithm should encode each character with a variable-length codeword over the values 0; 1; 2 such that no codeword is a prifex of another codeword and so as to obtain the maximum possible compression. Prove that your algorithm is correct.