云朵朵 的个人资料弥漫的味道照片日志列表更多 工具 帮助

日志


专业辅导计算机论文

 专业辅导计算机方面的论文写作,主要包括计算机本科、硕士论文、各种职称论文。拥有多年辅导经验。欢迎联系:email:lanqymail@163.com
QQ:632421 注明论文辅导
 

《计算机仿真中的HLA技术》读书笔记--第3章(2)

 

《计算机仿真中的HLA技术》读书笔记--第3章(2) 

――――――――――――――――蓝乾艺―――――――――――――――――――

3.2.4HLA的信息模型-OMT

OMT(对象模型模板)规定了所有FOM的结构,每一个联邦有一个作为这个特定联邦词汇表的FOM模型,联邦的每一次运行都使用联邦的FOM。也就是说,FOMRTI的一个参数,在联邦运行的开始,FOM作为数据提供给RTIFOM定义了联邦成员相互传递的事情和事件的名字,FOM只描述联邦成员的内部事情,FOM是联邦运行时通过RTI交换数据的词汇表。

这样,FOM的改变不影响到RTIHLA标准。

OMT的主要组件有:对象类和交互类。

 

3.2.4.1交互:通过RTI的数据集

交互是在一个时刻通过RTI传送到其它联邦成员的数据集。一个交互可以用来表示仿真模型中多于一个联邦成员感兴趣的一个事件,它在仿真时间的一个点上发生。每个交互传送一组参数,一个交互被接受后,其不再继续存在。

FOM定义了交互类,一个联邦成员发送一个交互是一个特定类的交互。交互类是一个单向继承的层次结构,这个层次结构的根叫交互根(InteractionRoot)。在缺省情况下,交互根不定义参数。每一个交互类定义由它一起发送的参数,每一个类继承它所有父类定义的参数。一个类的完整有效的名字是通过连接由根到类的名字构成,中间又用“.”分隔。在FOM中完整有效的类名必须是唯一的。如图所示。

 

3.2.4.2对象:持续的仿真实体

RTI中的对象是如下仿真实体:

l         和多个联邦成员有关,并由RTI来处理。

l         在仿真时间的某些期间持续存在。

OMT定义了对象类,每个类有一个名字,每个类定义(可能是空的)一个称为属性的数据集。联邦成员产生这些类的实例。在联邦中,每一个实例都有自己的标识,都有独特的实例属性。仿真时,联邦成员通过给属性提供新的值来更新对象实例的状态。

对象类形成一个层次结构。每一个对象类一定有一个直接的父类[Mu1] ,对象类形成一个单向继承树。根类叫对象根(ObjectRoot),一个类的完整有效的名字是通过连接由根到类的名字构成,中间又用“.”分隔。在FOM中完整有效的类名必须是唯一的。

那些为一个类声明的属性值和那些从其父类继承来的属性称为有效属性,根类有一个必须的属性,即删除对象的特权(PrivilegeToDeleteObject,因此每一个类至少有一个有效属性。如图所示。

 

当属性是RTI操作主体时,它们要么是一个对象类的属性,要么是一个特定对象实例的属性。

l         一个对象类的属性称为类属性(Class Attribute

l         一个特定对象实例的属性称为实例属性(Instance Attribute

 

注意:HLA的对象不是完全面向对象的,那么它们的相同点在于:

1HLA的对象是对象类的实例,拥有唯一标识;

2)对象类形成一个层次结构,从父类继承属性。

不同在于:

1)在FOM中,HLA对象没有和它相联系的行为

2)“类属性”的概念不对应于Smalltalk中的“类变量(Class Variable)”或C++和Java中的“静态成员(Static Member)”。在HLA中,类属性是一个类的属性,它不考虑实例,被认为是一个类,没有值的概念。

关于RTI的实现:

1)术语“对象”并没有要求RTI或任何联邦成员必须用面向对象的语言来实现。

2)术语“对象”并没有要求HLA对象要作为对象结构存在于面向对象语言的任何API中。事实上,HLA对象在API中不是“语言对象”。

 

3.2.4.3交互和对象

在某种意义上,对象和交互之间是可以相互转化的,因此任何联邦模型可以全部采用对象或全部采用交互来实现。对象属性状态的变化是瞬间发生的(当属性值被更新时),所以联邦设计者总能用对象来实现交互的效果:通过产生其状态改变被当作交互的对象属性;同样,一个对象状态的变化可以表示为属性值变化的一系列交互。

下面是使用对象还是交互建模的基本规则:

l         任何发生的事情或事件用交互来建模。

l         如果要建模的实体有持续的状态,这个实体应该表示为对象。

3.2.4.4类的层次结构保护联邦成员免于变化

    在对象模型中继承的主要目的是保护联邦成员免于变化。简单地说,使用确定对象类和交互类的联邦成员,即使通过添加子类扩展FOM后,它仍能继续使用。

3.2.5HLA规则

HLA规则是构成HLA标准的3个组成部分之一,它表达了对HLA兼容的联邦成员和联邦的设计目标和限制,总结了HLA如何应用的方式。

 

联邦规则

规则1 联邦应该有一个联邦对象模型即FOMFOM遵循HLA的对象模板即MOT

规则2在联邦中,所有和仿真有关的对象实例的描述应该在联邦成员中,而不在RTI中。

规则3在联邦执行过程中,联邦成员间所有FOM数据的交换都应该通过RTI来实现。

规则4在联邦执行过程中,联邦成员和RTI之间遵循HLA接口规范进行交互。

规则5在联邦执行过程的任何时刻,一个实例属性最多能由一个联邦成员拥有。

 

 

联邦成员规则

规则6联邦成员应该有一个仿真对象模型SOMSOM遵循HLA的对象模型模板即MOT

规则7联邦成员应该能更新和/或反射其SOM中规定的任何属性、发送和/或接收其SOM中规定的交互。

规则8 在联邦执行过程中,联邦成员应该能够按SOM中的规定,动态地转移和/或接收属性的所有权。

规则9联邦成员应该能够按SOM中的规定,改变更新属性的条件(例如阈值)。

规则10联邦成员应该能管理局部时间,从而允许它和联邦中其它成员协调数据交互。

 

3.2.6管理对象模型-RTI描述联邦

3.3HLA提供了6个领域的服务

3.3.1联邦管理

联邦管理服务通过下列2种方式管理联邦。

l         根据存在和成员资格定义联邦的执行

l         完成联邦范围内的操作

3.3.2声明管理

声明管理服务是联邦成员用来声明它们产生(发布)或消费(订阅)数据意图的方式,RTI使用这些声明来安排数据的路由转换数据管理兴趣

关于路由,RTI使用订阅来决定当实体产生或更新时通知哪个联邦成员。

声明被用来转换联邦成员收到的数据。在使用前,收到的数据要根据联邦成员的订阅完成修剪和推销(重新贴标签)。它用来保护联邦成员免受FOM扩展的影响和鼓励联邦成员重用。

最后,RTI使用声明来表明对发布联邦成员的兴趣,RTI能告诉一个联邦成员是否有任何其它的联邦成员订阅了它打算产生的数据,以便在其它联邦成员不需要这个信息时,该联邦成员能停止产生数据。

3.3.3对象管理

    对象管理服务是用于实现数据实际交换的那些服务。联邦成员使用这些服务来发送和接收交互,这些服务也用于登记一个对象类的新实例和更新其属性。其它联邦成员将调用这组中的服务来接收交互、发现新实例和接收实例属性的更新值。

3.3.4所有权管理

HLA的规则5和规则8要求联邦成员在更新实例属性前必须先拥有它,RTI保证在一个时刻最多只能有一个联邦成员能拥有一个给定实例的属性,该联邦成员负责更新它。仿真一个实体的职责能以下两种方式在联邦成员实现分享:

首先,一个实体的完整建模可以由多个联邦成员分享。如果这个实体由带有几个属性的一个实例表示,不同的联邦成员可以拥有这个实例的不同属性,并负责更新它们各自拥有的属性。属性管理服务允许这样做。

其次,实体的仿真在联邦执行过程中能从一个联邦成员转移到另一个联邦成员,也就是一个实例属性的所有权可以从一个联邦成员转移到另一个联邦成员,所有权的转移可以由当前的拥有者启动,也可以由将来的拥有者启动。

如果一个联邦不需要所有权管理,则可以忽略它,但一般情况下应该考虑对象所有权的管理服务。

3.3.5时间管理

联邦成员在它们自己的线程控制下执行,因此联邦成员间事件的正确顺序是需要解决的重要问题。在HLA中,事件的排序用“仿真时间”来表达。仿真时间是一个抽象的概念,没有必要把它和任何时间表示或时间单位相联系。RTI的时间管理服务负责下列2件事情。

(1)       允许每个联邦成员和其它联邦成员协调起来推进它自己的仿真时间。

(2)       控制时间戳事件的发送,保证联邦成员永远不会接收来自其它联邦成员的“过去”事件,“过去”事件就是事件的仿真时间小于该联邦成员的仿真时间。

RTI允许联邦成员选择参与时间管理的程度。联邦成员可以是时间受限的,在这种情况下,它的仿真时间推进受其它联邦成员的控制;联邦成员可以是时间调节的,在这种情况下,它的仿真时间推进将调节其它联邦成员的仿真时间推进;联邦成员还可以即受时间受限的又是时间调节的,也可以两种都不是。联邦成员将根据它的目标和联邦的需求做出不同的选择,RTI允许联邦执行中联邦成员有不同的选择。

3.3.6数据分发管理

数据分发管理(Data Distribution ManagementDDM)服务控制着联邦成员间生产者与消费者的关系。尽管声明管理服务根据交互类和对象类管理这些关系,但是DMM根据对象实例和抽象的路由空间进行管理。DMM提供了强大的工具来改善生产者与消费者的关系。

3.3.7服务组尽可能独立

HLACORBA的关系

Corba是一个用作“中间件”的体系结构,“中间件”是应用和操作系统之间的一层软件,Corba允许对象的计算分布在多台计算机上。Corba标准是软件供应商和用户组成协会OMG的一个产品,Corba是这类标准中应用得最广泛的一个,还有具有类似功能得其它中间产品,如:DCOMDistributed Common Object Model)。

Corba定义了一个对象请求代理ORBObject Request Broker),它是实现Corba功能的支撑框架。对HLA得初学者来说,RTI有点想ORB。它们确实有相似的地方:ORB是分布式对象间实现交互得媒体;RTI是联邦成员间实现交互的媒体。但是这种相似性是表明的,其体系结构区别:

(1)               在体系结构的意义上,Corba是用于建立面向对象系统的,这样,其所有的元素是显式交互的;而在HLA中,联邦成员隐式地进行交互。

(2)               RTI支持联邦成员层次得组件模型,而Corba不支持,Corba只是一个能定义组件模型的平台,OMG目前正在为基于Corba的组件模型制定标准。

联系:

(1)       联邦成员和RTI之间得接口可以充当Corba接口。OMG IDL是一种API,使用这种API RTIambassador FederateAmbassador能被当作Corba对象。事实上接口规范的1.3版本和IDL API都已经被OMG接受为其“用于分布式系统的工具”。

(2)       ORBCorba服务是实现RTI的可选工具,它们在RTI中的应用被有效地隐藏在RTI接口的后面;同样地,联邦成员能在它们的实现中自由地使用Corba,有使用ORB实现的RTI和联邦成员。


 [Mu1]

《计算机仿真中的HLA技术》第3章读书笔记(1)

《计算机仿真中的HLA技术》读书笔记--第3章(1)

――――――――――――――――蓝乾艺―――――――――――――――――――

3HLA综述

3.2HLA定义了一种软件体系结构

3.2.1HLA的目标-由组件构建仿真系统

HLA定义了一种软件体系结构,它的主要目标是允许通过联合其它仿真来实现仿真应用,因此HLA支持基于组件的仿真开发,这里的组件是指联邦成员而不是被仿真的实体,联邦成员是一个仿真系统或工具,是重用的基本单位,它们能应用于原始联邦以外的其它联邦中。联邦由联邦成员构成。

一般,联邦成员比通常的软件组件大,联邦成员是完整的运行程序,而不是库里的例程或对象。  在联邦运行联邦设计的时候,HLA支持仿真组件的交互,但是它不是模型构造环境。

HLA设计者要遵循下列目标:(要点:组件化联合集成

1)应该能将一个大的仿真问题分解为多个小仿真问题,它们可以容易、准确地被定义、建立和验证。

2)应该能将由此产生的小仿真系统联合成为较大的仿真系统。

3)应该能将小仿真系统和其它的或未知的仿真系统联合起来形成新的仿真系统。

4)对于基于组件的仿真系统,通用的功能应该和特定的仿真分离开,由此产生的通用支撑结构应该能在仿真之间重用。

5)仿真和通用支撑结构间的接口应该能把仿真和现实支撑结构的技术隔离开,并将能把支撑结构和仿真中的技术隔离开。

3.2.2HLA定义的一种软件体系结构

3.3.2.1体系结构包含的元素、交互和模式

 

ShawGarlan对软件体系结构做出如下定义:理论上,软件体系结构包括建立系统的元素描述、元素间的交互、指导元素合成的模式和对这些模式的限制。

HLA联邦中的软件元素是RTI的一个实现和一些联邦成员,RTI是允许联邦一起执行的软件。

HLA标准和元素、交互、模式之间的映射关系如下:

l         元素:规则和接口规范中定义了HLA联邦的元素,它们是联邦成员、RTI和公共对象模型。

l         交互:规则和接口规范中定义了联邦成员和RTI间的交互、联邦成员间(总是通过RTI)的交互。对于一个给定的联邦,联邦对象模型定义了联邦成员和RTI间交互所传递的数据。对象模型模板(Object Model TemplateOMT)是所有联邦对象模型——FOM的元模型,也就是说,它定义了每一个合法的FOM的结构,这种结构是接口规范中的假设条件。

l         模式:HLA中允许的合成模式由规则进行限制并在接口规范中详细说明。

   

3.3.3.2HLA定义了一个体系结构(不是实现)

 

特别指出的是,RTI由它的接口定义的,有多种不同的RTI软件能满足指定的接口,对应联邦成员也是这样的。接口规范不仅定义了RTI提供给联邦成员的接口,而且定义了联邦成员提供给RTI的接口,因此每一个联邦成员也是这个接口的另一个实现。

接口规范是抽象的概念。服务(双向的)通过调用的前提条件、后续条件和异常被定义为获得和返回参数的过程调用,服务的定义中没有提到任何编程语言。只有在定义了服务之后,接口规范针对不同的编程语言定义了API

 

