Create Presentation
Download Presentation

Download Presentation
## triangle partition problem

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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.