组合数学在计算机中的应用.docx

上传人:b****5 文档编号:30246564 上传时间:2023-08-13 格式:DOCX 页数:7 大小:20.50KB
下载 相关 举报
组合数学在计算机中的应用.docx_第1页
第1页 / 共7页
组合数学在计算机中的应用.docx_第2页
第2页 / 共7页
组合数学在计算机中的应用.docx_第3页
第3页 / 共7页
组合数学在计算机中的应用.docx_第4页
第4页 / 共7页
组合数学在计算机中的应用.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

组合数学在计算机中的应用.docx

《组合数学在计算机中的应用.docx》由会员分享,可在线阅读,更多相关《组合数学在计算机中的应用.docx(7页珍藏版)》请在冰豆网上搜索。

组合数学在计算机中的应用.docx

组合数学在计算机中的应用

摘要...................................................................................................................................................1

1.组合数学概述................................................................................................................................1

2.组合数学在生活中的应用............................................................................................................1

3.组合数学与计算机软件................................................................................................................1

3.1信息时代的组合数学...............................................................................................2

3.2组合数学在计算机软件的应用...............................................................................2

3.3组合数学与计算机软件的关系.................................................................................2

3.4 组合数学在国外软件业的发展状况......................................................................2

4Ramsey数在计算机科学中的应用.............................................................................................3

4.1 Ramsey定理和Ramsey数....................................................................................3

4.2 信息检索...................................................................................................................3

参考文献............................................................................................................................................5

组合数学在计算机中的应用

摘要:

介绍了组合数学的概念、起源与研究的主要内容,分析了组合数学的特点以及其在生活中的应用,阐述了组合数学与计算机软件的联系,并着重通过两个例子说明了Ramsey数在计算机科学的信息检索中的重要应用。

关键词:

组合数学;组合算法;Ramsey数;信息检索;

1:

组合数学概述

组合数学,又称为离散数学,但有时人们也把组合数学和图论加在一起算成是离散数学。

组合数学是计算机出现以后迅速发展起来的一门数学分支。

计算机科学就是算法的科学,而计算机所处理的对象是离散的数据,所以离散对象的处理就成了计算机科学的核心,而研究离散对象的科学恰恰就是组合数学。

组合数学的发展改变了传统数学中分析和代数占统治地位的局面。

现代数学可以分为两大类:

一类是研究连续对象的,如分析、方程等,另一类就是研究离散对象的组合数学。

组合数学不仅在基础数学研究中具有极其重要的地位,在其它的学科中也有重要的应用,如计算机科学、编码和密码学、物理、化学、生物等学科中均有重要应用。

微积分和近代数学的发展为近代的工业革命奠定了基础。

而组合数学的发展则是奠定了本世纪的计算机革命的基础。

计算机之所以可以被称为电脑,就是因为计算机被人编写了程序,而程序就是算法,在绝大多数情况下,计算机的算法是针对离散的对象,而不是在作数值计算。

正是因为有了组合算法才使人感到,计算机好象是有思维的。

2:

组合数学在生活中的应用

在日常生活中我们常常遇到组合数学的问题。

如果你仔细留心一张世界地图,你会发现用一种颜色对一个国家着色,那么一共只需要四种颜色就能保证每两个相邻的国家的颜色不同。

这样的着色效果能使每一个国家都能清楚地显示出来。

但要证明这个结论确是一个著名的世界难题,最终借助计算机才得以解决,最近人们才发现了一个更简单的证明。

当你装一个箱子时,你会发现要使箱子尽可能装满不是一件很容易的事,你往往需要做些调整。

从理论上讲,装箱问题是一个很难的组合数学问题,即使用计算机也是不容易解决的。

航空调度和航班的设定也是组合数学的问题。

怎样确定各个航班以满足不同旅客转机的需要,同时也使得每个机场的航班起落分布合理。

此外,在一些航班有延误等特殊情况下,怎样作最合理的调整,这些都是组合数学的问题。

组合数学在企业管理,交通规划,战争指挥,金融分析等领域都有重要的应用。

在美国有一家用组合数学命名的公司,他们用组合数学的方法来提高企业管理的效益,这家公司办得非常成功。

此外,试验设计也是具有很大应用价值的学科,它的数学原理就是组合设计。

用组合设计的方法解决工业界中的试验设计问题,在美国已有专门的公司开发这方面的软件。

最近,德国一位著名组合数学家利用组合数学方法研究药物结构,为制药公司节省了大量的费用,引起了制药业的关注。

总之,组合数学无处不在,它的主要应用就是在各种复杂关系中找出最优的方案。

所以组合数学完全可以看成是一门量化的关系学,一门量化了的运筹学,一门量化了的管理学。

3:

组合数学与计算机软件

随着计算机网络的发展,计算机的使用已经影响到了人们的工作,生活,学习,社会活动以及商业活动,而计算机的应用根本上是通过软件来实现的。

3.1信息时代的组合数学

现代数学可以分为两大类:

