Abstract
We introduce the concept of an obstacle skeleton, which is a set of line segments inside a polygonal obstacle \(\omega \) that can be used in place of \(\omega \) when performing intersection tests for obstacleavoiding network problems in the plane. A skeleton can have significantly fewer line segments compared to the number of line segments in the boundary of the original obstacle, and therefore performing intersection tests on a skeleton (rather than the original obstacle) can significantly reduce the CPU time required by algorithms for computing solutions to obstacleavoidance problems. A minimum skeleton is a skeleton with the smallest possible number of line segments. We provide an exact \(O(n^2)\) algorithm for computing minimum skeletons for rectilinear obstacles in the rectilinear plane that are rectilinearly convex.
This is a preview of subscription content, log in to check access.
References
 1.
Lee, D., Yang, C.D., Wong, C.: Rectilinear paths among rectilinear obstacles. Discrete Appl. Math. 70(3), 185–215 (1996)
 2.
Ganley, J.L., Cohoon, J.P.: Routing a multiterminal critical net: Steiner tree construction in the presence of obstacles. In: 1994 IEEE International Symposium on Circuits and Systems, 1994. ISCAS’94, vol. 1, pp. 113–116. IEEE (1994)
 3.
Li, L., Young, E.F.: Obstacleavoiding rectilinear Steiner tree construction. In: Proceedings of the 2008 IEEE/ACM International Conference on ComputerAided Design, pp. 523–528. IEEE Press (2008)
 4.
Lin, C.W., Chen, S.Y., Li, C.F., Chang, Y.W., Yang, C.L.: Obstacleavoiding rectilinear Steiner tree construction based on spanning graphs. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 27(4), 643–653 (2008)
 5.
Long, J., Zhou, H., Memik, S.O.: EBOARST: an efficient edgebased obstacleavoiding rectilinear Steiner tree construction algorithm. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 27(12), 2169–2182 (2008)
 6.
Liu, C.H., Yuan, S.Y., Kuo, S.Y., Wang, S.C.: Highperformance obstacleavoiding rectilinear Steiner tree construction. ACM Trans. Des. Autom. Electron. Syst. (TODAES) 14(3), 45 (2009)
 7.
Huang, T., Young, E.F.: Obstacleavoiding rectilinear Steiner minimum tree construction: an optimal approach. In: Proceedings of the International Conference on ComputerAided Design, pp. 610–613. IEEE Press (2010)
 8.
Ajwani, G., Chu, C., Mak, W.K.: FOARS: FLUTE based obstacleavoiding rectilinear Steiner tree construction. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(2), 194–204 (2011)
 9.
Huang, T., Li, L., Young, E.F.: On the construction of optimal obstacleavoiding rectilinear Steiner minimum trees. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(5), 718–731 (2011)
 10.
Liu, C.H., Kuo, S.Y., Lee, D., Lin, C.S., Weng, J.H., Yuan, S.Y.: Obstacleavoiding rectilinear Steiner tree construction: a Steinerpointbased algorithm. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 31(7), 1050–1060 (2012)
 11.
Huang, T., Young, E.F.: ObSteiner: an exact algorithm for the construction of rectilinear Steiner minimum trees in the presence of complex rectilinear obstacles. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 32(6), 882–893 (2013)
 12.
Brazil, M., Zachariasen, M.: Optimal Interconnection Trees in the Plane. Springer, Berlin (2015)
 13.
Volz, M., Brazil, M., Ras, C., Thomas, D.: Simplifying obstacles for Steiner network problems in the plane (Submitted, 2018)
 14.
Koch, T., Martin, A., Voß, S.: SteinLib: an updated library on Steiner tree problems in graphs. In: Cheng, X.Z., Du, D.Z. (eds.) Steiner Trees in Industry, pp. 285–325. Springer, Berlin (2001)
 15.
Warme, D.M., Winter, P., Zachariasen, M.: Exact algorithms for plane Steiner tree problems: a computational study. In: Advances In: Du, D.Z., Smith, J.M., Rubinstein, J.H. (eds.) Steiner Trees, pp. 81–116. Springer, Berlin (2000)
 16.
