Question 1) Answers to parts 1-4 is in the figure below. Note that since this is 2-ply, some of the elements in the evaluation are always 0. | | -+-+- 1 | | -+-+- | | | | | |X | | -+-+- -+-+- -+-+- 1 |X| -1 | | -2 | |X -+-+- -+-+- -+-+- | | | | | | | |O | | | |X | |X | |X | |X | |X | | O| | | |O |O| | | -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- |X| |X|O |O| | | | | | | | |O |O|X | |X | |X | |X O| |X -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- | | | | | | | |O O| | |O| | | | | | | | | | | | | 1 2 -1 0 U 0 U 1 U 1 U -2 -1 U -1 U 0 U 0 U Eval values - for bottom rows (part 2). Values for non-leaves is for part 3. The best move is clearly X in the center, valued at 1. For part 4, all assuming ordering is as drawn, leaf nodes markes U are unevaluated (pruned) in alpha-beta pruning. If instead of MIN nodes we have EXPECATION nodes, all we need to do is take expectations at this level with uniform probability. Care must be taken with tree nodes representing multiple symmetrical positions. We get the following tree evaluations: | | -+-+- 1.5 | | -+-+- | | | | | |X | | -+-+- -+-+- -+-+- 1.5 |X| 3/8 | | -6/8 | |X -+-+- -+-+- -+-+- | | | | | | 4/8 4/8 1/8 2/8 1/8 2/8 2/8 1/8 2/8 2/8 2/8 2/8 | |O | | | |X | |X | |X | |X | |X | | O| | | |O |O| | | -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- |X| |X|O |O| | | | | | | | |O |O|X | |X | |X | |X O| |X -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- -+-+- | | | | | | | |O O| | |O| | | | | | | | | | | | | 1 2 -1 0 U 0 U 1 U 1 U -2 -1 U -1 U 0 U 0 U Where probabilities for a (multiple) position is listed above each leaf node. Question 2) Part 1) Block(A) ^ Block(B) ^ Block(C) ^ Table(T) ^ On(A,B,S0) ^ On(B,C,S0) ^ On(C, T, S0) ^ (forall x ~On(x,A,S0)) ^ (forall x On(x,B,So) => x=A) ^ (forall x On(x,C,So) => x=B) ^ (forall x On(x,T,So) => x=C) Note that it is also possible to say, instead of the last 4 lines: ~On(B,A,S0) ^ ~On(C,A,S0) ^ .... ^~On(B,T,S0) but this is long and would require O(n*n) terms for a situation with n objects - so is to be discouraged (although full credit in this exam). Part 2) We will state the English equivalent for each axiom. Note that it is easier if we had a predicate ClearTop(x,s), and in fact in many representations of blocks world this predicate is used, but you were expressly DISALLOWED using the extra predicate. That means we need to "factor it out" in the FOL description, by using: ~(exists w On(w,x,s)) in place of ClearTop(x,s). After a successful Puton(x,y) action, block x will be on y, and if x is on some object z, it will no longer be on z after the action. forall x,y,z,s (Block(x)^(~ exists w On(w,x,s))^ ~(x=y) ^ On(x,z,s) ^ (Table(y) v (Block(y) ^ (~ exists w On(w,y,s)))) => (On(x,y,result(Puton(x,y),s)) ^ ~On(x,z,result(Puton(x,y),s))) where the head of the rule (except for On(x,z,s)) tests the condition for the success of PutOn(x,y). If there is something (a) on an object (b) after a PutOn(x,y) action, either this is a successful action with objects x=a and y=b, or a was on b before the action. (Alternatly, this means that if a was NOT on b before the action, it will not be there after the action, unless...) forall a,b,x,y,s On(a,b,result(PutOn(x,y),s)) => ((a=x ^ b=y ^ Block(x)^(~ exists w On(w,x,s)) ^ ~(x=y)^ (Table(y) v (Block(y) ^ (~exists w On(w,y,s))))) v On(a,b,s)) Finally, if some block a was on b and a was not moved by some action PutOn(x,y), then a remains on b: forall a,b,x,y,s (On(a,b,s) v ~(x=a) v (exists w On(w,x,s)) v (x=y) v (exists w On(w,y,s) ^ ~Table(y))) => On(a,b, result(PutOn(x,y,s))) where ~(x=a) means the action is irrelevant (does not involve a), and the rest is conditions under which the action will fail and then obviously cannot affect anything. Naturally, there are numerous ways of encoding the information in the above axioms. Question 3) 1) False. The hardest problems are knowledge representation, etc. which we do not even know how to formalize as a problem, in the general case. ELABORATION: even among FORMALIZABLE problems, there are some that are undecidable, and yet they are solved in practice for useful special cases, and problems that are NP-hard are solved in practice (for "intelligent agents"), obvsiously, too. 2) False. In hard problems, we sometimes give up optimality (thus admissibility) for faster results. Inadmissible heuristic may be faster! ELABORATION: perfect heuristic is optimal AND provides fast search, but CANNOT BE COMPUTED IN PRACTICE as it usually requires optimal solution of the problem to compute, in which case we no longer need it anyway! 3) True. Just set h(n)=0 unifrmly, and with g(n) equal to node depth (or if path cost is 1 per arc) we get exactly BFS. 4) True. Effective branching factor is number of child nodes generated and expanded on the average (usually geometric average). With a good heuristic, the number of expanded nodes is much smaller.