并串数据结构学习笔记(一).docVIP

  • 2
  • 0
  • 约2.53千字
  • 约 15页
  • 2020-06-11 发布于山东
  • 举报
(一)并行与串行 1.什么是并行与串行? 衡量并行与串行计算的复杂程度指标 W为总计算量,P为处理器数目,S为最长串行执行时间 (注:这里的执行时间与计算次数可以直接等价,可以对所有的计算时间取平均(为一常数),然后乘以计算次数就是执行时间,由于复杂度里面的系数一般都用常数C代替,所以复杂度的计算中,计算次数即执行时间) Work:指所有处理器的计算总和,即完成一个目标的总计算量。符号为W。 Perfect Speedup:指一个理想计算时间,每个处理器的计算时间长度相同,同时开始工作同时结束,即所有处理器的计算时间均为。符号为P(花体p)。 Span:指处理器足够多,能够并行的计算可以不用等待直接进行计算,即完成一个目标的最大的串行执行时间。符号为S。 Greedy Scheduler:指在处理器有限的情况下,只要有处理器空闲,一旦有计算需要进行,就在空闲处理器上计算,不考虑调度的时间问题,即从第一个开始计算的处理器开始计算时刻到最后一个停止计算的处理器停止计算时刻的时间差。符号为T。 定理: 证明:(方法一)整个计算有S层,整个计算进行了T步才结束,每一步计算最多执行P个计算,每一层可能执行多步,有种现象是,当执行到某一层时,该层恰好执行a步(此时前a步计算量均必为P)还剩下一部分计算,而执行第a+1步时部分处理器继续处理剩下部分,其余处理器处理下一层计算,这时,作这样一个假设,如果在每一层都增加一步用于处理剩下部分,那么就避免了这个问题,但每一层增加的一步计算最多不超过P,所有层增加的计算不会超过PS,而每一层的前a步计算次数综合必定小于总的任务量W,于是有 (方法二)将T划分成两部分,所有处理器均在工作部分的时间和部分处理器未工作部分的时间,所有处理器均在工作部分的计算量不会超过W,因而,而在S层计算中,每一层至多有一步存在部分处理器未工作的情况,因而,综合两部分时间即为所求。 功能与实现 3.1案例分析 问题:测出人类DNA的全部碱基对序列 问题难点:人类DNA中碱基对序列太庞大,检测起来过于困难 于是提出以下思路:(鸟枪法) 问题抽象: 算法求解: ①暴力求解算法 一般方法:枚举出所有情况,找出最佳方案 针对这个问题解法:排列出各种情况,然后去除每种情况的重复部分,之后拼接起来,最终挑选出最短的一条超级串即为所求 问题:计算复杂度太高,为指数级别,求解时间过长(NP问题) 由于这个问题是NP问题,直接求解太难,于是考虑采用启发式算法(贪心算法)进行求解 ②问题的转化 将每个子串处理为一个结点,结点与结点之间的距离为,于是构建了一个有向图,找到最短的Hamiltonian路径即为所求,这样便使SS问题转化成为了TSP问题(旅行商问题) 虽然TSP问题也是NP问题,但是这里有很多启发式算法可以使用,这样便使问题的解决成为了可能。 ③贪心算法 一般方法:每次选择局部较优方案,不必考虑之前的选择,最终得到一个比较好的结果 针对这个问题的解法:选取具有最大重叠部分的子串S,选取一个子串拼接起来使S增加的长度最短 (采用数学归纳法易证,做过作业,此处略去) 算法分析: (Ⅰ)预备知识: 记为实际计算量,均为常数,下面式子均表示在n很大时候的关系 :表示为的上界,即 :表示为的下界,即 :表示为的数量级,上,下界均为级别,即 注:此外,对于常数c的理解:常数可以理解为一个固定的数,或者再加上一个无穷小量,例如,,这时,相对于而言是个无穷小量,即,c这时就应该看成一个数(这个例子中为1)加上,因此有,不难看出,因此这里是精确表达而不是近似表达,很多时候省去复杂度较低的项并非是近似结果,跟这里的道理一样,同样是精确结果,均包括在常数c里面,渐进复杂度算出来的结果如果是用第三种表达则意味着是精确结果,前两种则不一定,有可能只是求得一个上界或者下界而已。 一般如果我们求得一个结果一般只能说明该算法的复杂度至多到达这个数量级,在没有证明下界情况下不能说明改算法复杂度就为这个数量级,所以一般用的大O记号,如果求得一个更优的结果就没必要纠结,只是给了一个上界,有可能上界数量级还要更小 练习:(对于上下界的理解)证明: (可类比的证明) (Ⅱ)复杂度计算 注:或许有更优结果,不过暂时认为这两个结果是正确的: 于是有:(超级串分成了n个子串,总长为m) 有了以上两个结论,不难得出 (Ⅲ)三种特殊分析方法 注:树的方法比较好,虽然不具有普遍意义,但对于这种结构的问题求解还是比较迅速的 (Ⅳ)几类常见复杂度的计算(均为常数) 以下几个式子的形式看起来比较吓人,其实方法都是类似,看懂一个都差不多就会了,会方法就足够了,由⑤⑥⑦⑧式不难得到以上常见的结论(p,q,m,k,s,t均为常数)(仅仅考虑t为自然数的情况,t不

文档评论(0)

1亿VIP精品文档

相关文档