Heuristic Programming

& Artificial Intelligence

COSC 461/561

N.B.: This is an archival web site.  Current course information can be found on canvas.emich.edu.

Instructor: Matt Evett

Prerequisite: Senior-level programming course.

Syllabus: click here

Course Summary: The course provides students with knowledge of the rudiments of the main subfields in the study of artificial intelligence. Topics will include:

  1. The History of AI
  2. AI in Computer Gaming
  3. Intelligent agents
  4. Search (graph search, heuristic search [A*], Minimax, monotonicity, acceptability)
  5. Game playing
  6. Representation via logic--first order logic, predicate logic, inferencing, backward-chaining
  7. Robotics
  8. Uncertainty & probability
  9. Learning, neural networks & evolutionary computation

Homeworks:

  1. Search: provide order the nodes of the search tree given in class are expanded by A*, plus exercises 4.1, .4, .6 and .13 from the textbook.
  2. Trace the alpha-beta routine on this graph, taken from the textbook. Your depth-first traversal should be right to left, instead of left to right (as it appears in the textbook). Due Jan 31. (You might want to take a look at this animation of an example of alpha-beta in action.)
  3. Checkers program, due February 14.
  4. From the questions at the end of chapter 7: #4 (c,d & e are interrelated), #5, #8, #9; from chapter 8: 2, 6, 15. Due October 29. (Warm-up for midterm.)
  5. Genetic Programming, due April 9.
  6. Neural Networks, due April 23.
  7. Resolution and Planning, due November 9.
  8. GA-based Packing program, due December 9.

Related Links

  1. Mathematical details of 15-puzzle. (E.g., why aren't all starting positions legal?)
  2. An animation of the alpha-beta algorithm in action.
  3. An animation of Karl Sims "Creatures", animats developed via genetic algorithms on a supercomputer.
  4. Demonstration of a GA-based evolution of the eating behavior of simple animats. This animation was created by Prof. David Eck
  5. A computer player for the game of "20 questions". The AI has learned decision trees over thousands of sessions with human users, and is now a very good player. Give it a try.
  6. My presentation, "Introduction to Evolutinary Computation".
  7. A brief tutorial on genetic algorithms by Darrell Whitley, at Colorado State University.
  8. JESS, a java-based expert system shell.
  9. A paper discussing the application of GAs to optimizing compiler settings.