Next: Implementation Challenges
Up: Combinatorial Search and Heuristic
Previous: War Story: Going Nowhere

(*)
A derangement is a permutation p of
such that no item is in its proper position, i.e.
for all .
Write an efficient backtracking program with pruning
that constructs all the derangements
of n items.

(*)
Multisets are allowed to have repeated elements.
A multiset of n items may thus have fewer than n! distinct permutations.
For example, has only six different permutations:
, , , , ,
and .
Design and implement an efficient algorithm
for constructing all permutations of a multiset.

(*)
Design and implement an algorithm for testing whether two graphs are
isomorphic to each other.
The graph isomorphism problem is discussed in Section .
With proper pruning, graphs on hundreds of vertices can be tested
reliably.

(**)
Design and implement an algorithm for solving the subgraph isomorphism
problem.
Given graphs G and H, does there exist a subgraph H' of H
such that G is isomorphic to H'.
How does your program perform on such special cases of subgraph
isomorphism as Hamiltonian cycle, clique, independent set,
and graph isomorphism.

(*)
Design and implement an algorithm for solving the set cover problem,
discussed in Section .
Use it to solve specialcase vertex cover problems as well as
general set cover problems.

(**)
In the turnpike reconstruction problem,
you are given n(n1)/2 distances in sorted order.
The problem is to find the positions of the
points on the line that give rise to
these distances.
For example, the distances can be determined
by placing the second point 1 unit from the first, the
third point 3 from the second, and the fourth point 2
from the third.
Design and implement an efficient algorithm to report all solutions
to the turnpike reconstruction problem.
Exploit additive constraints when possible to minimize search.
With proper pruning, problems with hundreds of points can be solved
reliably.
Next: Implementation Challenges
Up: Combinatorial Search and Heuristic
Previous: War Story: Going Nowhere
Algorithms
Mon Jun 2 23:33:50 EDT 1997