Enumerating floorplans with walls - Yamanaka, Katsuhisa; Nakano, Shin-ichi (Discrete Applied Mathematics, 2024)
Let P be a set of n points in the proper inside of an axis-aligned rectangle R, and each point in P has a type, which is h-type, v-type, or f-type. Those are shortened forms of horizontal type, vertical type, and free type. We wish to dissect R into a set S of n+1 rectangles by n horizontal or vertical line segments so that each point in P is on the common boundary line segment between two rectangles in S, and also each h-type point in P is on a horizontal line segment, each v-type point in P is on a vertical line segment, and each f-type point in P is on a horizontal or vertical line segment. Such a dissection of R is called a feasible floorplan of R with respect to P. Each point in P corresponds to the location of a structurally necessary horizontal or vertical wall, or a column (pillar) to support the upper part. In this paper, when P consists of points of the three described types, we present an efficient algorithm that enumerates all the feasible floorplans of R with respect to P. The algorithm is based on the reverse search method and enumerates all the feasible floorplans in O(n|SP|) time using O(n2) space, after O(nlogn) time preprocessing, where SP is the set of the feasible floorplans of R with respect to P. Moreover, we show that, after O(nlogn) time preprocessing, one can enumerate all feasible floorplans in SP in O(n) delay using O(n2) space.