Document

advertisement
The number of edge-disjoint transitive
triples in a tournament
A directed graph G=(V,E) is an orientation if it
does not contain loops, multiple edges or antiparallel edges.
A tournament is an orientation of the complete graph.
Thus, for every two distinct vertices x and y, either
(x,y) or (y,x) is an edge, but not both.
Example:
Tournament with 5 vertices:
b
a
e
c
d
2
The unique transitive tournament on n vertices is
obtained by labeling the vertices {1, . . . , n},
where (i, j) is an edge if and only if i < j.
We denote the n-vertex transitive tournament by TTn .
The tournament TT3 is also called a transitive triple as
it consists of some triple {(x, y), (x, z), (y, z)}.
Y
X
Z
3
A TTk-packing of a directed graph D is a set of edgedisjoint subgraphs of D, each of them isomorphic to TTk .
The TTk-packing number of D, denoted νk(D) is the
maximum cardinality of a TTk-packing of D.
4
Example: Let D to be the following digraph:
b
c
d a
a
a g
f
e
Hence: ν3(D) =3
5
Given an n-vertex tournament T, how small can νk(T)
be? We denote this parameter by νk(n) .
νk(n) = min |T|=n νk(T)
Trivially:
Can we always get close to this bound?
6
Conjecture:
ν3(n) = n(n-1)/6 - n/3
Thus, about 100% of the edges can be packed.
An upper bound:
n/3
Orient inside
the vertex
class any way
you want
n/3
n/3
7
What happens in the undirected case:
Assume n is odd an n(n-1) divisible by 6 (n =1,3 mod 6)
Then a Steiner triple system exists:
Kn can be decomposed into n(n-1)/6 triangles !
The 21 edges of K7 can be partitioned to 7 triangles.
The 36 edges of K9 can be partitioned to 12 triangles.
On the other hand:
ν3(7) ≤ 5
ν3(9) ≤ 9
The conjecture has been verified for all n ≤ 8.
ν3(7) = 5
ν3(9) = 9 ???
8
Theorem:
Thus, about 82% of the edges can be packed.
9
What’s an easy lower bound:
Let dv be the out-degree of v.
Vertex v is the source of dv(dv-1)/2 transitive triples.
The number of transitive triples is therefore
∑vV dv(dv-1)/2 > 0.125n3(1-o(1))
So, a random permutation over a steiner triple system
gives 0.125n2(1-o(1)) edge-disjoint transitive triples.
Consequently: ν3(n) > 0.125n2(1-o(1))
Thus, about 75% of the edges can be packed.
10
Fractional relaxation
A fractional TTk - packing of a digraph D is a function
ψ from the set Fk of copies of TTk in D to R+ satisfying
for each arc e  E(D)
The value of a fractional TTk packing is:
| ψ |=∑X  Fk ψ(X)
11
The fractional TTk-packing number of D, denoted νk*(D)
is the maximum value of a fractional TTk-packing of D.
Clearly:
νk(D) ≤ νk*(D)
But the two parameters may differ:
ν3(TT4)=1
ν3*(TT4)=2
12
It is well known that computing νk(D) is an NP-Hard
problem. Even the special case of deciding whether a
digraph has a decomposition into transitive triples is
NP-Complete.
On the other hand, computing νk*(D) (for k fixed) amounts
to solving a linear programming problem of polynomial
size, and hence can be done in polynomial time.
It is interesting to find out when νk(D) and νk*(D) are
“close” as, in particular, for such instances this
immediately yields an efficient approximation algorithm
for this NP-Hard problem.
13
Theorem [Nutov+Y]:
νk*(D)- νk (D) = o(n2)
Corollary:
Let νk*(n) be the minimum possible value of νk*(T)
ranging over all n-vertex tournaments T.
νk*(n) ≥ νk (n) ≥ νk*(n) - o(n2)
14
(possibly) easier conjecture:
ν*3(n) =n(n-1)/6 - n/3
Thus, about 100% of the edges can be
fractionally packed.
Possibly easier way to prove the theorem:
15
Approximation by the blowup technique
Lemma 1:
Let 2 < k < r < n be integers. Then,
Proof:
Fractionally TTk-pack each of the
subtouranments with r vertices with a packing of
value at least ν*k(r). Since an edge is on
such copies, scale the weights appropriately.
16
Example:
Suppose we can prove ν*3(9)=9.
(already a nontrivial computational task!!)
We would then get
ν*3(n) ≥ 9n(n-1)/72 = n(n-1)/8.
But this only gives a 75% packing, which, as we have
seen, is trivial to get directly for the integral case…
17
A smarter blowup technique
An idea of Keevash and Sudakov:
“Combine factors with smaller fractional solutions”.
We can use it in our case since the following lemma
holds:
Lemma 2:
A Tournament with 3n vertices has n vertex-disjoint
transitive triples.
18
Lemma 3:
ν*3(3r) ≥ 9ν*3(r) + r
Proof:
• Partition the 3r vertices of the tournaments into r
parts of size 3, each inducing a transitive triple.
• This already gives r transitive triples.
• There are 3r subtournaments on r vertices obtained
by selecting a single vertex from each class.
• Fractionally pack each of them with a value of ν*3(r).
• Normalize the weights by dividing with 3r-2.
19
Corollary:
By repeated applications of lemma 3 we obtain:
Revisiting the previous example:
Suppose we can prove ν*3(9)=9
We would then get
ν*3(n) ≥ 7n(n-1)/54 - on(1)
This already gives more than 77% !
20
We will prove that:
ν*3(10)=12
And we would get our result since for r=10:
21
Proving ν*3(10) ≥12 is a nontrivial computational
problem!
There are 245 labeled tournaments so a naive brute force
approach does not work.
Moreover, a naive program must solve a large linear
program for EACH candidate tournament:
Up to 120 variables !
45 constraints !
22
Generating all non-isomorphic 10-vertex tournaments
• For a tournament T, let Tt be the transpose of T.
ν*k(T)= ν*k(Tt)
• Let Fk be the set of all non-isomorphic k-vertex tournaments.
For example: F3= { TT3 , C3 }
• The score or a tournament is the sorted out-degree sequence.
The score of TTk is (k−1, k−2, . . . , 1, 0).
23
It is also not difficult to see that F4 consists of four
elements whose scores are
(3, 2, 1, 0) (3, 1, 1, 1) (2, 2, 2, 0) (2, 2, 1, 1).
24
A more extensive case analysis is needed to determine
F5. In fact, it consists of 12 elements.
25
Generating all non-isomorphic 10-vertex tournaments
• Tournaments with a vertex having outdegree 5 are generated
by taking |F4| * |F5| * 220 = 50331648 possibilities.
• We also generate F6 which has less than 32|F5| = 384
elements.
• Transitive tournaments having a vertex with outdegree 6 are
generated by taking |F3| * |F6| * 218 = 201326592
possibilities. Less than 10 million do not have a vertex with
outdegree 4 or 5.
• Only one tournament with out-degree 7 and no out-degree 5
or 6. (take two regular tournaments with 5 vertices and let
one of them rule the other).
26
Filtering the non-essential tournaments
Overall less than 61000000 tournaments for which we
need to run a linear program.
An average run of each such linear program using our
linear programming package (lp_solve) requires 0.1
seconds on our computing equipment. It would take
roughly 70 days to complete.
Not so bad, but we can do better.
In many cases (in fact, most cases), it is easy to
determine that ν*3(T) ≥12 without actually running the
linear program.
27
For an arc e, let (e) denote the number of transitive
triples containing e.
Let (T) be the maximum of (e) ranging over edges of
T. If T has 10 vertices, then, trivially, (T) ≤ 8.
Let (T) be the number of transitive triples in T.
If T has 10 vertices, then, trivially, (T) ≤ 120
Lemma (-filter):
If (T) ≥ 12(T) then ν*3(T) ≥12
Proof:
Assign the weight 1/(T) to each transitive triple.
28
Let (T) be the number of arcs with (e) = 8.
Lemma (-filter):
If (T) - (T) ≥ 84 then ν*3(T) ≥ 12.
Proof:
For each arc with (e) = 8 arbitrarily pick one transitive
triple containing e.
Let W be the set of triples picked, notice that |W| ≤ (T)
Assign the weight 0 to the triples of W and assign the
weight 1/7 to the other transitive triples.
For each arc, the sum of the weights of the transitive
triples containing it is at most 7/7 = 1.
The total weight is ((T) - |W|)/7 ≥ 12.
29
It turns out that the number of tournaments that pass
the  filter and the  filter is less than four million.
Indeed, our program completes its run in less than
five days.
30
Example of an input file :
max:
x012+x013+x014+x015+x019+x023+x024+x025+x028+x029+x034+x035+
x036+x037+x045+x049+x058+x067+x068+x069+x078+x079+x089+x123+
x124+x125+x126+x127+x128+x129+x134+x135+x136+x137+x138+x145+
x146+x147+x148+x149+x156+x157+x158+x167+x168+x178+x234+x235+
x236+x237+x245+x246+x247+x249+x256+x257+x258+x267+x289+x348+
x349+x356+x357+x359+x367+x368+x369+x378+x379+x389+x456+x457+
x458+x467+x468+x478+x567+x569+x579+x589+x678+x679+x689+x789;
31
cl:
x012+x013+x014+x015+x019<=1;
x012+x023+x024+x025+x028+x029<=1;
x013+x023+x034+x035+x036+x037<=1;
x014+x024+x034+x045+x049<=1;
x015+x025+x035+x045+x058<=1;
x036+x067+x068+x069<=1;
x037+x067+x078+x079<=1;
x078+x178+x378+x478+x678+x789<=1;
x079+x379+x579+x679+x789<=1;
x089+x289+x389+x589+x689+x789<=1;
32
Example of an output file :
Value of objective function:
x012
0
x013
0
x014
0.29545
x015
0.068182
x019
0.63636
X023
0.20455
x589
0.022727
X678
0
X679
0.38636
X689
0
x789
0
15
33
Download