Computer Science 456: Artificial Intelligence and Expert Systems

Unit 0: Orientation

Computer Science 456 divides the textbook readings and other course activities into units of manageable size over your period of study. Every unit has several objectives and is divided into sections covering a chapter of the textbook. Each section has an overview of the corresponding learning objectives, followed by key terms that identify the core concepts to learn. It is important that you understand this information thoroughly and apply it in your application programs. Finally, each section identifies the reading assignment and exercises you should practice to enhance your analysis of the topics discussed.

The reading assignments in each unit are equivalent to the amount covered in about a week. The exception is Unit 2. This unit covers two programming languages, Prolog and Lisp, even though you are required to learn only one of them. You can choose Prolog or Lisp and then submit your assignments using either of the two languages. So In this unit each of the two sections covering either Prolog or Lisp is equivalent to the amount covered in a week and a half of a one-term course.

The Field of Artificial Intelligence

Artificial intelligence (AI) is a field of computing science in which researchers develop ideas for making computers simulate human intelligence in performing tasks that require thought. Research in artificial intelligence is concerned with various sub-fields, as listed below:

  • Theorem proving is concerned with using computers to prove mathematical theorems using axioms and rules of inference to reach a conclusion. Many of the problems encountered in AI are represented as a theorem to be proven.
  • Expert systems are computer programs designed to provide an equivalent to a human expert in a certain domain. Some expert systems interact with humans while others operate alone. Expert systems implementation and development involves techniques for knowledge acquisition and knowledge representation.
  • Robotics: the creation of this sub-field was motivated by the need to use machines to carry out tasks that would be dangerous for human beings. Concerns involve vision, problem solving, etc.
  • Intelligent agents are software programs characterized by their autonomy, interaction with their environment, and capability of adaptation or learning.
  • Vision: this sub-field was heavily influenced by the need of robotics to see (recognize surrounding objects). This involves finding methods to deal with a large number of objects (such as analyzing variations in brightness).
  • Natural language processing is the ability of computers to understand tasks given to them in natural language (such as English, as opposed to an artificial language like Prolog) using the spoken voice or in written format. It involves language analysis and generation techniques, such as grammar (e.g., context-free grammar) and parsing. This sub-field requires techniques for representing knowledge, dealing with ambiguity, and dealing with a large number of knowledge elements without contradiction.
  • Games: the study of games that require thinking and intelligence, such as chess, lead to the development of intelligent techniques. The key term in these techniques is ‘search’, to find the best move.
  • Machine learning systems, such as neural networks and belief networks, involve networks of simple arithmetical elements to represent function as well as techniques for learning representations from examples.
  • Reinforcement learning deals with learning from success and failure as reward and punishment.

Achieving progress in the above AI sub-fields depends on creating techniques to be used in those sub-field’s applications. These techniques are of various types, listed below:

  • Searching techniques, such as trial and error, hill-climbing, best-first, and depth-first.
  • Problem-solving techniques such as decomposing problems, depth-first search of AND/OR graphs, minimax method, and alpha-beta method.
  • Knowledge representation techniques, such as production systems, semantic networks, and frames.
  • Knowledge reasoning techniques, such as first-order logic and unification.
  • Inference techniques, such as forward and backward deduction.
  • Languages suitable for artificial intelligence (e.g., Lisp and Prolog). Such languages are powerful tools for symbolic processing.

Many of the AI sub-fields listed above are discussed in Computer Science 456. The core techniques used in AI applications are also covered in detail. As Prolog and Lisp are problem-solving languages based on predicate calculus, they are common implementation languages for any AI applications you will see in this course.

Course Structure

Computer Science 456 consists of eight units organized as follows:

  • Unit 1 presents an introduction to artificial intelligence and predicate calculus.
  • Unit 2 presents the main concepts related to the AI programming languages Prolog and Lisp. Assignment 1 is due after Unit 2.
  • Unit 3 introduces strategies for state space searches.
  • Unit 4 presents the fundamental heuristic search algorithms. Assignment 2 is due after Unit 4.
  • Unit 5 presents algorithms for recursion-based searches and introduces production systems.
  • Unit 6 discusses knowledge representation. Assignment 3 is due after Unit 6.
  • Unit 7 presents the fundamental concepts of problem solving and expert systems.
  • Unit 8 introduces the concepts and models of machine learning. The Project is due after Unit 8, when you will also write the final invigilated examination.

Learning Outcomes

Upon successful completion of this course, you should be able to

  • discuss AI models and areas of application.
  • elaborate upon different models for knowledge representation.
  • explain the fundamentals of expert systems and apply them to problem solving.
  • use graph theory and finite state machines to represent problems.
  • develop AI solutions for problem solving using heuristic strategies.
  • program AI systems using Prolog or Lisp.

Activities

Compilers

The course is based on the standard specifications for Prolog and Lisp that are implemented by most of the compilers. You are free to use any compiler that you are familiar with as long as you will be able to submit your source code for marking. Contact your tutor if you have questions about which compiler to use.

Examples of compilers that you can use:

GNU Prolog: http://www.gprolog.org/

SWI Prolog: http://www.swi-prolog.org/

GNU Common Lisp: http://www.clisp.org/

LispWorks: http://www.lispworks.com/

COMP 456 Links

Below is a list of useful resources in the AI domain:

George Luger’s Personal Homepage: http://www.cs.unm.edu/~luger/

Watch the videos of the 28 class lectures from Introduction to Artificial Intelligence taught by Professor Luger: http://www.cs.unm.edu/~luger/cs427/videos/cs_427_527_spring_09/videos.html/

AAAI (The Association for the Advancement of Artificial Intelligence): http://www.aaai.org/

JAIR (Journal of Artificial Intelligence Research): http://www.jair.org/

AINEWS – Artificial Intelligence: https://artificialintelligence-news.com//

ALICEBOT – Artificial Intelligence Foundation: http://alicebot.sourceforge.net/alice_page.htm#downloads/

Some General Tips to Succeed in This Course

  • Manage your study time: Use the course study plan and study guide as the main reference for completing different component of the course work.
  • Take notes during the readings: A good set of notes can help you remember which concepts were covered in each unit/section. You may want to use the Personal Workspace wiki on the course home page.
  • Read actively: Most of the material you have to learn at this course is presented in written form. Before you start to read, take a few minutes to look at the main headlines of the unit and section text in the study guide. Turn the heading of the section learning objectives into a question such as What is .....?. When you’ve finished reading the section, look away from the text and summarize the answer as much as possible in your own words. Discuss key concepts with your tutor or classmates using the COMP 456 General Discussion forum or direct email.
  • Write effective answers to assignments: Make sure you understand what the assignment requires you to do. Revise your answers in response to any new ideas you may have. Discuss the questions with classmates or your tutor using the COMP 456 General Discussion forum or direct email, but don’t post any answers in the discussion forum. Revise your answers in light of the feedback you receive.
  • Use exam-taking strategies: Learn as you go and don’t leave your preparation until the night before the exam. Answer the Sample Exam questions, and discuss it with your tutor before you take the exam. Use your time well on the exam.

Know the system: Read the University Calendar. Read the student manual. Become familiar with Learning Support and the Office of the Registrar. Use AU Library Services and online resources. Talk to professors, academic advisors, and fellow students.