
2、本封面的填写内容一律用“三号楷体_GB2312”。
淮 阴 工 学 院
毕业设计说明书(论文)
| 作 者: | ** | 学 号: | 10813013** |
| 学 院: | 计算机工程 | ||
| 专 业: | 计算机科学与技术 | ||
| 题 目: | 专家系统 | ||
姓 名)专业技术职务)
评阅者:
姓 名)专业技术职务)
| 年 | 月 |
系统介绍:
专家系统是一种计算机程序,是计算机科学的一个分支主要研究人工智能。人工智能的科学目标是能让计算机程序展示智能行为。它关注象征性的推理或推理的概念和方法,以及如何使用知识将这些理论放入一台机器内。
当然,长期的智能包含了很多认知技能,包括解决问题,学习,理解语言的能力,人工智能能解决所有的这些问题。但大多数已经取得的进展,已经取得了该问题的解决。
人工智能程序到达专家级解决问题的能力在任务地区将承担的知识有关的具体任务是所谓的知识或专家系统。通常,长期的专家系统是保留程序的基础知识,包含人类专家的知识。和教科书或非专家知识的对比,往往,专家系统和基于知识的系统公司同义。两者合计,他们代表了人工智能应用最广泛的类型。在专家系统捕获人类智力活动的区域被称为任务域。
域是指正在执行任务的区域,任务是指一些以目标位向导,解决问题的活动。典型的任务是诊断,规则,调度,配置和设计。
专家系统被称为知识工程及其从业人员被称为知识的工程师。知识工程师必须确保计算机的所有知识需要解决一个问题。知识工程师必须选择一个或多个形式,代表所需的知识为符号模式在计算机的内存——也就是说,他(或她)必须选择一种知识表示。他还必须确保计算机可以使用的知识有效地选择从一个几个推理方法。实践知识工程描述。我们首先描述了专家系统的组成部分。
专家系统的组成:
每一个专家系统由两个主要部分组成:知识库和推理或推论,发动机
专家系统的知识库包含事实和启发式知识。事实性知识是任务域被广泛共享,通常在教科书或期刊,并共同商定后,在特定领域的那些知识渊博的知识
启发式知识是不太严格,更多体验,更多的判断性能的知识。在事实性知识,启发式知识很少被讨论,主要是个人主义。这是好的做法,良好的判断力,并在该领域的合情推理的知识。这是“良好的猜测艺术的基础知识。”
知识表示正式和组织的知识。一个广泛使用的代表性的生产规则,或者简单的规则。规则由一个中频部分和当时的部分(也称为一个条件和一个动作)。中频部分列出了一些逻辑组合条件。生产规则所代表的是知识的一块正在开发的推理线,如果满意;那么规则的一部分,因此可以得出结论,然后一部分,或采取其解决问题的行动。专家系统的知识规则形式表示,被称为以规则为基础的系统。
另一种广泛使用的代表,称为单元(又称框架,模式,或列表结构)是一个被动的知识观。该单元是一组相关的象征性的知识,一个实体代表。通常,一个单位是由一个属性列表的实体和相关的值组成。
由于每个任务领域包括各种关系纳入的许多实体,属性也可以被用来指定关系,以及这些属性的值是其他单位的名称,按相关关系。一个单位,也可以代表知识,是另一个单位的“特殊情况”,或一些单位可以是另一个单位的“零件”。
问题解决模式或范式,组织和控制来解决这个问题所采取的步骤。一个共同的,但强大的范例,包括IF-THEN规则形成的推理链。如果链开始从一组条件和走向的一些结论,该方法被称为正向链接。如果结论是已知的(例如,要实现的目标),但不知道这一结论的路径,然后推理向后被要求,方法是反向链接。这些问题的解决方法是建成称为推理引擎或操作和使用知识库中的知识,以形成一个推理的推理过程的程序模块。
专家使用的知识基础,是他从同事,从多年的经验,在学校学到。想必他有更多的经验,他的知识存储让他在解释数据库的诊断,设计和分析中有信息优势。
虽然专家系统主要包括一个知识库和推理引擎,但其他几个特点值得一提:不确定性推理和推理的解释
知识是几乎总是不完整和不确定的。为了应对不确定的知识,规则可能与信心的因素或重量。使用不确定知识与推理过程中的不确定数据相结合的方法,被称为不确定性推理。与不确定性推理方法的一个重要子类被称为“模糊逻辑”,使用的系统,它们被称为“模糊系统”。
因为专家系统使用不确定或启发式知识(像我们人类一样),所以它的公信力往往是有问题的(是与人类的情况下)。当一个问题的答案是值得商榷的,我们往往想知道理由。如果理由似乎也合情合理,我们倾向于相信答案。因此,它是专家系统。大多数专家系统有能力回答问题的形式:“为什么”的解释,可以通过跟踪推理,推理引擎来产生。
任何专家系统中最重要的成分是知识。特定的,高品质的知识,它们包含有关任务域是专家系统的力量所在。人工智能研究人员将继续探索,并添加到当前曲目的知识表示和推理方法。但驻留在知识的权力。因为专家系统知识的重要性,因为目前获取知识的方法是缓慢而乏味,大部分专家系统的未来取决于打破了知识获取的瓶颈,在编纂和代表一个大的知识基础设施。
知识工程:
知识工程师及其从业人员是设计和建造专家系统的艺术。我们前面说过,知识工程是人工智能科学的一部分。反过来,这是计算机科学的一部分。那么,从理论上讲,知识工程师是知道如何设计和实施方案,结合人工智能技术的计算机科学家。知识工程的性质正在发生变化,但是,新品种的知识工程师正在形成。
尽管存在不同的风格,知识工程的基本的做法是相同的:知识工程师访谈和观察人类专家或一个专家小组,并知道专家学会什么,以及他们如何用自己的知识的原因。然后转换成计算机使用的语言知识,并设计了一个推理引擎的推理结构,适当使用知识。他还决定如何集成在推理过程中的不确定性知识的使用,和什么样的解释,最终能让用户收益。
接下来,以推理引擎和设施为代表的知识和解释编程,进入到程序中的一块一块的领域知识。这时候的推理引擎可能不是正确的,知识的表示形式可能是尴尬的。所有对于这些的修改可以使该专家系统逐步获得竞争力。
机器推理和知识表示技术的发现和积累一般是人工智能研究领域的工作。发现和积累的知识的工作领域是省域专家。知识领域包括正规,课本知识,知识和专业知识。
提取专业知识,知识工程师首先必须至少有点熟悉问题域,可以通过阅读专家介绍性的文字或谈话。在此之后,开始和系统的专家访谈。通常,专家们设置了一系列的例子问题,并会在大声地解释他们的推理,解决问题。知识工程师将这些解释抽象的一般规则,并与专家,让他们检查。
在大多数应用中,如果系统被浪费了,用户是不会满意的,所以必须发展涉及与潜在用户的密切合作。在介绍中提到,应该包括基本的开发周期的初始原型的快速发展和专家(检查规则的有效性)和用户(检查,他们可以提供必要的反复测试和修改,原型信息,系统的性能和解释感到满意,它实际上使他们的生活更轻松,而不是更难!)。
为了开发初始原型的知识工程师必须作出合适的知识表示和推理方法(例如,规则,或规则+框架;正向链接或反向链接)临时决定。为了测试这些基本的设计决策,第一架原型机可能只解决了整个问题的一小部分。
专家系统的开发在5—10年前是非常时髦的。专家系统的外壳相当广泛的使用,但往往用来解决比较简单的问题。选择自己的用户界面和开发环境,尽可能使用他们的推理能力。
工具,壳,骨骼:
今天,有两种方法来建立一个专家系统。他们可以从头开始建造,或使用一块开发软件作为一种“工具”或称为“壳”。与领域知识的广泛变化相比,只有少数人工智能的方法被称为专家系统。也就是说,目前只有少数代表知识,或进行推理,或解释产生的方式。因此,系统可以建立包含这些有用的方法,没有任何特定领域的知识。这种系统被称为骨骼系统,炮弹,或者干脆人工智能工具。
专家系统的建立提供了显着的优势。可以建立一个系统,独特的任务,执行任务域的所有必要的知识进入到一个shell。适用于手头的任务的知识推理引擎,内置入壳。如果程序不是很复杂,如果有专家在外壳使用了一些培训,专家可以加入自己的知识。
到今天有许多大小不等的商业壳,外壳工作站,大型电脑主机壳。他们的价格从几百到几万不等,这些正向链接,从简单的到复杂的,以规则为基础的系统需要2天的培训,只有训练有素的知识工程师可以利用他们的优势。他们的范围一般由定制外壳的一类任务如财务规划或实时过程控制。
最终用户的利益:
加速人力专业或半专业的工作——通常是由十个因素,有时一百或更多的因素。
在公司内部,主要的内部成本节约。对于小型系统,储蓄有时在数万或数十万美元,但对于大型系统,往往在数百万美元的几十高达数亿美元。这些节省成本的质量改进,采用专家系统技术的一个主要动机的结果。
改进决策的质量。在某些情况下,事后评估的质量或决定的正确性,显示出10倍的改善。
保存稀缺的专业知识。 ESS用于保存稀缺知道如何在组织中,捕捉到退休的人的个人专长,并维护企业的诀窍,这样,它可以广泛地分发到其他工厂,办公室或公司的植物。
新产品的介绍。一个新产品的一个很好的例子是卖给在医院的临床病理学家,以协助诊断病变组织的病理顾问。
毕业设计说明书(论文)外文摘要
Title Expert Systems
Abstract
Introduction
Expert Systems are computer programs that are derived from a branch of computer science research called Artificial Intelligence (AI). AI's scientific goal is to understand intelligence by building computer programs that exhibit intelligent behavior. It is concerned with the concepts and methods of symbolic inference, or reasoning, by a computer, and how the knowledge used to make those inferences will be represented inside the machine.
Of course, the term intelligence covers many cognitive skills, including the ability to solve problems, learn, and understand language; AI addresses all of those. But most progress to date in AI has been made in the area of problem solving -- concepts and methods for building programs that reason about problems rather than calculate a solution.
AI programs that achieve expert-level competence in solving problems in task areas by bringing to bear a body of knowledge about specific tasks are called knowledge-based or expert systems. Often, the term expert systems is reserved for programs whose knowledge base contains the knowledge used by human experts, in contrast to knowledge gathered from textbooks or non-experts. More often than not, the two terms, expert systems (ES) and knowledge-based systems (KBS) are used synonymously. Taken together, they represent the most widespread type of AI application. The area of human intellectual endeavor to be captured in an expert system is called the task domain. Task refers to some goal-oriented, problem-solving activity. Domain refers to the area within which the task is being performed. Typical tasks are diagnosis, planning, scheduling, configuration and design.
Building an expert system is known as knowledge engineering and its practitioners are called knowledge engineers. The knowledge engineer must make sure that the computer has all the knowledge needed to solve a problem. The knowledge engineer must choose one or more forms in which to represent the required knowledge as symbol patterns in the memory of the computer -- that is, he (or she) must choose a knowledge representation. He must also ensure that the computer can use the knowledge efficiently by selecting from a handful of reasoning methods. The practice of knowledge engineering is described later. We first describe the components of expert systems.
The Building Blocks of Expert Systems
Every expert system consists of two principal parts: the knowledge base; and the reasoning, or inference, engine.
The knowledge base of expert systems contains both factual and heuristic knowledge. Factual knowledge is that knowledge of the task domain that is widely shared, typically found in textbooks or journals, and commonly agreed upon by those knowledgeable in the particular field.
Heuristic knowledge is the less rigorous, more experiential, more judgmental knowledge of performance. In contrast to factual knowledge, heuristic knowledge is rarely discussed, and is largely individualistic. It is the knowledge of good practice, good judgment, and plausible reasoning in the field. It is the knowledge that underlies the “art of good guessing.”
Knowledge representation formalizes and organizes the knowledge. One widely used representation is the production rule, or simply rule. A rule consists of an IF part and a THEN part (also called a condition and an action). The IF part lists a set of conditions in some logical combination. The piece of knowledge represented by the production rule is relevant to the line of reasoning being developed if the IF part of the rule is satisfied; consequently, the THEN part can be concluded, or its problem-solving action taken. Expert systems whose knowledge is represented in rule form are called rule-based systems.
Another widely used representation, called the unit (also known as frame, schema, or list structure) is based upon a more passive view of knowledge. The unit is an assemblage of associated symbolic knowledge about an entity to be represented. Typically, a unit consists of a list of properties of the entity and associated values for those properties.
Since every task domain consists of many entities that stand in various relations, the properties can also be used to specify relations, and the values of these properties are the names of other units that are linked according to the relations. One unit can also represent knowledge that is a “special case” of another unit, or some units can be “parts of” another unit.
The problem-solving model, or paradigm, organizes and controls the steps taken to solve the problem. One common but powerful paradigm involves chaining of IF-THEN rules to form a line of reasoning. If the chaining starts from a set of conditions and moves toward some conclusion, the method is called forward chaining. If the conclusion is known (for example, a goal to be achieved) but the path to that conclusion is not known, then reasoning backwards is called for, and the method is backward chaining. These problem-solving methods are built into program modules called inference engines or inference procedures that manipulate and use knowledge in the knowledge base to form a line of reasoning.
The knowledge base an expert uses is what he learned at school, from colleagues, and from years of experience. Presumably the more experience he has, the larger his store of knowledge. Knowledge allows him to interpret the information in his databases to advantage in diagnosis, design, and analysis.
Though an expert system consists primarily of a knowledge base and an inference engine, a couple of other features are worth mentioning: reasoning with uncertainty, and explanation of the line of reasoning.
Knowledge is almost always incomplete and uncertain. To deal with uncertain knowledge, a rule may have associated with it a confidence factor or a weight. The set of methods for using uncertain knowledge in combination with uncertain data in the reasoning process is called reasoning with uncertainty. An important subclass of methods for reasoning with uncertainty is called “fuzzy logic,” and the systems that use them are known as “fuzzy systems.”
Because an expert system uses uncertain or heuristic knowledge (as we humans do) its credibility is often in question (as is the case with humans). When an answer to a problem is questionable, we tend to want to know the rationale. If the rationale seems plausible, we tend to believe the answer. So it is with expert systems. Most expert systems have the ability to answer questions of the form: “Why is the answer X?” Explanations can be generated by tracing the line of reasoning used by the inference engine.
The most important ingredient in any expert system is knowledge. The power of expert systems resides in the specific, high-quality knowledge they contain about task domains. AI researchers will continue to explore and add to the current repertoire of knowledge representation and reasoning methods. But in knowledge resides the power. Because of the importance of knowledge in expert systems and because the current knowledge acquisition method is slow and tedious, much of the future of expert systems depends on breaking the knowledge acquisition bottleneck and in codifying and representing a large knowledge infrastructure.
Knowledge engineering
It is the art of designing and building expert systems, and knowledge engineers are its practitioners. We stated earlier that knowledge engineering is an applied part of the science of artificial intelligence, which, in turn, is a part of computer science. Theoretically, then, a knowledge engineer is a computer scientist who knows how to design and implement programs that incorporate artificial intelligence techniques. The nature of knowledge engineering is changing, however, and a new breed of knowledge engineers is emerging.
Though different styles and methods of knowledge engineering exist, the basic approach is the same: a knowledge engineer interviews and observes a human expert or a group of experts and learns what the experts know, and how they reason with their knowledge. The engineer then translates the knowledge into a computer-usable language, and designs an inference engine, a reasoning structure, that uses the knowledge appropriately. He also determines how to integrate the use of uncertain knowledge in the reasoning process, and what kinds of explanation would be useful to the end user.
Next, the inference engine and facilities for representing knowledge and for explaining are programmed, and the domain knowledge is entered into the program piece by piece. It may be that the inference engine is not just right; the form of knowledge representation is awkward for the kind of knowledge needed for the task; and the expert might decide the pieces of knowledge are wrong. All these are discovered and modified as the expert system gradually gains competence.
The discovery and cumulation of techniques of machine reasoning and knowledge representation is generally the work of artificial intelligence research. The discovery and cumulation of knowledge of a task domain is the province of domain experts. Domain knowledge consists of both formal, textbook knowledge, and experiential knowledge -- the expertise of the experts.
Having decided that your problem is suitable you need to extract the knowledge from the expert and represent it using your expert system shell. This is the job of the knowledge engineer, but involves close collaboration with the expert(s) and the end user(s).
The knowledge engineer is the AI language and representation expert. He/she should be able to select a suitable expert system shell (and other tools) for the project, extract the knowledge from the expert, and implement the knowledge in a correct and efficient knowledge base. The knowledge engineer may initially have no knowledge of the application domain.
To extract knowledge from the expert the knowledge engineer must first become at least somewhat familiar with the problem domain, maybe by reading introductory texts or talking to the expert. After this, more systematic interviewing of the expert begins. Typically experts are set a series of example problems, and will explain aloud their reasoning in solving the problem. The knowledge engineer will abstract general rules from these explanations, and check them with the expert.
As in most applications, the system is wasted if the user is not happy with it, so development must involve close collaboration with potential users. As mentioned in the introduction, the basic development cycle should involve the rapid development of an initial prototype and iterative testing and modification of that prototype with both experts (to check the validity of the rules) and users (to check that they can provide the necessary information, are satisfied with the systems performance and explanations, and that it actually makes their life easier rather than harder!).
In order to develop the initial prototype the knowledge engineer must make provisional decisions about appropriate knowledge representation and inference methods (e.g., rules, or rules+frames; forward chaining or backward chaining). To test these basic design decisions, the first prototype may only solve a small part of the overall problem. If the methods used seem to work well for that small part it's worth investing the effort in representing the rest of the knowledge in the same form.
Expert system development was very trendy around 5-10 years ago, with unrealistic expectations about the potential benefits. Now some cynicism has set in. Expert system shells are in fairly wide use, but are often used to solve fairly simple problems, and are chosen as much for their user interface and development environments as for their inferential abilities.
Tools, Shells, and Skeletons
Today there are two ways to build an expert system. They can be built from scratch, or built using a piece of development software known as a “tool” or a “shell.” Compared to the wide variation in domain knowledge, only a small number of AI methods are known that are useful in expert systems. That is, currently there are only a handful of ways in which to represent knowledge, or to make inferences, or to generate explanations. Thus, systems can be built that contain these useful methods without any domain-specific knowledge. Such systems are known as skeletal systems, shells, or simply AI tools.
Building expert systems by using shells offers significant advantages. A system can be built to perform a unique task by entering into a shell all the necessary knowledge about a task domain. The inference engine that applies the knowledge to the task at hand is built into the shell. If the program is not very complicated and if an expert has had some training in the use of a shell, the expert can enter the knowledge himself.
Many commercial shells are available today, ranging in size from shells on PCs, to shells on workstations, to shells on large mainframe computers. They range in price from hundreds to tens of thousands of dollars, and range in complexity from simple, forward-chained, rule-based systems requiring two days of training to those so complex that only highly trained knowledge engineers can use them to advantage. They range from general-purpose shells to shells custom-tailored to a class of tasks, such as financial planning or real-time process control.
Although shells simplify programming, in general they don't help with knowledge acquisition. Knowledge acquisition refers to the task of endowing expert systems with knowledge, a task currently performed by knowledge engineers. The choice of reasoning method, or a shell, is important, but it isn't as important as the accumulation of high-quality knowledge. The power of an expert system lies in its store of knowledge about the task domain -- the more knowledge a system is given, the more competent it becomes.
Benefits to End-Users
Primarily, the benefits of ESs to end users include:
∙A speed-up of human professional or semi-professional work -- typically by a factor of ten and sometimes by a factor of a hundred or more.
∙Within companies, major internal cost savings. For small systems, savings are sometimes in the tens or hundreds of thousands of dollars; but for large systems, often in the tens of millions of dollars and as high as hundreds of millions of dollars. These cost savings are a result of quality improvement, a major motivation for employing expert system technology.
∙Improved quality of decision making. In some cases, the quality or correctness of decisions evaluated after the fact show a ten-fold improvement.
∙Preservation of scarce expertise. ESs are used to preserve scarce know-how in organizations, to capture the expertise of individuals who are retiring, and to preserve corporate know-how so that it can be widely distributed to other factories, offices or plants of the company.
∙Introduction of new products. A good example of a new product is a pathology advisor sold to clinical pathologists in hospitals to assist in the diagnosis of diseased tissue.
Keywords Introduction, The Building Blocks of Expert Systems, Knowledge engineering, Tools, Shells, and Skeletons, Benefits to End-Users
,
说明:
1、Keywords 为小4号Times New Roman,加粗。
2、外文关键词(keyword)一律小写,并与中文关键词一一对应。
3、Keywords后面不加冒号,keyword与keyword之间用半角逗号(,)隔开,最后一个Keyword后不加任何标点符号。
