## Sample Exam Problems

### Problem 1:

Consider the following simple PCFG:
```S -> Noun VP  [0.5]
S -> NP Verb  [0.5]
VP -> Verb Noun [1.0]
Noun -> "bronze" [0.1]
Noun -> "pots" [0.6]
Noun -> "clatter" [0.3]
Verb -> "bronze" [0.1]
Verb -> "pots" [0.1]
Verb -> "clatter" [0.8]
```

A. Show the two possible parse trees for the sentence "bronze pots clatter" and label each node with its probability. You may write the probability as a product e.g. "0.2*0.3*0.4"; this is not an test on how well you can multiply. Hint: it is more efficient to think about this problem top-down than to try to simulate the CYK parser, which works bottom-up.

B. The CYK parser will add some nodes to the chart that are not in either of the parse trees. Give an example of one such node.

### Problem 2:

What is the result of doing alpha-beta pruning in the game tree shown below? (Draw your answer on the exam sheet.)

### Problem 3:

Consider the following collection of sentences in the propositional logic.
1. P => (Q <=> R).
2. Q <=> ~(R^W)
3. Q => (P^W).
A. Convert this set to CNF. (You need not show the intermediate steps.)

B. Show how the Davis-Putnam assignment finds a satisfying assumption. (Assume that, when a branch point is reached, the algorithm chooses the first atom alphabetically and tries TRUE before FALSE.)

### Problem 4:

Let G be an undirected graph. An independent set in G is a set of vertices Z such that no two vertices I,J in Z are connected by an edge. For instance, in the graph shown below, the set { E,F,H } is an independent set because the graph does not contain any of the edges EF, EH, or FH.

The INDEPENDENT SET problem is, given a graph G and an integer K, find an independent set in G of size K.

Consider the problem of finding the largest independent set in a graph G. Suppose that you want to use a blind search method (DFS, BFS, or iterative deepening) to solve the problem.

• Describe a state space for this problem. You should specify (a) what are the states; (b) what are the operators, or what are the successor states; (c) what is the start state; (d) what is the goal.
• If the graph G has N vertices, what is the depth and the branching factor of your state space? Is it a tree? Is the depth of the shallowest goal known?
• Which would be the best algorithm for this problem: depth-first search, breadth-first search, or iterative deepening?

### Problem 5:

Continuing with the INDEPENDENT SET problem from problem 5, Suppose that you now want to solve the problem "Does there exist an independent set of size K?" for some specific K. You want to solve the problem by translating it into satisfiability.

An instance of the INDEPENDENT SET problem can be translated into propositional satisfiability as follows: For each vertex V and for each integer I=1 .. K, define the atom V_I to be the assertion that V is the Ith vertex, alphabetically, in the set Z. Define the atom V_in to be the assertion that V is in the set Z. One then needs the following four types of constraints:

1. V is in Z if and only if V is the Ith vertex in Z for some value of I.
2. For I > 1, if V is the Ith vertex in Z then one of the vertices alphabetically before V is the (I-1)st vertex in Z. (If V is the first vertex alphabetically in G, then this amounts to the statement that V is not the second or third or fourth ... or Kth vertex in Z.)
3. If U and V are connected in G then U and V are not both in Z.
4. Some vertex is the Kth vertex in Z.
Give one instance of each of these four types of constraints that would be generated for the graph shown in problem 5 with K=3.