计算机问题求解-算法方法推荐课件_第1页
计算机问题求解-算法方法推荐课件_第2页
计算机问题求解-算法方法推荐课件_第3页
计算机问题求解-算法方法推荐课件_第4页
计算机问题求解-算法方法推荐课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/8/221计算机问题求解 论题1-11 - 算法方法2012年12月11日2021/8/222方法与技术(结构)n问题:q给定一群人(例如:在一个大操场上),给定一个数值(例如: 175),输出高度恰好等于该数值的人。n方法:q搜索n但是我们仍然需要明确,用什么样的方式来实现“搜索”2021/8/223问题问题1:你能解释下面的话吗?你能解释下面的话吗?2021/8/224搜索“解空间” 一个例子n一位父亲请一位数学家猜他3个孩子的年龄,他提示说:q3人年龄的乘积是36。q这时他们恰好经过一幢房子,父亲又提示说:他们年龄之和等于这房子窗户的个数。n父亲见数学家仍然犹豫,又补充说:q老

2、大很小的时候家中没有其他孩子跟他一起玩。n你能说出3个孩子的年龄吗?2021/8/225初始的解空间假设年龄精确到整数集合S所有可能的解的集合S = (i, j, k) | i, j, k 是非负整数2021/8/226利用条件缩小可能的解空间 集合S1所有可能的解的集合S1: (1, 1, 36)(1, 2, 18)(1, 3, 12)(1, 4, 9)(1, 6, 6)(2, 2, 9)(2, 3, 6)(3, 3, 4)条件1:3人年龄乘积为362021/8/227解空间还有缩小的可能尽管已经知道了年龄之和, 那个数学家仍然说不出答案S1: (1, 1, 36) 38(1, 2, 18)

3、 21(1, 3, 12) 16(1, 4, 9) 14(1, 6, 6) 13(2, 2, 9) 13(2, 3, 6) 11(3, 3, 4) 10 可能的解的集合2021/8/228再进一步就是解!n当前可能的解的集合: (1,6,6), (2,2,9) n但是:老大没有同年龄的兄弟姐妹n因此三个孩子的年龄分别是:岁、岁和岁2021/8/229问题求解的基本“方法”n确定合理的解空间,并表示为某种“结构”。n利用已知的限制条件(知识)尽可能快的压缩可能的解空间。q当解空间已经足够小,我们就可以“直接”解题。n如果很难确定解空间的范围,或者很难有效地缩小解空间,这个题目就“很难”。2021

4、/8/2210搜索结构深度优先 - DFS广度优先 - BFS2021/8/2211“聪明”的搜索结构二分搜索树 - BST24206505123182130堆 Heap优先队列的一种实现2021/8/22122021/8/22132021/8/2214问题问题3:你阅读的材料中还介绍了哪你阅读的材料中还介绍了哪些些“算法方法算法方法”?你能从?你能从“搜索搜索”的角度对它们加以的角度对它们加以解释吗?解释吗?Divide-and-Conquer; Greedy; Dynamic Programming; Divide-and-Conquer; Greedy; Dynamic Programm

5、ing; Using “clever” data structureUsing “clever” data structure2021/8/2215Mergesort: Divide-and-Conquer2021/8/2216Greedy: Minimal Spanning Tree2021/8/2217Greedy: Simple, but may Fail!2021/8/2218问题5:用 Dynamic Programming解最短通路问题为什么就不会出错了?2021/8/2219问题6:既然Dynamic Programming 本质上是 exhaustive, 为什么还能保证效率可

6、以接受?2021/8/2220用Greedy解“难”题nBin Packing ProblemqSuppose we have an unlimited number of bins each of capacity one, and n objects with sizes s1, s2, , sn where 0si1 (si are rational numbers)qOptimization problem: Determine the smallest number of bins into which the objects can be packets (and find an

7、optimal packing) .qBin packing is a NPC problem2021/8/2221First Fit Decreasing - FFDnThe strategy: packing the largest as possiblenExample: S=(0.8, 0.5, 0.4, 0.4, 0.3, 0.2, 0.2, 0.2)B1B2B3B40.8(s1)0.2(s6)0.5(s2)0.4(s3)0.4(s4)0.3(s5)0.2(s7)0.2(s8)This is NOT an optimal solution!但可以证明:也不是太差!2021/8/2222Online: 会更困难问题问题8:你是否能用书上你是否能用书上“孩子滑雪孩子滑雪”的例子,说明:什么是的例子,说明:什么是online问题?为什么它被认为更困难?问题?为什么它被认为更困难?2021/8/2223Next Fit Algorithm - NFnThe strategy: Put a new item in the last bin if possible, or use a new bin. Never look back!nAn example: S=0.2, 0.5, 0.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论