Roughly the course will require that you read and understand 2 chapters per week. Some sections of the chapters will not be required. You are expected to learn the assigned reading material even if it is not covered in the class. lectures. The pace of the course will vary with the difficulty of the material.
There are three coding projects, dealing with problem solving, logical reasoning, and learning.
The first assignment has been updated and is correct.
Homework Grading: The homeworks are deliberately open-ended. If you do a minimal job, your grade will be a B. If you do more and it is mostly correctly, then the grade is A What counts here is the intelligence/thought that you add to the assignment. If less, then C.
Lecture 1. AI Intro
Lecture 2. State-Space Representation
Week 1. Read Chapters 1, 2(summary only), and 3. Introduction to AI. State-Space Representations and Search. DFS, BFS, IDS, Uniform-Cost. Bidirectional search.
Week 2. Read Chapter 4 (not 4.3) Informed Search and more: Best First, A*, Beam, Stochastic, Iterative Improvement. Generating heuristics. Simulated annealing.Lecture 3. UnInformed Search Lecture 4&5. Informed Search
Week 3. Constraint Satisfaction
Week 4. Game Playing and Propositional LogicYour first homework is due at class time.
Week 5. Read Chapters 8 & 9 Propositional Logic and Prolog.
Week 6. First-Order Logic
Week 7. Read Chapters 14 & 15. Probabilistic Reasoning
Week 8. Read Chapters 18 & Bayesian Networks Weka Suite of ML algorithms Learning in Pictures
Week 9. Read Chapter 18. Decision Trees.
Week 10. Read Chapter 18 & 20. Linear Discriminators and Nearest Neighbor or Instance-Based Learning
Homework 1. Search. Due at the beginning of the fourth week. Due Date is October 21. In this problem you will evaluate several different search algorithms. The problem to be solved is the traveling salesman problem. Each city has two integer co-ordinates and every city is connected to every other city by a straight-line edge. The search algorithms that you need to code are:
a) A non-informed exhaustive search algorithm such as depth first, breadth first, or iterative deepening. Hint: because of the repeated states, I suggest that you just define a function/method that generates all permutations of the cities.
b) The A* algorithm with a suitable heuristic function. CHANGE: it is extra credit to code this algorithm because of the problem with repeated states. You still need to define a non-trivial admissible heuristic h.
c) The simulated annealing algorithm.
d)The iterative improvement algorithm (also called local improvement) with the "uncross" heuristic. Uncross will be explained in class.
You may be asked to turn in your code or demonstrate your algorithm. What you need to turn in is an evaluation of the algorithms. Here is a minimal evaluation.
a) For ten problems of size 10, compare the performance of your algorithms, in terms of speed and quality of solution or any other measure that you can think of. If problems of size 10 take too long, you may choose a slightly smaller number.
b) What is the largest problem (number of cities) that you can "solve" by every algorithm in less than 1 minute?
Your typed write-up should be as brief as possible, but no briefer. Your conclusions should be supported by the experiments that you have run, i.e. the data from the experiments that you discuss should be included in your write-up. You may assume I know the algorithms. However you should explain the operators (which may change with the algorithm) and the heuristic you've chosen for A*. You should explain your evaluation of the algorithms. At the end you should discuss the results.
Homework 2. Logic. Due at the beginning of the seventh week. Because of the holiday on Nov 11, this is due on Nov 13. This assignment requires the use Prolog.
Here's an example: ( you should do 5-10 different inferences)
% John has a picture of his wife in his wallet. John is at the spectrum. Inference: picture is at the Spectrum, i.e. the answer to the question at(picture, X) binds X to spectrum.
Now provide the Prolog code to do it.You should provide your code and trace outputs that demonstrate the capability of your program.
Homework 3. Learning. Due at the beginning of the tenth week.