搜索

读书笔记——计算机科学导论

gecimao 发表于 2019-05-31 17:18 | 查看: | 回复:

  4、列举与计算机硬件、软件、数据相关的线、与计算机使用相关的一些社会问题和职业道德问题

  1、数据处理器:首先计算机是一个数据处理器,可以认为计算机是一个接收输入数据、处理数据并产生输出数据的黑盒。

  相对于数据处理器,该模型添加了一个额外的元素程序(用来告诉计算机对数据进行处理的指令集合)

  基于冯诺依曼模型建造的计算机分为4个子系统:存储器、算术逻辑单元、控制单元和输入/输出单元。

  算术逻辑单元:ALU 用来进行计算和逻辑运算的地方 控制单元:对存储器、算术逻辑单元、输入/输出等子系统进行控制操作的单元。

  输入/输出:输入子系统负责从计算机外部接收输入数据和程序;输出子系统负责将计算机的处理结果输出到计算机外部。也包括辅助存储设备。

  现代计算机的存储单元主要是用来存储程序以及响应数据,这意味着数据和程序应该具有相同的格式。实际上它们都是以位模式存储在内存中的,

  3、计算机软件:必须存储程序、指令的序列、算法、语言、软件工程、操作系统

  早期电子计算机:存储单元仅仅用来存放数据,利用配线或开关进行外部编程 ENIAC

  1、分为两个领域 系统领域:计算机体系结构、计算机网络、安全问题、操作系统、算法、程序设计语言、软件工程

  十进制数的整数部分为源,已转好的整数部分的数为目标。先创建空目标,接着反复除源并得到商和余数。余数插入目标的左边,商变为新的源。

  小数部分的转化可以使用连乘法,取十进制小数部分为源,已转换好的整数部分的数为目标。先创建一个空目标,接着反复乘源并得到结果,结果的整数部分插入目标的右边,而小数部分称为新的源。

  为了表示数据的不同类型,使用位模式,长度为8的位模式称为一个字节,byte

  先将整数转为二进制数,如果二进制位数不足n位,则在二进制整数的左边补0,如果二进制整数大于n位,则发生溢出

  7存储在8位存储单元中,7的二进制是111,则存储时为 00000111

  最左位用于定义整数的符号,0表示正整数,1表示负整数,所以有+0和-0.

  3.6.1 最左位决定符号,如果是0,该整数为正,如果是1,该整数为负。

  首先将整数变为n位的二进制数,如果整数是正数或零,原样存储,如果是负数,计算机取其补码存储。

  在一个二进制数规范化之后,只存储该数的3部分信息,符号、指数和尾数,如 1000111.0101 规范化后,只存储+,6,和 0001110101.

  逻辑运算是指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算。

  异或(XOR):二元运算符。如果输入都是1,则输出为0。换种说法,当输入相同时,则输出为0;输入不同时,则输出为1.

  相同的4个运算符(NOT/AND/OR/XOR)可以被应用到n位模式。效果就是对NOT运算来说,把每个运算符应用于每个位;对于其他3个运算符就是把每个运算符应用于相应的位对。

  3.1 逻辑移位运算应用于不带符号位的数的模式。这些移位运算可能会改变数的符号。

  逻辑移位:逻辑右移运算把每一位向右移动一个位置,最右位丢弃,最左位填0。逻辑左移运算把每一位向左移动一个位置,最左位丢弃,最右位填0。

  循环移位:循环移位运算(旋转运算)对位进行移位,但没有位被丢弃或增加。循环右移(或右旋转)把每一位向右移动一个位置,最右位被回环,成为最左位。循环左移(或左旋转)把每一位向左移动一个位置,最左位被回环,成为最右位。

  3.2 算术移位运算假定位模式是用二进制补码格式表示的带符号位的整数。算术右移被用来对整数除以2;而算术左移被用来对整数乘以2.算术右移保留符号位,但同时也把它复制,放入相邻的右边的位中,因此符号被保存。算术左移丢弃符号位,接受它的右边的位作为符号位。如果新的符号位与原先的相同,那么运算成功,否则发生上溢或下溢,结果是非法的。

  4.1 整数的算术运算,所用类似加减乘除等的算术运算均适用于整数,虽然整数的乘法(除法)能通过重复的加法(减法)来实现,但程序是低效的。

  4.1.1 二进制补码整数的加减法:二进制补码表示法的一个优点是加法和减法之间没有区别,当遇到减法运算时,计算机只简单地把它转变为加法,但要为第二个数求二进制的补。

  当我们进行计算机数字的算术运算时,要记住每个数字和结果应该在分配的二进制位的定义范围之内。

  3、描述典型计算机中指令周期的取指令译码执行阶段;

  7、理解子系统间的互相连接,列出不同总线、描述输入/输出寻址的不同方法;

  计算机的组成部分可以分为三大类(或子系统):中央处理单元(CPU)、主存储器和输入/输出子系统。

  1、CPU用于数据的运算。有三个组成部分:算术逻辑单元(ALU)、控制单元、寄存器组(快速存储单元)

  1.2.1 数据寄存器,现在的计算机在CPU中使用多个或几十个寄存器来提高运算速度。

  1.2.2 指令寄存器,CPU的主要职责是:从内存中逐条地取出指令,并将取出的指令存储在指令寄存器中,解释并执行指令。

  控制单元控制各个子系统的操作。控制是通过从控制单元发送到其他子系统的信号来进行。

  是计算机的第二个主要子系统,是存储单元的集合。每一个存储单元都有唯一的标识,称为地址。数据以称为字的位组的形式在内存中传入和传出。字可以是8位、16位、32位,甚至是64位。如果字是8位的话,,一般称为一个字节。

  如果一个计算机有N个字的存储空间的线)N 位的无符号整数来确定每一个存储单元。

  2.1 RAM 随机存取存储器(RAM)是计算机中主存的主要组成部分。可以使用存储单元地址来随机存取一个数据项,而不需要存取位于它前面的所有数据项。与ROM的区别在于,用户可读写RAM。另外,RAM是易失性。当系统断电后信息(程序或数据)将丢失。分为

  SRAM,静态RAM。使用传统的触发器门电路来保存数据。速度快,价格贵。

  只读存储器(ROM)的内容是由制造商写进去的。用户只能读但不能写,优点是非易失性。可以用ROM来存储那些在开机时运行的程序。

  EPROM,可擦除的可编程只读存储器,用户可以对它进行编程。需要拆下来擦除再重新安装。

  EEPROM,电可擦除的可编程只读存储器。对它的编程和擦除用电子脉冲即可。

  通常计算机花费80%的时间来读取20%的数据,相同的数据往往被存取多次。

  计算机的第3个子系统是称为输入/输出(I/O)子系统的一系列设备。分为非存储设备和存储设备。

  键盘提供输入功能,监视器显示输出并同时响应键盘的输入。还包括鼠标、操纵杆等

  2.1.1 磁盘,由一张一张磁片叠加而成的,磁片由薄磁膜封装。信息是通过盘上每一个磁片的读/写磁头读写磁介质表面来进行读取和存储的。

  表面结构:盘面都被划分为磁道,磁道又分为扇区。磁道通过磁道内部间隔隔开,扇区通过扇区内部间隔隔开。

  数据存取。磁盘是一个随机存取设备。在某一时间可以读取的最小存储区域只能是一个扇区。

  取决于角速度(定义了磁盘的旋转速度)、寻道时间(定义了读/写磁头寻找数据所在磁道的数据)、传送时间(定义了将数据从磁盘移到CPU/内存所需要的时间)

  使用光(激光)技术来存储和读取数据。CD是利用光存储技术来保存音频信息,相同(稍加改进)后的技术被用来存储计算机上的信息。

  CPU和内存之间通常是由称为总线的三组线路连接在一起,分别是数据总线、地址总线数据总线,由多根线组成,每根线上每次传送一个位的数据,线的数量取决于该字的大小。如果计算机的字是32位,那么需要32根线的数据总线以便同一时刻能同时传送32位的字。

  1.2 地址总线,允许访问存储器中的某个字,地址总线的线数取决于存储空间的大小。如果存储器容量为2的n次方个字,那地址总线一次需要传送n位的地址数据,需要n根线 控制总线

  负责在CPU和内存之间传送信息。如果计算机有2的m条控制命令,那么控制总线、I/O设备的连接

  I/O设备是机电、磁性或光学设备,而CPU和内存是电子设备,前者的操作速度慢很多,需要有中介来处理这种差异。I/O设备通过一种被称为输入/输出控制器或接口的器件连接到总线 控制器

  串行控制器只有一根数据线连接到设备上,而并行控制器则有数根数据线连接到设备上。常用的有SCSI、火线 SCSI,小型计算机系统接口,8、16、32线的并行接口。菊花链连接,两端必须有终结器,且设备必须有唯一的地址。

  2.1.2 火线规定的串行接口,俗称火线。是高速串行接口。可在一条菊花链或树形连接上连接最多63个设备,不需要SCSI控制器中那样的终结器。

  USB(通用串行总线),串行控制器。多个设备可以被连接到一个USB控制器上,这个控制器也称为根集线器。设备可以不需要关闭计算机很容易地被移除或连接到树中,这称为热交换。当集线器被从系统中移除时,与此集线器相连的所有设备和其他集线器也被移除。

  通过USB的数据是以包的形式传输的,每个包含有:地址部分(设备标识)、控制部分、要被传送到其他设备的数据部分。所有设备都将接收到相同的包,但只有具有数据包中所定义的地址的那些设备将接受它。

  3.1 I/O独立寻址,用来读写内存的指令与用来读写输入输出的指令是完全不同的。有专门的指令完成对输入输出设备的测试、控制以及读写操作。每个输入输出设备有自己的地址。

  在I/O存储器映射寻址中,CPU将输入/输出控制器中的每一个寄存器都看作是内存中的某个存储字。换言之,CPU没有单独的指令来表示是从内存或者从输入/输出设备传送数据。

  CPU利用重复的机器周期来执行程序中的指令,一步一条。一个简化的周期包括3步,取指令、译码和执行。

  控制单元命令系统将下一条要执行的指令复制到CPU的指令寄存器中,被复制指令的地址并保存在程序计数器中。复制完成后,程序计数器自动加1指向内存中的下一条指令

  机器周期的第二阶段是译码阶段。当指令置于指令寄存器后,该指令将由控制单元负责译码。指令译码的结果是产生一系列系统可以执行的二进制代码

  指令译码完毕后,控制单元发送任务指令到CPU的某个部件,或者是CPU让算术逻辑单元将两个输入寄存器中的内容相加并将结果保存在输出寄存器。

  因为I/O设备的运行速度比CPU要慢很多,因此CPU的操作在某种程度上必须和输入/输出设备同步。三种方法被设计用于同步,分别为:程序控制输入/输出、中断控制输入/输出、直接存储器存取。

  2.1 程序控制输入/输出,采取最简单的一种同步,CPU等待I/O设备。

  2.2 中断控制输入/输出,首先CPU告知I/O设备即将开始传输,但是CPU并不需要不停地查询I/O设备的状态。

  用于在高速I/O设备间传输大量的数据块,例如磁盘、内存。需要一个DMA控制器来承担CPU的一些功能。

  指令集的复杂性使得CPU和控制单元的电路非常复杂。解决方案,程序在两个层面上运行,CPU不直接执行机器语言指令,CPU只执行被称为微操作的简单操作,复杂的指令被转化为一系列简单操作然后由CPU执行。例子,奔腾系列处理

  精简指令集计算机(reduce instruction set computer),设计策略是使用少量的指令完成最少的简单操作,复杂指令用简单指令子集模拟。

  现代计算机使用称为流水线的技术来改善吞吐量(在单位时间内完成的指令总数)。流水线理念是如果控制单元能同时执行两个或三个阶段,那么下一条指令就可以在前一条指令完成前开始。

  并行处理理念是计算机可以具有多个控制单元、多个算术逻辑单元和多个内存单元。像流水线一样,并行处理能改善吞吐量。

  并行处理涉及多种不同的技术。计算机组织被分为四类(SISD/SIMD/MISD/MIMD)

  单指令流,单数据流(SISD)组织表示计算机有一个控制单元、一个算术逻辑单元和一个内存单元。指令被顺序执行,每个指令可以存取数据流的一个或多个数据项。

  单指令流,多数据流(SIMD)表示计算机有一个控制单元、多个处理单元和一个内存单元。所有处理器单元从控制单元接收相同的指令,但在不同的数据项上操作。

  多指令流,单数据流(MISD)体系结构是属于多个指令流的多个指令作用于相同的数据项的体系结构。从未被实现过。

  多指令流,多数据流(MIMD)是属于多个指令流的多个指令作用于多个数据流(每个指令作用于一个数据项)。

  网络由两个或两个以上通过链路连接的设备构成。链路是数据从一个设备传输到另一个设备的通信通道。点对点连接与多点连接

  网络的拓扑是所有链路和设备间关系的几何表示,基本结构是网状型、星型、总线型、环型

  4.3 城域网,MAN,大小结余LAN与WAN之间的网络,用来为那些需要高速连接且终端点分布在一个城市或城市一部分的客户服务。

  网络是一组连接在一起的通信设备,而互联网是能够互相通信的两个或多个网络。路由器是发送数据包(消息),并使其在互联网中传输的连接设备。

  为了分解完成任务所需的服务,因特网创建了一组规则,称为协议。协议允许使用不同技术的局域网和广域网互相连接到一起,从一点向另一点传送消息。控制因特网的一组协议称为TCP/IP协议族。

  原始的TCP/IP协议族被定义成4层,网络与链路层、网络层、传输层和应用层。

  如今的TCP/IP协议通常被定义成5层,物理层、数据链路层、网络层、传输层、应用层。

  运行服务器端程序的计算机称为服务器,而运行客户端程序的计算机称为客户,服务端程序需要一直运行,而客户端程序只在需要时运行。

  客户端程序和服务端程序间的通信称为进程到进程的通信,因为运行在这种体系结构中程序称为进程。

  为了标识一个特殊的HTTP站点,客户使用统一资源定位符(URL)。服务器应用层地址不是用来发送消息的,只是帮助客户找到服务器计算机的实际地址。

  传输层负责整个消息的进程到进程的传输建立客户和服务器计算机的传输层的逻辑通信。

  服务器计算机可能同时运行多个进程,当消息到达服务器时,它必须被指向正确的进程,我们需要另一个地址来标识服务器进程,这称为端口号。

  传输层为不同的进程做相同的工作,从进程中收集要发出的消息,并将到达的消息分发给进程。传输层使用端口号完成多路复用和解多路复用。

  传输层负责实现拥塞控制,物理上传送数据包的下层网络可能发生交通拥塞,可能引起网络丢弃(失去)一些数据包。消息在发送前存储在缓冲区中,如果传输层监测到网络上有拥塞,它就暂缓发送。

  传输层还负责实现流量控制,发送端的传输层能监控接收端的传输层,检查接受者接收到的数据包是否过量。

  在消息的传输过程中,有可能被损坏、丢失、重复或乱序。传输层的发送负责确保消息被目的传输层正确接收。

  传输控制协议,支持传输层所有职责的协议,没有UDP快和高效。TCP使用序号、确认号和检验和。提供多路复用、解多路复用、流量控制、拥塞控制和差错控制。因为TCP在两个传输层间提供逻辑连接,所以被称为面向连接的协议。

  流控制传输协议,结合了UDP和TCP的优点,像UDP一样,SCTP适合用于音频和视频的实时传输,像TCP一样,SCTP提供差错控制和流量控制。

  网络层负责源到目的地的数据包发送,可能跨多个网络。网络层保证每个数据包从源点到最终目的地。

  网络层使用它的路由表找到下一跳的逻辑地址,把这个地址传递给数据链路层,使用数据链路层需要的这个逻辑地址来找到下一个路由器的数据链路层地址。

  网络层的一个特殊的职责:路由选择。路由选择是确定数据包的部分或全部路径。

  TCP/IP 协议族支持一个主协议(IP)和几个辅助协议,帮助IP完成它的职责。

  3.3.1 网络层的主协议是因特网协议(IP),有IPv4和IPv6两个版本,IP提供了尽力而为服务。

  网络层数据包可能在从源到目的地的传输中经过多个路由器。从一个节点到另一个节点传送数据是数据链路层的职责。

  与IP地址不同,数据链路层的地址不是通用的。每个数据链路协议可能使用不同的地址格式和大小。以太网协议使用48位地址,常被写成十六进制格式,分为6部分,每部分两位十六进制数,如

  在应用层,进程交换消息;在传输层,数据单元被称为段、用户数据报或包;在网络层,数据单元被称为数据报;在数据链路层,数据单元被称为帧。最后,在物理层,数据单元是二进制位。

  一个电子邮件处理系统必须有唯一的地址系统来分发邮件。SMTP使用的地址系统由两部分组成:本地部分和域名,中间用@符号隔开。

  允许非ASCII数据通过SMTP传输的补充协议,MIME不是一个电子邮件协议,不能替代SMTP,只是SMTP的扩展

  FTP是因特网上最常见任务的标准机制,用于从一台计算机拷贝文件到另一计算机。

  FTP与其他客户/服务器应用不同,它在两主机间建立两个连接。一个连接是用来传输数据的;另一个连接是用来控制信息(命令和响应)的。命令和数据的分开传输使得FTP效率更高。

  TELNET是多用途的客户/服务器程序,允许用户访问远程计算机上的任何应用程序。

  在超文本环境中,信息存储在一组用链接概念连接在一起的文档中,一个项通过链接与另一个文档相关。正在浏览文档的用户可以通过选择链接到另一个文档的项。

  4.2.1 浏览器 通常由三部分构成:控制器、客户端程序和解释器。控制器接收来自键盘或鼠标的输入,使用客户端程序存取文档,文档被存取之后,控制器使用一个解释器在屏幕上显示文档。

  使用HTML来创建包含固定部分的文档,并嵌入一个脚本,即某种类型的源代码,让服务器可以运行这段代码来提供变化的部分。

  常见的有,使用Perl语言的超文本预处理程序(PHP),使用Java作为脚本语言的Java服务器页面(JSP),使用Visual Basic语言作为脚本语言的活动服务器页面(ASP)

  1、计算机系统由硬件和软件组成。硬件是计算机的物理设备,软件则是使得硬件能够正常工作的程序的集合。软件又分为操作系统和应用程序。应用程序使用计算机硬件来解决用户的问题,操作系统则控制用户对硬件的访问。

  2、操作系统是计算机硬件和用户(程序和人)的一个接口,使得其他程序更加方便有效地运行,并能方便地对计算机硬件和软件资源进行访问。

  很小一部分内存用ROM构成,其中存有称为自举程序的小程序,职责是把操作系统本身装入RAM内存。

  多道程序:将多个作业同时装入内存,并且仅当该资源可用时分配给需要它的作业。

  同一计算机安装多个CPU,每个CPU可以处理一个程序或者程序的一部分,意味着很多任务可以并行完成而不是串行处理

  现代操作系统至少具有以下四种功能:内存管理器、进程管理器、设备管理器、文件管理器。操作系统还有这样一个部分,称为用户界面或命令解释程序。

  指用来接收用户(进程)的输入并向操作系统解释这些请求的程序。UNIX的用户界面被称作命令解释程序(shell),其他操作系统中,则被称为窗口,以指明它是一个由菜单驱动的并有着GUI的部件。

  在单道程序中,大多数内存用来装载单一的程序,仅仅一小部分用来装载操作系统。

  多道程序的第一种技术成为分区调度。在这种模式中,内存被分为不定长的几个分区。每个部分或分区保存一个程序。CPU在各个程序之间交替服务。

  分页调度提高了分区调度的效率。在分页调度下,内存被分成大小相等的若干个部分,称为帧,程序则被分为大小相等的部分,称为页。页和帧的大小通常是一样的。

  分页调度不需要程序装载到连续的内存中,但仍需要程序整体载入内存中运行。在请求分页调度中,程序被分成页,但是页可以依次载入内存,运行,然后被另一个页代替。换句话说,内存可以同时载入多个程序的页。

  类似分页调度。在请求分段调度中,程序将按程序员的角度划分成段,被载入内存中,执行,然后被来自同一程序或其他程序的模块所代替。

  作业:从一个程序被选中执行,到其运行结束并再次成为一个程序的这段过程中,该程序称为作业。

  进程:是一个执行中的程序。该程序开始执行但还未结束。换言之,进程是一个在内存中运行的作业。

  一个程序当被操作系统选中时就称为作业并且称为保持状态,直至它载入内存之前都保持这个状态。当内存可以整体或部分载入这个程序时,作业转换成就绪状态,并变成进程。它在内存中保持这个状态直至CPU运行它;这时它转成运行状态。进程可以进入等待状态、就绪状态、终止状态。

  将一个作业或进程从一个状态改变为另一个状态,进程管理器使用了连个调度器:作业调度器和进程调度器。

  为处理多个进程和作业,进程管理器使用队列(等待列表)。与每一作业或进程相关的是存有这些作业和进程信息的作业控制块或进程控制块。进程管理器在队列中存储作业或进程控制块,作业或进程仍保存在内存或硬盘中。

  设备管理器(或者是输入/输出管理器)负责访问输入/输出设备。当一个进程访问输入/输出设备时,在该段时间内这些设备对其他进程而言是不可用的。设备管理器负责让输入/输出设备使用起来更有效。

  是多用户、多道程序、可移植的操作系统,被设计来方便编程、文本处理、通信。

  是UNIX的心脏,包含操作系统的最基本部分:内存管理、进程管理、设备管理和文件管理。

  工具是UNIX标准程序,为用户提供支持过程。常用的三个工具是:文本编辑器、搜索程序和排序程序。

  系统库:含有一组被应用程序使用的函数(包括命令解释器),用于与内核交互。

  执行者:为整个操作系统提供服务。由六个子系统构成:对象管理器、安全引用监控器、进程管理器、虚拟内存管理器、本地过程调用工具和输入/输出(I/O)管理器。

  1、UML,统一建模语言,使用大图的形式掩盖了算法的所有细节,只显示算法从开始到结束的整个流程

  4.1 选择排序:使用两重循环,外层循环每次扫描时迭代一次。内层循环在未排序列表中寻找最小的元素。

  4.2 冒泡排序:使用两重循环,外层每次扫描中迭代一次;每次内层循环则将某一元素冒泡置顶部.

  从表头开始查找,当找到目标元素或确信查找目标不在列表中时,查找过程结束。

  从一个列表的中间的元素来测试,这能够判别出目标在列表里的前半部分还是后半部分。如果在前半部分,就不需要查找后半部分。如果在后半部分,就不需要查找前半部分。换句话说,可以通过判断排除一半的列表。

  根据三层结构理论,可以为每个可解的问题创建算法。结构和编程的原则要将算法分成几个单元,称为子算法。

  2、递归,如果算法的定义中有其本身,则是递归。递归容易理解,效率相比较低。

  计算机语言是指编写程序时,根据事先定义的规则(语法)而写出的预定语句的集合。计算机语言已经从机器语言演化到高级语言。

  用带符号或助记符的指令和地址代替二进制代码的语言被称为符号语言,这些助记符语言后来被称为汇编语言。

  高级语言使程序员能够将精力集中在应用程序上,其设计目标就是使程序员摆脱汇编语言繁琐的细节。有BASIC、COBOL、Pascal、Ada、C、C++、Java.

  高级语言为了在计算机上运行,需被翻译成机器语言。高级程序被称为源程序,被翻译成的机器语言程序称为目标程序。有两种方法:编译和解释。

  源程序的每一行被翻译成被其使用的计算机上的机器语言,该行机器语言被立即执行。有错误,过程显示消息,其余的过程终止,程序被改正后再次重头解释和执行。

  Java源程序首先被编译,创建Java的字节代码,字节代码然后能被任何运行JVM虚拟机的计算机编译或解释。

  在无二义性的指令被语义分析器创建后,每条指令将转化为一组程序将要在其上运行的计算机机器语言。这个由代码生成器完成。

  模式是一种计算机语言看待要解决问题的方式。分为4种模式:过程式、面向对象、函数式和说明式。

  过程式模式下,程序就是活动主体,该主体使用称为数据或数据项的被动对象。为了操纵数据,活动主体发布动作,称之为过程。

  过程式模式程序由三部分构成:对象创建部分、一组过程调用和每个过程的一组代码。

  特征:快速访问文件和数据库、快速更新和数据库、生成大量的报表、界面友好的格式化的输出。

  设计思想:通过强调结构化编程方法来教初学者编程。现在的过程式语言归功于该语言。

  特征:有其他过程式语言那样的高级指令、有允许实时处理的指令、具有并行处理能力。

  面向对象模式处理活动对象,而不是被动对象。在过程式模式中的过程是独立的实体,但面向对象模式中的方法是属于对象领地。

  相同类型的对象需要一组方法,为了创建这些方法,面向对象语言使用称为类的单元。

  总体上,方法的格式与有些过程式语言中用的函数非常相似。每个方法都有它的头、局部变量和语句。

  在面向对象模式中的多态性是指我们可以定义一下具有相同名字的操作,而这些操作在相关类中做不同的事情。

  比C语言更高级的一种计算机编程语言。使用类(class)来定义相似对象的通用属性以及可以应用于它们本身的各种操作。

  在C和C++的基础上发展而来,移除了一些特性,从而健壮性更好。是完全面向类操作。

  相对于过程式语言具有两方面优势:支持模块化编程并且允许程序员使用已经存在的函数来开发新的函数。

  LISP没有统一标准化,实际使用的标准有MIT在20世纪70年代早期开发,称为模式。

  数据类型定义了一系列值及应用于这些值的一系列操作。每种数据类型值的集合称为数据类型的域。大多数语言都定义了两类数据类型:简单数据类型和复合数据类型。

  运算符是用来完成一个动作的特定语言的语法记号。每一种语言都有运算符,在语法或规则等方面的使用是严格定义的。有:

  每条语句都使程序执行一个相应动作,被直接翻译成一条或者多条计算机可执行的指令。

  复合语句是一个包含0个或多个语句的代码单元,也被称为块。一般包括一个左大括号、一个可选语句段以及一个右大括号。

  完成单一任务的这些过程的子集能集合在一起,放在它们自己的程序单元中,也就是子程序。

  当子程序每次被调用时这些局部对象或局部变量被创建,当控制从子程序返回时被销毁。

  子程序可能需要作用于主程序创建的对象,在此时程序使用参数。在主程序中称为实际参数,在子程序中称为形式参数。

  在传值参数中,主程序和子程序的通信是单向的,从主程序到子程序,主程序传递实际参数的值,存储到子程序中相应的形式参数中。从子程序到主程序没有参数的通信。

  传引用被设计来允许子程序改变主程序中变量的值。在传引用中,变量被主程序和子程序共享。

  3、理解分析阶段,描述在分析阶段两种独立的方法:面向过程分析和面向对象分析;

  4、理解设计阶段,描述在设计阶段两种独立的方法:面向过程设计和面向对象设计;

  软件生命周期是软件工程中的一个基础概念。软件和其他产品一样,周期性重复着一些阶段。

  软件最初由开发者开发。软件在使用中经常需要修改。使用和修改,这两个步骤一直进行下去,直到软件过时。

  开发过程包括四个阶段:分析、设计、实现和测试。开发过程有多种模型,最常见的:瀑布模型和增量模型。

  软件开发过程的一种非常流行的模型就是瀑布模型,在这种模型中,开发过程只有一个方向的流动。

  在增量模型中,开发者首先完成整个系统的简化版本。然后加入细节,测试系统,定位问题。

  开发过程始于分析阶段,这个阶段生成规格说明文档,文档说明了软件要做什么,而没有说明如何去做。

  如果实现阶段使用过程式语言,那么面向过程分析就是分析阶段使用的方法。这种情况下的规格说明可以使用多种建模工具。

  数据流图显示了系统中数据的流动。使用四种符号:方形盒表示数据源或数据目的,带圆角的矩形表示过程(数据中的动作或操作),末端开口的矩形表示数据存储的地方,箭头表示数据流。

  耦合是对两个模块互相绑定紧密程度的度量。越紧耦合模块,独立性越差。为了让模块尽可能独立,松散耦合是希望的

  松散耦合的模块允许我们只修改需要改变的模块,而不会影响到不需要改变的模块。

  在这个阶段,程序员为面向过程设计中的模块编写程序或者编写程序单元,实现面向对象设计中的类。

  涉及系统的基本操作,有多种度量方法:准确性、高效性、可靠性、安全性、及时性和适用性。

  可迁移性是指把数据和(或)系统从一个平台移动到另一个平台并重用代码的能力。度量:重用性、互用性、可移植性。

  软件的正确使用和有效维护离不开文档。有三种独立的文档:用户文档、系统文档和技术文档。

  系统文档定义软件本身。撰写系统文档的目的是为了让原始开发人员之外的人能够维护和修改软件包。

  实现阶段,代码的每个模块都应记录在文档中。代码应该使用注释和描述头尽可能详细地形成自文档化。

  5、把记录定义为一数据结构,并说明它是如何用于存储属于单个数据元素的属性;

  数据结构利用了有关的变量的集合,而这些集合能够单独或作为一个整体被访问。

  数组是元素的顺序集合,通常这些元素具有相同的数据类型。索引表示元素在数组中顺序号,顺序号从数组开始处计数。数组元素通过索引被独立给出了地址。

  数据存储在多维中,如包括行和列的表格就是一个二维数组。多于二维的多维数组也存在。

  当需要进行的插入和删除操作数码较少,而需要大量的查找和检索操作时,数组是合适的结构。

  记录是一组相关元素的集合,可能是不同的类型,但整个记录有一个名称。记录中的每个元素被称为域。域是具有含义的最小命名数据,有类型且存在于内存中。能被赋值、选择和操纵。

  如数组可以定义一个班的学生(40位),而记录定义了学生不同的属性,如学号、姓名或成绩。

  如果我们需要定义元素的集合,同时还需要定义元素的属性,那么可以使用记录数组。

  在记录数组中,数组的名字定义了整个结构,使用索引定义每个元素,然后定义元素的属性。如student[3].id。

  链表是一个有序数据的集合,其中每个元素包含下一个元素的地址,即每个元素包含两个部分:数据和链。数据部分包含可用的信息,并被处理,链则将数据连到一起,包含一个指明列表下一个元素的指针。

  链表中元素习惯上称为节点,链表中节点是至少包括两个域的记录;一个包含数据,另一个包含链表中下一个节点的地址。

  在插入链表之前,首先要使用搜索算法,如果搜索算法返回假,将允许插入,否则终止插入。

  有四种情况 在空表中插入、在表的开始处插入、在表的末尾插入、在表中间插入。

  删除节点之前,要先应用搜索算法,如果搜索算法返回的标记是真,说明可以从链表中删除该节点。

  为了遍历链表,需要一个步行指针,当元素被处理时,它从一个节点移到另一个节点。

  当需要对存储数据进行许多的插入和删除时,链表是一种非常高效的数据结构。但对于需要经常搜索的数据来说,链表不是一个好的候选者。

  4、说明广义线性表、广义线性表上的基本操作、它们的应用以及它们是如何实现的;

  许多编程语言已经定义了一些简单的抽象数据类型作为语言的整数部分。如整数、实数、字符、指针等。

  复杂抽象数据类型,如表抽象数据类型、栈抽象数据类型、队列抽象数据类型等。

  ADT包含了一组允许程序员使用的操作的定义,而这些操作的实现是隐藏的。这种不需详细说明实现过程的泛化操作称为抽象。

  抽象数据类型就是与对该数据类型有意义的操作封装在一起的数据声明。然后,用它封装数据和操作并对用户隐藏。

  应用程序只能通过接口访问操作函数的公有操作,操作函数的私有操作是抽象数据类型内部用户使用的。

  栈是一种限制线性列表,该类列表的添加和删除操作只能在一端实现,称为栈顶。因此,栈具有后进先出(LIFO)数据结构的原因。

  倒转数据需要一组给定数据,重新拍下,使得首尾元素互换,中间的所有元素也相应地进行交换。

  在表达式中进行一些字符的配对。编译器可以使用栈来检查所有的开括号都与闭括号配对。

  队列是一种线性列表,该表中的数据只能在称为“尾部”的一端插入,并且只能在称为“头部”的一端删除。队列是先进先出(FIFO)结构。

  1.4 空:检出队列的状态,empty(queueName).如果队列为空,返回线、队列的抽象数据类型

  定义:队列是一种线性列表,该表中的数据只能在称为“尾部”的一端插入,并且只能在称为“头部”的一端删除。

  队列是最常用的数据处理结构之一。事实上,在所有的操作系统以及网络中都有队列的身影。如在线电子商务应用程序中,处理用户需求、任务和指令。在计算机系统中,需要用队列来完成对作业或对系统设备的处理。

  栈和队列都是限制线性表,广义线性表是像插入和删除等操作可以在其中任何地方进行的表,可以在表头、表中间或表尾。

  除第一个元素外每个元素都有唯一的前驱;除最后一个元素外每个元素都有后继。

  1.6 空:检查表的状态,empty(listName),如果表空,返回线、广义线性表的抽象数据类型

  树包括一组有限的元素,称为节点(或顶点),同时包括一组有限的有向线段,用来连接节点,称为弧。如果树是非空,其中有一个节点没有进入的弧,该节点称为根。树中的其他节点可以沿着从根开始的唯一路径到达。

  二叉树是一棵树,且其中没有一个节点所含有的子树的个数超过两个。换言之,任一个节点只能有0、1或2棵子树。

  赫夫曼编码是一种压缩技术,使用二叉树来生成一个符号串可变长度的二进制编码。

  建立表达式树后,三种标准遍历(前序、中序和后序)表示了三种不同的表达式格式:中缀、后缀、前缀。

  二叉搜索树是一种具有额外特性的二叉树:每个节点的关键字值大于左子树中的所有节点的关键字值,而小于右子树中所有节点的关键字值。

  与广义线性表所定义的抽象数据类型相似。但BST可以使用折半查找,效率更高。

  图是由一组节点(称为顶点)或一组顶点间的连线(称为边或弧)构成的一种抽象数据类型。图中的节点可以有一个或多个双亲,弧可以是有向的,也可以是无向的。

  文件是作为一个单元看待的外部相关数据的集合,主要作用是存储数据。存储在辅助存储设备或二级存储设备中。

  如果想存取某一特定记录,则使用允许随机存取的文件结构。索引文件和散列文件都允许随机存取。

  和更新程序有关的一个有四个文件:新主文件、旧主文件、事务文件和错误报告文件。

  错误报告文件:错误报告包括在数据更新时所发现的错误的清单,并提供给用户以进行纠错操作。

  索引文件由数据文件组成,它是带索引的顺序文件。索引本身非常小,只占两个字段:顺序文件的键和在磁盘上相应记录的地址。

  索引文件的好处之一是可以有多个索引,每个索引有不同的键。这种索引文件被称为倒排文件。

  散列文件用一个函数来完成键到地址的映射。用户给出键,函数将键映射成地址,再传给操作系统,这样就可检索记录了。

  在直接散列方法中,键是未经算法处理的数据文件地址。非常理想,但应用有限。有时空间浪费问题严重。

  冲突的产生是在散列算法为插入键产生地址时,发现该地址已被占用。由散列算法产生的地址称为内部(起始)地址,包含所有内部(起始)地址的区域称为主区。

  第一种散列冲突解决法开放寻址解决法,解决了在主区的冲突。

  在链表解决法中,第一条记录存储在起始地址,但它包含了一个指向下一条记录的指针。

  另一种处理冲突的方法是散列到桶。桶是一个能接纳多个记录的节点。缺点是可能有很多浪费的(未占用的)存储单元。

  目录常被表示为含有其他文件信息的一种特殊文件类型。不仅有索引信息,还有其他文件信息,如访问权限、创建存取修改时间等。

  存储在存储设备上的文件是一个位的序列,可被应用程序翻译成一个文本文件或是二进制文件。

  文本文件是一个字符文件。在它们的内存储器格式中不能包含整数、浮点数或其他数据结构,要存储这些类型的数据,必须把它们转换成对应的字符格式。

  二进制文件是用计算机的内部格式存储的数据集合。其中的数据只有当被程序正确地解释时才有意义。如果数据是文本格式的,就用一个字节来表示一个字符,如果数据是数字格式,则用两个字节或更多字节来表示。

  数据库管理系统(DBMS)是定义、创建、维护数据库的一种工具。由五部分构成:硬件、软件、数据、用户和规程。

  3、数据:数据库中的数据存储在物理存储设备上。数据是独立于软件的一个实体。

  美国国家标准协会/标准计划和需求委员会(ANSI/SPARC)为数据库管理系统建立了三层体系结构:内层、概念层和外层。

  数据库模型定义了数据的逻辑设计,它也描述了不同数据之间的关系。在数据库设计发展史中,曾使用过三种数据库模型:层次模型、网状模型和关系模型。

  在层次模型中,数据被组织成一棵倒置的树。每个实体可以有不同的子节点。但只能有一个双亲。层次模型已过时。

  网状模型中,实体通过图来组织,图中的部分实体可通过多条路径来访问。该模型已经过时。

  是数据库设计中最常用的模型。两种常用的、派生于关系模型的数据库模型:分布式数据库和面向对象数据库。

  选择也是一元操作。应用于一个关系并产生另外一个新关系。新关系中元组是原关系元组的子集。选择操作根据要求从原表中选择部分元组。格式

  投影也是一元操作,应用于一个关系并产生另外一个关系。新表中的属性(列)是原表中属性的子集。格式

  并也是二元操作。将两个关系合并成一个新的关系。要求这两个关系必须有相同的属性。新关系中的每个元组或者在第一个关系,第二个关系,或者在两个关系中皆有。格式:

  交也是二元操作。对两个关系操作,创建一个新关系。新关系中的每个元组必须是两个原关系中共有的成员。格式:

  差也是二元操作,应用于相同属性的两个关系,生成的关系中元组是那些存在于第一个关系中而不在第二个关系中的元组。格式:

  数据库的设计是一个冗长的过程。第一步通常涉及与数据库潜在用户的面谈,去收集存取需求;第二步是建立一个实体关系模型(ERM),这种模型定义了一些信息需要维护的实体、这些实体的属性和实体间的关系;第三步是建立基于ERM的关系和规范化这些关系。

  这一步,数据库设计者建立了实体关系(E-R)图来表示那些信息需要保存的实体和实体间的关系。

  对于E-R图中的每个关系集,我们都创建一个关系。关系中有一列对应这个关系所涉及的每个实体集的关键字。

  规范化是一个处理过程,通过此过程给定的一组关系转化成一组具有更坚固结构的新关系。

  规范化过程定义了一组层次范式。如果一个数据库的关系是3NF,那它首先应该是2NF。

  实体或关系转换成表格式的关系时,有的关系的行或列的交集有多个值。可以通过重复又问题的行来规范化。

  在每个关系中,我们需要有一个关键字(称为主键),所有的其他属性(列值)都依赖于它。当关系是根据E-R图建立的时,我们可能有一些复合的关键字(两个或两个以上关键字的组合),这种情况下,如果每个非关键字属性都依赖于整个复合关键字,那么这个关系就是第二范式的。

  分布式数据库模型并不是新的模型,它是基于关系模型的。数据库中的数据存储在一些通过因特网通信的计算机上,每台计算机拥有部分或全部数据库。

  面向对象数据库在试图保留关系模型优点的同时允许存取结构化数据。在面向对象数据库中,定义了对象和它们的关系。每一个对象可以具有属性并以域的形式表达。

  数据压缩意味着发送或是存储更少的位数。文本与程序通常是无损压缩,图像、音频、视频常是有损压缩。

  在无损数据压缩中,数据的完整性是受到保护的。原始数据与压缩和解压后的数据完全一样。冗余的数据在压缩中时被移走,在解压时则再被加回去。

  在赫夫曼编码中,对于出现更为频繁的字符分配较短的编码,而对于出现较少的字符分配较长的编码。

  编码器(根据使用频率分配权值,根据权值构建二叉树,根据二叉树给定编码)===此处省略详细的生成编码器过程

  根据译码器,我们可以将编码即时明确翻译成编码。因为每个编码都是独一无二的。

  是称为基于字典的编码的一类算法的一个例子。即将字符串由字符串字典中的索引来代替,以减少通信的数据传输量。不实用。

  一个实用的算法 Lempel Ziv算法,是基于字典的自适应编码的思想。

  算法从未压缩的字符串中选取最小的子字符串,然后将这个子字符串复制到字典中,并为它分配一个索引值。压缩时,除了最后一个字母之外,其他所有的字符被字典中的索引所代替。然后将索引和最后一个字母插入压缩字符串。

  字典:1-B,2-A,3-2B(AB去最后一个字符B,剩下的字符A的索引值是2)

  解压是压缩的逆过程。从压缩的字符串中取出子字符串,然后尝试按照字典中所列出的记录还原相应索引号对应的字符串。

  信息的丢失在文本文件或程序文件中是不能接受的,但在图片、视频或音频中,由于人类的眼睛和耳朵并不能够分辨出细小的差别,因此可以使用有损数据压缩。

  一些成熟的有损压缩介绍:联合图像专家组(JPEG)用来压缩图片,运动图像专家组(MPEG)用来压缩视频,MPEG第三代音频压缩格式(MP3)则用来压缩声音。

  整体思想是将图像变换成一个数的线性集合来揭示冗余。而冗余(缺乏变化的)可以通过使用无损压缩的方法来除去。

  为了压缩时间数据,MPEG方法首先将帧分成三类:I-帧,P-帧,B-帧。

  B-帧,即双向帧,与前面和后续的I-帧或P-帧有关系。不会与另一个B-帧有关系。

  语音需要压缩64kHz的数字化信号,而音乐需要压缩一个1.411MHz的信号。

  在预测编码中,样本间的差别被编码,而不是对所有的样本值进行编码。常用于语音。

  感知编码基于心理声学。想法是基于人类听觉系统的瑕疵,有些声音能够掩盖其他声音。掩盖可以发生在频率和时间上。

  频率掩盖中,一个频率范围的高的声音可以部分或完全掩盖另一个频率范围的轻的声音。

  时间掩盖中,一个高音可以短时间内降低人类听觉的灵敏度,甚至在声音停止之后。

  2、定义预防攻击的五种安全服务:数据机密性、数据完整性、验证、不可否认和访问控制;

  4、区分对称密钥密码术和非对称密钥密码术,显示如何用对称密钥或非对称密钥密码提供机密性;

  6、讨论数字签名的思想以及它如何能提供消息完整性、消息验证和不可否认性;

  信息的安全的第三个部分是可用性。一个组织创建和存储的信息需要对授权用户和应用程序是可用的。

  否认是一种不同于其他类型的攻击,因为它是由通信双方中的一个来进行的:发送者或接收者。

  拒绝服务(DoS)攻击可能减慢或完全中断系统的服务。分布式拒绝服务(DDoS).

  假设A通过一个不安全的信道向B发送一则消息,从A到B的原始消息称为明文,而通过信道发送的消息称为密文。为了从明文创建密文,A使用了一个加密算法和一个共享的密钥。为了从密文创建明文,B使用了一个解密算法和一个相同密钥。这个过程中需要保密的唯一的东西就是密钥。

  加密地点,DES用64位明文并建立64位密文;在解密地点,DES用64位密文建立64位明文,同样的56位密钥被用于加密和解密。

  AES使用128位明文并建立128位密文,密钥为128位、192位或256位密码密钥。

  在非对称密钥密码术中有不同的密钥:私钥和公钥。如果把加密和解密思想想象成是带有钥匙的挂锁的锁上和打开,那么用公钥锁上的挂锁只能被相应的私钥打开。

  首先,非对称密钥密码术强调密码系统的非对称性质,即由接收者提供公钥分发给社区,接收信息后用私钥打开。

  其次,非对称密钥密码术意味着双向通信中不能使用同一组密钥。即在通信中的每个个体应该创建自己的私钥和公钥。

  在加密之前,消息必须被编码成一个长整数(或一组长整数),在解密之后整数(或一组整数)必须被译码成信息。非对称密钥密码术通常被用来加密或译码少量的信息。

  接收者的公钥是n和e,私钥是d。如果P是明文,C是密文。加密和解密就表示为:

  由密码散列函数创建的摘要通常称为修改检测码(MDC),代码能检测出消息中的任何修改。

  对于消息验证(数据起源验证),我们需要消息验证码(MAC)。MDC与MAC是区别在于后者包含了发送者和接收者间的秘密。

  发送者使用签名算法来签署信息,消息和签名被发送给接收者。接收者收到消息和签名,使用验证算法来结合。

  一个安全的数字签名模式就像一个安全常规的签名,能提供消息验证,也称为数据起源验证。

  当今的数字签名模式在签署和验证算法中使用了散列函数,保护了消息的完整性。

  消息验证简单地验证一则消息,这一过程需对每则新的消息重复。实体验证则在一整个会线 验证分类

  所知道的:这是一种只有要求者知道的秘密,证明者可以通过它来检查要求者,如密码、PIN码、密钥和私钥。

  所固有的:要求者内在固有的特性。如签名、指纹、声音、面部特征、视网膜特征、笔迹等。

  在质询-响应验证中,要求者证明他们知道秘密,而不需要把秘密暴露给证明者。

  在对大量消息进行加密时,对称密钥密码术的效率比非对称密钥密码术要高。但,对称密钥密码术需要在双方间共享密钥。

  1、描述我们成为简单语言(Simple Language)的编程语言,并定义它的基本语句;

  我们可以仅用三条语句来定义一种语言,它们是递增语句、递减语句和循环语句。

  第二个宏:Xn,将一正整数值赋值给变量X,首先清空变量X,然后对X递增n次。

  第五个宏:YY*X。可以使用加法宏,整数的乘法可以用重复的加法来模拟。

  第七个宏:if X then A. 变量X的值只能是0或1这两个值之间的一个。

  读/写头任何时刻总是指向磁带上的一个符号,我们称这个符号为当前符号,读/写头每次在磁带上读写一个符号。读写完一次后,在控制器指令下左移、右移或留在原地。

  理论上功能作用类似于现代计算机中央处理单元的一个部件。是一个有限状态的自动机。

  可以建立一个每一行代表一个状态的状态转移表,类似为简单计算机建立的指令集。

  如果存在一个能完成一个符号操纵任务的算法,那么也存在一台完成这个任务的图灵机。

  一个无符号数能被分配给任何用特定语言编写的程序,这个数通常被称为歌德尔数。

  将每一个符号用表中所给的对应十六进制代码替代,然后将最后的结果转化为无符号整数。

  几乎每一个用简单语言编写的程序都包含某种形式的重复,也就是说一个含有无限循环的程序可以永远运行。

  在该表示法中,运算数量表示为输入量的函数。符号O(n)表示有n个输入,执行n个运算,符号O(n^2)表示有n个输入,执行n^2个运算。

  如果一个程序的复杂度远比多项式问题复杂,如O(10^n)或者O(n!),当输入数很小(小于100),这种问题可以解决。输入数很多,要花很长时间才能看到非多项式问题的解决结果。

  人工智能是对程序系统的研究,该程序系统在一定程度上能模仿人类的活动,如感知、思考、学习和反应。

  该测试提出了机器具有智能的一个定义,即人类不能区分问题的答案来自人类还是计算机。

  事实被表示成数据结构就能被存储在计算机中程序操纵。有四种常见的知识表示方法。

  语义网是Richard H.Richens在20世纪60年代提出。使用有向图表示知识。语义网用顶点代表概念,用边(用箭头表示)表示两个概念间的关系。

  概念被看成一个集合或一个子集。对象是集合中的成员(实例),概念用顶点表示。

  在语义网中,关系用边表示。边可以定义一个“子类”关系、“实例”关系,边也可以定义一个对象的属性。边还可以定义一个对象的所有权。

  语义网中的一个节点变成了一组框架中的一个对象,所有一个对象可以定义一个类,一个子类或类的一个实例。

  语义网中的边被翻译成“槽”(数据结构中的域)。槽的名字定义了关系的类型和构成关系的槽的值。

  a、大写字母(如A、B、S或T)表示自然语言中的一个语句,它们是一个句子。

  给定两个假定为真的句子,我们能推演出新的为真的句子,前面两个句子称为前提,推演出的句子称为结论,而整个称为论断。

  验证论断合法性的一种方法是为前提和结论建立真值表。如果我们在其中发现了反例,那么结论就是非法的,如:所有的前提都为真,而结论却是假。

  a、一个带有n个参数的谓词,每个参数可以是一个常数、一个变量、一个函数。

  谓词逻辑允许使用量词,在谓词逻辑中的两个常用的量词是和。

  第一个词,,读成所有的(for all),被称为 全称量词。表明变量所表示的全部对象某些事为真。

  第二个词,,读成存在(there exists),被称为 存在量词,它表明变量所表示的一个或多个对象某些事为线 推演

  在谓词逻辑中,如果没有量词,一个论断的真假确认与命题逻辑完全相同。但当有量词时,判断就变得复杂多了。

  时态逻辑像模态逻辑一样,用一套时态运算符扩展了谓词逻辑,包含了论断合法性中的时间因素。

  默认逻辑,假定论断的默认结论可以被接收,只要论断与知识库中的内容相一致即可。

  基于规则的系统使用一组规则来表示知识,这些规则能用来从已知的事实中推导出新的事实。

  解释器是一个处理器或控制器,把规则和事实组合在一起。有两种类型:正向推理和反向推理。

  过程:从一个结论(目标)开始,如果目标已在事实库中,则过程停止,结论得到验证。

  专家系统使用前面所讨论的知识表示语言,来执行通常需要人类专家才能完成的认为。

  为了能够推导新的事实或采取动作,除了需要知识表示语言表示的知识库外,还需要事实库。

  用户界面:允许用户与系统交互。能接受用户的自然语言,然后把它们翻译给系统。

  图像处理或计算机视觉,处理通过像摄像机这样的智能体的人工眼睛而获得的对对象的感知。

  图像处理的第一步是边缘探测。边缘显示了在表面、深度或亮度方面的不连续性。

  立体视觉使用人类眼睛的技术来发现对象的深度。两台摄像机创建的图像能帮助智能体判定对象是近还是远。

  机器理解自然语言的任务分成四个连续的步骤:语音识别、语法分析、语义分析和语用分析。

  2.4.2 消除歧义: 如果可能的话,语用分析从句子的知识表示中消除含糊。

  有两种常用的搜索方法:蛮力搜索和启发式搜索。蛮力搜索本身又分为广度优先和深度优先。

  在这种方法中,我们从树的根开始,在我们走向下一层前,检查当前层中的所有节点。

  在这种方法中,我们从树的根开始,做一个向前搜索,直至发现目标或到达一个死端,如果到达了死端,我们回溯到最近的分支,然后再次向前搜索。继续这样的过程,直至达到目标。

  使用启发式搜索,我们给每个节点赋一个称为启发值(h值)的定量值。这个定量值显示了该节点与目标节点间的相对远近。

  学习是一种复杂的生物现象。人工智能体的学习方法多是归纳学习法或从例子中学习。

  一个神经元有两种状态:兴奋和抑制。兴奋会触发一个输出信号,抑制不触发或产生输出。

  感知器是一个类似于单个生物神经元的人工神经元。它带有一组具有权重的输入,对输入求和,把结果与阈值进行比较,如果结果大于阈值,感知器触发,否则不触发。

  几个层次的感知器可以组合起来,形成多层神经网络。每一层的输出变成下一层的输入。

本文链接:http://windsorflowers.net/dijihuchi/252.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部