3.3.3.3HLA展示的几种体系结构的类型

   

HLA混合了层次化系统、数据抽象系统和基于事件(隐含调用)系统的特征,并利用这些系统各自的优点。

1HLA是一个层次化的体系结构。

 从联邦成员的角度看,RTI表现为一个层次,在它的下面完整地封装了RTI的功能。

 RTI的功能和联邦成员分离实现了两方面的功能。第一,将仿真互操作的通用功能从联邦成员中去掉,联邦成员的代码不需要重复那些用于实现互操作的服务。第二,将联邦成员从反映在RTI中的技术变化隔离开,如果必须修改RTI来适应新型网络,联邦成员不受影响。

2HLA是一个数据抽象的体系结构

 HLA中的层次原理实际上是有2个方向的:从联邦成员看RTI和从RTI看联邦成员,这构成了数据抽象RTI为其后面所有的状态都被隐藏的联邦成员提供接口,每一个联邦成员也为其后面所有状态都被隐藏的RTI提供接口。从RTI的角度看,有多个联邦成员,每一个都有同样的接口,单标识不同,这就是数据抽象或面向对象组织的本质。另一个角度,联邦成员的变化不会影响RTI,相同的RTI软件能用于不同的联邦成员,并且联邦成员本身可能还包括复杂系统或被连接到其它系统上。

3HLA是一个基于事件的体系结构

 基于事件的体系结构也称为隐含调用、反应集成或选择性广播。

 隐含调用是用于取代直接调用,一个组件可以宣布(或广播)一件或多件事件,系统中的其它组件通过一个过程与事件连接起来用于登记对这个事件的兴趣。当事件被宣布,系统自己将调用所有已经登记过这个事件的过程,这样一个事件的发生隐含地引发了在其它组件的调用。

 基于事件体系结构的优点是支持重用和容易实现系统进化,这些正是HLA使用这种体系结构类型的目的:针对确定FOM开发的联邦成员能和其它拥有同样FOM的联邦成员联合,而不需要关心那些联邦成员的数量和标识。

另外,隐含调用的主要缺点是组件放弃对系统计算的控制,特别是它们对事情发生的顺序不做任何假设。因此一个开发良好的联邦成员要避免对顺序做假设,除非通过RTI的服务来实现顺序,应避免对其它严格遵循FOM的联邦成员做出假设。

3.2.3体系结构将仿真和支撑框架的功能分离

HLA将联邦功能分为特定的仿真功能和支撑框架功能,这样做的目的是将模型或仿真的特殊行为放在实现它的联邦成员中,支撑框架中只包含仿真互操作的通用功能。因此,同样一个RTI软件可以用来支持许多不同的仿真应用,这样联邦成员的开发者就不必再为支撑框架的事情担忧了。

如图所示,RTI提供给每个联邦成员的接口称为RIT大使(RTI ambassador),联邦成员调用这个接口的操作来请求RTI服务,如:请求更新一个对象的一个属性值,称为联邦成员启动(Federate-initiated)服务。每个联邦成员也对RTI提供一个称为联邦成员大使(Federate Ambassador)的接口,当RTI必须通知联邦成员时,RTI通过调用联邦成员大使的操作来实现,例如:传给联邦成员一个属性值的新值,称为RTI启动(RTI-initiated)服务。这样RTI服务有些被定义为RTI大使接口的一部分,有些被定义为联邦成员大使接口的一部分。

这里注意的是:(1)联邦成员间通过服务来实现相互通信,不能直接对话。(2)联邦成员可以是多种多样的。(3)每个联邦成员和RTI之间只有唯一的连接点,对于RTI来说,这个唯一的连接点就是联邦成员的定义。

 

《计算机仿真中的HLA技术》读书笔记--第1章

《计算机仿真中的HLA技术》读书笔记--第1章

――――――――――――――――蓝乾艺―――――――――――――――――――

1概述

HLA是用于产生计算机仿真系统的通用技术框架,它提高了仿真应用的互操作性和仿真资源的可重用性,利用将多个小的仿真系统联合起来构成一个大型复杂仿真系统,利于完成已有仿真系统的扩展。

1.1为什么HLA能用于建模和仿真

HLA就像一种黏合剂,它能将多个小计算机仿真系统联合成一个巨大的仿真系统。

术语:

联邦(Federation):由仿真子系统联合构成的仿真系统。

联邦成员(Federate)“构成联邦的每个仿真子系统。

联邦执行(Federation Execution):一个联邦运行的整个期间。

其中联邦包含下列要素:

l        运行支撑框架(Run-time InfrastructureRTI):HLA的支撑框架。(软件)

l        联邦对象模型(Federation Object ModelFOM):联邦中联邦成员进行数据交换的共同对象模型。(FOM是联邦开发人员开发所产生的数据)

l        一定数量的联邦成员。(软件,联邦成员由联邦开发人员开发)

一个联邦成员是联邦中的一个成员,是和RTI连接的一个接点。一个联邦成员可以代表一个平台(如:飞行员的坐舱模拟器),也能代表一个聚合级仿真系统(如:整个国家的空中交通仿真系统)。

1.2HLA联邦拥有软件和数据部件

RTI和联邦成员是HLA联邦拥有的软件部件。

联邦成员被定义为和RTI有一个专一的接点,联邦成员可以由多个过程组成,可以运行在多台计算机上。联邦成员可以代表一个单独实体(如一车辆);也可以代表多个实体(如某市所有车辆)。

一个联邦使用的RTI可以用多个或一个过程来实现,可以运行在多台计算机上,但是从概念上讲,它是一个RTI,一个RTI可以支持多个联邦同时执行。

1.3HLA标准

HLA是一种软件体系结构,而不是一种软件。HLA有多种实现方式,因此它是通过文档而不是软件来定义。[Mu1] 

HLA标准包括三部分:

(1)     HLA规则:指联邦执行过程中,实现联邦成员间的交互所必须遵守的原则和协定,是接口规范和OMT的设计规则,也是规定了联邦成员和联邦设计者的职责。

(2)     对象模型模板(OMT):每个联邦都有一个FOMOMT规定了每一个FOM可以采用的结构,OMT是所有FOM的元模型。

(3)     接口规范:是联邦成员和RTI间接口的规范,RTI是允许一个联邦共同执行的软件,RTI和联邦成员间的接口是标准的,RTI的实现方式可以是多种多样的。

测试联邦成员,使用它能实现任何HLA服务的调用,能立刻产生任何数量的测试联邦成员来组成联邦,而不用编写任何程序。


 [Mu1]

 

免费电子图书,哈哈!好东西大家分享

免费图书免费注册,这地方还是很爽的,毕业了在学校借不到自己的图书就上来借,哈哈!好东西大家分享
链接代码http://bbs.itepub.net/index.php?fromuid=203423

你要么站在电脑的硬件上编程,要么站在巨人的肩膀上编程,请选择吧。

你要么站在电脑的硬件上编程,要么站在巨人的肩膀上编程,请选择吧。 

--------转载自人工智能研究者俱乐部
本文将介绍10多种不同的程序设计语言,以及如何下载它们的免费的编译器,(注意,是免费,而不是盗版),如果下载或者安装有问题,可以给我发邮件:
ruoyu0088@sohu.com 

20年后,我们用什么样的语言?也许现在谁都不好回答,20年前的程序员们会告诉你用汇编吧,今天人们也许会告诉你用c语言(c++?)吧。那么20年后呢,也许不是c语言了吧。下面都是所谓的非主流语言,不过它们的设计思想、所能够完成的功能,绝对不比c语言差。也许将来它们会成为主流,也许不会,可是不管怎样,它们都有自己的闪光之处。

--->你要么站在电脑的硬件上编程,要么站在巨人的肩膀上编程,请选择吧。

*******Prolog**********

人工智能领域常用的语言,开发自然语言分析,专家系统,以及所有和智能有关的程序,都非常拿手。可以到我的主页来学习这门语言 http://cdtzx.go.163.com


----visual prolog 
www.visual-prolog.com
顾名思义,这是一个可以制作界面的Prolog,有试用版本下载,大概20M左右。这个prolog版本需要对谓词以及数据进行声明,就像C语言一样。因此在使用的时候比较复杂,不过更加适合编制较大的程序。编译出来的程序可以直接运行。

----amzi prolog
www.amzi.com
这个prolog版本包含解释器、编译器,不过编译出来的程序不能够直接运行,需要运行器运行。可以很方便的和其它语言(例如visual basic,java,C,CGI)连接,开发智能程序。解释器的运行效率较低。它所说使用的语法体系和visual prolog不同,程序需要进行适当的修改才能够在visual prolog中运行。

----SWI-Prolog
http://www.swi.psy.uva.nl/projects/SWI-Prolog/
我没有怎么使用过这个版本的prolog解释器,不过它的运行速度要比amzi prolog的解释器快,和amzi的编译之后的程序差不多快,如果下载图形软件包XPCE的话,还可以开发有界面的程序。它的语法和amzi prolog相同,程序可以通用,不过内部谓词有些不同,有时候需要修改一下。

----Turbo prolog
http://magicpage.myetang.com/
Dos版本的prolog,有开发界面,可以编译成可执行文件,语法和visual-prolog相同,不过内部谓词有许多出入。

----B prolog
http://www.cad.mse.kyutech.ac.jp/people/zhou/index.html
好像是中国人开发的prolog软件,据说比其它的prolog运算速度都要快,我曾经在linux下面使用过这个prolog,也有window版的,不过没有什么集成开发环境。语法和其它的几个都不太相同,需要适当的修改程序才能够在此环境下运行。此prolog提供了许多测试速度的解谜题的程序,这个版本的prolog支持constraint程序设计。

----strawberry prolog
http://www.dobrev.com
1兆的容量,包括完整的开发界面,帮助,例程,提供了几个棋类游戏的源程序。可以直接开发有界面的prolog程序,共享版不能够编译,就解释执行吧

----Sicstus Prolog
http://www.sics.se/sicstus/
Sicstus Prolog无疑是Prolog版本中最出色的,虽然它并不是免费软件,但是可以下载到有时间限制的试用版本,而且只要修改时间也可以无限期的使用下去(过期之后修改时间也不会有问题)。它语法与amzi prolog类似,都属于ISO标准,内部胃词丰富,提供了丰富的库,例如集合、图、带权图等等。支持unix和windows等各种操作系统平台。支持constraint程序设计。


*********Lisp*******
人工智能语言的老大哥。语言格式只有一个形式:列表,所以也叫做表处理语言,这可不是一般的表,是可以包容任意结构的表,有了它,你还用c语言来写链表,二叉树的程序么?学习数据结构不妨使用lisp,让你更加关心算法,而不是数据如何在计算机内部表达。

----xemacs
www.xemacs.org
与著名的guns emacs编辑器的起名,并且界面更加友善,内带emacs lisp, 和许多使用lisp编写的工具软件,例如calc, 是一个功能强大的计算器,支持符号运算,有全部的源程序,如果能够好好研究这些源程序,收获一定不小。

----Allegro CL
common lisp
http://www.franz.com,  windows下的common lisp集成开发环境, 60天试用。

----lisp work
common lisp
http://www.xanalys.com/  无限期使用,没有任何功能限制

*****functional language****
这是一类语言,叫做函数型程序设计语言。是一种非常高级的语言。一种基于λ演算和在70年代后期才发展起来的新语言类型。大多数程序设计语言明显地规定要执行操作的次序。次序的详细规定是很需要的,因为语言的语句对程序的变量有“作用”,如果改变这些作用的次序,就可以改变产生的最后值。但是函数型语言却没有这种性质。在这个意义上,函数型语言能建立可计算性的数学公式模型。让我们来看一个简单的例子:
qsort :: [a] -> [a] | Ord a
qsort [] = []
qsort [a:xs] = qsort [x \\ x<-xs | x=a]

这段程序就是快速排序的代码,你看有多么简洁,并且它的这个qsort可以对任何类型的数据进行排序(只要这种数据可以比较大小)。想读懂上面的程序么?那么下载下面的clean, 或者haskell,好好研究吧,祝你有新的发现。

----clean
http://www.cs.kun.nl/~clean/
并行的函数型语言,可以把源程序编译成exe文件,带有丰富的库,从tcp/ip, 到界面设计,到游戏开发,无一不全。

----haskell
http://www.haskell.org/hugs/
hugs是haskell的免费编译器,语法和clean相似,不过是解释执行,因此易于学习。

---caml
http://caml.inria.fr/
又一个函数型语言。

**********mozart oz*********
www.mozart-oz.org
世界上许多程序语言的研究机构都在开发下一代的语言,mozart oz也可以算是其中之一吧。mozart oz 是具有魔力的语言。它融合了目前几种流行的程序设计思想,我们叫它多范式语言。它是面向对象的语言,它是函数型的语言,它是约束逻辑(constraint)的语言,它是并发式的语言,它还是分布式的语言,几句话很难概括它的功能。最好去它的网站看看吧,下载一个慢慢研究?
他使用emacs作为开发界面,因此你首先需要安装emacs for windows(也可以在mozart的网上找到,也可以去www.gnus.org去找), 如果你安装了emacs 那么你也就同时获得了emacs lisp, 呵呵,收获不小。
为了提起您的兴趣,请思考如下的问题如何编程解决,然后你可以在mozart中找到惊人简单的解决方案。
15个人每天出去玩,每天分为5组,每组3人,玩一个星期,使得任何两个人都曾经在一组中玩过,你如何安排?

*********J*****************
www.jsoftware.com
不要和java搞混淆了。它是一种面向阵列的语言,也就是说矢量,矩阵,以及高次数组都是它的最基本的数据类型,J中引入了大批量的运算符,以及独特的算式分析方法,大幅度的扩展了数学算式的表达能力。 例如如果你要算从1加到100, 用c怎么做? J的程序是:+/i.100 对,就这么短,一个表达式解决了问题,事实上,使用表达式编写出来的程序异常简洁,虽然初看上去很难读懂,一旦掌握了J语言,你就会发现,原来你可以用只有c语言1/20的字符表达同样的功能。

