Problem Set 1

Assigned: Jan. 25
Due: Feb. 8

Problem 1

The POST CORRESPONDENCE PROBLEM is defined as follows: You are given a collection of dominos. Each domino has a string of characters on top and another string on the bottom. (Both strings are non-empty.) You can make as many copies of the dominos as you need. The problem is to place the dominos side by side so that the combination of the strings on the top is the same as the combination of the strings on the bottom.

Example: Suppose:
D1 = "c/cca"
D2 = "ac/ba".
D3 = "bb/b".
D4 = "ac/cb".
Then the sequence D3, D2, D1, D4, D3 spells out the string ``bbaccacbb'' both on the top and on the bottom.

The Post correspondence problem is, surpringly, only semi-decidable. If there is an answer then, obviously, one can find it by exhaustive search; however, there is no algorithm that always terminates and that always answers correctly whether or not an instance of the problem has a solution. The problem can be characterized in terms of the following state space:

A. Suppose you solve the above example problem using a breadth-first search. Show the state space that is generated. Assume that, where there is a choice, the algorithm tests dominos in numerical order (i.e. first D1, then D2 and so on.)

B. Show the state space that is generated if you use a depth-first search.

C. Show that if the dominos are tested in a different order, depth-first search does not find the solution.

Problem 2

This state space is acylic, because the strings keep getting longer, but it is not necessarily a tree. Give an example of a set of dominoes where the state space is not a tree.

Problem 3

An alternative state space is to start at the end of the target sequence and to build backward, toward the front. As in Problem 1, show the state space generated using breadth-first search to solve the example problem.

Problem 4

A cleverer state space for this problem defines a "state" to be either the part of bottom that goes past the top, or vice versa. For example, if you have the dominoes D1=abb/ab, D2=a/baab, D3=ac/acab, then the two strings [D1,D2]="abba/abbaab" and [D3]="ac/acab" can be considered the same state, because in either case you have to "make up" a trailing "ab" on the bottom, and any sequence that can be added after [D1,D2] to solve the problem will work just as well when added after [D3].

Construct an example of a sequence of dominoes whose state space, defined this way, has a cycle.