计算机发展史 (计算机发展史PPT)

admin 2024-11-13 52 0

本文目录导航:

计算机发展史

1:计算机语言之父:尼盖德 10日,计算机编程语言的先驱克里斯汀·尼盖德死于心脏病,享年75岁。

尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。

据挪威媒体报道,尼盖德11日在挪威首都奥斯陆逝世。

尼盖德是奥斯陆大学的教授,因为发展了Simula编程语言,为MS-DOS和因特网打下了基础而享誉国际。

克里斯汀·尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。

1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。

因为表现出色,2001年,尼盖德和同事奥尔·约安·达尔获得了2001年A.M.图灵机奖及其它多个奖项。

当时为尼盖德颁奖的计算机协会认为他们的工作为Java,C++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世 世纪发现·从图灵机到冯·诺依曼机 英国科学家艾伦·图灵1937年发表著名的《论应用于解决问题的可计算数字》一文。

文中提出思考原理计算机——图灵机的概念,推进了计算机理论的发展。

1945年图灵到英国国家物理研究所工作,并开始设计自动计算机。

1950年,图灵发表题为《计算机能思考吗?》的论文,设计了著名的图灵测验,通过问答来测试计算机是否具有同人类相等的智力。

图灵提出了一种抽象计算模型,用来精确定义可计算函数。

图灵机由一个控制器、一条可无限伸延的带子和一个在带子上左右移动的读写头组成。

这个在概念上如此简单的机器,理论上却可以计算任何直观可计算的函数。

图灵机作为计算机的理论模型,在有关计算机和计算复杂性的研究方面得到广泛应用。

计算机是人类制造出来的信息加工工具。

如果说人类制造的其他工具是人类双手的延伸,那么计算机作为代替人脑进行信息加工的工具,则可以说是人类大脑的延伸。

最初真正制造出来的计算机是用来解决数值计算问题的。

二次大战后期,当时为军事目的进行的一系列破译密码和弹道计算工作,越来越复杂。

大量的数据、复杂的计算公式,即使使用电动机械计算器也要耗费相当的人力和时间。

在这种背景下,人们开始研制电子计算机。

世界上第一台计算机“科洛萨斯”诞生于英国,“科洛萨斯”计算机是1943年3月开始研制的,当时研制“科洛萨斯”计算机的主要目的是破译经德国“洛伦茨”加密机加密过的密码。

使用其他手段破译这种密码需要6至8个星期,而使用‘科洛萨斯’计算机则仅需6至8小时。

1944年1月10日,“科洛萨斯”计算机开始运行。

自它投入使用后,德军大量高级军事机密很快被破译,盟军如虎添翼。

“科洛萨斯”比美国的ENIAC计算机问世早两年多,在二战期间破译了大量德军机密,战争结束后,它被秘密销毁了,故不为人所了解。

尽管第一台电子计算机诞生于英国,但英国没有抓住由计算机引发的技术和产业革命的机遇。

相比之下,美国抓住了这一历史机遇,鼓励发展计算机技术和产业,从而崛起了一大批计算机产业巨头,大大促进了美国综合国力的发展。

1944年美国国防部门组织了有莫奇利和埃克脱领导的ENIAC计算机的研究小组,当时在普林斯顿大学工作的现代计算机的奠基者美籍匈牙利数学家冯·诺依曼也参加了者像研究工作。

1946年研究工作获得成功,制成了世界上第一台电子数字计算机ENIAC。

这台用只电子管组成的计算机,尽管体积庞大,耗电量惊人,功能有限,但是确实起了节约人力节省时间的作用,而且开辟了一个计算机科学技术的新纪元。

这也许连制造它的科学家们也是始料不及的。

最早的计算机尽管功能有限,和现代计算机有很大的差别,但是它已具备了现代计算机的基本部分,那就是运算器、控制器和存储器。

运算器就象算盘,用来进行数值运算和逻辑运算,并获得计算结果。

而控制器就象机算机的司令部,指挥着计算机各个部分的工作,它的指挥是靠发出一系列控制信号完成的。

计算机的程序、数据、以及在运算中产生的中间结果以及最后结果都要有个存储的地方,这就是计算机的第三个部件——存储器。

计算机是自动进行计算的,自动计算的根据就是存储于计算机中的程序。

现代的计算机都是存储程序计算机,又叫冯·诺依曼机,这是因为存储程序的概念是冯·诺依曼提出的。

人们按照要解决的问题的数学描述,用计算机能接受的“语言”编制成程序,输入并存储于计算机,计算机就能按人的意图,自动地高速地完成运算并输出结果。

程序要为计算机提供要运算的数据、运算的顺序、进行何种运算等等。

微电子技术的产生使计算机的发展又有了新的机遇,它使计算机小型化成为可能。

微电子技术的发展可以追溯到晶体管的出现。

1947年美国电报电话公司的贝尔实验室的三位学家巴丁、不赖顿和肖克莱制成第一支晶体管,开始了以晶体管代替电子管的时代。

晶体管的出现可以说是集成电路出台的序幕。

晶体管出现后,一些科学家发现,把电路元器件和连线像制造晶体管那样做在一块硅片上可实现电路的小型化。

于是,晶体管制造工业经过10年的发展后,1958年出现了第一块集成电路。

微电子技术的发展,集成电路的出现,首先引起了计算机技术的巨大变革。

现代计算机多把运算器和控制器做在一起,叫微处理器,由于计算机的心脏——微处理器(计算机芯片)的集成化,使微型计算机应运尔生,并在70-80年代间得到迅速发展,特别是IBM PC个人计算机出现以后,打开了计算机普及的大门,促进了计算机在各行各业的应用,五六十年代,价格昂贵、体积庞大、耗电量惊人的计算机,只能在少数大型军事或科研设施中应用,今天由于采用了大规模集成电路,计算机已经进入普通的办公室和家庭。