*******forth***************
http://www.forth.org/compilers.html
forth是一种可扩展的,交互式的语言。最初为小型的嵌入式电脑设计的,现在它几乎可以在任何主流的芯片上运行。 在电子表格,专家系统, 多用户数据库,和分布式实时控制系统中有广泛的应用。
表面来看,forth是一种基于堆栈的概念机。例如如果要计算 (3+4)*5 ,我们的程序就是:3 4 + 5 * . 首先把3和4入堆栈,然后调用+子程序,+把堆栈的最顶上两个元素取出(也就是3和4)进行加法运算,然后把结果入堆栈,然后把5入堆栈,然后调用*子程序,把最顶的2个元素,也就是7和5取出,并进行乘法运算,然后把结果入堆栈,最后的.把结果从堆栈中取出。 事实上这是一种简单有效的概念机。当然forth远远不止这些,它有什么样的功能,就由你去发掘了。

*******Logo*************
被称为最佳的启蒙语言,事实上它的功能远远不止启蒙这么简单。一切别的语言能够完成的它也能够完成,只是更加简洁一些,通常logo是使用lisp编写的,我们就可以想象它的高度灵活性了。
----MSWlogo
http://www.softronix.com/
这个网站还有个逻辑数字电路模拟的软件,很有意思,再也不用为什么触发器 门电路之类的发愁了。

******python***************
www.python.org
python是一种解释型 交互式 面向对象的语言,我们经常拿它来和Tcl Perl Scheme Java来比较。它有非常清晰的语法,有模块,有类,异常处理,高级的动态数据结构。它比perl更加易学,功能更加强大。


**********smalltalk********* 
可是面向对象的程序设计语言的鼻祖阿,并且正在蓬勃的发展,没有过时。它是纯面向对象的语言,就连整数也是对象。开放环境也非常集成,如果感兴趣可以到一下网站下载,绝对有耳目一新的感觉: 

http://www.squeak.org/  这是一个非常有趣的smalltalk版本,看上去就像在你的电脑上模拟了另外一套完成的窗口系统,这里面的窗口更加利害,你甚至可以旋转它,不看不知道,看了才发现还有这么奇妙的语言,这么奇妙的开发环境。10M左右 

http://www.cincom.com/scripts/smalltalk.exe/home.asp,这个版本比较实用,有详细的帮助,可以开发真正的windows程序。30M左右  

http://www.object-arts.com/  这里提供的免费smalltalk版本只有3M不到,如果你想先尝试一下这种语言的话,可以下载这个。 

**********Prograph************
http://www.taylor-design.com/DataLink/Home.htm
Prograph可能是全球唯一的纯可视化语言。在这里程序用图表表示,编程序就是绘制图表。我没有看出这么做的优势在那里,不过对于初学编程的人的确有很大帮助,而且尝试新东西总是好的,也许这也是一个发展方向吧。
到上面的网站可以下载一个免费版本,可以解释运行,但是不能够编译。大小约为27M。

*********Basic***************
Basic版本到网络上一搜索一大堆,这里介绍的是一种最适合于编游戏的Basic。
http://www.blitzbasic.com/  
有demo下载,2D,3D的都有,不能够编译成exe,但是可以解释执行,3D版本限制使用次数,如果需要破解,可给我发邮件。 
这个basic专门针对游戏开发而设计,想快速开发游戏的懒人们赶快去下载一个吧。:)
2D的主要功能有:
高速绘制块、图像、圆、线条等图形图像
支持流行的图像格式:bmp,jpg,png
双缓冲绘制流畅的动画
碰撞检测,精确到点
游戏可以在windows中运行,也可以全屏运行
高速!

***************** C **************
最后我们还是回到c语言,毕竟这是目前最流行的语言,如果你不想用盗版,不想安装100多兆的垃圾(大多数初学者不可能完全使用borland c++ builder 或者visual c++的全部功能,而只是用来学习c语言本身),也不想在dos的edit样子的面孔下,使用Tc编程序,那么try下面的东东吧。3M的大小绝对值的下载。
http://www.cs.virginia.edu/~lcc-win32/index.html

如果想下载C++的编译器,去http://www.bloodshed.net/devcpp.html看看,这个集成开发环境使用Delphi编写,C++编译器是Mingw编译系统。

这段时间很忙,忙死了!

这段时间很忙,忙死了!

自动化技术、计算机技术中图法分类号

类目简表

1自动化基础理论
2自动化技术及设备
3计算技术 计算机技术

TP1 自动化系统理论
TP11 自动化系统理论 人机系统、联机系统入此。 人工智能入TP18; 系统理论入N94。
TP13 自动控制理论 控制论在自动化中的应用入此,控制论的数学理论入O231; 工程控制论入TB114.2
TP14 自动信息理论 信息理论在自动化中应用入此。总论信息论的著作入G201; 信息论的数学理论入O236; 数字信号处 理入TN911.72 。
TP15 自动模拟理论(自动仿真理论)模拟理论在自动化中应用入此。 模拟理论入N023; 数学模拟入O242.1; 系统仿真入TP391.9 。
TP17 开关电路理论 自动继电线路原理入此。
TP18 人工智能理论 智能模拟理论、智能控制理论入此。智能语言、智能程序设计入TP31有关各类; 智能机器人入TP242.6 。
TP181 自动推理、机器学习
TP182 专家系统、知识工程
TP183 人工神经网络与计算 人工神经网络计算机入TP398.1 。
TP2 自动化技术及设备
TP20 一般性问题
TP202 设计、性能分析与综合
TP202+.1 可靠性、稳定性、寿命
TP202+.2 精确性、误差
TP202+.3 灵敏度
TP202+.4 随机过程、随机信号
TP202+.5 过渡过程
TP202+.7 最佳化、自适应性 最佳化控制系统入TP273+.1 , 最优化数学理论入O224 。
TP203 结构、构造
TP204 材料
TP205 制造、装配、改装
TP206 调整、测试
TP206+.1 试验、测试技术与方法
TP206+.3 故障预测、诊断与排除
TP207 检修、维护
TP21 自动化元、部件
TP211 一般自动化元、部件
TP212 发送器(变换器)、传感器
TP213 分配器、配电器
TP214 调节器、调节阀
TP215 传动装置(执行机构)
TP216 自动检测仪器、仪表
TP217 校正元件、装置
TP23 自动化装置与设备 总论入此; 自动机入此。 专论入有关各类; 自动机理论入TP301.1。
TP24 机器人技术 机器人工程学入此。机器人语言入TP31 。
TP241 机械手
TP241.2 工业机械手
TP241.3 专用机械手
TP242 机器人 电子机器人入此 。
TP242.2 工业机器人
TP242.3 专用机器人 TP242.6 智能机器人 :人工智能理论入TP18; 机器人语言与编程入TP31有关各类; 智能电子玩具入TS958.2+8
TP242.6+1 机器人触觉
TP242.6+2 机器人视觉
TP242.6+3 机器人听觉
TP242.6+4 机器人嗅觉
TP249 应用 总论入此。
TP27 自动化系统
TP271 一般自动化系统
TP271+.1 元触点系统
TP271+.2 机械系统
TP271+.3 流体系统
TP271+.31 液压系统
TP271+.32 气压系统
TP271+.4 机电系统
TP271+.5 电子系统
TP271+.6 连续系统
TP271+.61 连续线性系统 单环(回路)系统、多环回路系统、多参数系统、分布参数系统等入此。
TP271+.62 连续非线性系统
TP271+.7 变参数系统
TP271+.71 线性变参数系统
TP271+.72 非线性变参数系统
TP271+.73 断续变参数系统
TP271+.74 随机变参数系统
TP271+.8 不连续(离散、断续)系统
TP271+.81 采样(脉冲)系统
TP271+.82 数字和程序系统
TP271+.83 继电器系统
TP271+.9 反馈系统
TP272 自动调节、自动调节系统 多关联与多回路自动调节系统入此。
TP273 自动控制、自动控制系统 计算机控制入此。控制机入TP391.8 ,教学机入TP391.6 ,参见TM921.5。
TP273+.1 最佳控制、最佳控制系统
TP273+.2 自适应(自整定)控制、自适应(自整定)控制系统
TP273+.21 特性自适应控制系统
TP273+.22 学习控制系统、自行组织系统 参见O234。
TP273+.23 极值系统(自寻最佳系统)
TP273+.24 自整定系统
TP273+.3 复合控制、复合控制系统
TP273+.4 模糊控制、模糊控制系统
TP273+.5 计算机控制、计算机控制系统 智能控制、智能控制系统入此。
TP274 数据处理、数据处理系统 自动检测及其系统入此。
TP274+.1 自动记录、指示系统
TP274+.2 数据收集和处理系统 数据处理装置入此。
TP274+.3 自动分类与质量检查系统
TP274+.4 集中检测与巡回检测系统
TP274+.5 采用各种新技术的自动检测系统
TP274+.51 放射线检测及其设备
TP274+.52 红外线检测及其设备
TP274+.53 超声波检测及其设备
TP275 自动随动、自动随动系统 自动随动装置入此。 参见TP921.54。
TP276 自动拖动、自动拖动系统 自动拖动装置入此。 参见TM921。
TP277 监视、报警、故障诊断系统
TP278 自动生产作业线 生产过程自动化、自动化车间、 自动化工厂等入此。
TP29 自动化技术在各方面的应用 总论入此。专论入有关各类。 办公自动化入C931.4。

 
TP3 计算技术、计算机技术
TP3-05 计算机与其他学科的关系 计算机文化、计算机心理学等入此。
TP30 一般性问题
TP301 理论、方法 计算机原理入此。 开关理论入TP17。
TP301.1 自动机理论 自动机入TP23。
TP301.2 形式语言理论 形式语言理论入此。
TP301.4 可计算性理论
TP301.5 计算复杂性理论
TP301.6 算法理论 计算机数学等入此。
TP302 设计与性能分析
TP302.1 总体设计、系统设计
TP302.2 逻辑设计
TP302.4 制图
TP302.7 性能分析、功能分析 可靠性、灵敏度等分析入此。
TP302.8 容错技术
TP303 总体结构、系统结构 总论计算机硬件及其外部设备的著作等入此。 专论各部件的著作入TP32/38有关各类。
TP303+.1 元件
TP303+.2 插件、机架
TP303+.3 电源系统 供电形式、保护系统、UPS等入此。
TP304 材料
TP305 制造、装配、改装 计算机的大密度装配技术入此。
TP305+.1 微小型化工艺
TP305+.2 防潮、防霉、防腐工艺
TP306 调整、测试、校验
TP306+.2 调整、测试方法
TP306+.3 故障诊断与排除
TP307 检修、维护
TP308 机房 机房设施、计算机中心设施、计算机环境等入此。
TP309 安全保密
TP309+.1 计算机设备安全
TP309+.2 数据安全
TP309+.3 数据备份与恢复
TP309+.5 计算机病毒与防治
TP309+.7 加密与解密
TP31 计算机软件
TP311 程序设计、软件工程
TP311.1 程序设计 程序正确性理论入此。
TP311.11 程序设计方法
TP311.12 数据结构
TP311.13 数据库理论与系统
TP311.131 数据库理论 各种数据库语言和数据库管理系统入以下有关各类。
TP311.132 数据库系统 按类型分 ,总论数据库系统入此。 各种具体数据库系统入TP311.138 ,专用数据库见TP392注。
TP311.132.1 层次数据库
TP311.132.2 网状数据库
TP311.132.3 关系数据库
TP311.132.4 面向对象的数据库
TP311.133.1 分布式数据库
TP311.133.2 并行数据库
TP311.134.1 模糊数据库
TP311.134.3 多媒体数据库
TP311.135.1 文献型数据库
TP311.135.3 事实型数据库
TP311.135.4 超文本数据库
TP311.138 数据库系统 按系统名称分, 依数据库系统名称的前两个英文字母区分,并按字母顺序排列.若系统名称前两个字母相同,则再取第三个,依此类推.例:dBASE数据库为TP311.138DB。
TP311.5 软件工程
TP311.51 程序设计自动化
TP311.52 软件开发
TP311.53 软件维护 时钟研究、纠错性维护、扩展性维护、适应性维护等入此。
TP311.54 软件移植
TP311.56 软件工具、工具软件 计算机测试、压缩与解压、加密与解密、PCTOOLS、杀毒等软件入此。
TP312 程序语言、算法语言 依语言名称的前两个英文字母区分,并按字母顺序排列.若语言名称前两个字母相同,则再取第三个,依此类推.例:ALGOL语言为TP312AL。
TP313 汇编程序 汇编语言入此。
TP314 编译程序、解释程序
TP315 管理程序、管理系统
TP316 操作系统
TP316.1 分时操作系统
TP316.2 实时操作系统
TP316.3 批处理
TP316.4 分布式操作系统、并行操作系统
TP316.5 多媒体操作系统
TP316.6 DOS操作系统
TP316.7 Windows操作系统
TP316.8 网络操作系统
TP316.81 UNIX操作系统
TP316.82 XENIX操作系统
TP316.83 NOVELL操作系统
TP316.84 OS/2操作系统
TP316.86 Windows NT操作系统
TP316.89 其他
TP316.9 中文操作系统
TP317 程序包(应用软件)
TP317.1 办公自动化系统
TP317.2 文字处理软件
TP317.3 表处理软件
TP317.4 图象处理软件
TP319 专用应用软件 总论入此。专论入有关各类。如愿意集中于此,可用组配编号法。
TP32 一般计算器和计算机
TP33 电子数字计算机(不连续作用计算机)
TP338 各种电子数字计算机
[TP338.1] 微型计算机 宜入TP36。
TP338.2 小型计算机
TP338.3 中型计算机
TP338.4 大型、巨型计算机
TP338.6 并行计算机
TP338.7 阵列式计算机
TP338.8 分布式计算机
TP34 电子模拟计算机
TP35 混合计算机
TP36 微型计算机 仿TP331/337分,必要时再仿TP30分。
TP368 各种微型计算机
TP368.1 微处理机 单片微型机入此。
TP368.2 单板微型计算机
TP368.3 个人计算机
TP368.32 笔记本计算机
TP368.33 超微型计算机 手表式计算机入此。
TP368.5 服务器、工作站
TP368.6 网络计算机(NC)
TP37 多媒体技术与多媒体计算机 总论入此.。
TP38 其他计算机
TP381 激光计算机
TP382 射流计算机
TP383 超导计算机
TP384 分子计算机
TP387 第五代计算机 智能计算机、超智能计算机、人工智能模拟、通用推理机、数据流计算机等入此
人工智能理论入TP18;智能机器人入TP242.6 。
TP389.1 人工神经网络计算机 人工神经网络入TP183 。
TP39 计算机应用
TP391 信息处理(信息加工) 总论图象处理入TN911.73。
TP391.1 文字信息处理
[TP391.11] 汉字信息编码 宜入H127。
TP391.12 汉字处理系统
TP391.13 表格处理系统
TP391.14 文字录入技术
TP391.2 翻译机 机器翻译及其理论入H085。
TP391.3 检索机 机器检索、机器检索速度等入此。 利用计算机进行情报检索的著作入G354.4。
TP391.4 模式识别与装置 自动读板装置入此。 模式识别理论入O235。 参见TN919.8。
TP391.41 图象识别及其装置 计算机图形学入此; 计算机绘图、三维动画制作、图形识别及其装置等入此。计算机辅助制图入TP391.72。
[TP391.42] 声音识别及其装置 宜入TN912.34。
TP391.43 文字识别及其装置
TP391.44 光模式识别及其装置 总论条形码的著作入此。 专论条形码在各个领域的应用入有关各类 。
TP391.5 诊断机 机器诊断入R446。
TP391.6 教学机、学习机 机器教学入G433。
TP391.7 机器辅助技术 机器辅助教学入G434。
TP391.72 机器辅助设计(CAD)、辅助制图 总论入此。
TP391.73 机器辅助技术制造(CAM) 总论入此。
TP391.75 机器辅助计算(CAC) 总论入此。
TP391.76 机器辅助测试(CAT) 总论入此。
TP391.77 机器辅助分析(CAA)
TP391.8 控制机 计算机控制入TP273。
TP391.9 计算机仿真 总论仿真技术、系统仿真、虚拟现实等入此。 自动仿真理论入TP15。
TP392 各种专用数据库 总论入此。 各种专用数据库入有关各类。
TP393 计算机网络 总论联机网络系统入此。 总论通信网入TN915。
TP393.0 一般性问题
TP393.01 计算机网络理论 虚拟网理论、网络仿真理论入此。
TP393.02 计算机网络结构与设计 网络分析、网络拓扑等入此。
TP393.03 网络互连技术
[TP393.04] 通信规程、通信协议 宜入TN915.04。
[TP393.05] 网络设备 ,宜入TN915.05。
TP393.06 计算机网络测试、运行
TP393.07 计算机网络管理 网络管理软件入此。
TP393.08 计算机网络安全 防火墙技术、网络安全软件入此。
TP393.09 计算机网络应用程序 网络语言入TP312。
TP393.092 网络浏览器 网址资源、WWW、Netscape主页制作等入此。
TP393.093 文件传送程序(FTP)
TP393.094 远程登录(Telnet) 公告牌(BBS)等入此。
TP393.098 电子邮件(E-mail)
TP393.1/.4 各种计算机网 可仿TP393.0分。例:仿真局域网为TP393.101。
TP393.1 局域网(LAN)、城域网(MAN) Novell网入此。
TP393.11 以太网 高速以太网、千兆位以太网入此。
TP393.12 令牌网
TP393.13 DQDB网(分布队列双总线网络)
TP393.14 FDDI网(高速光纤环网) 分布式光纤接口入此. 参见TN915.63。
TP393.15 ATM局域网 总论ATM(异步传输模式)网入TN915.2。
[TP393.17] 无线局域网 宜入TN925.93。
TP393.18 校园网、企业网(Intranet)
TP393.2 广域网(WAN)
{TP393.3} 洲际网 (停用) 改入TP393.4。
TP393.4 国际互连网 因特网(Internet)入此。 国家信息基础设施(信息高速公路)入TN915。
TP399 在其他方面在应用 总论入此。 在其他科学中的应用入有关各类。


