T

advertisement
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 3partition if and only if
maxt2 T{e2 tlen(e)}· i=13nai/n
 But for euclidean case, I can’t
prove it is in NP-hard or P
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 verticedisjoint 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.
Thanks~~~~~~~~~~~~
welcome to discuss the problem
Download