The following chapters/sections will be covered: Chapter 1, Chapter 2, Chapter 3 (except Section 3.7), Chapter 4, Chapter 5, Chapter 6 (except 6.7 and 6.8), Sections 7.2, 7.3, 7.4, Chapter 8 (excluding the event calculus and partial-order planning), Sections 11.1 and 11.2.
This practice exam is designed to give you some impression of the types of questions that may be asked. You should also expect some questions based on the assignments. You should also reread the practice midterm. The final exam covers the whole course, but this practice exam emphasizes the latter part of the course.
Note that you can bring in one sheet of 8½×11 paper, with anything you like written on it. You must bring your student card to the final examination. Your student card will be checked.
Suppose that the assumables are p, q, r, s, t and u.false <= a & b. false <= c & d. a <= p. b <= r. b <= e. e <= p. c <= f & r. f <= g & p. f <= q & s. f <= u.
In this question we will consider decision-tree learning based on this data.
a b c d e1 true true false false e2 false true false true e3 false true true true e4 false false true false e5 true false false false
Suppose that you are new in a job, and that your boss thinks that, because you did so well in cs322, you are an expert in AI. You want to impress your boss (and don't want to say "That course was really dumb. We didn't learn anything."). The boss has heard of neural networks and decision trees, but doesn't know anything about them, and thinks that neural nets seem so great and decision trees so stupid (or the other way around). The boss wants your informed opinion. (Your informed opinion should be based on facts, which you should make explicit). You need to write a coherent, well written half a page executive summary (using proper English) to impress the boss.
Write a meta-interpreter reduce_prove(L0,L1) that, given a list L0 of atoms, reduces them to a list L1 of primitive atoms that, given the knowledge base, implies the elements of L0.at(Ag,Pos) <= sitting_at(Ag,Pos). adjacent(P_1,P_2) <= between(Door,P_1,P_2) & unlocked(Door). between(door1,o103,lab2) <= true primitive(unlocked(D)). primitive(sitting_at(A,P)). primitive(carrying(A,O)).
For example, the query
returns with one answer with L=[sitting_at(rob,o103),unlocked(door1),carrying(rob,parcel)]. Note that this operation was assumed in the regression planner.ask reduce_prove([at(rob,P),adjacent(P,lab2),carrying(rob,parcel)],L)
[sitting_at(rob,o109),sitting_at(parcel,lab2)]