CSC384S - Introduction to Artificial Intelligence
January 2003
Instructor:
Paulo Pacheco
ppacheco@cs.toronto.edu
Office Hours: TBA; by appt.
Please send email to
the address above and not to my CDF account. Include CSC384 in the subject line.
Lectures:
Monday, Wednesday, 4:00-5:00PM in SE1157
Tutorials:
Friday, 10:00AM in SE1157
Please be sure to attend your tutorials. You are responsible for material
covered there. You will normally hand in assignments in tutorial (in the correct
tutorial section). Our two midterm tests will be held in tutorials as well.
New Links and Info
News and other Material:
- May.07: Final Marks. Please let me know ASAP of any problems.
- Apr.21: Check out the "Final Exam & Midterm" section. Don't forget to also check this.
- Mar.27: Assignment 5. Due date is April 7.
- Mar.13: Assignment 4. Due date is March 26. Please check the assignments section for extra files.
- Mar.09: Second test confirmed: March 21, in tutorial. Asst4's due date was tentatively scheduled for March 24, so we will move it to March 26 to give you a bit of time to breath in between.
- Mar.09: Correction in asst3 to furthest predicate. Click here for more details.
- Feb.25: Assignment 3. Due date is March 10. Please check the assignments section for extra files.
- Feb.19: Link to Eric Joanis' tutorial web page.
- Feb.13: Test cases for assignment 2 are now available.
- Feb.09: Assignment 2.
- Feb.04: Handout: Manhattan Bike Courier
- Feb.04: Handout: interpretations
- Feb.04: Midterm 1 is on Feb.07 - Topics go up to LCFS (inclusive). Here is a helpful link.
- Feb.04: Some typos have been fixed - see assignments section.
- Feb.04: Assignment 1 is due tomorrow until the end of lecture - PAPER ONLY - Late assignments won't be accepted.
- Feb.04: Test cases for the assignment 1 - click Here.
- Jan.28: Some typos have been fixed - see assignments section.
- Jan.28: First test confirmed: Feb 7 (in tutorial).
- Jan.28: Newsgroup: ut.cdf.csc384h.
- Jan.28: Assignments dates have been updated (Assignment 1 due date is Feb 5 - handed in on paper only).
- Jan.22: Assignment 1.
- Dec.25: Jan 6 - First lecture.
Course Accounts:
Click here
for a list of CDF accounts that have been created for 384. If you have a
permanent account on CDF, then you will also be listed here. If your name is
not on the list and should be, send your instructor email (or otherwise get in
touch). NOTE: The list has been updated as of
Dec. 25.
Course Newsgroup:
The course newsgroup is ut.cdf.csc384h and is accessible on all CDF
and CSLab machines. Feel free to post questions there, especially those whose
answers will be of general interest to the class. Watch the newsgroup for
announcements as well (as well as the course Web page).
Goals:
This course provides an introduction to AI, covering some of the fundamental
topics that underly the many different areas of artificial intelligence, as well
providing an introduction to several of the more specialized areas of AI.
The emphasis will be on the logical foundations of AI and problem solving
methods. We will cover some of the widely applied techniques of logical
representation languages and search techniques for problem solving. These tools
are used throughout many areas of AI. In addition, we will spend some time
dealing several more specialized topics: game tree search; action
representations and planning; probabilistic reasoning and decision theory; Some
Prolog programming will be required as part of the course. The course is
not, by and large, a programming course.
The topics we will cover include:
- Introduction to AI and subareas of AI
- Logical Reasoning with Definite Clauses
- Problem Solving: Graph-based Search Techniques
- Actions and Planning
- Probabilistic Reasoning, Bayesian Networks, and Decision Making
Course Organization:
The course material will be covered primarily in lectures and tutorials. You
should read the appropriate sections of the text prior to attending that
lecture, and then review the text again, along with any additional notes you
took, after the lecture. I will make my lecture slides available online in PDF
format (see below). These are not intended to replace your lecture notes, but
supplement them and help you organize them. To the extent possible, I will try
too post lecture slides before class; however, you should not rely on this fact.
They will certainly be posted within a couple of days of the lecture, after I
have a chance to correct the inevitable typos that you find in class :-) Keeping
up with the reading is imperative!
There will be five assignments given in the course. Most but not all of these
will involve Prolog programming. The approximate out and due dates for
the assignments are:
-
Assignment 1: Out: Jan.20; Due: Feb.5
-
Assignment 2: Out: Feb.3; Due: Feb.24
-
Assignment 3: Out: Feb.24; Due: Mar.10
-
Assignment 4: Out. Mar.10; Due: Mar.24
-
Assignment 5: Out: Mar.24; Due Apr.07
Assignments will be due at the beginning of class unless stated otherwise.
There will be two midterm tests of 45 minutes duration. These will be held in
tutorial. They are tentatively scheduled for Feb.07 and Mar.14. The
official midterm dates will be announced at least two weeks in advance.
There will also be a final examination to be scheduled by the registrar.
The grading scheme for the course is as follows:
- Assignments (5): 35% (7% each)
- Tests (2): 20% (10% each)
- Final Exam: 45%
Course Material:
The textbook for CSC384 is Computational Intelligence: A
logical approach, Oxford University Press, 1998, by Poole, Mackworth and
Goebel. This will be the main source for the course. You will also need to rely
on lecture material. If necessary, we will supplement this with secondary
references and online material. There are currently some supplementary
references on Prolog, which the the programming language we will use in the
course. Since you've all seen Prolog prior to taking CSC384, these should be
viewed as reference material only. Please keep an eye on the List of Course
Materials and References. We will keep you apprised of any specific material
you should read.
Lecture Slides, Readings, Online Notes
Lecture slides from all past lectures are posted here. They will sometimes be
posted before class, but this is not guaranteed. Please keep an eye on this
space to see what readings from the text you are reponsible for before class.
These slides should not be used as a substitute for attending lectures
and taking notes. And they do not take the place of reading the assigned
Chapters in the text.
If I fall behind (say, by more than a few days) in getting slides posted,
please make a fuss :-)
Links to AI Resources and other Fun Stuff
As we proceed through the course, we will sometimes discuss various research
projects, ideas, robots, games, etc. We will add links to appropriate material
on the 384 Links
Page as we encounter it. Feel free to browse these at your leisure.
Assignments
Assignment 4
Late assignments won't be accepted.
Assignment 3
Late assignments won't be accepted.
Assignment 2
Late assignments won't be accepted.
-
A* code, which you should test and modify. Should
run under most any version of Prolog (but use XSB on the CDF machines,
that's what I tested it on recently).
-
IDA* code, which you should test and modify.
Should run under most any version of Prolog (but use XSB on the CDF machines,
that's what I tested it on recently).
-
My member and notmember predicate definitions,
which can be used in multiple path cycle checking. You can use XSB library
"member" predicate also from the "basics" library.
-
My exp2 predicate definition to compute powers of
2 for the h3's implementation.
-
Correction q8: prove that
-
monotone restriction holds for h1.
-
admissibility and monotone restriction do not hold for h2 and h3.
Since the monotone restriction cannot hold when admissibility doesn't hold,
it is sufficient to give a counter example that infirms admissibility.
-
Test cases: they are now available.
Assignment 1
Late assignments won't be accepted.
-
Typo question 4d: the clause should be has_keys(X) <- prof(X)
instead of has_keys(X) <- faculty(X). The typo is corrected
in the online version of the assignment.
-
Typo question 2b: the predicate you should define is totalCredits(L,TotCred)
instead of enoughCredits(L,TotCred). The typo is corrected in
the online version of the assignment.
-
Typo question 1b: I forgot to tell you what \pi(higher_than,
CDN$, US$) maps to. It maps to true (i.e. \pi(higher_than,
CDN$, US$) = true).
-
Clarification question 2: When a course is taken twice, it could
be because a student failed the course, withdrew from the course or simply
took the course a second time to improve his/her (already passing) grade.
-
Clarification question 2: Do not bother checking the validity of
the knowledge base. You can safely assume that the transcript and
program requirements are specified using predicates consistent with the
syntax and definitions described in the assignment.
-
Test cases question 2: they are now available.
-
Correction in test cases kb2 and kb3: the handout says that you
can assume that equivalent courses always appear together in a group, but
that wasn't the case for kb2 and kb3. Click here for the corrected
versions of kb2 and kb3.
-
Clarification question 2: you can use any built-in operator/predicate
of XSB prolog. Note however that you can easily do the assignment
without using them.
-
Clarification question 4: when asked to give an SLD derivation,
write only the "path" of logical consequences (along with the clauses selected
and the chosen substitutions) that proves the query. You don't need
to write the unsuccessful paths nor the backtracking you may have gone
through before finding the proof.
-
Clarification question 2: if a course is part of two groups then
passing this course counts towards the requirements of both groups.
-
Practice exercices: Here are some exercices
(with solutions) that may be helpful to practice for the midterm or to
answer some questions on Asst1. The exercices of sessions 1 and 2
are relevant to the course. Note however that the midterm will cover other
topics that are not in those exercices, such as search.
Final Exam & Midterms
Tentative dates for our midterms are
mentioned above. Once dates are confirmed (at least two week's notice will be
given), they will be announced here. It is imperative that you take your midterm
in the tutorial section to which you have been assigned. Currently scheduled
tests:
-
Final exam date: see schedule
-
Duration: 2 hrs
-
Material subject to examination:
-
All assigned readings
-
All assignments
-
All lecture slides
-
Review checklist of topics covered in the course
and material for which you are responsible on the final exam.
-
Bring a non-programmable calculator.
-
No other aids allowed (i.e., no notes, no lecture slides, no textbook,
no computer, etc.)
-
To practice, check out
-
Good luck to everyone!
- Mar 21 - Midterm 2 - in tutorial
-
Duration: 45 min
-
Material subject to examination:
-
Search, planning and games (note that games are not covered in the textbook
so you should rely on the lecture slides).
-
Slides for lectures 7-16
-
Textbook Ch. 4.1-4.6 (excluding dynamic programming), 8.1-8.3 (excluding
event calculus and partial order planning)
-
No aids allowed (i.e., no notes, no lecture slides, no textbook, no calculator,
no computer, etc.)
-
The test is now marked. Here are the solutions
with the marking scheme.
- Feb. 7 - Midterm 1 - in tutorial
-
Duration: 45 min
-
Material subject to examination:
-
Slides for lectures 1-9
-
Textbook Ch. 1, 2, 3, 4.1-4.4, 4.6(cycle checking and multiple path pruning
only)
-
No aids allowed (i.e., no notes, no lecture slides, no textbook, no calculator,
no computer, etc.)
-
Here are some exercices
(with solutions) that may be helpful to practice for the midterm or to
answer some questions on Asst1. The exercices of sessions 1 and 2
are relevant to the course. Note however that the midterm will cover other
topics that are not in those exercices, such as search.
-
Solutions for Midterm 1
Marks
You can find an unofficial list of
marks for the course here. --
Please note the date of the last update carefully: it may
not reflect recent grade changes that have been recorded in the official
marks file (even if you submitted something to be remarked before
this date), if the remarked assignment was not returned to you by
this date, the change may not be recorded. Don't complain until
the next update please!