文摘
Given a set P of terminals in the plane and a partition of P into k subsets P1,…,PkP1,…,Pk, a two-level rectilinear Steiner tree consists of a rectilinear Steiner tree TiTi connecting the terminals in each set PiPi (i=1,…,ki=1,…,k) and a top-level tree TtopTtop connecting the trees T1,…,TkT1,…,Tk. The goal is to minimize the total length of all trees. This problem arises naturally in the design of low-power physical implementations of parity functions on a computer chip.For bounded k we present a polynomial time approximation scheme (PTAS) that is based on Arora's PTAS for rectilinear Steiner trees after lifting each partition into an extra dimension.For the general case we propose an algorithm that predetermines a connection point for each TiTi and TtopTtop (i=1,…,ki=1,…,k). Then, we apply any approximation algorithm for minimum rectilinear Steiner trees in the plane to compute each TiTi and TtopTtop independently.This gives us a 2.37-factor approximation with a running time of O(|P|log|P|)O(|P|log|P|) suitable for fast practical computations. The approximation factor reduces to 1.63 by applying Arora's approximation scheme in the plane.