一类是研究连续对象,如分析、方程等,另一类就是研究离散对象的组合数学。

计算机科学就是算法的科学,而计算机所处理的对象是离散的数据,研究离散对象的科学恰恰就是组合数学。

因此,在信息时代的今天,组合数学就是信息时代的数学。

3.2组合数学在计算机软件的应用

随着计算机科学的发展,组合数学也在迅猛发展,而组合数学在理论方面的推进也促进计算机科学的发展。

计算机软件空前发展的今天要求有相应的数学基础,组合数学作为大多数计算机软件设计的理论基础,它的重要性也就不言而喻。

组合数学在计算机方面的应用极其广泛。

计算机软件与各种算法的研究分不开,为了衡量一个算法的效率,必须估计用此算法解答具有给定长的输入(问题)时需要多少步(例如算术运算、二进制比较、程序调用等的次数)。

这要求对算法所需的计算量及存储单元数进行估算,这就是计数问题的内容,而组合数学分析主要研究内容就是计数和枚举的方法和理论。

3.3组合数学与计算机软件的关系

我国在软件上的落后,要说出根本的原因可能并不是很简单的事,除了技术和科学上的原因外,可能还跟我们的文化,管理水平,教育水平,思想素质等诸多因素有关。

除去这些人文因素以外,一个最根本的原因就是我国的信息技术的数学基础十分薄弱,这个问题不解决,我们就难成为软件强国。

然而问题决不是这么简单,信息技术的发展已经涉及到了很深的数学知识,而数学本身也已经发展到了很深、很广的程度并不是单凭几个聪明的头脑去想想就行了,而更重要的是需要集体的合作和力量,就象软件的开发需要多方面的人员的合作。

美国的软件之所以能领先,其关键就在于在数学基础上他们有很强的实力,有很多杰出的人才。

一般人可能会认为数学是一门纯粹的基础科学,1+1的解决可能不会有任何实际的意义。

如果真是这样,一门纯粹学科的发展落后几年,甚至十年,关系也不大。

然而中国的软件产业的发展已向数学基础提出了急切的需求:

网络算法和分析,信息压缩,网络安全,编码技术,系统软件,并行算法,数学机械化和计算机推理,等等。

此外,与实际应用有关的还有许多许多需要数学基础的算法,如运筹规划,金融工程,计算机辅助设计等。

如果我们的软件产业还是把眼光一直盯在应用软件和第二次开发,那么我们在应用软件这个领域也会让国外的企业抢去很大的市场。

如果我们现在在信息技术的数学基础上,大力支持和投入,那将是亡羊补牢,犹未为晚;只要我们能抢回信息技术的数学基地,那么我们还有可能在软件产业的竞争中,扭转局面,甚至反败为胜。

吴文俊院士开创和领导的数学机械化研究,为中国在信息技术领域占领了一个重要的阵地,有了雄厚的数学基础,自然就有了软件开发的竞争力。

这样的阵地多几个,我们的软件产业就会产生新的局面。

值得注意的是,印度有很好的统计和组合数学基础,这可能也是印度的软件产业近几年有很大发展的原因。

3.4 组合数学在国外软件业的发展状况

纵观全世界软件产业的情况,易见一个奇特的现象:

美国处于绝对的垄断地位。

造成这种现象的一个根本的原因就是计算机科学在美国的飞速发展。

当今计算机科学界的最权威人士很多都是研究组合数学出身的。

美国最重要的计算机科学系(MIT,Princeton,Stanford,Harvard,Yale,….)都有第一流的组合数学家。

计算机科学通过对软件产业的促进,带来了巨大的效益,这已是不争之事实。

组合数学在国外早已成为十分重要的学科,甚至可以说是计算机科学的基础。

一些大公司,如IBM,AT&T都有全世界最强的组合研究中心。

Microsoft的BillGates近来也在提倡和支持计算机科学的基础研究。

例如,Bell实验室的有关线性规划算法的实现,以及有关计算机网络的算法,由于有明显的商业价值,显然是没有对外公开的。

美国已经有一种趋势,就是与新的算法有关的软件是可以申请专利的。

如果照这种趋势发展,世界各国对组合数学和计算机算法的投入和竞争必然日趋激烈。

美国政府也成立了离散数学及理论计算机科学中心DIMACS(与Princeton大学,Rutgers大学,AT&T联合创办的,设在Rutgers大学),该中心已是组合数学理论计算机科学的重要研究阵地。

美国国家数学科学研究所(MathematicalSciencesResearchInstitute,由陈省身先生创立)在1997年选择了组合数学作为研究专题,组织了为期一年的研究活动。

日本的NEC公司还在美国的设立了研究中心,理论计算机科学和组合数学已是他们重要的研究课题,该中心主任R.Tarjan即是组合数学的权威。

除上述以外,欧洲也在积极发展组合数学,英国、法国、德国、荷兰、丹麦、奥地利、瑞典、意大利、西班牙等国家都建立了各种形式的组合数学研究中心。

