Projects
Projects
Projects
Andreas Klappenecker
A(n, d) = max |{S ⊂ {0, 1}n | dist(u, v) ≥ d for all distinct u, v ∈ S}|,
the maximal number of binary vectors of length n that one can find such that any
two distinct vectors have a Hamming distance ≥ d. For example, A(5, 4) = 2.
The Hamming graph H(n, d) = (V, E) is the graph with 2n vertices V given by
binary strings of length n. We have (u, v) ∈ E if and only if dist(u, v) ≥ d.
The number A(n, d) coincides with the size of a maximal clique in H(n, d).
Find an implement “efficient” algorithms to compute the maximal clique in the
Hamming graph (but note that the problem to compute maximal cliques is NP
hard).
Background http://www.research.att.com/∼njas/doc/pace2.ps
Challenge http://www.research.att.com/∼njas/doc/graphs.html
1
Project 3 (The Traveling Salesman Problem, DIMACS Challenge). The travel-
ing salesman problem asks to determine the shortest tour for a salesman to visit
each city of a given list. Finding the best possible tour is NP-hard, but there ex-
ist surprisingly good heuristics. Take the DIMACS challenge, implement several
heuristics, and compare your results with the state of the art.
Background http://www.research.att.com/∼dsj/chtsp/
Challenge http://www.research.att.com/∼dsj/chtsp/download.html
2
Project 5 (Quadratic Sieve). The quadratic sieve is one of the first algorithms
to factor integers into primes in subexponential time. Implement the standard
quadratic sieve algorithm by Pomerance and take great care to realize the linear-
algebra part of the
√ algorithm efficiently. In the basic quadratic sieve, one chooses
integers x near n to search for values x2 − n that are B-smooth, √ i.e., that has
all factors in the range [1, B]. As the numbers x deviate from n, the B-smooth
numbers thin out rapidly. One way to get around this problem by choosing mul-
tiple polynomials, a method that has been suggested by Davis, Holdridge, and
Montgomery. Implement the multiple-polynomial quadratic sieve as well. Find the
right trade-offs between the size of the factor base, the number of polynomials, and
fine-tune the implementations.
Background R. Crandall, C. Pomerance: Prime Numbers – A Computational Per-
spective, Springer, 2001; Chapter 6.
C. Pomerance, The Quadratic Sieve Factoring Algorithm. In: Advances in Cryptol-
ogy: Proceedings of EUROCRYPT 84 (Ed. Th. Beth, N. Cot, and I. Ingemarsson).
pp. 169-182, Springer, 1985.
Challenge Factor integers such as
RSA-100 =
15226050279225333605356183781326374297180681149613\
80688657908494580122963258952897654000350692006139
(100 digits, checksum = 294805)
3
Project 7 (Shortest Vector). Suppose that a1 , . . . , an are n linearly independent
vectors in Qn . The lattice L generated by a1 , . . . , an is the set of all integer linear
combinations of these vectors, L = {λ1 a1 + · · · + λn an | λk ∈ Z for all 1 ≤ k ≤ n}.
The goal is to find the shortest nonzero vector in L with respect to the Euclidean
norm. In dimensions n = 1 and 2, the problem can be solved in polynomial time.
In higher dimensions, one can find approximate solutions using the LLL algorithm.
Background D. Micciancio and S. Goldwasser, Complexity of Lattice Problems:
A Cryptographic Perspective, Kluwer, 2002
V.V. Vazirani, Approximation Algorithms, Springer, 2001; see Chapter 27.
Challenge TBD