Sistemas Expertos Principios Y Programacion, Giarratano Y Riley (Tercera Edicion) !!EXCLUSIVE!!
DOWNLOAD ::: https://urloso.com/2tMtiW
What are Expert Systems and How to Program Them: A Review of Giarratano and Riley's Third Edition
Expert systems are computer programs that can emulate the reasoning and decision-making of human experts in a specific domain. They are one of the most important applications of artificial intelligence, as they can provide solutions to complex problems that require specialized knowledge and experience.
However, developing an expert system is not an easy task. It requires a thorough understanding of the principles and techniques of knowledge representation, inference methods, uncertainty handling, fuzzy logic, and system design. Moreover, it requires a suitable programming language or tool that can support these features and facilitate the development process.
One of the most popular and widely used tools for building expert systems is CLIPS (C Language Integrated Production System), a rule-based programming language that was developed by NASA in the 1980s. CLIPS allows the programmer to define facts, rules, and goals that represent the knowledge and logic of the expert system, and then execute them using a forward or backward chaining inference engine.
However, learning CLIPS can also be challenging, especially for beginners who are not familiar with the syntax and semantics of rule-based languages. That is why a good book that can explain the concepts and provide examples and exercises is essential for anyone who wants to master CLIPS and expert systems.
One of the best books on this topic is Sistemas Expertos: Principios y Programación, by Joseph Giarratano and Gary Riley. This book, which is now in its third edition, covers all the fundamental aspects of expert systems and CLIPS in a clear and comprehensive way. It also includes several case studies and projects that illustrate how to apply the theory to real-world problems.
In this article, we will review some of the main topics and features of this book, and show why it is a valuable resource for anyone who wants to learn more about expert systems and CLIPS.
The Representation of Knowledge
One of the most important topics in expert systems is how to represent the knowledge of the domain and the expert. Knowledge representation is the process of encoding the facts, rules, and concepts that constitute the expertise in a formal and structured way that can be manipulated by the computer.
There are many different methods and languages for knowledge representation, such as logic, semantic networks, frames, scripts, and production rules. Each one has its own advantages and disadvantages, depending on the nature and complexity of the domain.
In this book, the authors focus on production rules as the main method for representing knowledge in expert systems. Production rules are statements of the form IF condition THEN action, where the condition specifies a pattern that must match some facts in the system's memory, and the action specifies what to do when the condition is satisfied.
Production rules are suitable for expert systems because they can express complex and nonlinear relationships between facts, they can handle uncertainty and conflict resolution, and they can be easily modified and extended. Moreover, they are compatible with CLIPS, which is a rule-based language by design.
The book explains how to define facts and rules in CLIPS, how to use variables and wildcards to generalize patterns, how to use logical expressions and arithmetic operators to create complex conditions, and how to use functions and commands to perform actions. It also shows how to use deftemplates and multislot fields to create structured facts that can store multiple values.
The Methods of Inference
Another key topic in expert systems is how to use the knowledge to draw conclusions and make decisions. Inference is the process of applying logical rules to facts in order to derive new facts or goals. Inference methods can be classified into two main types: forward chaining and backward chaining.
Forward chaining is a data-driven method that starts from the known facts and tries to find a goal that matches them. It works by selecting a rule whose condition matches some facts in the system's memory, executing its action, adding or modifying facts as a result, and repeating this process until no more rules can fire or a goal is reached.
Backward chaining is a goal-driven method that starts from a desired goal and tries to find facts that support it. It works by selecting a rule whose action matches the goal, trying to prove its condition by finding facts or subgoals that match it, and repeating this process until all conditions are satisfied or no more rules can apply.
In this book, the authors explain how CLIPS implements both forward chaining and backward chaining inference methods using two different components: the rule-based subsystem and the procedural subsystem. The rule-based subsystem uses production rules and facts to perform forward chaining inference, while the procedural subsystem uses procedural code and global variables to perform backward chaining inference.
The book also describes how CLIPS manages the conflict resolution problem, which occurs when more than one rule can fire at the same time. It explains how CLIPS uses a conflict resolution strategy based on rule salience, specificity, recency, and order to determine which rule should fire first.
The Handling of Uncertainty
One of the challenges in expert systems is how to deal with situations where the knowledge or the facts are uncertain, incomplete, or inconsistent. Uncertainty can arise from various sources, such as lack of information, conflicting evidence, vague concepts, or human judgment.
There are several approaches for handling uncertainty in expert systems, such as probability theory, Bayesian networks, Dempster-Shafer theory, fuzzy logic, and certainty factors. Each one has its own assumptions and limitations, depending on the type and degree of uncertainty involved.
In this book, the authors focus on certainty factors as the main approach for handling uncertainty in expert systems. Certainty factors are numerical values that represent the degree of belief or disbelief in a fact or a rule, ranging from -1 (complete disbelief) to 1 (complete belief). They are based on the idea of measuring the increase or decrease of certainty in a fact after applying a rule.
The book explains how to assign certainty factors to facts and rules in CLIPS, how to use the CF command to calculate the combined certainty factor of a fact after applying multiple rules, and how to use the threshold command to filter out facts that have low certainty factors. It also shows how to use fuzzy logic to handle uncertainty that arises from imprecise or vague concepts.
The Design of Expert Systems
The final topic in expert systems is how to design and implement an effective and efficient expert system that can solve real-world problems. Designing an expert system involves several steps, such as identifying the problem domain, acquiring and validating the knowledge from human experts or other sources, encoding and testing the knowledge in a suitable tool, evaluating and refining the system's performance, and documenting and maintaining the system.
In this book, the authors provide several guidelines and tips for designing expert systems, such as how to choose an appropriate problem domain, how to conduct a knowledge acquisition interview, how to organize and structure the knowledge base, how to modularize and control the execution of rules, how to improve the efficiency and robustness of the system, and how to use explanation facilities and user interfaces to enhance the system's usability.
The book also includes several case studies and projects that demonstrate how to apply the theory and practice of expert systems to various domains, such as medical diagnosis, credit evaluation, animal identification, water quality analysis, and game playing. These examples show how to use CLIPS to implement different features and functions of expert systems, such as data validation, inference control, conflict resolution, uncertainty handling, fuzzy logic, explanation facilities, and user interfaces.
Expert systems are powerful and useful applications of artificial intelligence that can solve complex problems that require human expertise. However, developing an expert system requires a solid understanding of the principles and techniques of knowledge representation, inference methods, uncertainty handling, and system design. Moreover, it requires a suitable programming language or tool that can support these features and facilitate the development process.
One of the best books that can teach the theory and practice of expert systems and CLIPS is Sistemas Expertos: Principios y Programación, by Joseph Giarratano and Gary Riley. This book, which is now in its third edition, covers all the fundamental aspects of expert systems and CLIPS in a clear and comprehensive way. It also includes several case studies and projects that illustrate how to apply the concepts to real-world problems.
If you are interested in learning more about expert systems and CLIPS, or if you want to improve your skills and knowledge in this field, we highly recommend you to read this book. It will provide you with a valuable and practical resource that will help you to master expert systems and CLIPS. 4aad9cdaf3