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 ∑vV 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