无线电电子学、电信技术
TN91 通信 总论电信技术的著作入此。
TN911 通信理论 通信原理、传输理论入此。
TN911.1 电信数学
TN911.2 信息论 信息理论在电信技术中的应用入此。
TN911.21 信源编码理论 总论入此。专论入有关各类。例:语音编码入TN912.3;图像编码入TN919.81.
TN911.22 信道编码理论 纠错编码理论入此。
TN911.23 信号检测与估计 平滑与过滤入此。
TN911.25 信号接收及选择性与灵敏度
TN911.25+1 选择性
TN911.25+2 灵敏度
TN911.25+3 信号接收方式
TN911.25+4 传输质量
TN911.3 调制理论
TN911.4 噪声与扰
TN911.5 信道均衡
TN911.6 信号分析 频谱分析、信号与系统、信号与网络等入此。
TN911.7 信号处理 总论入此。专论入有关各类。例:语音信号处理入TN912.3;模式识别入TP391.4。
TN911.71 模拟信号处理
TN911.72 数字信号处理
TN911.73 图像信号处理 总论入此;计算机图像信号处理入此。专论入有关各类。例:传真信号处理入TN917.81;图像编码入TN919.81;电视图像信号处理入TN941.1。(3版入TN94.1)
TN911.74 光学信号处理
TN911.8 相位锁定、锁相技术
TN912 电声技术和语音信号处理
TN912.1 电声学
TN912.11 传输系统
TN912.12 录音和重放 录放技术入TN912.22/23。参见J933
TN912.13 电话声学
TN912.14 广播声学
TN912.15 电影声学
TN912.16 信号声学
TN912.2 电声技术与设备 (扩音机、电唱机,4版改入TN912.21)
TN912.20 一般性问题
TN912.201 原理
TN912.202 设计
TN912.203 结构
TN912.203.1 电路
TN912.205 制造工艺
TN912.206 测试、调整及其设备
TN912.207 维修、保养
TN912.21/27 各种电声技术与设备 如有必要,可仿TN912.20分。
TN912.21 扩音机、电唱机 (3版入TN912.2)
TN912.22 录音机 收录机入此。录音磁头入TN646。
TN912.22+1 磁性录音机
TN912.22+2 光学录音机
TN912.23 放音机
TN912.23+1 光学放音机 CD唱片制作入TQ597.6。
TN912.23+2 同步磁性放音机
TN912.23+3 同步光磁两用放音机
TN912.24 转录机
TN912.25 涂磁机
TN912.26 音箱
TN912.27 立体声和多声道系统技术与设备 总论入此。专论入有关可类。例:立体声收音机入NT859;立体声扬声器入TN643+.8。
TN912.271 组合音响 放音式卡拉OK机入此。卡拉OK放像机入TN946.7。
{TN912.29} 电声设备的维修 (停用;4版改入TN912.207)
TN912.3 语音信号处理
TN912.31 语音波形编码
TN912.32 语音参数编码 声码器入此。
TN912.33 语音合成
TN912.34 语音识别与设备 元音、辅音识别等入此。
TN912.35 语音增强
TN913 有线通信、通信线路工程 (3版类名:通信线路工程、通信网;通信网,4版改入TN915)
TN913.1 线路勘测和设计
TN913.1+1 路由的选择勘测
TN913.1+2 线路形式的采用
TN913.3 通信线路 通信电缆入TM248。
TN913.31 架空线路
TN913.31+1 通信架空裸线线路
TN913.31+2 通信架空电缆线路
TN913.31+3 通信线和高压线混合架空线路
TN913.31+4 架空光缆线路
TN913.32 通信电缆线路
TN913.32+1 地下通信电缆线路
TN913.32+2 水底通信电缆线路
TN913.32+3 充油通信电缆线路
TN913.32+4 充气通信电缆线路
TN913.32+5 同轴通信电缆线路
TN913.32+6 空心通信电缆线路
TN913.33 通信光缆线路
TN913.331 地下光缆线路
TN913.332 水底光缆线路 海底光缆入此。
TN913.36 微波中继线路
TN913.37 散射线路
TN913.6 载波通信 总论入此。专论入有关各类。(3版入TN915.6)
[TN913.7] 光纤通信 宜入TN929.11
TN913.8 电缆数字通信 接入系统入TN915.6。
TN914 通信系统(传输系统)
TN914.1 模拟调制通信系统 调幅、调频、调相、单边带调制、抑制载波双边带调制等通信系统入此。
TN914.2 脉冲调制通信系统
TN914.3 数字通信系统
TN914.31 脉码调制通信
TN914.32 增量调制通信
TN914.33 数字复接
TN914.331 准同步数字系列(PDH)
TN914.332 同步数字系列(SDH)
[TN914.34] 数字传输网 宜入TN915.11。
TN914.4 跳频与扩展频谱通信系统
TN914.41 跳频通信
TN914.42 扩频通信
TN914.43 跳扩频通信
TN914.5 多址通信系统 点对多点微波通信入TN925.92;无线用户环路(无线接入网)入TN925.93;多址移动通信入TN925.5。
TN914.51 频分多址(FDMA)通信
TN914.52 时分多址(TDMA)通信
TN914.53 码分多址(CDMA)通信
TN915 通信网 电话网入TN916.2;电报网入TN917.1;数据网入TN919.2;图像通信网、多媒体通信网入TN919.85;计算机网入TP393;专论Intranet入TP393.4。
TN915.0 一般性问题 参见TP393.0。
TN915.01 通信网理论 通信业务量理论、网同步等入此。参见TM711。(3版入TN913.21)
TN915.02 通信网结构与设计 总论通信网络分析、网络拓扑、通信网信号系统等入此。专论计算机通信网结构与设计入TP393.02。
[TN915.03] 网络互连技术 宜入TP393.03。
TN915.04 通信规程、通信协议 TCP/IP等入此。
TN915.05 通信网设备 交换机、集中器、路由器、网关、网桥、集线路、调制解调器(Modem)等入此。网卡入TP334.7;调制器与解调器入TN76。
TN915.06 测试、运行
TN915.07 网络管理 电信网管理(TMN)入此。专论计算机网络管理入TP393.07。
TN915.08 网络安全 专论计算机网络安全入TP393.08。
TN915.09 网络应用程序 宜入TP393.09。
TN915.1 数字通信网 总论数字通信网与数据通信网入此。(3版入TN913.24)
TN915.11 数字传输网 自愈网入此。
[TN915.12] 数字数据网(DDN) 宜入TN919.25。
TN915.14 综合业务数字网(ISDN)
TN915.141 窄带综合业务数字网(N-ISDN)
TN915.142 宽带综合业务数字网 (B-ISDN)
TN915.18 模拟通信网 (3版入TN913.25)
TN915.19 模拟一数字通信网 (3版入TN913.27)
TN915.2 ATM(异步传输方式)网 总论入此;ATM交换技术入此。专论ATM技术在各种网络中的应用入有关各类。例:ATM局域网入TP393.15;ATM校园网入TP393.18。
[TN915.41] 数据通信网 宜入TN919.2。
[TN915.43] 图像通信网、多媒体通信网 宜入TN919.85。
TN915.5 智能网 智能网业务,如电话卡业务、被叫付费业务、虚拟专用网业务等入此。
TN915.6 接入网 总论入此。专论入有关各类。(3版类名:载波通信;4版改入TN913.6)
TN915.61 铜线接入系统 HDSL、ADSL、VDSL等入此。
TN915.62 光纤电缆混合接入网(HFC)
TN915.63 光缆接入网 FDDI(高速光纤环网)入TP393.14。
[TN915.65] 无线用户环路(无线接入网) 宜入TN925.93 。
TN915.81 公用通信网 CHINAPAC入此。
TN915.85 专用通信网 (3版入TN913.23)
TN915.851 军用通信网
[TN915.852] 铁路通信网 宜入U285.5。
TN915.853 电力通信网 电力网入TM727。
[TN915.857] 用户网 宜入TP393。
TN915.9 其他通信网 同步通信网、异步通信网、点一点通信网、多点联接通信网、线路交换型通信网、存贮一转发型通信网等入此。

数学

O21 概率论与数理统计
O211 概率论(几率论、或燃率论) 概率逻辑入此。
O211.1 概率基础 环上概率等入此。
O211.2 几何概率与组合概率
O211.3 分布理论 特征函数等入此。(3版类名:分布函数、特征函数)
O211.4 极限理论
O211.5 随机变量 随机积分、随机变分等入此。
O211.6 随机过程 点过程、鞅论等入此。
O211.61 平稳过程与二阶矩过程 时间序列分析入此。(3版类名:平稳过程与二阶过程)
O211.62 马尔可夫过程 马尔可夫链入此。
O211.63 随机微分方程
O211.64 过程统计理论 滤波理论入此。时间序列分析入O211.61。
O211.65 分支过程
O211.66 描述性概率
O211.67 期望与预测 马尔可夫风险、风险论、估计论等入此。
O211.9 概率论的应用 总论入此。具体应用入有关各类。
O212 数理统计 线性模型入此。参见C8。
O212.1 一般数理统计 假设检验、相关与回归理论、方差分析、参数分析等入此。(协方差分析,4版改入O212.4)
O212.2 抽样理论、频率分布 抽样调查、抽样检查等入此。
O212.3 序贯分析 生存分析入此。
O212.4 多元分析 协方差分析入此。(协方差分析,3版入O212.1)
O212.5 判决函数(决策函数)
O212.6 试验分析与试验设计
O212.7 非参数统计
O212.8 贝叶斯统计
O213 应用统计数学 总论入此。在各部门的应用入有关各类。参见TB114。
O213.1 质量控制
O213.2 可靠性理论 总论入此。在各部门的应用入有关各类。参见TB114.3。
O213.9 其他统计调整
O22 运筹学 总论入此。在各部门的应用入有关各类。例:运筹学在农业方面的应用为S11+5。参见114.3。
O221 规划论(数学规划)
O221.1 线性规划 大规模线性规划入此。
O221.2 非线性规划 几何规划入此。
O221.3 动态规划
O221.4 整数规划 混合整数规划、O-1规划等入此。
O221.5 随机规划
O221.6 多目标规划
O221.7 组合规划
O221.8 参数规划
O223 统筹方法 排序问题入此。
O224 最优化的数学理论 优化法、正交法、随机优化等入此。
O225 对策论(博弈论) 微分对策入此。
O226 排队论(随机服务系统)
O227 库存论 存储理论入此。
O228 更新理论
O229 搜索理论
O23 控制论、信息论(数学理论)
O231 控制论(控制论的数学理论) 总论控制论的著作入此。工程控制论入TB114.2;自动控制论入TP13;自动控制系
统入TP273;社会控制论入C91;管理计划和控制理论入C935;经济控制论入F224.11;生物控制论入Q811.3。
O231.1 线性控制系统
O231.2 非线性控制系统
O231.3 随机控制系统 系统辨识、状态控制等入此。
O231.4 分布参数系统
[O231.5] 复杂系统 宜入N941.4。
O231.9 其他
O232 最优控制 最优控制器入TM571.6+2。
O233 逻辑网络理论 参见O157.5。
O234 学习机理论 参见TP273+.22。
O235 模式识别理论
O236 信息论(信息论的数学理论) 香农理论、信息熵等入此。信息论一般理论入G201;信息处理假设入G202。
[O236.2] 编码理论(代数码理论) 宜入O157.4。
O24 计算数学
O241 数值分析 数值计算的理论与方法入此。参见TB115。(3版类名:数值计算的理论与方法)
O241.1 误差理论
{O241.2} 最小二乘法 (停用;4版改入O241.5)
O241.3 插值法 差分方程、有限差分法等入此。
O241.4 数值积分法、数值微分法 参见O172。
O241.5 数值逼近 最小二乘法、函数逼近计算、样条函数等入此。参见O174.41。(最小二乘法,3版入O241.2)。
O241.6 线性代数的计算方法 线性方程组、矩阵及特征值、迭代法等入此。参见O175.9、O151.21。
O241.7 非线性代数方程和超越方程的数值解法
O241.8 微分方程、积分方程的数值解法
O241.81 常微分方程的数值解法 参见O175.1。
O241.82 偏微分方程的数值解法 有限元法入此。参见O175.2。(有限元法,3版入O242.21)
O241.83 积分方程的数值解法 参见O175.5。
O241.84 差分方程的稳定性理论
O241.85 共形变换(保角变换)中的计算问题 参见O174.51。
O241.86 实用调和分析
O242 数学模拟、近似计算
O242.1 数学模拟 随机模拟方法入此。
O242.2 近似计算 蒙特卡罗方法入此。(蒙特卡罗方法:3版入O242.1)
[O242.21] 有限元法 宜入O241.82。(3版为正式类;4版改为交替类)
O242.22 哈特里(Hartree)近似法
O242.23 牛顿-拉弗森(Newton-Raphson)法 拟牛顿法、优化算法入此。
O242.24 帕德(Pade)近似法
O242.25 雷利-里茨(Rayleigh-Ritz)法
O242.26 松弛法
O242.27 索末非尔德(Sommerfeld)近似法
O242.28 随机近似法
O242.29 区间分析法
O243 图像数学、图算数学 列线图学(若模图法)入此。
[O244] 程序设计 宜入TP311。
O245 数值软件 数学软件入此。图形软件入TP317.4;工程计算软件入TB115。
O246 数值并行计算
O29 应用数学 总论入此。具体应用入有关各类。例:工程数学入TB11。如愿将各种应用数学集中于此,可用组配编号