标志集成电路水平的指标之一是集成度,即在一定尺寸的芯片上能做出多少个晶体管,从集成电路出现到今天,仅40余年,发展的速度却是惊人的,芯片越做越小,这对生产、生活的影响也是深远的。

ENIAC计算机占地150平方米,重达30吨,耗电量几百瓦,其所完成的计算,今天高级一点的袖珍计算器皆可完成。

这就是微电子技术和集成电路所创造的奇迹。

现状与前景 美国科学家最近指出,经过30多年的发展,计算机芯片的微型化已接近极限。

计算机技术的进一步发展只能寄希望于全新的技术,如新材料、新的晶体管设计方法和分子层次的计算技术。

过去30多年来,半导体工业的发展基本上遵循穆尔法则,即安装在硅芯片上的晶体管数目每隔18个月就翻一番。

芯片体积越来越小,包含的晶体管数目越来越多,蚀刻线宽越来越小;计算机的性能也因而越来越高,同时价格越来越低。

但有人提出,这种发展趋势最多只能再持续10到15年的时间。

美国最大的芯片生产厂商英特尔公司的科学家保罗·A·帕坎最近在美国《科学》杂志上撰文说,穆尔法则(1965年提出的预测半导体能力将以几何速度增长的法则)也许在未来10年里就会遇到不可逾越的障碍:芯片的微型化已接近极限。

人们尚未找到超越该极限的方法,一些科学家将其称之为“半导体产业面临的最大挑战”。

目前最先进的超大规模集成电路芯片制造技术所能达到的最小线宽约为0.18微米,即一根头发的5%那样宽。

晶体管里的绝缘层只有4到5个原子那样厚。

日本将于2000年初开始批量生产线宽只有0. 13微米的芯片。

预计这种芯片将在未来两年得到广泛应用。

下一步是推出线宽0. 1微米的的芯片。

帕坎说,在这样小的尺寸上,晶体管只能由不到100个原子构成。

芯片线宽小到一定程度后,线路与线路之间就会因靠得太近而容易互相干扰。

而如果通过线路的电流微弱到只有几十个甚至几个电子,信号的背景噪声将大到不可忍受。

尺寸进一步缩小,量子效应就会起作用,使传统的计算机理论完全失效。

在这种情况下,科学家必须使用全新的材料、设计方法乃至运算理论,使半导体业和计算机业突破传统理论的极限,另辟蹊径寻求出路。

当前计算机发展的主流是什么呢?国内外比较一致的看法是 RISC RISC是精简指令系统计算机(Reduced Instruction Set Computer)的英文缩写。

所谓指令系统计算机所能执行的操作命令的集合。

程序最终要变成指令的序列,计算机能执行。

计算机都有自己的指令系统,对于本机指令系统的指令,计算机能识别并执行,识别就是进行译码——把代表操作的二进制码变成操作所对应的控制信号,从而进行指令要求的操作。

一般讲,计算机的指令系统约丰富,它的功能也约强。

RISC系统将指令系统精简,使系统简单,目的在于减少指令的执行时间,提高计算机的处理速度。

传统的计算机一般都是每次取一条指令,而RISC系统采用多发射结构,在同一时间发射多条指令,当然这必须增加芯片上的执行部件。

并行处理技术 并行处理技术也是提高计算机处理速度的重要方向,传统的计算机,一般只有一个中央处理器,中央处理器中执行的也只是一个程序,程序的执行是一条接一条地顺序进行,通过处理器反映程序的数据也是一个接一个的一串,所以叫串行执行指令。

并行处理技术可在同一时间内多个处理器中执行多个相关的或独立的程序。

目前并行处理系统分两种:一种具有4个、8个甚至32个处理器集合在一起的并行处理系统,或称多处理机系统;另一种是将100个以上的处理器集合在一起,组成大规模处理系统。

这两种系统不仅是处理器数量多少之分,其内部互连方式、存储器连接方式、操作系统支持以及应用领域都有很大的不同。

曾经有一段时间,超级计算机是利用与普通计算机不同的材料制造的。

最早的克雷1号计算机是利用安装在镀铜的液冷式电路板上的奇形怪状的芯片、通过手工方式制造的。

而克雷2号计算机看起来更加奇怪,它在一个盛有液态碳氟化合物的浴器中翻腾着气泡———采用的是“人造血液”冷却。

并行计算技术改变了所有这一切。

现在,世界上速度最快的计算机是美国的“Asci Red”, 这台计算机的运算速度为每秒钟2·1万亿次,它就是利用与个人计算机和工作站相同的元件制造的,只不过超级计算机采用的元件较多而已,内部配置了9000块标准奔腾芯片。

鉴于目前的技术潮流,有一点是千真万确的,那就是超级计算机与其它计算机的差别正在开始模糊。

至少在近期,这一趋势很明显将会继续下去。

那么,哪些即将到来的技术有可能会扰乱计算技术的格局,从而引发下一次超级计算技术革命呢? 这样的技术至少有三种:光子计算机、生物计算机和量子计算机。

它们能够成为现实的可能性都很小,但是由于它们具有引发革命的潜力,因此是值得进行研究的。

光子计算机 光子计算机可能是这三种新技术中最接近传统的一种。

几十年来,这种技术已经得到了有限的应用,尤其是在军用信号处理方面。

在光子计算技术中,光能够像电一样传送信息,甚至传送效果更好,,光束在把信息从一地传送至另一地的效果要优于电,这也就是电话公司利用光缆进行远距离通信的缘故。

光对通信十分有用的原因,在于它不会与周围环境发生相互影响,这是它与电不同的一点。

两束光线可以神不知鬼不觉地互相穿透。

