算法设计与分析.pptx
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法分析与计算复杂性理论
各类具体算法的复杂性的研究称作算法分析
一般算法的复杂性的研究称作计算机复杂性理论
计算复杂性理论原是可计算理论的一支,是以各种 可计算函数(递归函数)的计算复杂性为研究对象
基本问题
实际可计算函数的结构和性质 60年代中期以来,有关研究者一般以计算时间 多项式有界的函数作为实际可计算的函数
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
《算法设计与分析》课程的主要内容
第一章 绪论 第二章 数学预备知识与典型的数据结构 第三章 递归与分治策略 第四章 动态规划 第五章 贪心算法 第六章 NP完全问题 第七章 回溯法 第八章 分支限界法 第九章 随机化算法 第十章 网络流算法 第十一章 并行算法入门
概述
课程介绍 什么是算法 算法的描述 算法分析
程序设计语言
优点: 能由计算机执行 缺点: 抽象性差,对语言要求高 使用方法: 对算法进行验证 注意事项: 将算法写成子函数
#include <iostream.h>
int iCommonFactor(int m, int n) {
计算思维课程现已在部分高校中开启
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
教材(Textbook)
王晓东编著.计算机算法设计与分析(第3版). 北 京:电子工业出版社, 2007.
辽宁师范大学计算机与信息技术学院 宋传鸣
算法应用举例
人类基因组项目:找出人类DNA中所有100000种基 因,确定构成人类DNA的30亿种化学基对的各种序 列,并将信息存储,检索和分析等
互联网:寻找合理的数据传输路径 电子商务:保持私人信息,采用公钥和数字签名等 交通:GPS导航 计算几何:求解平面上n个点的凸壳 数值计算:求解n个矩阵相乘,解方程组等
第2卷 半数值算法:介绍随机数和算术,提供了计 算机编程和数值分析之间的丰富接口
第3卷 排序与查找:介绍排序和查找的最权威的经 典技术,扩充了第1卷的数据结构,以处理大小型数 据库及内外部存储.本书偏重分析技术,采用汇编 语言描述算法,是一本本学科最经典最权威的百 科全书,适合于从事数据结构与算法研究的专家 阅读
确定性机器与非确定性机器的解题能力比较
关于计算和算法的研究
对串行计算的性质研究多 对并行计算性质的研究少
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
算法(Algorithm)的定义
概述
课程介绍 什么是算法 算法的描述 算法分析
解决问题的一种方法或过程,由若干条指令组成
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
关于《算法设计与分析》课程
概述
计算思维(Computational Thinking)
课程介绍 什么是算法 算法的描述 算法分析
摘自《中国计算机学会通讯》2012年第一期
理论科学、实验科学、计算科学被称为推动人类 文明进步和科技发展的三大科学
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
主要参考书(References)
M. H. Alsuwaiyel著,吴伟昶,方世昌译.算法设计 技巧与分析. 北京:电子工业出版社, 2010.
Thomas H. Cormer等著, 潘金贵, 顾铁成等译. 算 法导论(第二版). 北京: 机械工业出版社, 2010
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
关于理论计算机科学
关于计算机和计算机械的数学理论,也称计算理论
自动机与形式语言理论
程序理论
形式语义学
算法分析和计算复杂性理论
学科产生
20世纪30年代,人们关注是否存在一种有效过程求 解问题,即问题的可解与不可解性
求解问题的一般过程
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法与程序
算法与程序的区别
程序是算法用某种程序设计语言的具体实现 程序可以不满足算法的第四条性质
为什么要学习算法?
算法是程序的灵魂 问题求解过程:分析问题—设计算法—编写程 序—整理结果 程序设计研究的四个层次:算法—方法学—语 言—工具
如果存在某个模型能够建立一个算法求解问题,则 将该问题归入可解的问题类
30年代前期,哥德尔等创立递归函数 30年代中期,丘奇的λ演算,波斯特的波斯特机,图
灵的图灵机 40年代后期:存储程序型计算机(RAM,RASPM)
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
自然语言
优点: 容易理解 缺点: 冗长,有二义性 使用方法: 粗线条描述算法思想 注意事项: 避免写成自然段
流程图
优点: 直观 缺点: 缺少严密性和灵活性 使用方法: 描述简单算法 注意事项: 注意抽象层次
算法的描述
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
算法的性质
输入:有零个或多个由外部提供的量
输出:至多一个量作为输出
确定性:每条指令是清晰的,无歧义的
有限性:每条指令执行次数有限,执行时间也有限
有效性:每个操作须使用户利用纸笔在有限时间内 精确地完成
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
……
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法可以解决哪些类型的问题?
重要的问题类型
查找问题 排序问题 图问题 组合问题 几何问题
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
优点: 表达能力强,容易理解
1. r ← m % n; 2. 循环直到r ← 0
2.1 m ← n;
2.2 n ← r;
2.3 r ← m%n; 3. 输出n
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法复杂性分析(Complexity Analysis)
2006年硕士毕业于辽宁师范大学计算机科学与技 术系计算机应用技术专业,工学硕士
2010年博士毕业于南京大学计算机科学与技术系 计算机应用技术专业,工学博士
2010年7月回校任教至今
联系方式
电子邮件: 办公室:西山校区第二教学楼B614 个人主页:
辽宁师范大学计算机与信息技术学院 宋传鸣
Algorithm一词源于公元九世纪的一位波斯数学家 Muhammad ibn Musa al-Khwarizmi的书<Rules of restoring and equating>
示例:给定正数m和n,找出两个数的最大公约数 E1. 用n除以m,并令r为余数(0≦r<n) E2. 如果r=0,则算法结束, n为所求 E3. 令m=n, n=r,转入E1.
int r=m% n; while(r!=0) {
m=n; n=r; r=m% n; } return n; }
辽宁师范大学计算机与信息技术学院 宋传鸣
算法的描述
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法的描述
伪代码(PseudoCode) —算法语言
介于自然语言和程序设计语言之间.采用某一程序 设计语言的基本语法,操作指令可结合自然语言来 设计
算法复杂性=算法所需要的计算机资源
时间复杂性(Time Complexity): T=T(N,I) 空间复杂性(Spatial Complexity): S=S(N,I)
N表示问题的规模,I表示算法的输入
计算机包含的运算有多种,记为O1,O2,…,Ok,执行时
间分别为t1, t2, …, tk,每种运算的次数为e1, e2, …, ek,
计算机科学与技术专业课程
Algorithm Design and Analysis
算法设计与分析
xxx
辽宁师范大学计算机与信息技术学院
概述
课程介绍 什么是算法 算法的描述 算法分析
关于任课教师
宋传鸣 讲师
2003年本科毕业于辽宁师范大学计算机科学与技 术系计算机应用技术专业,工学学士
学时安排
48学时,每周3学时,修完课程可获3学分
考核方式——考察
期末为闭卷笔试,成绩占总成绩的50% 平时出勤占5%,学期论文(3篇)占45%(第4/8/12周) 试卷题型:概念型、设计型、证明型
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法设计与分析具有学科核心的重要地位,能够 充分体现计算机科学方法论的理论、抽象和设计 3个过程,知识面较宽,有一定的深度
反复再现计算机科学中用到的典型问题的复杂性、 效率、抽象的层次、重用、折衷等带有普遍性的 概念
不仅是计算机科学与技术专业后续课程的理论基 础,而且还广泛地用于新兴的技术和研究领域
提高分析问题的能力 算法的形式化—思维的逻辑性和条理性
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
算法可以解决哪些类型的问题?
概述
课程介绍 什么是算法 算法的描述 算法分析
问题的特点
有很多候选的解决方案,而要找出其中真正需要的 方案并不容易的情况
有着实际应用背景,但是受到经济利益,运行成本等 多方面的限制
科学思维包括理论思维、实验思维和计算思维 理论思维以推理和演绎为特征,如数学学科 实验思维以观察和总结自然规律为特征,如物 理学科
计算思维以设计和构造为特征,如计算机学科
计算思维是运用计算的基础概念去求解问题、设 计系统和理解人类行为的一种方法.它合用了数学 思维(求解问题的方法)、工程思维(设计、评价大 型复杂系统)和科学思维(理解可计算性、智能、 心理和人类行为)
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
Байду номын сангаас
主要参考书(References)
The Art of Computer Programming
数据结构的开拓者D.E.Knuth的计算机科学发展 史上的不朽之作
第1卷 基本算法:介绍计算机程序设计的基本算法, 包括基本的编程概念和技术以及信息结构--机内 信息的表示、数据元及其处理的结构关系
《算法设计与分析》
关于《算法设计与分析》课程
概述
课程介绍 什么是算法 算法的描述 算法分析
课程性质
本课程属于专业选修课(计算机科学与技术)、专 业必修课(计算机科学与技术(动画))
开设目的
使学生掌握非数值算法设计的主要方法 独立设计算法和对算法进行复杂性计算奠定基础 利用所学的算法设计策略解决实际问题的能力
关于《算法设计与分析》课程
在专业教学计划中的地位和作用
在IEEE ACM 公布的《Computer Science Curric ulum 2008》与中国计算机学会教育委员会、全 国高等学校计算机教育研究会推出的CCC 2004 (China Computing Curricula 2004-CS)中,算法设 计与分析都是其核心课程之一
则有
k
T (N, I )= å tiei (N , I )
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
《算法设计与分析》课程的基本要求
培养学习方法与习惯
上课记笔记 阅读与自学 理论联系实际 查找资料
课上认真听讲,课后多思考多翻阅资料
辽宁师范大学计算机与信息技术学院 宋传鸣