语言概述


  语言是由句子组成的集合,是由一组符号所构成的集合。
  汉语--所有符合汉语语法的句子的全体
  英语--所有符合英语语法的句子的全体
  程序设计语言--所有该语言的程序的全体
研究语言   每个句子构成的规律
每个句子的含义
每个句子和使用者的关系
研究程序设计语言   每个程序构成的规律
每个程序的含义
每个程序和使用者的关系
语言研究的三个方面   语法 Syntax
语义 Semantics
语用 Pragmatics
  语法 -- 表示构成语言句子的各个记号之间的组合规律
  语义 -- 表示按照各种表示方法所表示的各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)
  语用 -- 表示在各个记号所出现的行为中,它们的来源、使用和影响。
  每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。
  语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。
  如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。

计算机核心期刊新排名(1)

计算机核心期刊新排名(1)
 
新排名
2004部分核心期刊名单(自动化、计算机部分与无线电、电信部分)
自动化、计算机部分
1    计算机学报    北京    中国计算机学会等
2    软件学报    北京    中国科学院软件研究所
3    计算机研究与发展    北京    中国科学院计算技术研究所等
4    自动化学报    北京    中国科学院等
5    计算机科学    重庆    国家科技部西南信息中心
6    控制理论与应用    广州    中国科学院系统科学研究所等
7    计算机辅助设计与图形学学报    北京    中国计算机学会等
8    计算机工程与应用    北京    华北计算技术研究所
9    模式识别与人工智能    北京    中国自动化学会等
10    控制与决策    沈阳    东北大学
11    小型微型计算机系统    沈阳    中国科学院沈阳计算机技术研究所
12    计算机工程    上海    上海市计算机协会
13    计算机应用    北京    中国科学院计算机应用研究所等
14    信息与控制    沈阳    中国科学院沈阳自动化研究所
15    机器人    沈阳    中国科学院沈阳自动化研究所
16    中国图象图形学报 .A版    北京    中国图象图形学会
17    计算机应用研究    成都    四川省计算机应用研究中心
18    系统仿真学报    北京    航天机电集团北京长峰计算机技术有限公司
19    计算机集成制造系统—CIMS    北京    国家863计划CIMS主题办公室等
20    遥感学报    .北京    中国地理学会环境遥感分会,中国科学院遥感应用研究所
21    中文信息学报    北京    中国中文信息学会
22    微计算机信息    北京    中国计算机用户协会,山西协会
23    数据采集与处理    南京    中国电子学会等
24    微型机与应用    北京    信息产业部电子第6研究所
25    传感器技术    哈尔滨    信息产业部电子第49研究所
26    传感技术学报    南京    国家教委全国高校传感技术研究会,东南大学
27    计算机工程与设计    北京    航天工业总公司706所
28    计算机应用与软件    上海    上海计算技术研究所等
29    微型计算机    重庆    科技部西南信息中心
30    微电子学与计算机    西安    中国航天工业总公等
 
无线电、电信部分
1    电子学报    北京    中国电子学会
2    中国激光    北京    中国光学学会
3    半导体学报    北京    中国电子学会等
4    通信学报    北京    中国通信学会
5    电子与信息学报    北京    中国科学院电子学研究所,国家自然科学基金委员会信息科学部
6    光电子、激光    天津    国家自然科学基金委员会信息科学部
7    电子科技大学学报    成都    电子科技大学
8    激光杂志    重庆    重庆市光学机械研究所
9    激光技术    成都    西南技术物理研究所
10    西安电子科技大学学报    西安    西安电子科技大学
11    红外与毫米波学报    北京    中国光学学会等
12    量子电子学报    合肥    中国光学学会基础光学专业委员会
13    应用激光    上海    中国光学学会激光加工专业委员会
14    系统工程与电子技术    北京    中国航天工业总公司二院等
15    电子技术应用    北京    信息产业部电子第六研究所
16    半导体光电    重庆    重庆光电技术研究所
17    激光与红外    北京    华北光电技术研究所
18    电信科学    北京    中国通信协会
19    半导体技术    石家庄    中国半导体行业协会等
20    固体电子学研究与进展    南京    南京电子器件研究所
21    现代雷达    南京    南京电子技术研究所
22    信号处理    北京    中国电子学会
23    电波科学学报    新乡    中国电子学会
24    电视技术    北京    信息产业部电视电声研究所
25    压电与声光    重庆    机械电子工业部第26研究所
26    北京邮电大学学报    北京    北京邮电大学学报
27    激光与光电子学进展    上海    中国光学学会
28    红外与激光工程    天津    航天工业总公司第三研究院8358研究所
29    电路与系统学报    广州    中国科学院广州电子技术研究所
30    光电工程    成都    中国科学院光电技术研究所等
31    光通信研究    武汉    武汉邮电科学研究院
32    微电子学    重庆    四川固体电路研究所
33    通讯技术    成都    信息产业部电子第三十研究所
34    光通信技术    桂林    电子工业部第34研究所
35    液晶与显示    长春    中国科学院长春光学精密机械与物理研究所,中国光学电子行业协会液晶专业分会
36    微波学报    南京    中国电子学会
37    广播与电视技术    北京    国家广播电影电视总局科技信息研究所
38    真空科学与技术学报    北京    中国真空学会
39    数据采集与处理    南京    中国电子学会等
40    红外技术    昆明    昆明物理研究所
41    电子元件与材料    成都    宏明电子实业总公司(国营第715厂)
 
计算机中文核心详细版(2)
 
计算机类中文核心期刊简介在实际工作中,常有些读者在职称评审、投稿、申报项目时,需要查找计算机类中文权威、核心期刊目录或编辑部地址、联系方式等,现汇编、整理了这份“计算机类中文核心期刊简介”,供参考。
计算机类中文核心期刊目录如下:
1.《软件学报》 (月刊) EI、ISTIC收录
主办单位:中国计算机学会 中国科学院软件研究所
地址:北京8718信箱 北京海淀区中关村《软件学报》编辑委员会
邮编:100080
邮发代号:82-367
E-mail:jos@iscas.ac.cn
http://www.jos.org.cn http://www.jos.org.cn
2.《计算机学报》 (月刊) EI、ISTIC收录
主办单位:中国计算机学会 中国科学院计算技术研究所
地址:北京2704信箱 中国科学院计算技术研究所 《计算机学报》编辑部
邮编:100080
邮发代号:2-833
E-mail: cjc@ict.ac.cn
http://www.ict.ac.cn/cjc/cjc.html cjc@ict.ac.cn http://www.ict.ac.cn/cjc/cjc.html
3.《计算机研究与发展》 (月刊) ISTIC收录
主办单位:中国科学院计算技术研究所 中国计算机学会
地址:北京2704信箱 中国科学院计算技术研究所 《计算机研究与发展》 编辑委员会
邮编:100080
邮发代号:2-654 E-mail:crad@ict.ac.cn
http:// crad.ict.ac.cn
4.《计算机工程 (半月刊)》 ISTIC收录
主办单位:华东计算技术研究所 上海市计算机学会
地址:上海市漕河泾桂林路418号 《计算机工程》编辑部
邮编:200233
邮发代号:4-310
E-mail:hdsce@china.com
http://www.jsjc.chinajournal.net.cn http://www.jsjc.chinajournal.net.cn
5.《自动化学报》 (双月刊) EI、ISTIC收录
主办单位:中国自动化学会 中国科学院自动化研究所
地址:北京中关村中国科学院自动化所《自动化学报》编辑部
邮编:100080
邮发代号:2-180
E-mail:aas@iamail.ia.ac.cn http://www.chinainfo.gov.cn/periodical/zdhxb http://www.chinainfo.gov.cn/periodical/zdhxb
6 .《模试识别与人工智能》 (季刊) ISTIC收录
主办单位:中国自动化学会 国家智能计算机研究开发中心
地址:合肥1130信箱 中国科学院合肥智能机械研究所 《模式识别与人工智能》编辑部
邮编230031
邮发代号:26-69
E-mail:bjb@mail.iim.ac.cn
7.《小型微型计算机系统》 (月刊) ISTIC收录
主办单位:中科院沈阳计算技术研究所 地址:沈阳市和平区三好街100号 中科院沈阳计算技术研究所 《小型微型计算机系统》编辑部
邮编:110004
邮发代号:8-108
E-mail:xwjxt@sict.ac.cn
http://www. sict.ac.cn
8.《计算机科学》 (月刊) ISTIC收录
主办单位:国家科技部西南信息中心
地址:重庆市渝中区胜利路132号 《计算机科学》杂志社
邮编:400013
邮发代号:78-68
E-mail:jsjkx@swic.ac.cn
9.《计算机应用与软件》(月刊)
主办单位:上海市计算技术研究所 上海计算机软件技术开发中心
地址:上海市愚园路546号 《计算机应用与软件》编辑部
邮编:200040
邮发代号:4-379
10.《数值计算与计算机应用》 (季刊) ISTIC收录
主办单位:中国科学院计算数学与科学工程计算研究所
地址:北京市2719信箱 《数值计算与计算机应用》编辑部
邮编:100080
邮发代号:2-413
E-mail:SZJS@chinajournal.net.cn http://www.chinainfo.gov.cn/periodical http://www.chinainfo.gov.cn/periodical
11.《计算机工程与应用》 (旬刊) ISTIC收录
主办单位:华北计算技术研究所
地址:北京市北四环中路211号 北京619信箱26分箱《计算机工程与应用》杂志社
邮编:100083
邮发代号:82-605
投稿信箱: tjit@public2.bat.net.cn
                 cea@163bj.com
http://www.chinainfo.gov.cn/periodical/ tjit@public2.bat.net.cn cea@163bj.com
http://www.chinainfo.gov.cn/periodical/
12.《计算机应用研究》 (月刊) ISTIC收录
主办单位:四川省电子计算机应用研究中心
地址:成都市人民南路4段11号附1号 《计算机应用研究》杂志社
邮编:610041
邮发代号:62-68
E-mail:SRCCA@SICHUAN.NET.CNSRCCA@SICHUAN.NET.CN
13.《计算机工程与科学》 (双月刊) ISTIC收录
主办单位:国防科技大学计算机学院
地址:湖南长沙砚瓦池正街47号 《计算机工程与科学》编辑部
邮编:410073
邮发代号:42-153
E-mail:cchunxi@163.net
             cchunxi@163.net
14.《中文信息学报》 (双月刊) ISTIC收录
主办单位:中国科学院软件研究所 中国中文信息学会
地址:北京8718信箱 《中文信息学报》编辑部
邮编:100080
E-mail:cips@admin.iscas.ac.cn
15.《计算机应用》 (月刊) ISTIC收录
主办单位:中科院成都计算机应用研究所 四川省计算机学会
地址:成都市人民南路四段九号 成都237信箱《计算机应用》编辑部
邮编:610041
邮发代号:62-110
E-mail:bjb@computerapplications.com.cn   http://www.computerapplications.com.cn
16.《计算机辅助设计与图形学学报》 (月刊) ISTIC收录
主办单位:中国计算机学会
地址:北京2704信箱 中国科学院计算技术研究所
邮编:100080
邮发代号:82-456
E-mail:jcad@ict.ac.cn
http://jcad.ict.ac.cn
http://jcad.ict.ac.cn
17.《计算机科学与技术》(英文版) (双月刊) SCIE、EI收录
主办单位:中国科学院计算技术研究所
地址:北京2704信箱
邮编:100080
邮发代号:2-578
E-mail:jcst@ict.ac.cn
http://jcst.ict.ac.cn
http://jcst.ict.ac.cn
18.《计算机工程与设计》 (月刊)
主办单位:中国航天科工集团二院706所
地址:北京142信箱406分箱 《计算机工程与设计》编辑部
邮编:100854
邮发代号:82-425
E-mail:ced@httx.com.cn
           ced@httx.com.cn