光在长距离内传输要比电子信号快约100倍,光器件的能耗非常低。

预计,光子计算机的运算速度可能比今天的超级计算机快1000到倍。

令人遗憾的是,正是这种极端的独立性使得人们难以制造出一种全光子计算机,因为计算处理需要利用相互之间的影响。

要想制造真正的光子计算机,就必须开发出光学晶体管,这样就可以用一条光束来开关另一条光束了。

这样的装置已经存在,但是要制造具有适合的性能特征的光学晶体管,还需要仰仗材料科学领域的重大突破。

生物计算机 与光子计算技术相比,大规模生物计算技术实现起来更为困难,不过其潜力也更大。

不妨设想一种大小像柚子,能够进行实时图像处理、语音识别及逻辑推理的超级计算机。

这样的计算机已经存在:它们就是人脑。

自本世纪70年代以来,人们开始研究生物计算机(也叫分子计算机),随着生物技术的稳步发展,我们将开始了解并操纵制造大脑的基因学机制。

生物计算机将具有比电子计算机和光学计算机更优异的性能。

如果技术进步继续保持目前的速度,可以想像在一二十年之后,超级计算机将大量涌现。

这听起来也许像科幻小说,但是实际上已经出现了这方面的实验。

例如,硅片上长出排列特殊的神经元的“生物芯片”已被生产出来。

在另外一些实验室里,研究人员已经利用有关的数据对DNA的单链进行了编码,从而使这些单链能够在烧瓶中实施运算。

这些生物计算实验离实用还很遥远,然而1958年时我们对集成电路的看法也不过如此。

量子计算机 量子力学是第三种有潜力创造超级计算革命的技术。

这一概念比光子计算或生物计算的概念出现得晚,但是却具有更大的革命潜力。

由于量子计算机利用了量子力学违反直觉的法则,它们的潜在运算速度将大大快于电子计算机。

事实上,它们速度的提高差不多是没有止境的。

一台具有5000个左右量子位的量子计算机可以在大约3 0秒内解决传统超级计算机需要100亿年才能解决的素数问题。

眼下恰好有一项重要的用途适合这种貌似深奥的作业。

通过对代表数据的代码进行加密,计算机数据得到保护。

而解密的数学“钥匙”是以十分巨大的数字——一般长达250位——及其素数因子的形式出现的。

这样的加密被认为是无法破译的,因为没有一台传统计算机能够在适当的时间里计算出如此巨大数字的素数因子。

但是,至少在理论上,量子计算机可以轻易地处理这些素数加密方案。

因此,量子计算机黑客将不仅能够轻而易举地获得常常出没于各种计算机网络(包括因特网)中的信用卡号码及其他个人信息,而且能够轻易获取政府及军方机密。

这也正是某些奉行“宁为人先、莫落人后”这一原则的政府机构一直在投入巨资进行量子计算机研究的原因。

量子超级网络引擎 量子计算机将不大可能破坏因特网的完整性,不仅如此,它们到头来还可能给因特网带来巨大的好处。

两年前,贝尔实验室的研究人员洛夫·格罗弗发现了用量子计算机处理我们许多人的一种日常事务的方法———搜寻隐藏在浩如烟海的庞大数据库内的某项信息。

寻找数据库中的信息就像是在公文包里找东西一样。

如果各不相同的量子位状态组合分别检索数据库不同的部分,那么其中的一种状态组合将会遭遇到所需查找的信息。

由于某些技术的限制,量子搜索所能带来的速度提高并没有预计的那么大,例如,如果要在1亿个地址中搜索某个地址,传统计算机需要进行大约5000万次尝试才能找到该地址;而量子计算机则需大约1万次尝试,不过这已经是很大的改善了,如果数据库增大的话,改善将会更大。

此外,数据库搜索是一种十分基础的计算机任务,任何的改善都很可能对大批的应用产生影响。

迄今为止,很少有研究人员愿意预言量子计算机是否将会得到更为广泛的应用。

尽管如此,总的趋势一直是喜人的。

尽管许多物理学家————如果不是全部的话———一开始曾认为量子力学扑朔迷离的本性必定会消除实用量子计算技术面临的难以捉摸而又根深蒂固的障碍,但已经进行的深刻而广泛的理论研究却尚未能造就一台实实在在的机器。

那么,量子计算机的研究热潮到底意味着什么?计算技术的历史表明,总是先有硬件和软件的突破,然后才出现需要由它们解决的问题。

或许,到我们需要检索那些用普通计算机耗时数月才能查完的庞大数据库时,量子计算机才将会真正开始投入运行。

研究将能取代电子计算机的技术并非易事。

毕竟,采用标准微处理器技术的并行计算机每隔几年都会有长足的进步。

因此,任何要想取代它的技术必须极其出色。

不过,计算技术领域的进步始终是十分迅速的,并且充满了意想不到的事情。

对未来的预测从来都是靠不住的,事后看来,那些断言“此事不可行”的说法,才是最最愚蠢的。

除了超级计算机外,未来计算机还会在哪些方面进行发展呢? 多媒体技术 多媒体技术是进一步拓宽计算机应用领域的新兴技术。

它是把文字、数据、图形、图像和声音等信息媒体作为一个集成体有计算机来处理,把计算机带入了一个声、文、图集成的应用领域。

多媒体必须要有显示器、键盘、鼠标、操纵杆、视频录象带/盘、摄象机、输入/输出、电讯传送等多种外部设备。

多媒体系统把计算机、家用电器、通信设备组成一个整体由计算机统一控制和管理。

多媒体系统将对人类社会产生巨大的影响。

网络 当前的计算机系统多是连成网络的计算机系统。

所谓网络,是指在地理上分散布置的多台独立计算机通过通信线路互连构成的系统。

根据联网区域的大小,计算机网络可分成居域网和远程网。

