Test conjectures on -partitions over submodular functions
This article we consider tools one can use to quickly test conjectures. Testing conjectures quickly run into realm of infeasibility due to the combinatorial explosion. We look through an actual example and learn a few techniques. We use Sage and any fast linear program solver, like Gurobi.
1 A conjecture on -partitions of submodular function
A set of non-empty and disjoint sets that partitions is called a -partition. Let be a submodular function, a minimum -partition is a -partition of such that is minimized.
A -partition and a -partition is noncrossing, if for some and . We denote it .
For two partitions, .
For two partitions and , if for each , for some .
is a submodular function with . Let be a minimum -partition and be a minimum -partition. There exists a minimum -partition such that and .
We are interested in writing a program to test the conjecture for small . The idea is to find different ways can intersect with , a matrix that encodes such information are called configurations. For each configuration, we want to know under such configuration, can we find the desired .
2 Enumerate non-isomorphic configurations
Given and . Let .
We want to show some is a min -partition, where each partition class of has to be the union of some s.
It doesn’t matter if has or vertices, only the emptyness matters. Consider a matrix . Such a matrix is called a configuration. Define two configurations are isomorphic, if one can be obtained by swapping rows and columns of the other.
We are interested in enumerate the possible configurations up to isomorphism.
Find integer matrices and then modulo the action of a permutation group (that defines the isomorphism) can be done in Sage. There is a function that generates all integer vectors modulo a permutation group, and the vectors has length with elements in . See the reference on Integer vectors modulo the action of a permutation group.
IntegerVectorsModPermutationGroup(P, max_part=1)
Once we have the output, we filter the vectors to maintain the required properties, for example, has at least a on each row.
The input of the Sage function has to take the desired permutation group .
One might think we just take to obtain , where is the symmetric group of order . Unfortunately, this is not correct. This gives you the action on the rows and columns, but what we really need, is what happens to each element in the matrix.
The correct way is to use the wreath products. We want to consider
intersect with . However, we have to make
sure the mapping of the elements are correct. The following is the code
in SAGE, and the elements are numbers
to . Note we made sure the
mapping has the same labels through permutation pi
.
a = SymmetricGroup(k-1)
b = SymmetricGroup(k)
matrix = [[k*x+y+1 for y in range(k-1)] for x in range(k)]
pi = list(itertools.chain.from_iterable(map(list, zip(*matrix))))
# we have to use SAGE to access GAP
GG = gap.WreathProduct(gap(a),gap(b))
HH = gap.WreathProduct(gap(b),gap(a))
G = PermutationGroup(gap_group = GG.AsPermGroup())
Hbad = PermutationGroup(gap_group = HH.AsPermGroup())
# make sure the elements are labelled correctly.
H = PermutationGroup([perm_replace(pi,g) for g in Hbad.gens()])
# The correct permutation group
P = H.intersection(G)
At this point, we obtain all possible configurations. In particular, for , the number of configurations are .
If we restrict to configurations where there is at least a in each row and at least a in each column, it cuts down the configurations to . We can further observe that for some configurations, it implies already, so we do not have to check such configurations. Let’s call configurations after the above filtering good configurations. The number of good configurations for are .
3 Test if there exists a noncrossing for a configuration
We now have a configuration , and now we are interested in creating a linear program to decide if there always exists a minimum -partition that is non-crossing with the minimum -partition . For a given , one can always recover and .
Let be the set of vertices, which equals to the number of s in . Let be the set of -partitions of . For each , we create a variable . It represents the value of . We also create a variable .
For a partition , is just .
Consider the following linear program.
The first set of constraints are the submodular inequalities. The second shows is a minimum -partition, and the third shows is a minimum -partition. We also set the value of the minimum -partition to be . Finally, we consider every -partition that is non-crossing with , and is a lower bound of their value.
If the objective value , then this means there is at least -partition that is non-crossing with has the value same as the minimum -partition. Therefore the conjecture is true if and only for every configuration , the above linear program has optimum .
4 Redundant constraints
One can easily prove the conjecture for by directly using the above linear program over all good configurations. However, it runs into difficulty with . This is because the linear program is way too large. The number of partitions for elements is the Stirling number of the second kind . and . However, it seems many constraints are redundant due to symmetry. It be interesting to see if we can cut it down to a manageable size. If so, maybe the conjecture for or even might be solvable.
To do this, we consider the following definition. Consider a vector . We say a family of -partitions is -complete, if for all , then for all -partition . Here is a -partition such that . Let to be the size of the minimum -complete family. So instead of considering all -partitions for the constraints, we just have to consider the -complete family for some . If is very small, then there is hope to solve the problem quickly.
Let be a -tuple consists of only ’s, then we define . It would be very interesting to see how large is.
As an example, we show a simple result on .
.
Indeed, let consists of and elements.
Consider the following family : For each non-empty set such that either or , . Also, let .
So there are sets in .
Next, we show is an -complete family. Consider any not in and consider the intersection with . Let .
Let and , then we have and . Consider when all is non-empty.
Which shows .
Otherwise, if some is empty, then we have .
In particular, .
.