19.《 微电子学与计算机》 (月刊)
主办单位:中国航天科技集团公司西安微电子技术研究所
地址:西安市81号信箱 《 微电子学与计算机》编辑部
邮编:710054
邮发代号:52-16
说明:检索系统摘引情况选定三个系统,即SCI(科学引文索引)、EI(工程索引)和 ISTIC (中国科技期刊引证报告统计源期刊),未注明者为非统计源期刊, 参照1999年度的数据。

最难的逻辑题

有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题,而你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?

对P,NP,NPC,NP-H问题的认识和理解

P,NP,NPC,NP-H问题的认识和理解

author: 云朵朵lanqy

由于对P,NP,NPC,NP-H这几个问题一直都属于模糊的认识状态,特在网上找了些相关P,NP,NPC,NP-H问题的解释,网上相关于它们的解释版本很多,其中还存在不少错误的解释版本,令人越看越晕,越来越糊涂。最后在不断的努力下,似乎明白了一些,以下是对P,NP,NPC,NP-H问题的一些认识、理解和考证。如果理解还有什么偏差的话请高手批评指教。

版本1

计算复杂性理论源于对判定问题算法的研究。

判定问题:其答案不是“是”就是“否”的问题。如,一个图的两顶点之间存在路径吗?判定问题有.三类:PNPNPC

P类:已有多项式时间算法的判定问题.

NP类:已有指数时间算法的判定问题,包括P类.

NPC类:是NP的一个子集,且其中每一个问题均能由NP中的任何问题在多项式时间内转化而成.问题A能在多项式时间内转化为问题B可理解为,问题A有一个算法以问题B的算法为子程序,当把每次对B算法的调用看作一个基本操作(只花常数时间)时,A的这个算法是多项式时间的.

NPC问题之外还有一些问题,其难度与NPC相当或难度超出NPC,这就是NPH问题.何谓NPH问题呢?

NPH类:若问题A不属于NP类,已知某一NPC问题可在多项式时间之内转化为问题A,则称ANP难题.例如,“TSP”是NPH问题.

版本2:三、什么是NP问题?

指那些既不能证明其算法复杂性超出多项式界,又未找到有效算法的一类问题。

版本3

P是所有可在多项式时间内用确定算法求解的判定问题的集合。

NP是所有可在多项式时间内用不确定算法求解的判定问题的集合。

版本4

P问题:在多项式时间内由确定的图灵机(DTM)可以解决的问题称为P类问题,或称其属于P类。

NP问题:如果一个问题,其解法可以在多项式时间内由一个NTM(不确定图灵机)实现,那么此问题是NP问题

NPHARD:从多项式规约的角度来看, 如果任何一个NP问题的都不会比某个问题L难,那么我们就说LNP-HARD问题

NPC:如果某个问题是NP-HARD问题,同是它又是NP问题。那么,我们称它为NPC问题

版本5

1P类问题:由确定型图灵机在多项式时间内可解的一切判定问题所组成的集合;

2NP类问题:由非确定型图灵机在多项式时间内可计算的判定 问题所组成的集合;

3NP完全问题:如果判定问题π∈NP,并且对所有其他判定问题 π∈NP,都有π'多项式变换到π(记为π'∞π),则称判定问题π NP完全的。

我的看法与理解:

1PNP的定义

通过考证,版本4和版本5P问题和NP问题的定义较为严谨,其实版本2和通常的:“复杂度类P包含所有那些可以由一个确定型图灵机在多项式表达的时间内解决的问题;类NP由所有其肯定解可以在给定正确信息的多项式时间内验证的决定问题组成,或者等效的说,那些解可以在非确定图灵机上在多项式时间内找出的问题的集合。”是一层意思,剩下的几个版本可以认为是广义上非严格的定义。值得注意的是:这里NPNNon-DeterministicN,不是Non-PolynomialNP问题与NP问题的关系问题是计算理论最大的未解决问题,也就是常说的P vs PN问题或P =NP问题。

2P =NP  NPC问题

P =NP 是“千僖难题”之一,美国麻州的克雷(Clay)数学研究所于2000524日在巴黎法兰西学院宣布以一百万美元的报酬悬赏此问题。先看BBS上的一段说法:

NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。但是,有些问题是无法按部就班直接地计算出来。比如,找大质数的问题。有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。这种问题的答案,是无法直接计算得到的,只能通过间接的"猜算"来得到结果。这也就是非确定性问题。而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。这个可以告诉你"猜算"的答案正确与否的算法,假如可以在多项式时间内算出来,就叫做多项式非确定性问题。而如果这个问题的所有可能答案,都是可以在多项式时间内进行正确与否的验算的话,就叫完全多项式非确定问题。完全多项式非确定性问题可以用穷举法得到答案,一个个检验下去,最终便能得到结果。但是这样算法的复杂程度,是指数关系,因此计算的时间随问题的复杂程度成指数的增长,很快便变得不可计算了。

人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们於是就猜想,是否这类问题,存在一个确定性算法,可以在指数时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。

解决这个猜想,无非两种可能,一种是找到一个这样的算法,只要针对某个特定NP完全问题找到一个算法,所有这类问题都可以迎刃而解了,因为他们可以转化为同一个问题。另外的一种可能,就是这样的算法是不存在的。那么就要从数学理论上证明它为什么不存在。

前段时间轰动世界的一个数学成果,是几个印度人提出了一个新算法,可以在多项式时间内,证明某个数是或者不是质数,而在这之前,人们认为质数的证明,是个非多项式问题。

可见,有些看来好象是非多项式的问题,其实是多项式问题,只是人们一时还不知道它的多项式解而已。

看了这段文献,也许会明白版本1中“NP类:已有指数时间算法的判定问题,”是断章取义的定义。但是对于NPCNP-completeness)的理解和解决P =NP问题的两条出路可能还不是那么清楚,那看一下1982年图灵奖获得者:斯蒂芬.库克(Stephen A. Cook)有关于NP完全性理论的奠基(来自《ACM图灵奖——计算机发展史的缩影》(高等教育出版社))的材料,也许就会更清楚些了:

19715月,他在ACM于俄亥俄州的 Shaker Heights举行的第三届计算理论研讨会上发表了那篇著名的论文:“定理证明过程的复杂性”(The Complexity of Theorem Proving Procedures),在这篇论文中,库克首次明确提出了NP完全性问题,并奠定了NP完全性理论的基础,所谓“NP完全性”(NP-completeness)问题是这样一个问题:由于P =NP问题难以解决,库克就另辟途径,从NP类的问题中分出复杂性最高的一个子类,把它叫做NP完全类。库克证明,任取NP类中的一个问题,再任取NP完全类中的一个问题,则一定存在一个确定性图灵机上的具有多项式时间复杂性的算法,可以把前者转变成后者。这就表明,只要能证明NP完全类中有一个问题是属于P类的,也就证明了NP类中的所有问题都是P类的,即证明了P=NP库克的这一研究成果为研究P=NP的科学家们指明了一条捷径和一个方向,不必再像大海捞针似地去盲目探索了。虽然科学家们沿着库克指明的这条“捷径”仍在艰难地前进,至今没有达到光辉的终点(P=NP的问题至今仍未有结论),但学术界公认库克的NP完全性理论是对计算复杂性理论的一个重大贡献。库克的论文只证明了命题演算的可满足性问题是NP完全的,但在它的启发下,卡普(R. Kap1985年图灵奖获得者)在第二年就证明了21个有关组合优化的问题也是NP完全的,从而加强与发展了NP完全性理论。

库克在建立NP完全性理论时,为研究复杂性类之间的关系提出的方法,叫“复杂性归纳”(complexity reduction,用以比较问题的计算难度。库克所用的归约方法是多项式时间图灵归约,有时直接把它叫做库克归纳。其要点如下:假设所考虑的问题都已编码成字母表Σ上的语言(实例的集合)。设L1L2是Σ上的两个语言,若存在以L2oracle集的多项式时间图灵机M,其接受的语言为L1,则称L1多项式时间图灵机约到L2,记为L1prL2。这时,对X是否属于L1的判别可转化为至多|x|的多项式个元素是否属于L2的判别,  因此,l2εp便导致L1εp。从这种相对的意义上说,L1的计算不比L2难。≤Pr可以是定义在任何言类@上的一种二元前序关系,如果存在Lε@,对于任何L1ε@,都有L1PrL,则L就是@中(在多项式时间图灵归约下)“最困难的”,称其为@-T完全的。

因此,不严格的讲,NP完全问题是NP类中“最难”的问题,版本4的“NPC:如果某个问题是NP-HARD问题,同是它又是NP问题。那么,我们称它为NPC问题”定义的方式也许就来源于这种理解(NP完全问题是NP类中“最难”的问题)。同样,还有一层意思,也就是说它们是最可能不属于P类的:所有其它的NP问题都可以归约到这些NP完全问题。这一层面上出现了版本5有关于NPC的定义。

但是,从NPC问题的本意来看,其本质在于解出一个NPC就意味这可以解出所以的NPNPC应该是指这类具有这样性质的NP问题的集合,转换只是一种解问题的手段,至于“难”和“最难”都是比较笼统的说法。如果说这种转换是NPC问题的必要和充分条件,那么版本5中的不应该是“都有π'”使得“π'∞π”,而是“任意NP问题π'都有π'∞π”,因为版本5中的“都有π'”只是给人“存在一些π'”的意味。可惜自己不是学数学的,有关与数学具体的定义不是很了解。如果理解还有什么偏差的话请高手批评指教。

3.对与NPHARD的说法

  按版本4的说法(NPHARD:从多项式规约的角度来看, 如果任何一个NP问题的都不会比某个问题L难,那么我们就说LNP-HARD问题),通俗的说也就是一个比NP问题还要难的问题,但是这个问题不一定属于NP问题,即:不是NPC问题。

 

以下是看的一些参考材料,还有一些关于这些问题的花边,没时间拿出写了,贴出来吧,就算是参考文献吧。

主要参考文献:

1PNPNPC问题 作者: boy   发表日期: 2006-05-29 20:19  

http://kelab.hit.edu.cn/blog/blog.php?do_showone/tid_40.html

 

2.理论计算机初步:P vs NP - 问题概述©Zhang-Zi, August 23, 2006 @ 10:40 pm · Filed under Computer Science

http://zhiqiang.org/blog/412.html

3理论计算机初步:P vs NP - 历史,现状和未来 同上

4.P/NP问题

 http://baike.baidu.com/view/286218.htm

 

 

系统分析师考试大纲--计算机系统综合知识

计算机系统综合知识
1.计算机组成与体系结构
(1)构成计算机的各类部件的功能及其相互关系。
(2)各种体系结构的特点与应用(SMP、MPP)。
(3)计算机体系结构的发展。
2.数据通讯与计算机网络
(1)数据通讯的基本知识。
(2)网络体系结构与协议。
   .开放系统互连参考模型
   .TCP/IP分层模型
   .常用协议标准
(3)计算机网络分类。
   .分类方法。
   .局域网定义及类型。
   .广域网定义及类型。
(4)Internet
   .路由结构。
   .地址和域名。
   .万维网应用。
   .可扩展标记语言(XML)。
3.软件知识
(1)操作系统。
   .操作系统的类型与结构。
   .系统的并行机制。
   .网络操作系统。
   .分布式操作系统。
   .嵌入式操作系统。
   .主流操作系统产品。
(2)数据库系统。
   .数据库管理系统的类型、结构。
   .关系数据库及主流产品。
   .数据仓库与联机分析处理。
   .数据挖掘。
(3)中间件。
4.系统配置与性能评价
(1)Client/Server与Browser/Server结构、三层或多层结构、分布式系统。
(2)系统配置方法(双份、双重、热备份、容错、集群)。
(3)典型基准测试程序(Benchmark)。
(4)系统性能计算,系统性能指标,系统性能评估。
(5)系统可靠性指标、经济效益指标。
5.计算机应用知识
(1)信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能。
(2)远程通信服务、Web计算。
(3)多媒体技术基础。
  
 

如何成为一个好的系统分析员

如何成为一个好的系统分析员
李华

系统分析员基本功

  好的系统分析员都是从优秀的程序员中产生的,坚实的编程功底、丰富的经验是今后做系统分析的基础。

  没有对系统本身进行过透彻剖析过,很难领会到其中一些难以言述的精华。但并不等于好的程序员就能够 成为好的系统分析员。

  合理的知识结构。语言能力、文字表达能力、技术的全面性等是对系统分析员的基本要求。比如说c/s和3 层开发,如果仅仅对netscape公司的产品熟悉还不够,还需要了解比如微软等产品,并且要了解他们中产 生历史,发展思路,技术优劣,以应付各种穷追猛打的提问。但更重要的是,这是你为应用定制技术要求 的前提。

系统分析员思想

  全局观念是系统分析员必须具备的观念。如果系统分析员设计时太注重细节,往往会陷入在某个问题上纠 缠不清的泥潭。(93年,我论文指导老师的一席话影响了我随后几年对软件开发的理解----今后计算机会 越来越快,多写几行代码少写代码无关紧要,最重要的是整体;一开始就错了,某个部份编得再好,也是 没有用的)

  系统分析员要有面向用户的思想。系统分析员应当有能力将自己扮演成用户,来了解要交付的项目看起来 想什么样式,感觉想什么,从而了解用户的想法并挑选出合理部份去开发。从这个意义上说,系统分析员 才能获得有意义的见解去引导他的开发组成员。系统分析员头脑中要对项目结局有一个清楚的认识,并保 证项目不偏离方向。系统分析员要有根植于技术,高于技术思考问题的思想。纯粹的程序员通常对最终结 果考虑的不是很多,当一种新的技术在市场上出现时,他们对能否按时交付的考虑就比较少,而强烈希望 他们的计划能够建立在新的技术之上。因此,系统分析员的想法和行动要象一个用户,又要能够站在技术 的高度,成为真正的用户、程序员之间的代言人。

任务难度的预测能力

  系统分析员要具备快速的任务难度预测能力以及具备快速确定开发小组人员构成和任务划分的能力。(我 将这条归为思想,而不是能力)昆虫自然会长出翅膀,而思想却需要长期的浸润。要做到这点,需要大量 的思考、学习。设计远比编程重要。当今软件业的发展,各种开发工具的出现,编程已经不是什么问题, 程序员的工作某种程度上讲是将别人现成的东西拼凑堆砌起来。系统分析员要清楚的认识到,现在大多数 程序员没有学会怎么去整体的了解一个系统,有些甚至不了解编程(这不是说他们不会写代码)。可视化 的开发工具加五花八门的控件,程序员可以偷点懒了。(这可不是夸大,我好几年的管理工作,接触过大 量的程序员)基于技术,跳出框架。基于现有技术结合用户需求思考问题,设计时跳出框架。

系统分析员的关键

  获得信任。系统分析员最重要的素质是获得信任,这是成为优秀系统分析员的关键。成熟最为关键。成熟 可以为整个项目组提供正确的支持,能够理解技术怎样才能解决用户的需求。

系统分析员的准备工作

  统一的各种文档模式,这其中包括今后软件变量、字段命名规则。我推荐用pb制定的规则做基础,通过改 造成为适合自身实用的标准。统一的文档管理。统一的分析软件。比如说rose(uml太规范,国内的软件 管理水平根本用不上,只不过尽量应用,你自己对系统分析的理解有好处) 方法是思想的放映,在具体方法上就不多说了。我托人从u$a弄到几本书,用于面向对象系统开发的使 用》、《面向对象的分析》、《项目管理》等都是很不错的,推荐大家看看。

  我在拙作"在中国没有人懂计算机"里发了点牢骚,听说挨了部份人(习惯性的)骂。其实,bbs本来就是 发泄的地方,在这里从来就罕有有内容的文章。

  自从"维纳斯"登陆深圳后,大家更着眼于从宏观看中国的it业了。中国it这棵小树,说实在的,长到今天 实在是不容易。一些人提出了"反对微软霸权"的口号,不少人呼唤中国"硅谷"的出现。微软的成功不是技 术的成功,更多的是商业运作的成功。中国it这棵树能长多高,取决于他所植根于的土壤。而现在的事实是,这片土壤实在是太贫瘠了!如果按我们现在的思路和搞法,是长不成大树,更别指望能结?quot;微 软","硅谷"这样丰硕的果实。如果说,我们的软件技术落后美国十年,我们的硬件制造技术则落后美国 二十年,我们的管理水平落后美国至少三十年。而最终决定发展速率的恰恰是我们的死穴──低劣的管理 水平。低劣的管理水平的形成的原因有着深厚的背景和多方面的原因。

  系统分析工作是解决一个问题的工作,目标是将一个对计算机应用系统的需求转化成实际的物理实现,其中 复杂就复杂在实际的面太多.在系统分析过程之中注意问以下的问题,可能会所进行的系统分析设计工作有帮助

  1)您所完成的系统目的是什么?注意不是功能要求,而是目的.也就是为什么要建设、为什么要现代建设。在考虑系统目的时,我更多的侧重于系统的最终目标考虑,因为一个系统不可能一下子完美,为系统留些 余地。

  2)您所完成的系统有哪些方面参与,各方面的初衷是什么?那些人可能在系统建设中起重要作用,他们 会采取什么样的态度?你对他们有多少影响力?中国it行业的失败之一就是人"太年轻",一定要有领导的 支持,否则完蛋。不要认为自己对他们会有多少影响力,即便有,也要尽可能的认为是决策者再影响他 们。在中国,一个技术员,你算老几?说到这里我很悲哀。哪些人在系统中起重要作用并弄清楚他们的态 度,这点十分关键。

  3)您的系统是否有一个明确的评价标准?最好从参与的各方面都进行考虑。不知道这样说对不对,在系 统建设之前,对你的程序员、对你的领导要有至少不同的两种评价。

  4)你的系统设计思想是什么?是否能够得到各方面的认可。如果高明,对领导、对程序员都采用引导, 得到认可的最好办法,就是让他们认可他们自己的想法。(我力图这样做,但做得不好,系统分析员有一 点要学会韬光养晦,忍)

  5)你对参与系统设计开发的人员了解吗?他们的特长在哪里,是否愿意与你合作,为什么?你对他们有 足够的影响力吗?软件发展到一定的程度,不是编程,不是数学,而是管理。

  6)你的系统开发计划是否完善?你的计划表有明确的阶段吗?任何一阶段都应该怎样完成?如何对这一 阶段完成的情况进行评价?

  7)你对所采用的系统开发方法以及工具是否熟悉?你的夥伴是否熟悉?事实上,不是每种好的工具都要 使用,也并不一定都要他们熟练掌握。提醒诸位一句,当你将方案做得可以不依赖某个程序员,你在程序 员面前就无信任可言,因为从此程序员将受到更大的生存压力。我坚决不在公司使用rose。

  8)你所完成的系统是否有原型?计算机的或者物理的。

  以上的几个问题都是在系统分析以及系统规划时涉及到的,供各位参考。

  这文章很好,我的话是:"需求分析实际应该是问题分析"。含义是系统要解决的是问题。而不是用户提出 的需求。经常发现系统完成后,客户说"我的问题还没有解决"。可是,需求分析稿上的目标都搞定了。

  既然是问题分析,所以,熟悉目标系统的知识就是必要的。甚至,可以说,一个好的系统分析员也应该是 好的业务专家。

  我很高兴在这里遇到许多分析高手,可以交流分析中的问题。我赞同从来的观点。在中国作分析重要的是 人气,因为中国的企业级信息系统的建设在很大程度上可以说并非确有需求,而是迫于某种压力。用户在 很多时候考虑的不是系统的长远发展,而只是短期的成果,要求开发单位在很短的时间内完成一个很大的 系统的开发,没有时间对系统进行周密的分析,在这种情况下,很多开发商就会粗分析,粗设计,尽快进 入编码阶段,这样的系统的生命周期肯定不会很长。说了这么多,只是想说,系统分析员确实应是业务和 管理专家,并且需要有很好的语言组织能力,他需要根据问题域中存在的问题去尽力说服用户,引导用户 需求,毕竟,我们是专家,如果让用户牵着鼻子走,系统不会是成功的系统。(当然了,这要建立在用户 是可引导的前提下)本人拙见。

  在理解和分析用户的需求时,应说服用户明白:建立计算机应用系统并不是简单地用计算机代替手工劳作,它更应该是管理思想的一次革命,是现用户模式的一次升华和提高。如果系统不能高于现实,开发的系统将长期陷入需求的反复修改,其软件的生命周期也短了。