小至一个工厂的各个车间和办公室,大到跨洲隔洋都可构成计算机网。

因特网将发展成为人类社会中一股看不见的强大力量--它悄无声息地向人们传递各种信息,以最快、最先进的手段方便人类的工作和生活。

现在的因特网发展有将世界变成“地球村”的趋势。

专家认为PC机不会马上消失,而同时单功能或有限功能的终端设备(如手执电脑、智能电话)将挑战PC机作为计算机革新动力的地位。

把因特网的接入和电子邮件的功能与有限的计算功能结合起来的“置顶式”计算机如网络电视将会很快流行开来。

单功能的终端最终会变得更易应用 智能化计算机 我们对大脑的认识还很肤浅,但是使计算机智能化的工作绝不能等到人们对大脑有足够认识以后才开始。

使计算机更聪明,从开始就是人们不断追求的目标。

目前用计算机进行的辅助设计、翻译、检索、绘图、写作、下棋、机械作业等方面的发展,已经向计算机的智能化迈进了一步。

随着计算机性能的不断提高,人工智能技术在徘徊了50年之后终于找到了露脸的机会,世界头号国际象棋大师卡斯帕罗夫向“深蓝”的俯首称臣,让人脑第一次尝到了在电脑面前失败的滋味。

人类从来没有像今天这样深感忧惧,也从来没有像今天这样强烈地感受到认识自身的需要。

目前的计算机,多数是冯·诺依曼型计算机,它在认字、识图、听话及形象思维方面的功能特别差。

为了使计算机更加人工智能化,科学家开始使计算机模拟人类大脑的功能,近年来,各先进国家注意开展人工神经网络的研究,向计算机的智能化迈出了重要的一步。

人工神经网络的特点和优越性,主要表现在三个方面:具有自学功能。

六如实现图象识别时,只要线把许多不同的图象样板和对应的应识别的结果输入人工神经网络,网络就会通过自学功能,漫漫学会识别类似的图像。

自学功能对于预测有特别重要的意义。

预期未来的人工神经网络计算机将为人类提供同经济预测、市场预测、效益预测、其前途是很远大的。

具有联想储存功能。

人的大脑是具有两厢功能的。

如果有人和你提起你幼年的同学张某某。

,你就会联想起张某某的许多事情。

用人工神经网络的反馈网络就可以实现这种联想。

具有高速寻找优化解的能力。

寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。

人工神经网络是未来为电子技术应用的新流域。

智能计算机的构成,可能就是作为主机的冯·诺依曼机与作为智能外围的人工神经网络的结合。

人们普遍认为智能计算机将像穆尔定律(1965年提出的预测半导体能力将以几何速度增长的定律)的应验那样必然出现。

提出这一定律的英特尔公司名誉董事长戈登·穆尔本人也同意这一看法,他认为:“硅智能将发展到很难将计算机和人区分开来的程度。

”但是计算机智能不会到此为止。

许多科学家断言,机器的智慧会迅速超过阿尔伯特·爱因斯坦和霍金的智慧之和。

霍金认为,就像人类可以凭借其高超的捣弄数字的能力来设计计算机一样,智能机器将创造出性能更好的计算机。

最迟到下个世纪中叶(而且很可能还要快得多),计算机的智能也许就会超出人类的理解能力。

世纪发现·从图灵机到冯·诺依曼机 英国科学家艾伦·图灵1937年发表著名的《论应用于解决问题的可计算数字》一文。

文中提出思考原理计算机——图灵机的概念,推进了计算机理论的发展。

1945年图灵到英国国家物理研究所工作,并开始设计自动计算机。

1950年,图灵发表题为《计算机能思考吗?》的论文,设计了著名的图灵测验,通过问答来测试计算机是否具有同人类相等的智力。

图灵提出了一种抽象计算模型,用来精确定义可计算函数。

图灵机由一个控制器、一条可无限伸延的带子和一个在带子上左右移动的读写头组成。

这个在概念上如此简单的机器,理论上却可以计算任何直观可计算的函数。

图灵机作为计算机的理论模型,在有关计算机和计算复杂性的研究方面得到广泛应用。

计算机是人类制造出来的信息加工工具。

如果说人类制造的其他工具是人类双手的延伸,那么计算机作为代替人脑进行信息加工的工具,则可以说是人类大脑的延伸。

最初真正制造出来的计算机是用来解决数值计算问题的。

二次大战后期,当时为军事目的进行的一系列破译密码和弹道计算工作,越来越复杂。

大量的数据、复杂的计算公式,即使使用电动机械计算器也要耗费相当的人力和时间。

在这种背景下,人们开始研制电子计算机。

世界上第一台计算机“科洛萨斯”诞生于英国,“科洛萨斯”计算机是1943年3月开始研制的,当时研制“科洛萨斯”计算机的主要目的是破译经德国“洛伦茨”加密机加密过的密码。

使用其他手段破译这种密码需要6至8个星期,而使用‘科洛萨斯’计算机则仅需6至8小时。

1944年1月10日,“科洛萨斯”计算机开始运行。

自它投入使用后,德军大量高级军事机密很快被破译,盟军如虎添翼。

“科洛萨斯”比美国的ENIAC计算机问世早两年多,在二战期间破译了大量德军机密,战争结束后,它被秘密销毁了,故不为人所了解。

尽管第一台电子计算机诞生于英国,但英国没有抓住由计算机引发的技术和产业革命的机遇。

相比之下,美国抓住了这一历史机遇,鼓励发展计算机技术和产业,从而崛起了一大批计算机产业巨头,大大促进了美国综合国力的发展。

1944年美国国防部门组织了有莫奇利和埃克脱领导的ENIAC计算机的研究小组,当时在普林斯顿大学工作的现代计算机的奠基者美籍匈牙利数学家冯·诺依曼也参加了者像研究工作。

