Skip to main content
Log in

Computing Skeletons for Rectilinearly Convex Obstacles in the Rectilinear Plane

  • Published:
Journal of Optimization Theory and Applications Aims and scope Submit manuscript

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 obstacle-avoiding 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 obstacle-avoidance 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 via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. Lee, D., Yang, C.D., Wong, C.: Rectilinear paths among rectilinear obstacles. Discrete Appl. Math. 70(3), 185–215 (1996)

    Article  MathSciNet  Google Scholar 

  2. Ganley, J.L., Cohoon, J.P.: Routing a multi-terminal 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.: Obstacle-avoiding rectilinear Steiner tree construction. In: Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design, pp. 523–528. IEEE Press (2008)

  4. Lin, C.W., Chen, S.Y., Li, C.F., Chang, Y.W., Yang, C.L.: Obstacle-avoiding rectilinear Steiner tree construction based on spanning graphs. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 27(4), 643–653 (2008)

    Article  Google Scholar 

  5. Long, J., Zhou, H., Memik, S.O.: EBOARST: an efficient edge-based obstacle-avoiding rectilinear Steiner tree construction algorithm. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 27(12), 2169–2182 (2008)

    Article  Google Scholar 

  6. Liu, C.H., Yuan, S.Y., Kuo, S.Y., Wang, S.C.: High-performance obstacle-avoiding rectilinear Steiner tree construction. ACM Trans. Des. Autom. Electron. Syst. (TODAES) 14(3), 45 (2009)

    Google Scholar 

  7. Huang, T., Young, E.F.: Obstacle-avoiding rectilinear Steiner minimum tree construction: an optimal approach. In: Proceedings of the International Conference on Computer-Aided Design, pp. 610–613. IEEE Press (2010)

  8. Ajwani, G., Chu, C., Mak, W.K.: FOARS: FLUTE based obstacle-avoiding rectilinear Steiner tree construction. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(2), 194–204 (2011)

    Article  Google Scholar 

  9. Huang, T., Li, L., Young, E.F.: On the construction of optimal obstacle-avoiding rectilinear Steiner minimum trees. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(5), 718–731 (2011)

    Article  Google Scholar 

  10. Liu, C.H., Kuo, S.Y., Lee, D., Lin, C.S., Weng, J.H., Yuan, S.Y.: Obstacle-avoiding rectilinear Steiner tree construction: a Steiner-point-based algorithm. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 31(7), 1050–1060 (2012)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  12. Brazil, M., Zachariasen, M.: Optimal Interconnection Trees in the Plane. Springer, Berlin (2015)

    Book  Google Scholar 

  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 rectilinearly-convex obstacles in the rectilinear plane. arXiv:2004.04365 (2020)

  17. Williams, J.W.J.: Algorithm 232: Heapsort. Commun. ACM 7(6), 347–348 (1964)

    Google Scholar 

Download references

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

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcus Volz.

Additional information

Communicated by Horst Martini.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix

Appendix

1.1 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 \)

1.2 A.2 Implementation Details: Pre-computing 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 extreme-corner 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 pre-processing 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 bottom-left and top-right corners of the obstacle (denoted by \(c_1\) and \(c_3\), respectively). The top-left and bottom-right staircase walks of the obstacle will be referred to simply as the top and bottom staircase walks, respectively.

Fig. 18
figure 18

a A valid skeleton edge has points \(v_i\), \(v_j\) and \(v_j'\) that alternate between opposite staircase walks. be Examples of edges that are not maximal

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

Fig. 19
figure 19

Construction of maximal frontier visibility edges

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 bottom-left extreme corner and denote the top-right extreme corner by \(v_k\). Let \(V_b\) and \(V_t\) denote the non-convex vertices of \(\omega \) on the bottom and top staircase walks (excluding the extreme corners), where a non-convex 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 non-convex vertex, \(v_i\in V_b\) do the following (refer to Fig. 19).

  1. 1.

    Construct a half line \(\rho \) starting at \(v_i\) that initially points in the positive x-direction.

  2. 2.

    Rotate \(\rho \) counterclockwise around \(v_i\) until it intersects a non-convex 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:

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

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

    3. (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 y-coordinate 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 y-coordinate is in \([y_i, y_j]\), then either continue to rotate \(\rho \) counterclockwise, or return no visibility edge if all vertices with y-coordinate 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 y-coordinate is greater than \(y_j\) can be disregarded from the sweep.

    4. (d)

      If \(v_j = v_k\) and all vertices in \(V_b\) whose y-coordinate 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).

    5. (e)

      If \(v_j\in V_t\) and all vertices in \(V_b\) whose y-coordinate 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.

    6. (f)

      Otherwise, \(v_j\in V_t\) and all vertices in \(V_b\) whose y-coordinate 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\).

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 non-convex vertices of \(\omega \) whose y-coordinate is greater than \(y_j\) and sort the vertices by increasing y-coordinate. Search through the vertices by increasing y-coordinate 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 non-convex 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 non-convex vertices on the top staircase walk. In this case, \(\rho \) initially points in the positive y-direction 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 pre-processing 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 y-direction. To compute the maximal extreme corner visibility edge for \(c_3\), the staircase obstacle is reflected about the x-axis and the y-axis, and the rotational sweep/s performed from \(c_3\) (after the reflection \(c_3\) is located at the bottom-left 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.

1.3 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 L-obstacle, then \(|V|\ge 6\) and \(|S^*|\le 2\). If \(\omega \) is a T-obstacle, 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 top-left and bottom-right 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 top-left and bottom-right 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 \(2|W_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.

Fig. 20
figure 20

Upper bound on the number of edges in a minimum skeleton. a Staircase obstacle. b Partial staircase obstacle. c General obstacle

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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/s10957-020-01690-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10957-020-01690-1

Keywords

Mathematics Subject Classification

Navigation