Volz, M., Brazil, M., Ras, C., Thomas, D.: Computing skeletons for rectilinearlyconvex obstacles in the rectilinear plane. arXiv:2004.04365 (2020)
 17.
Williams, J.W.J.: Algorithm 232: Heapsort. Commun. ACM 7(6), 347–348 (1964)
Acknowledgements
We thank Martin Zachariasen for interesting discussions and feedback over the course of developing this work. This work was supported by an Australian Research Council Discovery Grant.
Author information
Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Communicated by Horst Martini.
Appendix
Appendix
A.1 A Sufficient Condition for Skeletons
Lemma A.1
Let \(\omega \) be a rectilinearly convex obstacle, and let S be a set of line segments inside \(\omega \) such that (1)S intersects the four extreme edges of \(\omega \) and (2)S is connected. Then, S is a skeleton for \(\omega \).
Proof
Let S be a connected set of line segments inside \(\omega \) that intersects the four extreme edges of \(\omega \), and suppose that S is not a skeleton for \(\omega \). Then, there exist points p and q outside the interior of \(\omega \) such that all shortest rectilinear paths between p and q with at most one corner point intersect the interior of \(\omega \), but at least one such path does not intersect S.
If p and q lie on a horizontal or vertical line, then there is a unique shortest rectilinear path between p and q (i.e. the line segment pq) which enters and exits \(\omega \) at distinct points on the boundary of \(\omega \). The obstacle \(\omega \) can be partitioned into two regions, one on each side of pq, and each region contains exactly one extreme edge of \(\omega \) that is parallel to pq, each of which is intersected by S. If pq does not intersect S, it follows that S must be disconnected, giving a contradiction.
Now, suppose that p and q do not lie on a horizontal or vertical line. Then, there are two shortest rectilinear paths with at most one corner point between p and q, which we denote by \(pc_1q\) and \(pc_2q\). Since both \(pc_1q\) and \(pc_2q\) intersect \(\omega \), it follows that \(pc_1q\) cannot enter and exit \(\omega \) on the same staircase walk; otherwise, \(pc_2q\) would be outside the interior of \(\omega \) (due to the convexity of \(\omega \)).
Suppose that \(pc_1q\) does not intersect S. If \(c_1\) lies outside the interior of \(\omega \), then at least one of the line segments \(pc_1\) and \(c_1q\) enters and exits \(\omega \) at distinct points on the boundary of \(\omega \), and the argument above (for the case where p and q are on a vertical or horizontal line) can be applied to arrive at the same contradiction. Otherwise, \(c_1\) is in the interior of \(\omega \), and \(pc_1q\) enters and exits \(\omega \) at two locations on distinct staircase walks. Therefore, \(pc_1q\) partitions \(\omega \) into two regions, one on each side of \(pc_1q\), and each region contains at least one extreme edge of \(\omega \) (due to the convexity of \(\omega \)), each of which is intersected by S. If \(pc_1q\) does not intersect S, it follows that S must be disconnected, giving a contradiction.\(\square \)
A.2 Implementation Details: Precomputing the Candidate Set of Skeleton Edges (Excluding Auxiliary Edges)
We define an auxiliary edge to be a maximal frontier visibility edge with an endpoint that lies on its corresponding frontier. Let \(S^*\) be a minimum skeleton that has been computed by Algorithm ComputeSkeleton. Then, \(S^*\) is composed of the following types of edges: (1) maximal extreme visibility edges (including opposite, adjacent and extremecorner visibility edges and diagonals); (2) maximal frontier visibility edges that are not auxiliary edges; and (3) auxiliary edges. Let G denote the set of all candidate skeleton edges that are not auxiliary edges. Then, G can be constructed as a preprocessing step to the algorithm, while auxiliary edges are constructed in the course of the algorithm.
In order to construct G, we require the following property of maximal frontier visibility edges. We will refer to a staircase obstacle as being positively sloped if its extreme corners are located at the bottomleft and topright corners of the obstacle (denoted by \(c_1\) and \(c_3\), respectively). The topleft and bottomright staircase walks of the obstacle will be referred to simply as the top and bottom staircase walks, respectively.
Lemma A.2
Let \(\omega \) be a staircase obstacle that is positively sloped and let e be a maximal frontier visibility edge in \(\omega \) for some frontier f of \(\omega \), such that e is not an auxiliary edge. Then, e satisfies the following properties:

1.
e passes through two vertices of \(\omega \), say \(v_i=(x_i,y_i)\) and \(v_j=(x_j,y_j)\), such that \(x_j > x_i\) and \(y_j > y_i\), and \(v_i\) and \(v_j\) are on different staircase walks; and

2.
If \(v_j\ne c_3\) and \(v_j'\) is the endpoint of e that is closest to \(v_j\), then \(v_j'\) is on the same staircase walk as \(v_i\).
Proof
Without loss of generality, assume that \(v_i\) is on the bottom staircase walk. Then, there are four cases, three of which do not satisfy the property of the lemma (Fig. 18):

(a) If \(v_j\) and \(v_j'\) are on the top and bottom staircase walks, respectively, then the conditions of the lemma are satisfied, and there is no continuous transformation of e that increases its advancement.

(b) If \(v_j\) and \(v_j'\) are both on the top staircase walk, then the advancement of e can be increased by rotating e clockwise about \(v_i\).

(c) If \(v_j\) and \(v_j'\) are on the bottom and top staircase walks, respectively, then the advancement of e can be increased by rotating e clockwise about \(v_j\).

(d) If \(v_j\) and \(v_j'\) are both on the bottom staircase walk, then the advancement of e can be increased by transposing e vertically upwards.
In the three cases (a)–(c) in which the candidate edge does not satisfy the property of the lemma, the specified transformation (translation or rotation) increases the horizontal and/or vertical advancement of e. Since e intersects the interior of f, it will continue to do so under any sufficiently small transformation, and therefore, e is not a maximal frontier visibility edge, giving a contradiction.\(\square \)
We now develop an efficient rotational plane sweep method for computing candidate skeleton edges. We begin by looking at maximal frontier visibility edges in staircase obstacles using Lemma A.2.
Let \(\omega \) be a staircase obstacle with vertices \(V = \{v_1,\ldots ,v_n\}\). Assume without loss of generality that \(\omega \) is positively sloped, and that its vertices are labelled in counterclockwise order around its boundary, starting with \(v_1\) at the bottomleft extreme corner and denote the topright extreme corner by \(v_k\). Let \(V_b\) and \(V_t\) denote the nonconvex vertices of \(\omega \) on the bottom and top staircase walks (excluding the extreme corners), where a nonconvex vertex is a vertex whose interior angle to the obstacle is 270 degrees. The candidate set of skeleton edges for \(\omega \) (excluding auxiliary edges and extreme skeleton edges) can be efficiently generated as follows: For each nonconvex vertex, \(v_i\in V_b\) do the following (refer to Fig. 19).

1.
Construct a half line \(\rho \) starting at \(v_i\) that initially points in the positive xdirection.

2.
Rotate \(\rho \) counterclockwise around \(v_i\) until it intersects a nonconvex vertex \(v_j = (x_j, y_j)\) of \(\omega \). There are six possible cases that can occur, each of which is illustrated in Fig. 19:

(a)
If \(v_j\in V_b\) and there exists at least one vertex in \(V_b\cup v_k\) that has not already been encountered in the rotational plane sweep by \(\rho \), then continue to rotate \(\rho \) counterclockwise.

(b)
If \(v_j\in V_b\) and all other vertices in \(V_b\cup v_k\) have already been encountered in the rotational plane sweep by \(\rho \), then there are no feasible visibility edges from \(v_i\), since the requirements of Lemma A.2 cannot be satisfied.

(c)
If \(v_j\in V_t\cup v_k\) and (1) there exists at least one vertex in \(V_b\) that has not been encountered in the rotational plane sweep and whose ycoordinate is in \([y_i, y_j]\), or (2), there exists at least one other vertex in \(V_t\) that has been previously encountered in the rotational plane sweep and whose ycoordinate is in \([y_i, y_j]\), then either continue to rotate \(\rho \) counterclockwise, or return no visibility edge if all vertices with ycoordinate in \([y_i, y_j]\) have now been encountered in the rotational plane sweep. If continued sweeping is possible, all vertices in \(V_t\) whose ycoordinate is greater than \(y_j\) can be disregarded from the sweep.

(d)
If \(v_j = v_k\) and all vertices in \(V_b\) whose ycoordinate is in \([y_i, y_j]\) have already been encountered in the rotational plane sweep, then stop the procedure and do not return a visibility edge (since any visibility edge with an endpoint at \(v_k\) will be computed by a separate sweeping procedure applied to the extreme corner).

(e)
If \(v_j\in V_t\) and all vertices in \(V_b\) whose ycoordinate is in \([y_i, y_j]\) have already been encountered in the rotational plane sweep, then compute the point \(v_j'\) obtained when the line segment between \(v_j\) is extended along the line through \(v_i\) and \(v_j\) to the boundary of \(\omega \). If \(v_j'\) lies on a horizontal edge of \(\omega \), then there are no feasible visibility edges from \(v_i\) satisfying the alternating property of Lemma A.2.

(f)
Otherwise, \(v_j\in V_t\) and all vertices in \(V_b\) whose ycoordinate is in \([y_i, y_j]\) have already been encountered in the rotational plane sweep, and \(v_j'\) lies on a vertical edge of \(\omega \), in which case there is a feasible visibility edge that passes through \(v_i\) and \(v_j\).

(a)
In Case (f), the line segment between \(v_i\) and \(v_j\) is extended so that its endpoints lie on the boundary of \(\omega \). This can be done without intersection computations as follows. To compute \(v_j'\), take the set \(V_{j'}\) of nonconvex vertices of \(\omega \) whose ycoordinate is greater than \(y_j\) and sort the vertices by increasing ycoordinate. Search through the vertices by increasing ycoordinate until a vertex \(v_k\) on the bottom staircase walk is encountered such that \(g(v_iv_k) > g(v_iv_j)\), where \(g(\cdot )\) denotes the gradient of a line segment. Then, \(x_{j'} = x_k\) and \(y_{j'} = y_i + g(v_iv_j)(x_{j'}x_i)\). The extension \(v_i'\) of \(v_i\) is similarly computed, except that nonconvex vertices must be checked on the top and bottom staircase walks, since \(v_i'\) can be on either side.
A modified version of the above process is also applied to nonconvex vertices on the top staircase walk. In this case, \(\rho \) initially points in the positive ydirection and is rotated in the clockwise direction.
This process is also used to construct other types of skeleton edges, the first three of which can also be constructed during the preprocessing stage:

Maximal extreme corner edges (at the ends of staircase obstacles): The rotational sweep is executed in the clockwise direction with \(\rho \) starting at the extreme corner \(c_1\). If a feasible edge is not found, then the sweep is executed in the clockwise direction with \(\rho \) starting in the positive ydirection. To compute the maximal extreme corner visibility edge for \(c_3\), the staircase obstacle is reflected about the xaxis and the yaxis, and the rotational sweep/s performed from \(c_3\) (after the reflection \(c_3\) is located at the bottomleft corner of \(\omega \).

Maximal extreme visibility edges for partial staircase and general obstacles are also computed from one or two rotational plane sweeps (after appropriate reflections have been made to \(\omega \)).

Adjacent extreme visibility edges are constructed by starting with \(v_i\) at an appropriate endpoint of either of the two extreme edges, and performing the rotational plane sweep in the relevant direction.

An auxiliary edge \(e_f\) (an edge with an endpoint coinciding with an endpoint \(v_f\) of a frontier during the construction of staircase skeletons) is also constructed by applying either a clockwise or a counterclockwise plane sweep with \(v_i\) located at \(v_f\) (if \(e_f\) does not terminate at an extreme corner, then it either passes through a vertex on the top staircase walk and terminates on a vertical edge on the bottom staircase walk, in which case a counterclockwise sweep is required, or it passes through a vertex on the bottom staircase walk and terminates on a horizontal edge on the top staircase walk, in which case a clockwise sweep is required). These edges are constructed during the running of Algorithm StaircaseSkeleton, as each new frontier is established.
A.3 Upper Bound on the Number of Edges in a Minimum Skeleton
Although there is no upper bound (independent of the number of obstacle vertices) on the number of edges in a minimum skeleton for staircase obstacles, partial staircase obstacles and general obstacles, we can nevertheless bound the number of skeleton edges based on the number of vertices of \(\omega \) as follows.
Lemma A.3
Let \(\omega \) be a rectilinearly convex obstacle with vertex set V and edge set E, and let \(S^*\) be a minimum skeleton for \(\omega \). Then, \(S^*\le \frac{V}{2} = \frac{E}{2}\).
Proof
For any polygonal obstacle, it is clear that the number of vertices is the same as the number of edges. If \(\omega \) is a rectangle, then \(V=4\) and \(S^*=1\). If \(\omega \) is an Lobstacle, then \(V\ge 6\) and \(S^*\le 2\). If \(\omega \) is a Tobstacle, then \(V\ge 8\) and \(S^*=2\).
Now, suppose that \(\omega \) is a staircase obstacle and assume without loss of generality that \(\omega \) is positively sloped (Fig. 20a). Let \(W_u\) and \(W_l\) denote the sets of edges in the topleft and bottomright staircase walks of \(\omega \), respectively, and without loss of generality assume that \(W_u\le W_l\). Then, \(W_u\) is a skeleton for \(\omega \) since it is a connected set of line segments that intersects the four extreme edges of \(\omega \), and \(W_u\) has at most \(\frac{V}{2}\) edges since \(W_u + W_l = E = V\).
Now, suppose that \(\omega \) is a partial staircase obstacle and without loss of generality assume that \(e_1\) and \(e_2\) are the (disjoint) left and bottom extreme edges and c is an extreme corner at the top right of \(\omega \) (Fig. 20b). Let \(W_u\) and \(W_l\) denote the topleft and bottomright staircase walks of \(\omega \) excluding \(e_1\) and \(e_2\), respectively, and assume that \(W_u\le W_l\). Then, \(W_u\cup s_2^*\) is a skeleton for \(\omega \) (where \(s_2^*\) is the maximal extreme visibility edge for \(e_2\)) with \(W_u + 1\) edges and since \(\omega \) has at most \(2W_u + 4\) edges, we have that \(S\le \frac{V}{2}1\). If \(e_1\) and \(e_2\) are mutually visible, then the same argument applies when \(s_2^*\) is replaced by the adjacent extreme visibility edge \(s_{12}^*\).
Similar arguments apply to the case where \(\omega \) is a general obstacle (Fig. 20c). In this case, \(W_u\cup s_2^*\cup s_3^*\) is a skeleton for \(\omega \) with at most \(\frac{V}{2}2\) edges.
The bound stated in the lemma is tight and can be achieved by constructing a ‘skinny’ staircase obstacle for which \(W_u\le W_l\) and \(W_u\) and \(W_l\) are closely aligned, in which case \(W_u\) is a minimum skeleton.\(\square \)
Rights and permissions
About this article
Cite this article
Volz, M., Brazil, M., Ras, C. et al. Computing Skeletons for Rectilinearly Convex Obstacles in the Rectilinear Plane. J Optim Theory Appl 186, 102–133 (2020). https://doi.org/10.1007/s10957020016901
Received:
Accepted:
Published:
Issue Date:
Keywords
 Skeletons
 Obstacle avoidance
 Rectilinear
 Steiner trees
Mathematics Subject Classification
 90B10
 52B05
 68U05