1946年研究工作获得成功,制成了世界上第一台电子数字计算机ENIAC。

这台用只电子管组成的计算机,尽管体积庞大,耗电量惊人,功能有限,但是确实起了节约人力节省时间的作用,而且开辟了一个计算机科学技术的新纪元。

这也许连制造它的科学家们也是始料不及的。

最早的计算机尽管功能有限,和现代计算机有很大的差别,但是它已具备了现代计算机的基本部分,那就是运算器、控制器和存储器。

运算器就象算盘,用来进行数值运算和逻辑运算,并获得计算结果。

而控制器就象机算机的司令部,指挥着计算机各个部分的工作,它的指挥是靠发出一系列控制信号完成的。

计算机的程序、数据、以及在运算中产生的中间结果以及最后结果都要有个存储的地方,这就是计算机的第三个部件——存储器。

计算机是自动进行计算的,自动计算的根据就是存储于计算机中的程序。

现代的计算机都是存储程序计算机,又叫冯·诺依曼机,这是因为存储程序的概念是冯·诺依曼提出的。

人们按照要解决的问题的数学描述,用计算机能接受的“语言”编制成程序,输入并存储于计算机,计算机就能按人的意图,自动地高速地完成运算并输出结果。

程序要为计算机提供要运算的数据、运算的顺序、进行何种运算等等。

微电子技术的产生使计算机的发展又有了新的机遇,它使计算机小型化成为可能。

微电子技术的发展可以追溯到晶体管的出现。

1947年美国电报电话公司的贝尔实验室的三位学家巴丁、不赖顿和肖克莱制成第一支晶体管,开始了以晶体管代替电子管的时代。

晶体管的出现可以说是集成电路出台的序幕。

晶体管出现后,一些科学家发现,把电路元器件和连线像制造晶体管那样做在一块硅片上可实现电路的小型化。

于是,晶体管制造工业经过10年的发展后,1958年出现了第一块集成电路。

微电子技术的发展,集成电路的出现,首先引起了计算机技术的巨大变革。

现代计算机多把运算器和控制器做在一起,叫微处理器,由于计算机的心脏——微处理器(计算机芯片)的集成化,使微型计算机应运尔生,并在70-80年代间得到迅速发展,特别是IBM PC个人计算机出现以后,打开了计算机普及的大门,促进了计算机在各行各业的应用,五六十年代,价格昂贵、体积庞大、耗电量惊人的计算机,只能在少数大型军事或科研设施中应用,今天由于采用了大规模集成电路,计算机已经进入普通的办公室和家庭。

标志集成电路水平的指标之一是集成度,即在一定尺寸的芯片上能做出多少个晶体管,从集成电路出现到今天,仅40余年,发展的速度却是惊人的,芯片越做越小,这对生产、生活的影响也是深远的。

ENIAC计算机占地150平方米,重达30吨,耗电量几百瓦,其所完成的计算,今天高级一点的袖珍计算器皆可完成。

这就是微电子技术和集成电路所创造的奇迹。

计算机发展史 (计算机发展史PPT)

什么是生物信息学?

