大学计算机第7讲-算法-程序与计算系统之灵魂.ppt
《大学计算机第7讲-算法-程序与计算系统之灵魂.ppt》由会员分享,可在线阅读,更多相关《大学计算机第7讲-算法-程序与计算系统之灵魂.ppt(62页珍藏版)》请在咨信网上搜索。
1、算法与算法类问题求解算法与算法类问题求解ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授符号化符号化,计算化计算化再语再语义化义化自然自然/社社会问题会问题程序化程序化执行化执行化算法的结果算法的结果机器级程序机器级程序-机器指令机器指令运算器和控制运算器和控制器器(CPU)-执行执行算法算法自然自然/社社会问题的会问题的求解结果求解结果产生产生用用0/1编码:指编码:指令和数据令和
2、数据存储器:存储器:0/1存与取存与取0/1化化信号化信号化存储存储高级语言程序高级语言程序编译编译执行化执行化汇编语言程序汇编语言程序程序执行程序执行汇编汇编程序执行程序执行算法与算法类问题求解算法与算法类问题求解(1)为什么算法很重要呢为什么算法很重要呢?“是否会编程序是否会编程序”,本质上是,本质上是“能否想出求解问题的算法能否想出求解问题的算法”,其次才是将算法用计算机可以识别的形式书写出来其次才是将算法用计算机可以识别的形式书写出来战德臣 教授算法算法-计算机与软件的灵魂。“算法算法”(Algorithm)一词源于数学家的名字:公一词源于数学家的名字:公元元825年,阿拉伯数学家阿科
3、瓦里茨米年,阿拉伯数学家阿科瓦里茨米(AlKhowarizmi)写了著名的写了著名的波斯教科书波斯教科书(PersianTextbook),书中概括了进行四则算术运算的计算规则,书中概括了进行四则算术运算的计算规则。u算法算法是一个是一个有穷规则有穷规则的集合,它用规则规定了解决某一特定的集合,它用规则规定了解决某一特定类型问题的运算序列,或者规定了任务执行或问题求解的一系类型问题的运算序列,或者规定了任务执行或问题求解的一系列步骤。列步骤。算法与算法类问题求解算法与算法类问题求解(2)什么是算法什么是算法?如音乐乐谱、太极拳谱等都可看作广义的算法如音乐乐谱、太极拳谱等都可看作广义的算法战德臣
4、 教授有有穷穷性性:一个算法在执行有穷步规则之后必须结束。确确定定性性:算法的每一个步骤必须要确切地定义,不得有歧义性。输入输入:算法有零个或多个的输入。输输出出:算法有一个或多个的输出/结果,即与输入有某个特定关系的量。能能行行性性:算法中有待执行的运算和操作必须是相当基本的(可可以以由由机机器器自自动动完完成成),并能在有限时间内完成。算法算法算法与算法类问题求解算法与算法类问题求解(3)什么是计算学科中的算法什么是计算学科中的算法?基本运算:除法、赋值、逻辑判断基本运算:除法、赋值、逻辑判断典型的典型的“重复重复/循环循环”与与“迭代迭代”寻找两个正整数的最大寻找两个正整数的最大公约数的
5、欧几里德算法公约数的欧几里德算法输入输入:正整数:正整数M和正整数和正整数N输出输出:M和和N的最大公约数的最大公约数(设设MN)算法步骤算法步骤:Step1.M除以除以N,记余数为记余数为RStep2.如果如果R不是不是0,将将N的值赋给的值赋给M,R的值赋给的值赋给N,返回返回Step1;否则否则,最大最大公约数是公约数是N,输出输出N,算法结束。算法结束。战德臣 教授哥尼斯堡七桥问题哥尼斯堡七桥问题:“寻找走遍这7座桥且只许走过每座桥一次最后又回到原出发点的路径”“对给定的任意一个河道图与任意多座桥判定可能不可能每座桥恰好走过一次?”。梵天塔问题梵天塔问题:有三根柱子,梵天将64个直径大
6、小不一的金盘子按照从大到小的顺序依次套放在第一根柱子上形成一座金塔,要求每次只能移动一个盘子,盘子只能在三根柱子上来回移动不能放在他处,在移动过程中三根柱子上的盘子必须始终保持大盘在下小盘在上。其他如:背包问题背包问题,丢番图方程可丢番图方程可解性问题解性问题;算法与算法类问题求解算法与算法类问题求解(4)你知道一些典型的算法类问题吗你知道一些典型的算法类问题吗?算法类问题:由一个算法可以解决的问题,寻找一个(唯一的)方法(算法)以解决同一类型的无穷多个单个问题系列的问题战德臣 教授uTSP问题(TravelingSalesmanProblem,旅旅行行商商问问题题),威廉哈密尔顿爵士和英国数
7、学家克克曼T.P.Kirkman 于19世纪初提出TSP问题uTSP问问题题:有有若若干干个个城城市市,任任何何两两个个城城市市之之间间的的距距离离都都是是确确定定的的,现现要要求求一一旅旅行行商商从从某某城城市市出出发发必必须须经经过过每每一一个个城城市市且且只只能能在在每每个个城城市市逗逗留留一一次次,最最后后回回到到原原出出发发城城市市,问问如如何何事事先先确确定定好好一一条条最最短短的的路路线线使使其其旅旅行行的的费费用用最少。最少。uTSP是最有代表性的组合优化组合优化问题之一,在半导体制造(线路规划)、物流运输(路径规划)等行业有着广泛的应用。城市之间的距离城市之间的距离算法与算法
8、类问题求解算法与算法类问题求解(5)你知道你知道TSP问题吗问题吗?算法类问题示例战德臣 教授u问问题题抽抽象象及及数数学学建建模模:将问题抽象为一个数学问题,并给出求解该数学问题的算法模型。u算法策略设计算法策略设计u算算法法的的数数据据结结构构和和控控制制结结构构设设计计:将数学模型转换为可由计算机自动计算的算法。u算算法法的的实实现现:用程序设计语言编写算法实现的程序。u算算法法的的分分析析:分析算法的正确性和复杂性,判断能行性!算法与算法类问题求解算法与算法类问题求解(6)你知道算法类问题求解的一般步骤吗你知道算法类问题求解的一般步骤吗?算法类问题求解框架数学建模与算法策略设计数学建模
9、与算法策略设计-算法思想算法思想ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授算法类问题求解的第一步就是要数学建模。算法类问题求解的第一步就是要数学建模。u数数学学建建模模是是用用数数学学语语言言描描述述实实际际现现象象的的过过程程,即建立数学模型的过程。u数数学学模模型型是是对对实实际际问问题题的的一一种种数数学学表表述述,是是关关于于部部分分现现实实世界为某种目的的一个抽象的简
10、化的数学结构。世界为某种目的的一个抽象的简化的数学结构。数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(1)为什么说数学建模对于算法很重要为什么说数学建模对于算法很重要?将现实世界的问题抽象成数学模型,就可能发现问题的本将现实世界的问题抽象成数学模型,就可能发现问题的本质及其能否求解,甚至找到求解该问题的方法和算法。质及其能否求解,甚至找到求解该问题的方法和算法。战德臣 教授哥哥 尼尼 斯斯 堡堡 七七 桥桥 问问 题题被 抽 象 成 一 个“图图(Graph)”-由节点和边所构成的一种结构,-依据“图”,可发现该问题所蕴含的许多性质:u“连通连通-两个节点间有路径相连接”u“
11、回回路路-从一个节点出发最后又回到该节点的一条路径”u“可达可达-从一个节点出发能够到达另一个节点”u“经过图中每边一次且仅一次的回路经过图中每边一次且仅一次的回路”u“经过图中每个节点一次且仅一次的回路”u什么情况下有解,什么情况下无解?什么情况下有解,什么情况下无解?数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(1)为什么说数学建模对于算法很重要为什么说数学建模对于算法很重要?如果能抽象成数学模型,则可将一个具体问题的求解,推广为一类如果能抽象成数学模型,则可将一个具体问题的求解,推广为一类问题的求解!问题的求解!战德臣 教授TSP问题的数学模型问题的数学模型数学建模与算
12、法策略设计数学建模与算法策略设计-算法思想算法思想(2)数学建模要做到怎样数学建模要做到怎样?战德臣 教授算法策略设计算法策略设计-算法思想算法思想当数学建模完成后,就要设计算法的策略或者说问题求解的策略。当数学建模完成后,就要设计算法的策略或者说问题求解的策略。u求解TSP的遍遍历历算算法法:列出每一条可供选择的路线,计算出每条路线的总里程,最后从中选出一条最短的路线。u出现的问题是出现的问题是:组合爆炸组合爆炸路径组合数目:(n-1)!20个城市,遍历总数1.2161017计算机以每秒检索1000万条路线的计算速度,需386年。所有路径组所有路径组合及其长度合及其长度城市之间的距离城市之间
13、的距离数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(3)算法思想或者算法策略对问题求解有什么影响算法思想或者算法策略对问题求解有什么影响?战德臣 教授uTSP问问题题的的难难解解性性:随着城市数量的上升,TSP问题的“遍历”方法计算量剧增,计算资源将难以承受。u2001年解决了德国15112个城市的TSP问题,使用了美国Rice大学和普林斯顿大学之间互连的、速度为500MHz 的Compaq EV6 Alpha 处理器组成的110台台计计算算机机,所有计算机花费的时间之和为22.6年年。An optimal TSP tour through Germanys 15 large
14、st cities.It is the shortest among 43 589 145 600 possible tours visiting each city exactly once.数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(3)算法思想或者算法策略对问题求解有什么影响算法思想或者算法策略对问题求解有什么影响?战德臣 教授TSP问题,有没有其他求解算法呢?问题,有没有其他求解算法呢?u最优解最优解 vs.可行解可行解u不同的算法设计策略:不同的算法设计策略:遍历、搜索算法遍历、搜索算法分治算法分治算法贪心算法贪心算法动态规划算法动态规划算法可行解最优解TSP问题
15、的可行解与最优解示意数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(4)有哪些算法策略有哪些算法策略?战德臣 教授贪贪心心算算法法是一种算法策略,或者说问题求解的策略。基本思想“今朝有酒今朝醉”。一一定定要要做做当当前前情情况况下下的的最最好好选选择择,否否则则将将来可能会后悔,故名来可能会后悔,故名“贪心贪心”。uTSP问题的贪心算法求解思想从某一个城市开始,每次选择一个城市,直到所有城市都被走完。每每次次在在选选择择下下一一个个城城市市的的时时候候,只只考考虑虑当当前前情情况况,保保证证迄迄今今为为止止经经过过的的路路径径总总距距离离最短。最短。城市之间的距离城市之间的距离
16、数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(5)为什么称为为什么称为“贪心算法贪心算法”?战德臣 教授基本目标基本目标:理解算法类问题求解框架理解算法类问题求解框架数学建模与算法策略设计数学建模与算法策略设计-算法思想算法思想(6)小结小结?算法思想的精确表达算法思想的精确表达-算法算法的数据结构的数据结构设计设计(I)ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣
17、教授算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(1)算法设计包括什么算法设计包括什么?n算法的数据结构设计算法的数据结构设计-问题或算法相关的数据之间的逻辑关问题或算法相关的数据之间的逻辑关系及存储关系的设计系及存储关系的设计n算法的控制结构设计算法的控制结构设计-算法的计算规则或计算步骤设计算法的计算规则或计算步骤设计如何如何构造和表达构造和表达处理的规则,以便能够按规则逐步计算出结果处理的规则,以便能够按规则逐步计算出结果?如何将数学模型中的数据转为计算机可以存储和处理的数据?如何将数学模型中的数据转为计算机可以存储和处理的数据?战德臣 教授数数据据结
18、结构构是是数数据据的的逻逻辑辑结结构构、存存储储结结构构及及其其操操作作的的总总称称,它它提供了问题求解提供了问题求解/算法的数据操纵机制。算法的数据操纵机制。算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(2)什么是数据结构什么是数据结构?(数据的数据的)逻辑结构逻辑结构(数据的数据的)存储结构存储结构操操作作反映逻辑语义关系反映逻辑语义关系为便于计算系统处理为便于计算系统处理战德臣 教授l变量与存储单元变量与存储单元 算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(3)变量和存储单元之间的关系变量和存储单元之间的关系?变量
19、及其存储变量及其存储战德臣 教授l“变量变量”与与“指针变量指针变量”算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(4)指针是什么指针是什么?*p变量及其存储变量及其存储战德臣 教授l“变量变量”与与“变量类型变量类型”及其存储及其存储算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(5)变量为什么需要声明类型变量为什么需要声明类型?变量及其存储变量及其存储战德臣 教授u向向量量或列列表表是有序数据的集合型变量,向量中的每一个元素都属于同一个数据类型,用一个统一的向量名和下标来唯一的确定向量中的元素。在程序设计语言中,又称为数
20、组数组。u向量名通常表示该向量的起始存储地址,而向量下标表示所指向元素相对于起始存储地址的偏移位置。向量实例向量实例向量存储实例向量存储实例n=4;Sum=0;ForJ=0tonStep1 Sum=Sum+markJ;NextJAvg=Sum/(n+1);算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(I)(6)如何控制读取向量如何控制读取向量/数组型变量的不同元素数组型变量的不同元素?多元素变量及其存储多元素变量及其存储多元素变量使得程序可通过下标来操作多元素变量中的每一个元素多元素变量使得程序可通过下标来操作多元素变量中的每一个元素编写求上述数组中值的平均值的程
21、序编写求上述数组中值的平均值的程序战德臣 教授u矩矩阵阵或表表是按行按列组织数据的集合型变量,通常是一个二维向量,可表示为如M2,3或M23形式,即用符号名加两个下标来唯一确定表中的一个元素,前一下标为行序号,后一下标为列序号。系统会自动将其转换为对应的存储地址,找到相应的存储单元。在程序设计语言中,矩阵或表是一个多维数组变量。112522254539844212801003483751612341234行列M2,3表实例Sum=0;ForI=1to4Step1ForJ=1to4Step1Sum=Sum+MIJ;NextJNextIAvg=Sum/16;算法思想的精确表达算法思想的精确表达-算
22、法的数据结构设计算法的数据结构设计(I)(7)如何控制读取向量如何控制读取向量/数组型变量的不同元素数组型变量的不同元素?多元素变量及其存储多元素变量及其存储逻辑上是二维的按行、列下标来操作一个元素逻辑上是二维的按行、列下标来操作一个元素,如如M2,3或或M23;物理上仍旧是一;物理上仍旧是一维存储的,由维存储的,由“表起始地址表起始地址+(行下标行下标-1)*列数列数+列下标列下标”。这种转换可由系统自动完成,。这种转换可由系统自动完成,程序中只需按下标操作即可,即如程序中只需按下标操作即可,即如M23算法思想的精确表达算法思想的精确表达-算法算法的数据结构的数据结构设计设计(II)Rese
23、archCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(II)(1)数据结构示例数据结构示例?典型的数据结构典型的数据结构-“树树”“树”的存储结构存储结构:一个存储单元存储“数据元素”;一个存储单元存储“指针”,指示数据元素之间的逻辑关系150120160数据的逻辑结构数据的逻辑结构数据的存储结构数据的存储结构503070
24、100数据元素数据元素对应数据元素的对应数据元素的指针指针指向该元指向该元素的父元素素的父元素战德臣 教授150120160503070100数据的逻辑结构数据的逻辑结构数据的存储结构数据的存储结构存储结构中,通过指针的变化存储结构中,通过指针的变化,不改变数据元素的存储不改变数据元素的存储,但却但却改变了数据元素之间的逻辑关系改变了数据元素之间的逻辑关系算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(II)(1)数据结构示例数据结构示例?120战德臣 教授150120160503070100数据元素数据元素对应数据元素的左对应数据元素的左指针指针指向该元素指向该元
25、素的左侧子结点的左侧子结点对应数据元素的右对应数据元素的右指针指针指向该元素指向该元素的右侧子结点的右侧子结点算法思想的精确表达算法思想的精确表达-算法的数据结构设计算法的数据结构设计(II)(2)同同样的逻辑结构可以有不同的存储结构吗样的逻辑结构可以有不同的存储结构吗?“树”的另一种存储结构存储结构,用两个指针表达数据之间的逻辑关系,一个指向其左数据元素,一个指向其右数据元素。数据的逻辑结构数据的逻辑结构数据的存储结构数据的存储结构数据结构不同,数据之间的操作方法也是不同的数据结构不同,数据之间的操作方法也是不同的战德臣 教授150120160503070100算法思想的精确表达算法思想的精
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 算法 程序 计算 系统 灵魂
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。