Combinatorial Computing
VCSG-801
Fall 2011
Assignment 1, due Thursday, September 22, 2011
Part 1, no programming
-
Draw all nonisomorphic graphs on 4 vertices.
-
How many distinct 5 by 5 0-1 matrices are there
representing a pentagon? Try to prove it in just a few
lines of counting reasoning.
-
Draw all (nonisomorphic) graphs on 10 vertices and 5 edges
(there are 26 of such graphs).
-
Prove that R(C_4,C_4) = 6. You may consider an intermediate
lemma stating that every C_4-free graph has at most 7 edges.
Part 2, programming exercise
-
Build a file with 26 lines containing g6-formats of all
nauty-canonically labeled graphs on 10 vertices and 5 edges.
-
With the help of nauty compute the Ramsey numbers R(C_4,K_n)
for n = 3, 4 and 5, and build g6-formats of all nonisomorphic
graphs witnessing the lower bound for corresponding numbers.
For correctness compare your results to those in the paper
at position 34 of the
list.
-
Repeat the previous step for some n > 5.
The case for n = 9 is an open research question.
Assignment 2, due Tuesday, October 4, 2011
Part 1, Dynamic programming and knapsack
Consider the algorithm described in the textbook on page 25.
-
Let the knapsack problem instance have the profits
{3,5,7,9,12}, weights {1,2,3,4,5} and the capacity M=10.
-
What is the meaning of the entry P[3,7] ?
Use the dynamic programming algorithm to produce
the dynamic programming table P[j,m] for this instance.
-
Describe briefly how to enhance this algorithm
so we can recover the actual choice of objects
to be packed.
-
What is needed to decide if the optimal solution is unique ?
Part 2, Generating k-sets of an n-set
This question concerns the algorithm on the handout
(given in class 9/22) for enumerating all k-sets
(sets of k elements) of an n-set.
Sets are naturally encoded in registers as sets containing
those elements corresponding to bit positions at which
bit is 1.
-
Give experimental running time comparison of this
algorithm with the naive approach of the loop
processing all n-strings with bit counting.
-
Prove that this algorithm correctly enumerates
all k-sets of an n-set for n < WORDSIZE.
- *(optional)
Perform experiments with other algorihms
for the same problem.
Midterm Exam, Thursday, October 13, 2011
Assignment 3, due Thursday, October 27, 2011
Part 1, for everybody
Implement coloring and clique finding algorithms as follows.
- Greedy graph coloring as in Algorithm 4.16 page 137.
-
Maximum clique algorithm 4.19 page 139.
Use at least two different bounding functions.
The algorithms of this assignment should be tested on
three types of graphs:
- Small graphs of your choice.
- Erdos/Renyi-type random graphs build with the algorithm
4.21 page 140.
- Circular Ramsey-type graphs as discussed in class.
Make your algorithm run first for
small cases,
then find the order of the maximum clique and independent set in
larger cases.
A number of test cases requiring clique algorithms to confirm
lower bounds on Ramsey numbers can be found at
Geoff Exoo's site
(following the link Ramsey).
Submit:
- Trace in detail the behavior of each algorithm on one of the small graphs.
- Compare your implementation in efficiency with the
experiments done by the authors of the textbook, as reported
in Tables 4.4 and 4.5 on page 140.
- Hardcopy of the commented source code.
Part 2, for volunteers, open deadline
The tasks below can lead to capstone projects,
MS project/thesis and conference presentations.
Complete one or more of the following tasks:
-
Evaluate the
maximum clique finding algorithms
developed by Patric Ostergard.
-
Find some new lower bounds for any of the cases listed in my survey
paper
Small Ramsey Numbers. Anything goes. You do need a fast
clique testing algorithm, though in practice it may be targeted
and tuned for very special parameters. Try non-classical cases (like
K6 versus K7-e),
try multicolor cases. When in doubt, discuss
with me the details. GA's or simulated annealing are OK, team
work is OK, any tools you can find on the web are OK, just give
me some new lower bounds ... If your work on this part is good,
you can be excused from completing Part 1.
-
Compute maximum clique order in
Paley graphs
up to 20000 vertices. Or, just try to be better than
Shearer
(up to 7000, with cpu times) and
Exoo (up to 10000).
Submit:
- Some comments on the experiments you performed.
- Hardcopy of the commented source code.
Assignment 4, due as soon as possible
Let S_n be the set of graphs on n vertices without W_5 (4-spoked wheel)
and without C_5 in the complement. Generate the sets S_n for n = 8, 9, 10.
Describe, as well as you can, the graphs in S_n for the largest n for which
S_n is not empty. In short, sort out the truth about R(W_5,C_5).
If, instead of computations, you just prove
what is the value of R(W_5,C_5) it will be also fine.
Assignment 5, due Thursday, November 17, 2011
This assignment is to be handed in on the exam day.
- Solve exercise 4.4a pages 145/146 (rational knapsack).
-
Consider the general basic divisibility conditions for the
existence of t-designs, and make them more specific for the cases
of 2-(v,3,lambda) and 2-(v,4,lambda), i.e. state them for t=2,
separately for k=3 and k=4, in terms of the number of blocks b,
the repetitiveness number r, and the number of points v.
-
Let lambda = 1. For each v <= 10 passing the above test for
2-(v,3,lambda) design compute the number of blocks and
repetitiveness of potential designs with these parameters.
-
Let lambda = 2. For each v <= 10 passing the above test for
2-(v,4,lambda) design compute the number of blocks and
repetitiveness of potential designs with these parameters.
-
STS(k) is a Steiner Triple System on k points,
or equivalently it is the same as a 2-(v,3,1) design.
Write a program which is able to construct some small Steiner
Triple Systems. In particular, it must be able to generate at
least one STS(13) and at least one STS(15).
You can use any algorithm you wish. Each of the following should
work for the task above: exhaustive search by backtracking, Stinson's
algorithm, GAs, simulated annealing. For this assignment put main
effort into the correctness. Performance would be of more
importance for generating larger designs.
Submit a commented hardcopy of your program and a printout of at
least two STS's constructed by your program, on 13 and 15 points
(as in sample STS(15).
- (for volunteers)
Generate all nonisomorphic STS(15) -
there are 80 such designs.
Final Exam, Thursday, 12:30-2:30pm, November 17, 2011, 70-3455
Back to the course page