170 likes | 199 Views
triangle partition problem. Jian Li Sep,2005. Proposed by Redstar in Algorithm board in Fudan BBS. Motivated by some network design strategy. Problem description. 3n point in a metric space. A triangle partition is to divide this 3n points into n point disjoint triangle.
E N D
triangle partition problem Jian Li Sep,2005
Proposed by Redstar in Algorithm board in Fudan BBS. • Motivated by some network design strategy.
Problem description • 3n point in a metric space. • A triangle partition is to divide this 3n points into n point disjoint triangle. • GOAL: Obtain a triangle partition T to minimize maxt2 T{e2 tlen(e)}
NP-hard proof • Reduction from 3-partition problem • 3-partition problem: • Given 3n integers. The question is whether we can partition them into n class, where each class contain exactly 3 integers, such that the sums of integers in each class are all the same.
Reduction: • Create 3n nodes. Each node vi represent a integer ai. • Define the distance len(vi,vj)=ai+aj • It is easy to verify it is a metric len(vi,vj)+len(vj,vk)· len(vi,vk) • We claim the {a1………a3n} admits a 3-partition if and only if maxt2 T{e2 tlen(e)}·i=13nai/n
A failed attempt • If we have a polynomial algorithm to do the following thing, we can optimally solve the problem.(of course we can’t) • Suppose oracle A solve the following problem:For a graph G(V,E) with 3n vertice, can we partition it to vertice-disjoint triangle?
A failed attempt • Algorithm: • Sort the edges in an increasing order. • Begin with an empty graph, then add the edge one by one, then we call A to decide whether the current graph have a triangle partition. • However, A cant be polynomial time implemented because the problem is known as triangle packing problem and NPC.
A promising way. • Is there a polymomial time algorithm to decide whether a graph can be packed using the vertices disjoint 2-length path. • If yes, we can get a good approximation for triangle partition problem.
A simple constant approximation • ALGORITHM: • First construct a MST. • Sort the edge of the MST in increasing order. • Adding these edge one by one. • If in some stage, every component is of size a multiply of 3, stop adding edges.
ALGO Cont. • the current graph is a forest. • Now for each tree of this forest with 3k vertice, we obtain a triangle partition as following.
Use E to denote the max length of this tree • Root the tree at any vertice. First change the tree to its binary tree representation,with the max length of whose edge at most 2E. • For this binary tree, we construct the triangle partition in a bottom-up manner.
Find the deepest vertex. The perimeter of the triangle · 2E+6E+8E=16E
Suppose the last edge e’ we add is of length L. • It is easy to show OPT¸2L • Suppose e join two components S1 and S2 with size 3k1+1 and 3k2+2. • Then OPT must use at least 2 edge in (S1), and by the property of MST, e’ is of min length in (S1).
So, SOL· 16L · 8OPT \qed • I believe a better approximation exist if we change the way to construct a triangle partition for a single tree.
Note so far we are working on metric space, for euclidean case the thing may become better. • Some property may be useful • eg, for euclidean plane, there exist a MST with max-deg at most five. • Every angle in euclidean MST is at least 60.