程序员创业:小型软件公司如何做大

我们身边,你会发现存在着很多小型软件公司,他们少则几人,多则几十人。他们在苦苦地经营着,有的不断壮大,有的也在不断衰弱。但是随着中小型企业对信息技术重视程度的提高,小型软件公司也会有更多的机遇。那么这些小型软件公司如何寻求自己的出路呢?

[产品定位不容忽视]

有的小型软件公司在发展的过程中没有产品定位,总想着只要是软件项目就接,如果干不了,就转包给其他公司。实际上这样的想法对公司没多少好处。公司一定根据自己的能力和熟悉的环境,确定自己的核心产品,也就是对自身要深入了解。例如以前做过办公自动化项目,对这方面的业务很熟悉,就先在这方面下工夫,不必要赶时髦,想着实施ERP业务。如果人员大多对WEB开发感兴趣,那就在网站建设、电子商务方面寻求出路。

当然在公司初期要生存,做一些系统集成也可以,但公司的核心业务和次要业务要分明。随着公司的发展,逐步形成自己的核心竞争力。公司一定要制定出技术发展、企业发展的战略规划,向这个目标奋进。把公司做大做强固然好,但在初期能够很好地在竞争中得到生存发展或许对一些小型软件公司来说是最重要的。这种公司的发展规划是对市场和自身进行详细周到的分析得出的结果,如果不出现特别大的环境变化,就要坚持住,不要今天做这个行业的软件,明天做那个行业的软件。

[加强管理水平]

当小软件公司只有几个人的时候,不存在什么管理上、沟通上的问题,出现一些事情,大家一说就可以了。当随着人员的增加,管理问题就显得很重要了。我们深入了解他们的管理现状的时候,就会发现他们在管理过程中存在很多问题。例如,一般的软件公司员工在30人以下,大都设两个主要的部门:技术部、市场部,技术部主要负责软件的设计与开发,市场部负责市场的开拓与服务。但通过大量的项目实施可以看出,两个部门在沟通存在问题,很容易给项目的管理实施造成了很大障碍;另外在对技术部门的人员绩效考核上一般是发固定工资,一旦市场人员的工资高于开发人员时,技术部人员容易造成心理不平衡。随着软件公司的发展,公司规模的扩大会使这些问题更加突出。

由于公司规模小,可能管理制度不完善,随意管理的现象存在。最让员工头疼的是公司的负责人随便制定一些制度,又随意破坏一些制度,所以公司应当与员工一起商量,制定一些切实可行的规章制度,大家共同遵守。另外有时候感情管理很重要,多与公司员工讨论公司的未来和现在的处境,让员工把公司的未来看成是自己的未来。每个公司都有自己的发展规划,一定让员工知道公司的长期愿景,可能的话帮助每位员工进行职业生涯设计,让员工对公司和自己充满信心。公司最好有个综合管理部门——办公室,主要工作涉及到除了技术、市场之外所有工作,保证为技术和市场部门服好务,另外还要进行公司的绩效考核。

为了更好的了解各部门的工作,建议在公司内部建立一套办公自动化系统(OA),内容不要求很多,但重点是加强内部的沟通与交流,让大家方便联系,相互了解大家的工作进度。通过建立这样一个交流平台来解决管理问题,是很容易做到的,也是很有成效的。一般办公自动化系统都有电子邮件系统,它可以帮助大家很方便的传递信息,也是上下级沟通的一个好渠道,有时不好当面说的问题,可能通过EMAIL可以很容易地完成。系统中如果设有BBS就更好了,大家在闲暇时间可以对公司的管理、软件开发过程中的问题等等发表自己的见解,通过其中的内容,管理者可以改善管理,大家可以共同学习,共同提高,也可以通过BBS逐步建立起具有自己公司特色的企业文化。还有一点需要说明的是,最好在OA中加入对工作日志的管理,这样方便对员工的考核,也督促大家的工作。

[搞好人员管理]

小型软件也面临着人才流失的问题,目前软件行业流动率很高,往往出现人在项目在,人走项目瘫的局面。这包括两部分,一是市场人员的流失,二是技术人员的流失,都会给公司造成很大的影响。 为了避免市场人员的流动导致客户的流失,公司要加强对客户的管理。小型软件公司也要有客户关系管理系统,要对客户的情况了如指掌,对客户的沟通过程和进度也要控制。加强市场人员的工作协同,促进信息的共享。为了稳定技术核心人员的方式主要是报酬、发展和学习机会相结合。对于普通的编程人员需要做好档案的记录工作,比如软件的设计报告、测试报告、软件的客户需求报告等等要求尽量详细。尽管这样会占到软件编程的1/2时间,但是这样可以很好地保证项目的连续性。对软件开发人员要晓之以理,动之以情,把公司的美好前程多灌输给他们,让大家对自身的前途看好。更重要的还要让他们能够在公司得到发展,能在技术上得到提高,业务上得到拓展。

或许小型软件很难招聘到高层次、高水平的人才,这样就需要对员工的培训上多下工夫。另外公司要创造机会和渠道让大家多积累经验、多提建议,把大家的知识共享出来,从而提高整体水平的提升。例如对于市场人员,把他们的一些市场调查报告放在OA上,让技术人员更加深刻的了解客户的需要。市场人员可以让技术人员对解决方案提建议,把成熟的解决方案放在网上,大家可以借鉴。这样时间长了,可能公司发现工作效率得到了提高,公司人员的工作能力也得到了提高,人员的配合上也会得到改善。通过对知识共享的管理,更重要的是让员工养成一种团队意识,让员工的自主管理意识加强。

[保证正规化运作]

小型软件公司虽然规模小,但也是公司,所以就要公司化运作。在一些事情的处理上,多征求大家的意见,如果大家以公司的发展视为自己的发展,就会对公司提出自己的合理化建议。一般员工也会很容易地沟通,在一些事情也能够发表自己的建议。公司在处理员工提出的问题上也要斟酌,不要随意马虎,否则很容易伤一人而惹众怒。

在公司正规化运作方面有几点与大家探讨,或许对大家有所启发。由于技术人员和市场人员缺少沟通,对一些项目的实施造成很多麻烦。技术人员以技术研发为主,对市场的理解甚少,有时候可能无法理解市场的需求。市场人员虽然了解市场需求,但在和客户接触的过程中又不能很好的把握技术的实现可能性。这样一来,建议最好针对一些项目成立项目组,设立项目经理,项目经理全权负责整个项目的开展。项目组中要求既有技术研发人员,又有相关市场经验的人。项目组的考核与利润挂钩,通过这种方式可能会解决市场和技术研发沟通的问题。

今天客户服务至上的原则对小型软件公司显得尤为重要,因为小型软件公司的客户大多是小型企业,这样的客户实际上对自己真正的需要不大明确,对软件功能的要求提的比较笼统。首先市场部的人员应该有意识的引导客户,向有利于技术实现的方面发展。同时注意适当的培训客户,让他更多理解公司的技术和可以实现的方式,这样才能真正留住客户和完成技术。虽然客户规模小,但是客户群大,如果服务到位了,在客户中的信誉就会提高。从而客户可以宣传你的产品,从而公司可以从客户群得到更多的客户。另外现在软件公司的发展趋势也是服务,现在服务开始收费大家已经接受了。软件就是服务的口号,软件公司也会慢慢领会到的。

小型软件公司要想在竞争中立于不败之地,要做的工作很多很多,上面提及的一些问题或许对于公司的发展是再平常不过的了。可还是有很多软件公司不从中总结经验教训,为了眼前一些短期利益,有点软件公司就会放弃自己原定目标,有的软件就可能放弃临时的利益去追求公司更大的发展。小型软件公司只要多动脑筋,遵循规律,多总结,就会从众多的软件公司中脱颖而出,找到自己的出路。

什么是组态软件?

什么是组态软件

