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:
- The History of AI
- AI in Computer Gaming
- Intelligent agents
- Search (graph search, heuristic search [A*], Minimax, monotonicity, acceptability)
- Game playing
- Representation via logic--first order logic, predicate logic, inferencing,
backward-chaining
- Robotics
- Uncertainty & probability
- Learning, neural networks & evolutionary computation
Homeworks:
- 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.
- 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.)
- Checkers program, due February 14.
- 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.)
- Genetic Programming, due April 9.
- Neural Networks, due April 23.
- Resolution and Planning,
due November 9.
- GA-based Packing program, due December
9.
Related Links
- Mathematical details
of 15-puzzle. (E.g., why aren't all starting positions legal?)
- An animation of the alpha-beta
algorithm in action.
- An animation of Karl Sims "Creatures",
animats developed via genetic algorithms on a supercomputer.
- Demonstration of
a GA-based evolution of the eating behavior of simple animats. This animation
was created by Prof. David Eck
- 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.
- My presentation, "Introduction to Evolutinary
Computation".
- A brief tutorial on genetic algorithms by
Darrell Whitley, at Colorado State University.
- JESS, a java-based expert
system shell.
- A paper discussing
the application of GAs to optimizing compiler settings.