近几年,南美国家也在积极推动组合数学的研究。

澳大利亚,新西兰也组建了很强的组合数学研究机构。

值得一提的是亚洲的发达国家也十分重视组合数学的研究。

日本有组合数学研究中心,并且从美国引进人才,不仅支持日本国内的研究,还出资支持美国的有关课题的研究,这样使日本的组合数学这几年的发展极为迅速。

台湾、香港两地也从美国引进人才,大力发展组合数学。

新加坡,韩国,马来西亚也在积极推动组合数学的研究和人才培养。

台湾的数学研究中心也正在考虑把组合数学作为重点方向来发展。

世界各地对组合数学的如此钟爱显然是有原因的,那就是没有组合数学就没有计算机科学,没有计算机软件。

4Ramsey数在计算机科学中的应用

4.1 Ramsey定理和Ramsey数

 众所周知,若有n+1只鸽子同时飞进n个鸽巢中,则一定有某个鸽巢中至少飞进两只鸽,这就是有名的鸽巢原理(也叫抽屉原理)。

它非常简单,其正确性也显而易见,但却有很广泛的应用。

鸽巢原理有如下重要的推广:

Ramsey定理 设q1,q2,⋯,qn;t是正整数,且qi>=t(i=1,2,⋯,n),则存在最小的正整数r(记作r(q1,q2,⋯qn;t)使得:

对任意m元集合s,若mEr,当把S的所有t元子集放到n个盒子里时,那么存在某个i(1<=n)和某qi个元素,它的所有t元子集都在第i个盒子里。

这是称r(q1,q2,⋯qn;t)为Ramsey数。

上述定理是Ramsey1930年提出并给出证明。

当t=1时,Ramsey定理就是加强形式的鸽巢原理,且容易求出

r(q1,q2,⋯qn;1)=Σqi-n+1(i=1~n)

Ramsey定理是组合论中一个重要的存在性定理,它的发表推动了组合论等数理科学的发展,而且关于Ram2sey定理和Ramsey数自身的研究目前已成为组合学中一个重要的分支———n+1———Ramsey理论。

但是,Ram2sey定理只保证了Ramsey数的存在性,并没有给出计算Ramsey数的有效方法。

目前,确定Ramsey数的问题仍是一个尚未解决的大难题,要找到一个很小的Ramsey数是很困难的。

虽然如此,由于其重要的理论价值和广泛的应用价值,确定Ramsey数是很有意义的。

下面用两个例子说明Ramsey数在信息检索、分组交换网设计等计算机科学领域中的重要应用。

4.2 信息检索

信息检索是计算机科学中一个基本而又重要的问题。

如何组织数据,使用什么样的查找方法,对检索的效率有很大的影响。

所熟知的在有序表结构上的二分搜索算法是一种很有效的方法,那么二分搜索是最好的算法吗?

Yao利用Ramsey数对这一问题作了肯定的回答。

具体地讲,假设一个表有n个不同的项,其元素取自键空间M={1,2,⋯,m},希望找到在表中存储M的任意n元子集S的方法,使得容易回答下述询问:

X在S中吗?

如何存储M的n元子集的规则称为一个表结构或(m,n)2表结构。

最简单的表结构是有序表结构,它是按上升序列出S中的元素。

更一般的是按置换排序的表结构,其方法是固定{1,2,⋯,n}的一个置换,根据比置换的次序列出S中的元素。

信息检索的计算复杂性依赖于表结构和搜索策略。

复杂性的度量是最坏情形下确定x是否在S中所需要的询问次数。

例如,对有序表结构,如果用二分搜索,所需要的询问次数是[log2(n+1)]。

复杂性f(m,n)定义为所有的(m,n)2表结构和搜索策略下的复杂性的最小值。

关于f(m,n),Yao证明了:

定理1 对每个n,存在数N(n)使得f(m,n)=[log2(n+1)]对所有m>=N(n)成立。

据此定理,对充分大的m,就信息检索来说,用有序表结构是最有效的方法。

利用下述两个引理,立即可得此定理的证明。

引理1 若m>=2n-1,n>=2,对于按置换排序的表结构。

无论采用何种策略,在最坏情形下要确定x是否在S中至少需要[log2(n+1)]次检查。

引理2 给定n,存在数N(n)具有下述性质:

若m>=N(n),且给定一个(m,n)2表结构,则存在有2n-1个键的集合K,使得对应于K的n元子集的表形成按置换排序的表结构。

参考文献

【1】杨骅飞.组合数学及其应用[M].北京:

北京理工大学出版社,1992.

【2】杨振生.组合数学及其算法[M].合肥:

中国科学技术大学出版社,1997.

【3】卢开澄,卢华明.组合数学(第3版)[M].北京:

清华大学出版社,2002.

【4】

【5】陈树柏.网络图论及其应用[M].北京:

科学出版社,1982.

【6】hschild,J.H.spencer.RamseyTheory(secondedition)[M].JohnWiley8.Sons,New.York,1990.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1