组态软件:一般英文简称有三种分别为HMI/MMI/SCADA,对应全称为Human and Machine Interface/Man and Machine Interface /Supervisory Control and Data Acquisition,中文翻译为:人机界面/监视控制和数据采集 软件。目前组态软件的发展迅猛,已经扩展到企业信息管理系统,管理和控制一体化,远程诊断和维护以及在互联网上的一系列的数据整合。
1. 组态软件产生的背景
  “组态”的概念是伴随着集散型控制系统(Distributed Control System简称DCS)的出现才开始被广大的生产过程自动化技术人员所熟知的。在工业控制技术的不断发展和应用过程中,PC(包括工控机)相比以前的专用系统具有的优势日趋明显。这些优势主要体现在:PC技术保持了较快的发展速度,各种相关技术已臻成熟;由PC构建的工业控制系统具有相对较低的拥有成本;PC的软件资源和硬件资丰富,软件之间的互操作性强;基于PC的控制系统易于学习和使用,可以容易地得到技术方面的支持。在PC技术向工业控制领域的渗透中,组态软件占据着非常特殊而且重要的地位。
  组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件应该能支持各种工控设备和常见的通信协议,并且通常应提供分布式数据管理和网络功能。对应于原有的HMI(人机接口软件,Human Machine Interface)的概念,组态软件应该是一个使用户能快速建立自己的HMI的软件工具,或开发环境。在组态软件出现之前,工控领域的用户通过手工或委托第三方编写HMI应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增加功能都受到严重的限制。组态软件的出现,把用户从这些困境中解脱出来,可以利用组态软件的功能,构建一套最适合自己的应用系统。随着它的快速发展,实时数据库、实时控制、SCADA、通讯及联网、开放数据接口、对I/O设备的广泛支持已经成为它的主要内容,随着技术的发展,监控组态软件将会不断被赋予新的内容。

2. 组态软件在我国的发展及国内外主要产品介绍
  组态软件产品于80年代初出现,并在80年代末期进入我国。但在90年代中期之前,组态软件在我国的应用并不普及。究其原因,大致有以下几点:
①国内用户还缺乏对组态软件的认识,项目中没有组态软件的预算,或宁愿投入人力物力针对具体项目做长周期的繁冗的上位机的编程开发,而不采用组态软件;
②在很长时间里,国内用户的软件意识还不强,面对价格不菲的进口软件(早期的组态软件多为国外厂家开发),很少有用户愿意去购买正版。
③当时国内的工业自动化和信息技术应用的水平还不高,组态软件提供了对大规模应用、大量数据进行采集、监控、处理并可以将处理的结果生成管理所需的数据,这些需求并未完全形成。 
  随着工业控制系统应用的深入,在面临规模更大、控制更复杂的控制系统时,人们逐渐意识到原有的上位机编程的开发方式。对项目来说是费时费力、得不偿失的,同时,MIS(管理信息系统,Management Information System)和CIMS(计算机集成制造系统,Computer Integrated Manufacturing System)的大量应用,要求工业现场为企业的生产、经营、决策提供更详细和深入的数据,以便优化企业生产经营中的各个环节。因此,在1995年以后,组态软件在国内的应用逐渐得到了普及。下面就对几种组态软件分别进行介绍。
①InTouch:Wonderware的InTouch软件是最早进入我国的组态软件。在80年代末、90年代初,基于Windows3.1的InTouch软件曾让我们耳目一新,并且InTouch提供了丰富的图库。但是,早期的InTouch软件采用DDE方式与驱动程序通信,性能较差,最新的InTouch7.0版已经完全基于32位的Windows平台,并且提供了OPC支持。
②Fix:Intellution公司以Fix组态软件起家,1995年被爱默生收购,现在是爱默生集团的全资子公司,Fix6.x软件提供工控人员熟悉的概念和操作界面,并提供完备的驱动程序(需单独购买)。Intellution将自己最新的产品系列命名为iFiX,在iFiX中,Intellution提供了强大的组态功能,但新版本与以往的6.x版本并不完全兼容。原有的Script语言改为VBA(Visual Basic For Application),并且在内部集成了微软的VBA开发环境。遗憾的是,Intellution并没有提供6.1版脚本语言到VBA的转换工具。在iFiX中,Intellution的产品与Microsoft的操作系统、网络进行了紧密的集成。Intellution也是OPC(OLE for Process Control)组织的发起成员之一。iFiX的OPC组件和驱动程序同样需要单独购买。
③Citech:CiT公司的Citech也是较早进入中国市场的产品。Citech具有简洁的操作方式,但其操作方式更多的是面向程序员,而不是工控用户。Citech提供了类似C语言的脚本语言进行二次开发,但与iFix不同的是,Citech的脚本语言并非是面向对象的,而是类似于C语言,这无疑为用户进行二次开发增加了难度。
④WinCC:Simens的WinCC也是一套完备的组态开发环境,Simens提供类C语言的脚本,包括一个调试环境。WinCC内嵌OPC支持,并可对分布式系统进行组态。但WinCC的结构较复杂,用户最好经过Simens的培训以掌握WinCC的应用。
⑤组态王:组态王是国内第一家较有影响的组态软件开发公司(更早的品牌多数已经湮灭)。组态王提供了资源管理器式的操作主界面,并且提供了以汉字作为关键字的脚本语言支持。组态王也提供多种硬件驱动程序。
⑥Controx(开物):华富计算机公司的Controx2000是全32位的组态开发平台,为工控用户提供了强大的实时曲线、历史曲线、报警、数据报表及报告功能。作为国内最早加入OPC组织的软件开发商,Controx内建OPC支持,并提供数十种高性能驱动程序。提供面向对象的脚本语言编译器,支持ActiveX组件和插件的即插即用,并支持通过ODBC连接外部数据库。Controx同时提供网络支持和WevServer功能。
⑦ForceControl(力控):大庆三维公司的ForceControl(力控)从时间概念上来说,力控也是国内较早就已经出现的组态软件之一。只是因为早期力控一直没有作为正式商品广泛推广,所以并不为大多数人所知。大约在93年左右,力控就已形成了第一个版本,只是那时还是一个基于DOS和VMS的版本。后来随着Windows3.1的流行,又开发出了16位Windows版的力控。但直至Windows95版本的力控诞生之前,他主要用于公司内部的一些项目。32位下的1.0版的力控,在体系结构上就已经具备了较为明显的先进性,其最大的特征之一就是其基于真正意义的分布式实时数据库的三层结构,而且其实时数据库结构可为可组态的活结构。在1999~2000年期间,力控得到了长足的发展,最新推出的2.0版在功能的丰富特性、易用性、开放性和I/O驱动数量,都得到了很大的提高。在很多环节的设计上,力控都能从国内用户的角度出发,即注重实用性,又不失大软件的规范。另外,公司在产品的培训、用户技术支持等方面投入了较大人力,相信在较短时间内,力控软件产品将在工控软件界形成巨大的冲击。
其他常见的组态软件还有GE的Cimplicity,Rockwell的RsView,NI的LookOut,PCSoft的Wizcon以及国内一些组态软件通态软件公司的MCGS,也都各有特色。 

3. 组态软件的功能特点发展方向
  目前看到的所有组态软件都能完成类似的功能:比如,几乎所有运行于32位Windows平台的组态软件都采用类似资源浏览器的窗口结构,并且对工业控制系统中的各种资源(设备、标签量、画面等)进行配置和编辑;都提供多种数据驱动程序;都使用脚本语言提供二次开发的功能,等等。但是,从技术上说,各种组态软件提供实现这些功能的方法却各不相同。从这些不同之处,以及PC技术发展的趋势,可以看出组态软件未来发展的方向。
3.1数据采集的方式
  大多数组态软件提供多种数据采集程序,用户可以进行配置。然而,在这种情况下,驱动程序只能由组态软件开发商提供,或者由用户按照某种组态软件的接口规范编写,这为用户提出了过高的要求。由OPC基金组织提出的OPC规范基于微软的OLE/DCOM技术,提供了在分布式系统下,软件组件交互和共享数据的完整的解决方案。在支持OPC的系统中,数据的提供者作为服务器(Server),数据请求者作为客户(Client),服务器和客户之间通过DCOM接口进行通信,而无需知道对方内部实现的细节。由于COM技术是在二进制代码级实现的,所以服务器和客户可以由不同的厂商提供。在实际应用中,作为服务器的数据采集程序往往由硬件设备制造商随硬件提供,可以发挥硬件的全部效能,而作为客户的组态软件可以通过OPC与各厂家的驱动程序无缝连接,故从根本上解决了以前采用专用格式驱动程序总是滞后于硬件更新的问题。同时,组态软件同样可以作为服务器为其他的应用系统(如MIS等)提供数据。OPC现在已经得到了包括Interllution、Simens、GE、ABB等国外知名厂商的支持。随着支持OPC的组态软件和硬件设备的普及,使用OPC进行数据采集必将成为组态中更合理的选择。
3.2脚本的功能
  脚本语言是扩充组态系统功能的重要手段。因此,大多数组态软件提供了脚本语言的支持。具体的实现方式可分为三种:一是内置的类C/Basic语言;二是采用微软的VBA的编程语言;三是有少数组态软件采用面向对象的脚本语言。类C/Basic语言要求用户使用类似高级语言的语句书写脚本,使用系统提供的函数调用组合完成各种系统功能。应该指明的是,多数采用这种方式的国内组态软件,对脚本的支持并不完善,许多组态软件只提供IF…THEN…ELSE的语句结构,不提供循环控制语句,为书写脚本程序带来了一定的困难。微软的VBA是一种相对完备的开发环境,采用VBA的组态软件通常使用微软的VBA环境和组件技术,把组态系统中的对象以组件方式实现,使用VBA的程序对这些对象进行访问。由于VisualBasic是解释执行的,所以VBA程序的一些语法错误可能到执行时才能发现。而面向对象的脚本语言提供了对象访问机制,对系统中的对象可以通过其属性和方法进行访问,比较容易学习、掌握和扩展,但实现比较复杂。 
3.3组态环境的可扩展性
  可扩展性为用户提供了在不改变原有系统的情况下,向系统内增加新功能的能力,这种增加的功能可能来自于组态软件开发商、第三方软件提供商或用户自身。增加功能最常用的手段是ActiveX组件的应用,目前还只有少数组态软件能提供完备的ActiveX组件引入功能及实现引入对象在脚本语言中的访问。
3.4组态软件的开放性
  随着管理信息系统和计算机集成制造系统的普及,生产现场数据的应用已经不仅仅局限于数据采集和监控。在生产制造过程中,需要现场的大量数据进行流程分析和过程控制,以实现对生产流程的调整和优化。现有的组态软件对大部分这些方面需求还只能以报表的形式提供,或者通过ODBC将数据导出到外部数据库,以供其他的业务系统调用,在绝大多数情况下,仍然需要进行再开发才能实现。随着生产决策活动对信息需求的增加,可以预见,组态软件与管理信息系统或领导信息系统的集成必将更加紧密,并很可能以实现数据分析与决策功能的模块形式在组态软件中出现。
3.5对Internet的支持程度
  现代企业的生产已经趋向国际化、分布式的生产方式。Internet将是实现分布式生产的基础。组态软件能否从原有的局域网运行方式跨越到支持Internet,是摆在所有组态软件开发商面前的一个重要课题。限于国内目前的网络基础设施和工业控制应用的程度,笔者认为,在较长时间内,以浏览器方式通过Internet对工业现场的监控,将会在大部分应用中停留于监视阶段,而实际控制功能的完成应该通过更稳定的技术,如专用的远程客户端、由专业开发商提供的ActiveX控件或Java技术实现。
3.6组态软件的控制功能
  随着以工业PC为核心的自动控制集成系统技术的日趋完善和工程技术人员的使用组态软件水平的不断提高,用户对组态软件的要求已不像过去那样主要侧重于画面,而是要考虑一些实质性的应用功能,如软件PLC,先进过程控制策略等。
  软PLC产品是基于PC机开放结构的控制装置,它具有硬PLC在功能、可靠性、速度、故障查找等方面的特点,利用软件技术可将标准的工业PC转换成全功能的PLC过程控制器。软PLC综合了计算机和PLC的开关量控制、模拟量控制、数学运算、数值处理、通信网络等功能,通过一个多任务控制内核,提供了强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种I/O系统及网络的开放式结构。所以可以这样说,软PLC提供了与硬PLC同样的功能,而同时具备了PC环境的各种优点。目前,国际上影响比较大的产品有:法国CJ International公司的ISaGRAF软件包、PCSoft International公司的WinPLC、美国Wizdom Control Intellution公司的Paradym-31、美国Moore Process Automation Solutions公司ProcessSuite、美国Wonder ware Controls公司的InControl、SoftPLC公司的SoftPLC等。国内推出软PLC产品的组态软件还不见有,国内组态软件要想全面超过国外的竞争对手,就必须搞创新,推出类似功能的产品。
  随着企业提出的高柔性、高效益的要求,以经典控制理论为基础的控制方案已经不能适应,以多变量预测控制为代表的先进控制策略的提出和成功应用之后,先进过程控制受到了过程工业界的普遍关注。先进过程控制(Advanced Process Control,APC)是指一类在动态环境中,基于模型、充分借助计算机能力,为工厂获得最大理论而实施的运行和控制策略。先进控制策略主要有:双重控制及阀位控制、纯滞后补偿控制、解耦控制、自适应控制、差拍控制、状态反馈控制、多变量预测控制、推理控制及软测量技术、智能控制(专家控制、模糊控制和神经网络控制)等,尤其智能控制已成为开发和应用的热点。目前,国内许多大企业纷纷投资,在装置自动化系统中实施先进控制。国外许多控制软件公司和DCS厂商都在竞相开发先进控制和优化控制的工程软件包。据资料报道,一个乙烯装置投资163万美元实施先进控制,完成后预期可获得效益600万美元/年。从上可以看出能嵌入先进控制和优化控制策略的组态软件必将受到用户的极大欢迎。

4.结束语
  用户的需求促使技术不断进步,在组态软件上这种趋势体现得尤为明显。未来的组态软件将是提供更加强大的分布式环境下的组态功能、全面支持ActiveX、扩展能力强、支持OPC等工业标准、控制功能强、并能通过Internet进行访问的开放式系统。
 
 
HMI是Human Machine Interface的简称。

  HMI其实广义的解释就是“使用者与机器间沟通、传达及接收信息的一个接口”。

  举个例子来说,在一座工厂里头,我们要搜集工厂各个区域的温度、湿度以及工厂中机器的状态

  等等的信息透过一台主控器监视并记录这些参数,并在一些意外状况发生的时候能够加以处理。

  这便是一个很典型的SCADA/HMI的运用,一般而言,HMI系统必须有几项基本的能力:

  实时的资料趋势显示——把撷取的资料立即显示在屏幕上。

  自动记录资料——自动将资料储存至数据库中,以便日后查看。

  历史资料趋势显示——把数据库中的资料作可视化的呈现。

  报表的产生与打印——能把资料转换成报表的格式,并能够打印出来。

  图形接口控制——操作者能够透过图形接口直接控制机台等装置。

  警报的产生与记录——使用者可以定义一些警报产生的条件,

  比方说温度过度或压力超过临界值,在这样的条件下系统会产生警报,通知作业员处理。