Introduction to Artificial Inteligence

Example Quiz 1 - answers


0. An intelligent agent has to answer 3 questions in a quiz on AI, what is
   the optimal time allocation and pruning on the search space for solutions?
   (most people have flunked this part of the quiz), solution to this
   question embedded in the rest of the answers.

1. In the t-c-tac-toe geme, the current position is:

          |   | X  
       ---+---+---
        O | O |   
       ---+---+---
        X |   |   

1.1: The game tree up to 2-ply: we will use the notation (who's move: poistion)
     to denote the new move in each case. Board position to be read by the
     path from the state up to the current move. Position is denoted by (x,y).

     Thus, we have the following tree (omitting the initial position). Tree
     also includes values for terminal nodes.

     X:(1,1)  O:(2,1)
              O:(3,2)     Value: -1 (win for O)
              O:(3,3)
              O:(2,3)

     X:(2,1)  O:(1,1)
              O:(3,2)     Value: -1 (win for O)
              O:(3,3)
              O:(2,3)

     X:(3,2)  O:(1,1)   X:(3,3)      Value: 1 (win for X)
                        X:(2,3)
                        X:(2,1)
              O:(2,1)   X:(3,3)      Value: 1 (win for X)
                        X:(2,3)
                        X:(1,1)
              O:(3,3)   X:(1,1)      (leads to value 0: draw)
              O:(2,3)   X:(3,3)      Value: 1 (win for X)
                        X:(1,1)
                        X:(2,1)

     X:(3,3)  O:(2,1)
              O:(1,1)
              O:(3,2)     Value: -1 (win for O)
              O:(2,3)

     X:(2,3)  O:(1,1)
              O:(2,1)
              O:(3,2)     Value: -1 (win for O)
              O:(3,3)

Note that the 2nd move for X is not required for full credit here.

1.2  Optimal ordering for alpha-beta will examine first the best move for
     X, i.e. X:(3,2), and within it O:(3,3). Later on, in each other move
     but X:(3,2) examine first O:(3,2) which gets -1, and all the other
     branches can be pruned, as X will never choose these moves anyway
     (since X can never do worse than lose -1 anyway). In short, all lines
     with no evaluation above denote branches that are pruned - never
     evaluated.

1.3 Clearly, optimal move is X:(3,2).

1.4 If we have a RANDOM player, we need to look at the tree as an EXPECTI-MAX
    tree rather than MINIMAX. We can save a lot of work by computing BOUNDS,
    as follows.

    Move X:(3,3) will result in move O:(3,2) and a loss for X with probability
    1/4. All other moves by O will result in a win for X, probability 3/4.
    Expected utility is 3/4 - 1/4 = 1/2

    Move X:(3,2) will result in move O:(3,3) in 1/4 of the cases, and
    in some other move in 3/4 of the cases. In these LAST cases X will win
    by playing X:(3,3) and win. In the FORMER case, O:(3,3) X may or may
    not win, but will NOT BE CERTAIN TO LOSE, and thus in that case it is
    clear that X will NOT have utility -1. Thus, we have expected utility
    GREATER then 1/2

    Any other move by X: will result in an immediate loss 1/4 of the time,
    and is NOT a sure win in all the remaining cases, and thus the expected
    utility is LESS than 1/2

    Thus, the optimal move is still X:(3,2). Of course, one can get this
    answer by expanding the complete tree...

1.5 If we cannot see the response by the opponent, we MIGHT wish to model
    this as a random move - and thus use an "expecti-mini-max" tree. However,
    that will unfortunately be incorrect. The problem here is that the state
    is not currently observable, NOT that it is stochastic. And since there
    is an intelligent agent as an opponent, not a random process, we cannot
    use the expecti-mini-max to obtain optimum. This is a HARD problem, but
    then you were NOT required to find the solution here!



2   Resolution theorem proving in CNF propositional logic.

2.1 To define a formal search problem, need to define STATES (including initial
    as well as goal-state or goal test), OPERATORS, PATH COST. For finding
    shortest proof, we have:

       States are the modified KB - each state is a CNF formula.

       INITIAL STATE:  A KB in CNF consisting of the given KB
                       + the NEGATION of the theorem to be proved.

       GOAL TEST:      Check if the state (the modified KB) has an empty
                       clause, if it does - return true, else false.

       OPERATORS:      If any 2 disjunctions a,b, can be resolved on some
                       literal c, generate a new state
                       by copying the KB and adding the clause resulting
                       from applying the resolution operator.
                       The operators are thus any application of resolution and
                       adding the result to the KB.

       PATH COST:      Add 1 for each application of the resolution operator.

2.2    Since the heuristic returns 0 on any KB with the empty clause, it is
       exact for goal states. Since applying resolution to pure disjunctions
       can only at most decrease the size of a disjunction by 1, (and
       even that only if one of the disjunctions is of UNIT size), and since
       the heuristic measures the size of the SMALLEST disjunction, this
       heuristic is clearly OPTIMISTIC. Thus, the heuristic is ADMISSIBLE.

2.3    Initial state is:      (AvC) ^ (~C) ^ (AvDvE) ^ (BvC) ^ (~Av~B)

       where the last clause results from the negation of the theorem to
       be proved, and with a heuristic value of 1 (since the size of the
       smalles clause, ~C, is 1.
       Now, using A* we expand by all possible applications of resolution.
       Note that the states contain the ENTIRE KB and with the result ADDED,
       and NOTHING DELETED. However, for conciseness, I will only denote
       the ADDED clause.

       Children of the initial state add:
       1) A
       2) Cv~B
       3) B
       4) Cv~A
       all with a heuristic value of 1 and f-cost of 2. Now, any of these
       can be elected for expansion, as A* is indifferent to which. Suppose
       we choose 1 - to get (note we can STILL get everything we got above,
       except for A, which is already in the KB):
       1.1) ~B
       1.2) Cv~B
       1.3) B
       1.4) Cv~A
       all with a heursitic cost of 2 and f-cost of 3. So now A* must expand
       2, with all children having f-cost of 3:
       2.1) A
       2.2) ~B
       2.3) B
       2.4) Cv~A
       2.5) CvC  (=C - and assume we allow this optimization to get C)
       Expanding 3, we get (with f-cost 3):
       3.1) A
       3.2) Cv~B
       3.3) ~A
       3.4) Cv~A
       Expanding 4, we get (with f-cost 3):
       4.1) A
       4.2) Cv~B
       4.3) B
       4.4) CvC    (=C)
       4.5) ~A
       4.6) CvDvE
       Now we need to expand all the above, getting numerous states. Among
       them will be some children of 2.5 and 4.4, which will generate the
       empty clause from C and ~C, and a proof length of 3. If we are not
       allowed to reduce CvC to C, a few more steps will be needed...

2.4    Note that A* is a HORRIBLE algorithm, since it BACKTRACkS to some
       other state which may contain (setwise) fewer clauses. However, in
       a monotonic logic, the state is also monotonic and there is NO NEED
       to ever backtrack (as long as ANY proof will do)!
       It is enough to always add all clauses generated, and their parents,
       and not worry about backtracking. There are other optimizations related
       to search efficiency, but the above is clearly paramaount.


3      True-false questions.

3.1    FALSE - the greedy algorithm sorts only according to h(n), which here
               is negative g(n) - resulting in a "farthest first" search
               (equal to DEPTH first search if arcs all cost 1).

3.2    FALSE - random elements in genetic algorithm help it escape from local
               optima.

3.3    TRUE - to represent change need a HUGE number of propositions and
              axioms, possibly even UNBOUNDED. This problem does not occur
              in FOL.

3.4    FALSE - calculate the number of possible board positions, which is HUGE.
               However, noting that checkers is NOT a solved game, it is clear
               that if we can fir all board positions on a home computer a 
               simple run of MINIMAX would take linear time in that number
               and checkers would have been a solved game.

3.5    FALSE - there is exactly ONE model, vid.  A=T, B=T.