生物信息学一, 生物信息学发展简介生物信息学是建立在分子生物学的基础上的,因此,要了解生物信息学,就必须先对分子生物学的发展有一个简单的了解.研究生物细胞的生物大分子的结构与功能很早就已经开始,1866年孟德尔从实验上提出了假设:基因是以生物成分存在[1],1871年Miescher从死的白细胞核中分离出脱氧核糖核酸(DNA),在Avery和McCarty于1944年证明了DNA是生命器官的遗传物质以前,人们仍然认为染色体蛋白质携带基因,而DNA是一个次要的角色.1944年Chargaff发现了著名的Chargaff规律,即DNA中鸟嘌呤的量与胞嘧定的量总是相等,腺嘌呤与胸腺嘧啶的量相等.与此同时,Wilkins与Franklin用X射线衍射技术测定了DNA纤维的结构.1953年James Watson 和FrancisCrick在Nature杂志上推测出DNA的三维结构(双螺旋)以磷酸糖链形成发双股螺旋,脱氧核糖上的碱基按Chargaff规律构成双股磷酸糖链之间的碱基对.这个模型表明DNA具有自身互补的结构,根据碱基对原则,DNA中贮存的遗传信息可以精确地进行复制.他们的理论奠定了分子生物学的基础双螺旋模型已经预示出了DNA复制的规则,Kornberg于1956年从大肠杆菌()中分离出DNA聚合酶I(DNA polymerase I),能使4种dNTP连接成的复制需要一个DNA作为模板与Stahl(1958)用实验方法证明了DNA复制是一种半保留复制于1954年提出了遗传信息传递的规律,DNA是合成RNA的模板,RNA又是合成蛋白质的模板,称之为中心法则(Central dogma),这一中心法则对以后分子生物学和生物信息学的发展都起到了极其重要的指导作用.经过Nirenberg和Matthai(1963)的努力研究,编码20氨基酸的遗传密码得到了破译.限制性内切酶的发现和重组DNA的克隆(clone)奠定了基因工程的技术基础.正是由于分子生物学的研究对生命科学的发展有巨大的推动作用,生物信息学的出现也就成了一种必然.2001年2月,人类基因组工程测序的完成,使生物信息学走向了一个高潮.由于DNA自动测序技术的快速发展,DNA数据库中的核酸序列公共数据量以每天106bp速度增长,生物信息迅速地膨胀成数据的海洋.毫无疑问,我们正从一个积累数据向解释数据的时代转变,数据量的巨大积累往往蕴含着潜在突破性发现的可能,生物信息学正是从这一前提产生的交叉学科.粗略地说,该领域的核心内容是研究如何通过对DNA序列的统计计算分析,更加深入地理解DNA序列,结构,演化及其与生物功能之间的关系,其研究课题涉及到分子生物学,分子演化及结构生物学,统计学及计算机科学等许多领域.生物信息学是内涵非常丰富的学科,其核心是基因组信息学,包括基因组信息的获取,处理,存储,分配和解释.基因组信息学的关键是读懂基因组的核苷酸顺序,即全部基因在染色体上的确切位置以及各DNA片段的功能;同时在发现了新基因信息之后进行蛋白质空间结构模拟和预测,然后依据特定蛋白质的功能进行药物设计[2].了解基因表达的调控机理也是生物信息学的重要内容,根据生物分子在基因调控中的作用,描述人类疾病的诊断,治疗内在规律.它的研究目标是揭示基因组信息结构的复杂性及遗传语言的根本规律,解释生命的遗传语言.生物信息学已成为整个生命科学发展的重要组成部分,成为生命科学研究的前沿.二, 生物信息学的主要研究方向生物信息学在短短十几年间,已经形成了多个研究方向,以下简要介绍一些主要的研究重点.1,序列比对(Sequence Alignment)序列比对的基本问题是比较两个或两个以上符号序列的相似性或不相似性.从生物学的初衷来看,这一问题包含了以下几个意义[3]:从相互重叠的序列片断中重构DNA的完整序列.在各种试验条件下从探测数据(probe target=_blank>生物信息学(Bioinformatics)是在生命科学的研究中,以计算机为工具对生物信息进行储存、检索和分析的科学。

它是当今生命科学和自然科学的重大前沿领域之一,同时也将是21世纪自然科学的核心领域之一。

其研究重点主要体现在基因组学(Genomics)和蛋白学(Proteomics)两方面,具体说就是从核酸和蛋白质序列出发,分析序列中表达的结构功能的生物信息。

生物信息学是一门利用计算机技术研究生物系统之规律的学科。

目前的生物信息学基本上只是分子生物学与信息技术(尤其是因特网技术)的结合体。

生物信息学的研究材料和结果就是各种各样的生物学数据,其研究工具是计算机,研究方法包括对生物学数据的搜索(收集和筛选)、处理(编辑、整理、管理和显示)及利用(计算、模拟)。

1990年代以来,伴随着各种基因组测序计划的展开和分子结构测定技术的突破和Internet的普及,数以百计的生物学数据库如雨后春笋般迅速出现和成长。

对生物信息学工作者提出了严峻的挑战:数以亿计的ACGT序列中包涵着什么信息?基因组中的这些信息怎样控制有机体的发育?基因组本身又是怎样进化的?生物信息学的另一个挑战是从蛋白质的氨基酸序列预测蛋白质结构。

这个难题已困扰理论生物学家达半个多世纪,如今找到问题答案要求正变得日益迫切。

诺贝尔奖获得者W. Gilbert在1991年曾经指出:“传统生物学解决问题的方式是实验的。

现在,基于全部基因都将知晓,并以电子可操作的方式驻留在数据库中,新的生物学研究模式的出发点应是理论的。

一个科学家将从理论推测出发,然后再回到实验中去,追踪或验证这些理论假设”。

生物信息学的主要研究方向: 基因组学 - 蛋白质组学 - 系统生物学 - 比较基因组学

NP问题真的很难理解

原文地址:

希望通过这篇文章可以不仅让计算机相关专业的人可以看懂和区分什么是P类问题什么是NP类问题,更希望达到的效果是非专业人士比如学文科的朋友也可以有一定程度的理解。

有一则程序员界的笑话,就是有一哥们去google面试的时候被问到一个问题是:在什么情况下P=NP,然后他的回答是”当N=1的时候”。

这是我第一次听说P=NP问题,大概是在临近毕业为找工作而准备的时候。

这几天科技类新闻的头条都被阿尔法狗大战李世石刷爆了,虽然我也不是AI专家,但是也想从普通人的角度来写点东西来聊聊这个有意思的事情,在搜集资料的时候又一次看到了NP问题,于是想开个小差,在写下一篇文章《AI是怎么下围棋的?》之前,先说说这个NP问题哈。

最简单的定义是这样的: P问题: 一个问题可以在多项式()的时间复杂度内解决。

NP问题: 一个问题的解可以在多项式的时间内被验证。

NP-hard问题: 任意np问题都可以在多项式时间内归约为该问题,但该问题本身不一定是NP问题。

归约的意思是为了解决问题A,先将问题A归约为另一个问题B,解决问题B同时也间接解决了问题A。

NPC问题: 既是NP问题,也是NP-hard问题。

这样的定义虽然简单,但是对于第一次接触P、NP的人来说,就像前一阵问你什么是“引力波”而你回答:引力波是时空的涟漪。

从答案中几乎没有得到任何有意义的理解。

所以接来来的内容希望不仅计算机相关专业的人可以看懂,希望达到的效果是文科生们也可以有一定程度的理解。

现阶段虽然电脑已经非常的普及,有人用它来上网,有用它来的游戏,有用它来看片,但是很少人有还在乎电脑的本质是计算机,它在给人们的日常生活带来娱乐和方便的同时表现的其实是其庞大的计算能力。

日常生活中我们使用的各种五花八门的软件,其实都是一组计算机程序,而程序则可以看作是一系列算法,而我们看到的计算机的硬件的作用就是处理这些算法。

这里的所说算法不只是简单的加减乘除,而是包括下面这些要素: 算术运算:加减乘除等运算 逻辑运算:或、且、非等运算 关系运算:大于、小于、等于、不等于等运算 数据传输:输入、输出、赋值等运算 以及通过控制结构来控制处理这些运算或操作的顺序。

说到这里有点担心有些朋友已经不是很明白了,举个例子吧。

我们如何从n个数里面挑出最大的数。

这个简单吧,就只需要一个一个数的对比过去就行了。

具体说也就是先比较n和n-1,记下比较大的那个数,接着我们再比较记下的这个数和n-2,又记下比较大的数,这样一直比到最后一个数。

这整个比较的过程我们就可以把其叫作算法,而这个算法就包含了上述的这些要素。

给我们的n个数就是算法的输入数据,我们要挑选出最大的那个数就是算法的输出数据,当中我们判断大小的时候必然采用了一些基础的算术运算或关系运算。

希望说到这里大家能够基本理解什么是算法,因为接下来我要花一点时间说说什么是算法的时间复杂度。

要计算或解决一个问题,该问题通常有一个大小规模,用n表示。

我们还是引用上面的例子,从n个数里面找出最大的那个数,这个n就是该问题的规模大小。

怎么找呢?我们要通过比较n-1次才能得到结果,这个n-1次就可以理解为所花的时间,也就是时间复杂度。

再比如,将这n个数按从大至小排序,n是其规模大小,若是我们按照这样的方法:第一次从n个数里找最大,第二次从n-1个数里找最大,以此类推,需要的比较次数就是n(n-1)/2。

我们所用的方法称之库为算法,那么n(n-1)/2就是该算法的时间复杂度。

对于时间复杂度,当n足够大时,我们只注重最高次方的那一项,其他各项可以忽略,另外,其常数系数也不重要,所以,n(n-1)/2我们只重视n的平方这一项了,记为,这就是该算法对该问题的时间复杂度的专业表示。

时间复杂度其实并不是表示一个程序解决问题具体需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。

也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。

不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是,比如找n个数中的最大值;而像冒泡排序、插入排序等,数据扩大2倍,时间变慢4倍的,属于的复杂度。

还有一些穷举类的算法,所需时间长度成几何阶数上涨,这就是的指数级复杂度,甚至的阶乘级复杂度。

不会存在的复杂度,因为前面的那个“2”是系数,根本不会影响到整个程序的时间增长。

同样地,的复杂度也就是的复杂度。

因此,我们会说,一个的程序的效率比的效率低,尽管在n很小的时候,前者优于后者,但后者时间随数据规模增长得慢,最终的复杂度将远远超过。

我们也说,的复杂度小于的复杂度。

Ok,写到这里总算要引入正题了,容易看的出,前面的几类时间复杂度可以分为两种级别:一种是,,等,我们把它叫做多项式级的复杂度,因为它的规模n出现在底数的位置;另一种是和型复杂度,它是非多项式级的,其复杂度往往计算机都不能承受。

是时候引入P、NP问题的概念了: 如果一个问题可以找到一个能在多项式的时间复杂度里解决它的算法,那么这个问题就属于P问题 。

而NP问题的理解并不是NotP,NP问题不是非P类问题。

NP问题是指可以在多项式的时间里验证一个解的问题,NP问题的另一个定义是,可以在多项式的时间里猜出一个解的问题。

P类问题相信不用举太多的例子来说明了,上面提到的找最大数,排序等问题都是P类问题,而要更好的理解NP问题需要另外举一个例子。

大整数因式分解问题-比如有人告诉你数可以分解成两个数的乘积,你不知道到底对不对,但是如果告诉你这两个数是1123和8850,那么很容易就可以用最简单的计算器进行验证。

最短路径问题-某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径——最短路径。

如上图,比如告诉你从点0到点5的最短路径是22,要验证的话只需要0->1,加上1->5,13+9=22,时间复杂度是常量,假如从上图的六个点扩大到n个点的话,验证过程所需要的算法时间很杂度也都是。

如果没有告诉你最短路径是多要,要用算法来求解的话,我们可以这样来“猜测”它的解:先求一个总路程不超过 100的方案,假设我们可以依靠极好的运气“猜出”一个路线,使得总长度确实不超过100,那么我们只需要每次猜一条路一共猜n次。

接下来我们再找总长度不超过 50 的方案,找不到就将阈值提高到75…… 假设最后找到了总长度为 90 的方案,而找不到总长度小于90的方案。

我们最终便在多项式时间内“猜”到了这个旅行商问题的解是一个长度为 90 的路线。

是否有不是NP问题的问题呢?有。

就是对于那些验证解都无法在多项式时间复杂度内完成的问题。

比如问:一个图中是否不存在Hamilton回路? 从图中的任意一点出发,最终回到起点,路途中经过图中每一个结点当且仅当一次,则成为哈密顿回路。

验证Hamilton回路只需要把给定的路径走一次看是不是只每个结点只经过一次,而验证不存在Hamilton回路则需要把每条路径都走一遍否则不敢说不存在Hamilton回路。

之所以要特别的定义NP问题,就在于我们不会去为那些无法在多项式时间复杂度内验证的问题去在多项式的时间复杂度内求它的解,有点拗口,但是多看几遍应该明白,通俗的讲就是对于一个问题告诉你答案让你去验证都需要很长很长时间,可以相像要用算法去求解的话必定需要更长时间。

那么反过来说,所有的P类问题都是NP问题。

也就是说,能多项式地解决一个问题,必然能多项式地验证一个问题的解——既然正解都出来了,验证任意给定的解也只需要比较一下就可以了,大不了再算一次给你看也只需要多项式的时间复杂度。

关键是,人们想知道,是否所有的NP问题都是P类问题,也就是说是否所有可以用多项式时间验证的问题,也可以在多项式时间内求解。

我们可以用集合的观点来说明。

如果把所有P类问题归为一个集合P中,把所有NP问题划进另一个集合NP中,那么,显然有P属于NP。

现在,所有对NP问题的研究都集中在一个问题上,即究竟是否有P=NP? 通常所谓的“NP问题”,其实就一句话:证明或推翻P=NP。

说到这里什么是P类问题什么是NP类问题就讲完了。

可能有一些人还不是很清楚,再用通俗但不是很严谨的表述来总结一下。

P类问题就是指那些计算机比较容易算出答案的问题。

NP类问题就是指那些已知答案以后计算机可以比较容易地验证答案的问题。

接下来要进入的话题是为什么P=NP难证明,觉得枯燥的看到这里已经很好了,起码能分清楚P和NP问题了吧,接下来的内容将比较烧脑。

我们先来看一副集合示意图,这副图反映的是P=NP或P!=NP时候的两个集合的效果,其中就出现了NP-Hard和NPC两个新的概念。

要说明为什么目前为止P是否等于NP还没有结论,不得不先弄清楚NPC和NP-Hard。

在引入NPC之前我们先来学习一个概念-归约。

简单地说,一个问题A可以归约为问题B的意思是说,可以用问题B的解法解决问题A,或者说,问题A可以“变成”问题B。

举个例子,现在有两个问题:求解一个一元一次方程和求解一个一元二次方程。

那么我们说,前者可以归约为后者,因为知道怎么样解一个一元二次方程那么一定能解出一元一次方程,因为一元一次方程是一个二次项系数为零的一元二次方程。

“问题A可归约为问题B”,那么很容易理解问题B比问题A难,要解决问题B的时间复杂度也就应该大于或等于解决问题A的时间复杂度。

而且归约有一项重要的性质:传递性。

如果问题A可归约为问题B,问题B可归约为问题C,则问题A一定可归约为问题C,这应该很容易理解吧。

现在再来说一下归约的标准概念: 如果能找到这样一个变化法则,对任意一个程序A的输入,都能按这个法则变换成程序B的输入,使两程序的输出相同,那么我们说,问题A可归约为问题B。

从归约的定义中我们看到,一个问题归约为另一个问题,时间复杂度增加了,问题的应用范围也增大了。

通过对某些问题的不断归约,我们能够不断寻找复杂度更高,但应用范围更广的算法来代替复杂度虽然低,但只能用于很小的一类问题的算法。

那么如果把一个NP问题不断地归约上去,那么最后是否有可能找到一个时间复杂度最高,并且能“通吃”所有的NP问题的这样一个超级NP问题?答案居然是肯定的。

也就是说,存在这样一个NP问题,所有的NP问题都可以归约成它,并且这种问题不只一个,它有很多个,它是一类问题。

这一类问题就是传说中的NPC问题,也就是NP-完全问题。

所以NPC问题的定义非常简单。

同时满足下面两个条件的问题就是NPC问题。

首先,它得是一个NP问题;然后,所有的NP问题都可以归约到它。

既然所有的NP问题都能归约成NPC问题,那么只要任意一个NPC问题找到了一个多项式的算法,那么所有的NP问题都能用这个算法解决了,那么NP也就等于P了。

因此,目前NPC问题还没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的算法来解决,那么意思就是如果能够找到一个能用多项式时间复杂度解决的NPC问题就证明了P=NP了。

而说到NP-Hard问题。

NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条,就是说所有的NP问题都能归化到它,但它本身并不一定是个NP问题,也就是即使有一天发现了NPC问题的多项式算法,但NP-Hard问题仍然无法用多项式算法解决,因为它不是NP问题,对于答案的验证都很困难。

下面引用Matrix67文章里的逻辑电路的例子来说明NPC问题。

逻辑电路问题是指的这样一个问题:给定一个逻辑电路,问是否存在一种输入使输出为True。

什么叫做逻辑电路呢?一个逻辑电路由若干个输入,一个输出,若干“逻辑门”和密密麻麻的线组成。

看下面一例,不需要解释你马上就明白了。

这是个较简单的逻辑电路,当输入1、输入2、输入3分别为True、True、False或False、True、False时,输出为True。

有输出无论如何都不可能为True的逻辑电路吗?有。

下面就是一个简单的例子。

上面这个逻辑电路中,无论输入是什么,输出都是False。

我们就说,这个逻辑电路不存在使输出为True的一组输入。

回到上文,给定一个逻辑电路,问是否存在一种输入使输出为True,这即逻辑电路问题。

逻辑电路问题属于NPC问题。

这是有严格证明的。

它显然属于NP问题,并且可以直接证明所有的NP问题都可以归约到它。

证明过程相当复杂,其大概意思是说任意一个NP问题的输入和输出都可以转换成逻辑电路的输入和输出(想想计算机内部也不过是一些0和1的运算),因此对于一个NP问题来说,问题转化为了求出满足结果为True的一个输入(即一个可行解)。

类似这样的NPC问题,目前还没有找到在多项式复杂度内可以求解的算法,所以说一旦这样的问题都变得多项式复杂度内可解的话,很多问题都可以通过现有的计算机技术进行求解。

就比如电脑下围棋,验证一局棋的结果显然是很简单的,但要保证每局都能赢的话目前的方法需要电脑穷举出所有的可能性,并根据每一步棋的变化搜索出最终达到胜利的下棋路径,目前的计算机性能显然是达不到的。

因为围棋的状态空间复杂度达到了10的172方,而围棋的博弈树复杂度达到了10的300次方,光看数字可能不直观,一句话就是围棋的变化多过宇宙的原子数量! 所以对于围棋这样的游戏人工智能如果要战胜人类需要实现下面两个条件中的任何一个: 计算机性能无限强大,可以穷举所有可能性; 研究出新的算法,在不穷举的情况下也能保证赢; 目前 Google 的 AlphaGo所做的只不过是通过优化算法提高穷举效率,同时利用现有的大数据与云计算来提升计算性能而已 。

下面一篇文章将更详细的介绍AI是如何下围棋的,敬请期待。

评论(0)