customizable reinforcement learning for column placement in structural design

CN114186306BActive Publication Date: 2026-08-11AUTODESK INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-07
Publication Date
2026-08-11

Smart Images

  • Figure CN114186306B_ABST
    Figure CN114186306B_ABST
Patent Text Reader

Abstract

One embodiment of the present invention describes a technique for performing machine learning. The technique includes applying one or more placement rules to a floor plan of a building to generate a set of candidate column locations in the floor plan. The technique further includes using a first reinforcement learning (RL) agent to select one or more column locations from the set of candidate column locations based on the structural stability of the one or more column locations. The technique also includes outputting the floor plan including the one or more column locations as a structural design of the building.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. Provisional Application No. 63 / 078,047, filed on September 14, 2020, entitled “TECHINQUES FOR PLACING COLUMNS IN STRUCTURAL DESIGNS”. The subject matter of that related application is incorporated herein by reference. background Technical Field

[0004] The implementation of this disclosure generally relates to structural design, and more specifically, to customizable reinforcement learning of column placement in structural design.

[0005] Related technologies

[0006] In structural design, structural engineers typically place columns on the floor plans of the architectural design provided by their clients. For example, structural engineers can use structural design software to analyze the location and alignment of walls, room types, and other factors, and identify several “grid lines” on the floor plan. After locating these grid lines along the horizontal and vertical directions, structural engineers can use the structural design software to place columns at the intersections of the grid lines.

[0007] This process is tedious and time-consuming, especially in buildings where each floor does not have the same architectural layout. For example In residential buildings, structural engineers need to examine the layout of each floor multiple times to identify overlapping wall locations. For example, a structural engineer might check the vertical alignment of interior walls on each floor to ensure that a column on one floor does not appear in the middle of an open space on another floor. In residential projects of moderate complexity, structural engineers may spend five days or a week locating a column.

[0008] In addition, structural engineers often utilize expert knowledge in the form of design rules to place columns or make other types of structural design choices. Examples of these rules include avoiding placing columns inside rooms or requiring columns to form grid lines. While machine learning techniques can be used to capture these rules and assist structural engineers in column placement, training a standard machine learning model typically requires a large amount of data to allow the model to "learn" to apply the rules to different types of designs or projects. Furthermore, changes to the rules and / or data require retraining the model, which consumes significant time and resources and delays the release or use of the latest version of the model.

[0009] As described above, there is a need in the field for techniques to effectively capture design rules and apply them to column placement tasks in structural design. Summary of the Invention

[0010] One embodiment of the present invention describes a technique for performing machine learning. The technique includes applying one or more placement rules to a floor plan of a building to generate a set of candidate column locations in the floor plan. The technique further includes using a first reinforcement learning (RL) agent to select one or more column locations from the set of candidate column locations based on the structural stability of the one or more column locations. The technique also includes outputting the floor plan including the one or more column locations as a structural design of the building.

[0011] The disclosed technology speeds up and / or automates column placement tasks for users by allowing them to define, select, and / or customize placement rules for such tasks and to execute an RL agent that performs the task according to those rules. Therefore, column placement tasks can be performed more efficiently and / or consume fewer resources compared to conventional column placement tools that users run for hours or days to manually identify and inspect column locations on floor plans. Thus, the disclosed technology provides technical improvements in computer systems, applications, tools, and / or techniques for performing column placement. Attached Figure Description

[0012] Therefore, the above-described features of various embodiments can be understood in detail by referring to the various embodiments, and a more specific description of the inventive concept briefly summarized above, some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings only illustrate typical embodiments of the inventive concept and are therefore not intended to limit the scope in any way, as other equally effective embodiments exist.

[0013] Figure 1 A system configured to implement one or more aspects of various implementation schemes is shown.

[0014] Figure 2 It is based on various implementation plans. Figure 1 More detailed illustrations of the grid line generator and column placer.

[0015] Figure 3A It is based on various implementation plans. Figure 1 An example floor plan generated by the grid line generator and column placer.

[0016] Figure 3B It is based on various implementation plans. Figure 1An example floor plan generated by the grid line generator and column placer.

[0017] Figure 3C It is based on various implementation plans. Figure 1 An example floor plan generated by the grid line generator and column placer.

[0018] Figure 4 It is a flowchart of the method steps for performing machine learning according to various implementation schemes. Detailed Implementation

[0019] In the following description, numerous specific details are set forth to provide a more thorough understanding of the various embodiments. However, those skilled in the art will understand that the inventive concepts can be practiced without one or more of these specific details.

[0020] System Overview

[0021] Figure 1 A computing device 100 configured to implement one or more aspects of various embodiments is illustrated. In one embodiment, the computing device 100 may be a desktop computer, laptop computer, smartphone, personal digital assistant (PDA), tablet computer, or any other type of computing device configured to receive input, process data, and optionally display images and suitable for practicing one or more embodiments. The computing device 100 is configured to run a grid line generator 122 and a pillar placer 124 residing in memory 116. It should be noted that the computing device described herein is illustrative, and any other technically feasible configuration falls within the scope of this disclosure. For example, multiple instances of the grid line generator 122 and the pillar placer 124 may be executed on a set of nodes in a distributed system to implement the functionality of the computing device 100.

[0022] In one embodiment, computing device 100 includes (but is not limited to) interconnects (buses) 112 connecting one or more processing units 102, input / output (I / O) device interfaces 104 coupled to one or more input / output (I / O) devices 108, memory 116, storage devices 114, and network interfaces 106. Processing unit 102 can be any suitable processor implemented as a central processing unit (CPU), graphics processing unit (GPU), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), artificial intelligence (AI) accelerator, any other type of processing unit, or combination of different processing units, such as a CPU configured to operate in conjunction with a GPU. Generally, processing unit 102 can be any technically feasible hardware unit capable of processing data and / or executing software applications. Furthermore, within the context of this disclosure, the computing elements shown in computing device 100 may correspond to a physical computing system (e.g., a system in a data center) or may be virtual computing instances executing within a computing cloud.

[0023] In one embodiment, the I / O device 108 includes: a device capable of providing input, such as a keyboard, mouse, touchscreen, etc.; and a device capable of providing output, such as a display device. Additionally, the I / O device 108 may include a device capable of both receiving input and providing output, such as a touchscreen, Universal Serial Bus (USB) port, etc. The I / O device 108 can be configured to receive input from an end user of the computing device 100 (…). For example The computing device 100 (designer) receives various types of input and also provides various types of output, such as displayed digital images or digital video or text, to the end user of the computing device 100. In some embodiments, one or more of the I / O devices 108 are configured to couple the computing device 100 to the network 110.

[0024] In one implementation, network 110 is any technically feasible type of communication network that allows the exchange of data between computing device 100 and external entities or devices such as a web server or another networked computing device. For example, network 110 may include a wide area network (WAN), a local area network (LAN), a wireless (WiFi) network, and / or the Internet, etc.

[0025] In one embodiment, storage device 114 includes non-volatile storage for applications and data, and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other magnetic, optical, or solid-state storage devices. Gridline generator 122 and pillar placer 124 may be stored in storage device 114 and loaded into memory 116 upon execution.

[0026] In one embodiment, memory 116 includes a random access memory (RAM) module, flash memory cell, or any other type of memory cell or combination thereof. Processing unit 102, I / O device interface 104, and network interface 106 are configured to read data from memory 116 and write data to said memory. Memory 116 includes various software programs executable by processor 102 and application data associated with said software programs, including grid line generator 122 and pillar placer 124.

[0027] During operation, grid line generator 122 and column placer 124 perform column placement in the architectural design. More specifically, grid line generator 122 generates grid lines for the floor plans in the architectural design, and column placer 124 uses one or more machine learning models to place columns at the intersections of the grid lines. As described in further detail below, such column placement can be performed in a rule-driven and / or interactive manner without retraining the machine learning models, thereby reducing the resource consumption and / or user overhead associated with performing column placement tasks in structural design.

[0028] Customizable reinforcement learning for column placement in structural design

[0029] Figure 2 It is based on various implementation plans. Figure 1 A more detailed illustration of the grid line generator 122 and column placer 124. As mentioned above, the grid line generator 122 adds a set of grid lines 228 to the floor plan 220 in the architectural design of the building, and the column placer 124 performs column placement in the floor plan 220 by identifying column positions 256 at the intersections of some or all of the grid lines 228.

[0030] As shown, floor plan 220 includes a building outline 222, one or more area outlines 224, and one or more area types 226. The building outline 222 defines the outline of a given floor of the building represented by floor plan 220, and each of the area outlines 224 defines a specific area within the same floor. For example The outline of a building (e.g., a room, area, zone, etc.). For example, building outline 222 can be specified using the coordinates (x0, y0) and (x1, y1) of the top-left and bottom-right corners of the rectangular boundary representing a building floor. Similarly, each area outline can be identified by a unique "area ID" and coordinates (x0, y0) and (x1, y1). Additional coordinates and / or other representations of building outline 222 and / or area outline 224 can be used for non-rectangular building and / or area shapes.

[0031] Zone type 226 specifies the functional purpose of the corresponding zone in floor plan 220. For example, each zone type may be represented by a "zone ID" for the corresponding zone and a category of functional types such as (but not limited to) "office", "meeting room", "reception", "stairwell", "elevator", "kitchen", "bathroom" and / or "telephone booth".

[0032] In some implementations, the grid line generator 122 executes a reinforcement learning (RL) agent 206 that generates grid lines 228 that overlap with the walls and / or other structural elements of the building. For example, the grid line generator 122 may use agent 206 to align horizontal and vertical grid lines 228 with the walls of a rectangular room or space in the floor plan 220.

[0033] More specifically, agent 206 generates grid lines 228 in floor plan 220 based on the minimum beam span 216 of the beams used in the building, the maximum beam span 218 of the beams used in the building, and the structural importance 242 associated with the walls in floor plan 220. When floor plan 220 includes a rectangular building outline 222 and a rectangular area outline 224, grid line generator 122 can collect grid lines along the same direction in floor plan 220. For example The walls extend along the x-axis and y-axis. Each wall is associated with a weight representing its structural importance; a larger weight indicates higher structural importance. For example (load-bearing walls), and a smaller weight indicates lower structural importance ( For example (Non-load-bearing partition walls). Then, agent 206 places grid lines 228 to maximize the sum of the weights of walls that overlap with grid lines 228, subject to the constraint that the distance between any two consecutive grid lines is greater than or equal to the minimum beam span 216 and less than or equal to the maximum beam span 218.

[0034] Each axis k∈{x,y} and orthogonal axis can be used. To illustrate the operation of grid line generator 122 and / or agent 206. It is assumed that all walls in floor plan 220 are orthogonal to each other. Right now (parallel to the x-axis or y-axis), parallel to Each wall w along the axis is represented by the k-coordinate of its position and a weight wt(w) indicating the structural importance of that wall. A set of grid lines 228GD orthogonal to the k-axis. k It is represented by a set of k-coordinates, and is obtained by maximizing Coverage(GD) according to the following definition. k The set of k coordinates is selected in the following manner:

[0035]

[0036] where gd coincides with the k coordinate of a wall w parallel to the said axis. Additionally, the grid lines 228 are selected such that for any two grid lines 228 gd1, gd2 ∈ GD k the distance dist between them satisfies minSpan ≤ dist ≤ maxSpan, where minSpan represents the minimum beam span 216 and maxSpan represents the maximum beam span 218.

[0037] Thus, the grid line generator 122 and / or another component can train the agent 206 to approximately maximize Coverage(GD k ). Specifically, for any sequence of real numbers x = {x1, x2, …, x n}, and the number g, x| g represents the sequence of real numbers obtained from x by removing all x ∈ x such that x ≤ g, and x - y represents the sequence of real numbers obtained by subtracting y from each element in x. The individual state 212w associated with the agent 206 is represented by a sequence of k coordinates, and the individual action 210 associated with the agent 206 is represented by act ∈ [minSpan, maxSpan]. The state transition f(w, act) is defined as f(w, act) = w| act - y, and the reward function r(w, act) is defined as:

[0038]

[0039] The termination state is reached when there is only one w ∈ w and w < minSpan.

[0040] In one or more embodiments, the agent 206 is trained using a randomly generated sequence of walls. For example, the component can use the deep deterministic policy gradient (DDPG) technique to learn the policy of the agent 206 such that the actions 210 performed by the agent 206 generate horizontal and vertical grid lines 228 along walls with high structural importance 242 in the floor plan 220.

[0041] After adding the grid lines 228 to the floor plan 220, the column placer 124 identifies the column positions 256 of the columns in the floor plan 220. First, the column placer 124 uses the solver 202 to convert one or more placement rules 230 into geometric constraint conditions imposed on the grid line intersections representing the potential column positions 256 in the floor plan 220. For example, the solver 202 can include a satisfiability solver that imposes the geometric constraint conditions represented by the placement rules 230 on some or all of the intersections of the grid lines 228 in the floor plan 220.

[0042] In some implementations, placement rule 230 represents user-specified requirements for column placement. For example, each placement rule may be provided by a structural engineer and / or another user involved in the structural design of the building. Thus, placement rules 230 accumulated across multiple users, floor plans, and / or structural design projects can reflect the structural engineer's domain knowledge regarding the column placement task. Within this domain knowledge, one or more placement rules 230 can be selected or specified for column placement in a given floor plan 220. For example, a user may interact with a user interface provided by the column placer 124 and / or another component to define new placement rules and / or select "saved" placement rules for use with the floor plan 220.

[0043] As shown, placement rule 230 includes representations of potential column locations 256 ( For example The location parameters 232 (intersections of grid lines 228 in the floor plan 220) and the categories 234 associated with those locations. In some embodiments, category 234 includes pre-placed columns 236, preferred column locations 238, candidate column locations 240, and / or invalid column locations 244. Pre-placed columns 236 include grid line intersections where columns are required, preferred column locations 238 include grid line intersections where columns are preferred, candidate column locations 240 include grid line intersections where columns can be placed, and invalid column locations 244 include grid line intersections where columns cannot be placed.

[0044] For example, each placement rule may include a predicate specifying a category. The predicate `pre_placed(x,y)` indicates that the location represented by coordinates (x,y) will be included in the pre-placed column 236, the predicate `column_forbidden(x,y)` indicates that the location represented by coordinates (x,y) will be included in the invalid column location 244, and the predicate `column_preferred(x,y)` indicates that the location represented by coordinates (x,y) will be included in the preferred column location 328. Grid line intersections in the floor plan 220 that cannot be found in the invalid column location 244 or the pre-placed column 236 may be included in the candidate column location 240.

[0045] Location parameter 232 specifies the various zones of floor plan 220, such as (but not limited to) a specific zone type 226, a location along building outline 222 and / or a specific zone outline 224, and / or a location within building outline 222 and / or a specific zone outline 224. Continuing the example above, each placement rule includes one or more location parameters 232 following the predicate, which identify the location of the grid line intersections to which the category represented by the predicate will apply. Thus, the placement rule pre_placed(x,y):-building_corner(x,y) specifies the corner of the building ( For example The (x,y) position (defined by building outline 222) will be included in the pre-placed column 236. The placement rule pre_placed(x,y):-room_corner(x,y),element_function(r,stairwell) specifies the corner of the area representing area type 226 as "stairwell". For example The (x,y) position (defined by region outline 224) will be included in the pre-placed column 236. The placement rule column_forbidden(x,y):-in_the_middle_of(r,x,y),element_function(r,conference_room) specifies that the position in the middle of the region of region type 226 "conference_room" will be included in the invalid column position 244.

[0046] After the solver 202 identifies the pre-placed column 236, preferred column position 238, candidate column position 240, and / or invalid column position 244 in the floor plan 220, the column placer 124 executes another RL agent 208 at the specified column position 256 in the floor plan 220, based on the output of the solver 202. More specifically, the column placement task CPT performed by agent 208 is represented by the following tuple:

[0047] CPT =<shape,C,PR,PP,maxSpan,m>

[0048] In the above tuples, shape is the polygon that defines the interior of floor plan 220; C, PR, and PP are sets of points; and and PR represents the preferred column location 238, and PP represents the location of the pre-placed column 236 identified by the solver 202. Invalid column locations 244 are applied by omitting the corresponding grid line intersections from the candidate column locations 240 and / or floor plan 220 provided to the agent 208. Additionally, maxSpan is a positive number representing the maximum beam span, and m is a positive integer representing the maximum number of columns allowed in the floor plan 220.

[0049] Continuing with the column placement task above, the column placement CP represents a set of points at column position 256 in floor plan 220. According to the structural simulator, if... If CP has a structural feasibility 258 that satisfies or exceeds the threshold, then CP is a solution to CPT. A simple technique for determining structural feasibility 258 includes verifying that for every point p in the shape, there exists a column c ∈ CP such that the distance between p and c is less than or equal to maxSpan. Other techniques for evaluating structural feasibility 258, including finite element analysis and / or other types of structural simulation or machine learning techniques, can be used as alternatives to or supplements to the simple techniques described above.

[0050] In one or more embodiments, agent 208 is trained and / or executed to perform a column placement task by performing action 250 to select column locations 256 in floor plan 220. A separate state 252 associated with agent 208 is represented by a “snapshot” or “image” of floor plan 220 including: candidate column locations 240C; preferred column location 238PR; existing column location 256CP; and the area CA of floor plan 220 covered by the existing column location 256. Right now For all points p in CA, there exists a pillar c in CP such that the distance between p and c is less than or equal to maxSpan.

[0051] In other words, the action is the position c of the pillar in C chosen by agent 208. For a given state S, S+c represents the state obtained from S by placing the pillar at c and updating the covered region CA. Subsequently, the transition function f(S,c) is defined as:

[0052]

[0053] Agent 208 enters a termination state when the covered area CA includes the entire interior of floor plan 220, the number of placed columns has reached the maximum value m, and / or the number of actions 250 has reached the "maximum steps" threshold. The reward 254 is calculated according to the following reward function r(S,c):

[0054]

[0055] In the above reward function, cvd(S') of state S' represents the percentage of floor plan 220 represented by the covered area CA, and rwd prefer It is the reward for each pillar placed in the preferred pillar position, and rwd full This is an incentive to achieve 100% structural coverage of the interior of floor plan 220 by column location 256. Therefore, agent 206 can select column location 256, representing preferred column location 238, increased coverage area CA, and / or achieving 100% structural coverage of the interior of floor plan 220.

[0056] Similar to agent 206, agent 208 can be trained using randomly synthesized floor plans. For example, column placer 124 and / or another component can use proximal policy optimization (PPO) techniques to learn a policy for agent 208 such that action 254 performed by agent 206 maximizes the placement of columns at preferred column locations 238, resulting in a structurally feasible floor plan 220 and / or increasing or completing the structural coverage of the interior of floor plan 220 (determined by the covered area CA).

[0057] In one or more embodiments, the column placer 124 includes functionality for performing interactive column placement, wherein a structural engineer and / or another user interacts with the column placer 124 and / or agent 208 to perform a column placement task. During this interactive column placement, the user provides and / or updates placement rules 230 associated with the floor plan 220, and the solver 220 identifies grid line intersections corresponding to pre-placed columns 236, preferred column locations 238, candidate column locations 240, and / or invalid locations 244 based on the placement rules 230. The agent 208 then selects a structurally feasible column location 256 from the preferred column location 238 and candidate column locations 240, and the column placer 124 outputs the floor plan 220 with the column location 256 to the user, and provides the user with the opportunity to further refine the placement rules 230. If a conflict is found in a given set of placement rules 230 ( For example If one placement rule conflicts with another, the column placer 124 can generate a warning recognizing the conflict and request the user to resolve it. For example By modifying one or more placement rules (230), the column position 256 is then updated to reflect the set of placement rules.

[0058] Therefore, the column placer 124 and the user can interact repeatedly to specify selected column locations 256 in the floor plan 220 until a set of structurally feasible column locations 256 that meet the user's requirements is generated, as described below regarding Figures 3A to 3CA more detailed description follows. Additionally, this iterative process can be performed without retraining agent 208, which improves resource consumption and / or adaptability compared to conventional machine learning techniques that require retraining the machine learning model whenever the behavior is desired to change.

[0059] Figure 2 The system further includes the functionality to store and / or reuse placement rules 230 across different floor plans and / or structural design projects. For example, column placer 124 and / or another component may store each user-defined placement rule in a database and / or another type of data storage device. The component may also allow grouping of placement rules 230 under various users, project types, and / or other categories or “tags.” During a column placement task for a new project and / or floor plan, the user can create or modify one or more placement rules 230 for the task; select individual placement rules 230 from the data storage device for use with the task, and / or select one or more groups of placement rules 230 for use with the task. This storage, grouping, and reuse of placement rules 230 for multiple floor plans, projects, and / or column placement tasks allows for the capture and reuse of domain knowledge and / or expertise of structural engineers and / or other domain experts, even when domain experts are no longer involved in subsequent projects.

[0060] Figure 3A It is based on various implementation plans. Figure 1 An exemplary floor plan 302 is generated by the grid line generator 122 and the column placer 124. In floor plan 302, “C” indicates a meeting room, “K” indicates a kitchen, “P” indicates a telephone booth, “B” indicates a bathroom, “E” indicates an elevator, “S” indicates a stairwell, and “R” indicates a reception area. Squares along the edges and / or corners of the horizontal and vertical lines in floor plan 302 indicate column placement, and points along the edges and / or corners of the horizontal and vertical lines in floor plan 302 indicate candidate column locations 240 in floor plan 302 where no columns have yet been placed.

[0061] More specifically, Figure 3A An exemplary floor plan 302 is shown with columns placed using column placer 124, reflecting placement rules that prevent columns from being placed in the middle of a room. As shown, floor plan 302 lacks candidate column locations and / or column placements within areas labeled “C”, “K”, “P”, “B”, “E”, “S”, and “R”, indicating that solver 202 has designated grid line intersections within the room as invalid column locations 244 in floor plan 302.

[0062] Furthermore, the columns in floor plan 302 are not evenly distributed throughout floor plan 302, and load-bearing walls surrounding the stairwell and elevator and / or other areas of floor plan 302 are not taken into account. Therefore, users can change the placement rules associated with floor plan 302 to trigger a new set of column placements that better reflect the user's design goals and / or preferences.

[0063] Figure 3B It is based on various implementation plans. Figure 1 An exemplary floor plan 304 is generated by the grid line generator 122 and the column placer 124. More specifically, the floor plan 304 includes a modified set of column placements after specifying new placement rules for the columns required to surround the stairwell. Figure 3A Floor plan 302. For example, a user creates and submits a floor plan in a user interface provided by column placer 124 and / or another component. Figure 1 After the new placement rules are implemented, the column placer 124 can automatically generate and output the floor plan 304.

[0064] As shown, floor plan 304 includes columns at the corners of two stairwells. These columns may include pre-placed columns 236 generated by solver 202 to accommodate constraints represented by new placement rules. In response to newly added columns around the stairwells, agent 206 may place fewer columns around the kitchen and / or other areas in floor plan 304. For example (Keep within the maximum number of columns allowed by the column placement task).

[0065] Figure 3C It is based on various implementation plans. Figure 1 An exemplary floor plan 306 is generated by the grid line generator 122 and the column placer 124. Specifically, the floor plan 306 includes a modified set of column placements after defining new placement rules that identify room corners as preferred column locations 238. Figure 3A and Figure 3B Floor plans 302-304.

[0066] In response to the new placement rules, solver 202 designates the corners of areas marked "C", "K", "P", "B", "E", "S", and "R" as preferred column locations 238, and agent 206 places the columns at said corners. The column placements in floor plan 306 are also more evenly spaced and / or distributed than those in floor plans 302 or 304. Therefore, the column locations in floor plan 306 better meet the requirements of users interacting with column placer 124, and / or result in structural designs with higher structural integrity.

[0067] Figure 4 It is a flowchart of the methodological steps for performing machine learning according to various implementation schemes. Although combined... Figure 1 and Figure 2 The system describes the method steps, but those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of this disclosure.

[0068] As shown, column placer 124 trains a first RL agent 402 using a randomly generated floor plan and a reward function, the reward function including a first reward for placing columns in preferred locations and a second reward reflecting the coverage of one or more placed columns on the floor plan. For example, grid line generator 122 and / or column placer 124 may use off-policy techniques and randomly generated floor plans to train the first RL agent, such that the first RL agent learns a policy for placing columns on the floor plan by maximizing the reward.

[0069] The grid line generator 122 also trains a second RL agent 404 to perform grid line generation using a randomly generated sequence of walls and a reward function, the reward function including a reward reflecting the structural importance of walls overlapping with the grid lines. For example, the grid line generator 122 and / or the column placer 124 can train the second RL agent to generate grid lines along a line perpendicular to a given axis while complying with the following constraints ( For example The grid lines of the wall (x-axis or y-axis): the distance between any two consecutive grid lines is greater than or equal to the minimum beam span and less than or equal to the maximum beam span.

[0070] The grid line generator 122 executes a second RL agent 406 to generate a set of grid lines in the floor plan based on the structural importance of the walls in the floor plan. For example, a numerical weight representing the structural importance of each wall in the floor plan can be assigned. The second RL agent can place grid lines along each of the x-axis and y-axis in a manner that maximizes overlap with structurally important walls while maintaining intervals within the range represented by the minimum and maximum beam spans of the floor plan. The grid line generator 122 can alternatively or additionally use other machine learning techniques and / or grid line generation techniques to place grid lines in the floor plan as an alternative or supplement to training and executing the second RL agent.

[0071] After adding grid lines to the floor plan, the column placer 124 receives one or more placement rules for the floor plan from the user (408) and applies the placement rules (410) to the floor plan to generate one or more candidate column locations, pre-placed columns, and / or preferred column locations in the floor plan. For example, the user can define one or more placement rules and / or select rules for use with the floor plan. Figure 1 It uses one or more predefined placement rules ( For example (From other users and / or other structural design projects). Each placement rule may include a description of the location on the floor plan ( example like One or more location parameters (room corners / boundaries, room interiors, zone types, etc.) and specifying the category associated with the floor plan. For example One or more parameters (preferred column position, pre-placed column, invalid column position) For example (Predicate). The column placer 124 may use an answer set solver and / or another type of solver to identify one or more grid line intersections that match the location parameters, and apply the category to the identified grid line intersections. The output of the solver may therefore include different subsets of grid line intersections in the floor plan, which have been classified as candidate column locations, preferred column locations, pre-placed columns (…). Right now (The required column position) and / or invalid column position.

[0072] Column placer 124 uses a first RL agent to select one or more column locations from candidate and / or preferred column locations based on the structural stability of the column location. For example, the first RL agent can be initialized using a column placement task that includes the interior of the floor plan, candidate column locations on the floor plan, preferred column locations, pre-placed columns, and maximum beam span and / or maximum number of columns. The first RL agent can then place columns on the floor plan in a manner that is structurally feasible and maximizes the rewards for increasing structural coverage of the interior of the floor plan, placing columns at preferred column locations, and / or completely covering the floor plan.

[0073] After the column placement task is completed, the column placer 124 outputs 414 a floor plan including the column locations. For example, the column placer 124 displays the floor plan and column locations to the user in a graphical user interface and / or another type of user interface, and / or exports the floor plan and column locations to a file.

[0074] Column placer 124 optionally repeats operations 408-414 until the floor plan is completed 416. The user can update the placement rules after reviewing the output floor plan and column positions to specify new and / or different constraints on the column positions. Column placer 124 can then use the updated placement rules to generate new candidate column positions, pre-placed columns, and / or preferred column positions, and use a first RL agent to select a new column position in the case of new candidate, pre-placed, and / or preferred column positions. Column placer 124 can then output the new column positions in the floor plan, allowing the user to review the new column positions and / or make further changes to the placement rules based on the new column positions. Therefore, column placer 124 can repeatedly interact with the user to generate and modify column placements based on user requirements until a set of column positions that is structurally effective and meets the user's requirements and preferences is produced.

[0075] Finally, the column placer 124 stores 418 floor plans including column locations as part of the building's structural design. For example, the column placer 124 may store floor plans with column locations in one or more files, which may be viewed, shared, and / or further modified by one or more users.

[0076] In summary, the disclosed technology combines customizable placement rules representing user requirements or preferences for column placement in structural design with a first RL agent that selects column locations in a floor plan based on said placement rules. The user can repeatedly specify a new set of placement rules and review the column locations generated in response to said placement rules until an acceptable and / or structurally feasible set of column locations is identified in the floor plan. A second RL agent can also be used to generate horizontal and vertical grid lines in the floor plan; when a new set of placement rules is received from the user, the placement rules are applied to the intersections of said grid lines to classify different subsets of the grid line intersections into candidate column locations, preferred column locations, and / or pre-placed columns in the floor plan. Then, some or all of these classified grid line intersections are provided as input to the first RL agent to allow the first RL agent to place additional columns in the candidate and / or preferred column locations.

[0077] The disclosed technology accelerates and / or automates column placement tasks for users by allowing them to define, select, and / or customize placement rules for such tasks and to execute an RL agent that performs the task according to those rules. Therefore, column placement can be performed more efficiently and / or with less resource consumption compared to conventional column placement tools that users manually identify and inspect column locations on floor plans over hours or days. Furthermore, the RL agent and column placement tasks can be adapted to new sets of requirements and / or placement rules without retraining, providing improved resource consumption and / or adaptability compared to conventional machine learning models that require retraining whenever their behavior is expected to change. Storing, grouping, and reusing placement rules for multiple floor plans, projects, and / or column placement tasks further allows for the capture and reuse of domain knowledge and / or expertise from structural engineers and / or other domain experts, further improving the performance, adaptability, and resource efficiency of the disclosed column placement technology. Therefore, the disclosed technology provides technical improvements in computer systems, applications, tools, and / or techniques for performing column placement and / or machine learning.

[0078] 1. In some implementations, the method for performing machine learning includes: applying one or more placement rules to a floor plan of a building to generate a set of candidate column locations in the floor plan; selecting the one or more column locations from the set of candidate column locations using a first reinforcement learning (RL) agent based on the structural stability of the one or more column locations; and outputting the floor plan including the one or more column locations as a structural design of the building.

[0079] 2. The method as described in Clause 1, further comprising: receiving from a user one or more additional placement rules for the floor plan; and using the first RL agent to modify the one or more column positions selected from the set of candidate column positions based on the one or more additional placement rules.

[0080] 3. The method as described in any one of Clauses 1-2, further comprising outputting a warning about the conflict after detecting a conflict in the one or more placement rules and the one or more additional placement rules; and resolving the conflict based on input from the user, and then correcting the one or more column positions.

[0081] 4. The method of any one of Clauses 1-3, further comprising, prior to applying the one or more placement rules to the floor plan, executing a second RL agent, the second RL agent generating a set of grid lines in the floor plan based on a set of structural importance of a set of walls in the floor plan.

[0082] 5. The method as described in any one of Clauses 1-4, wherein the second RL agent further generates the set of grid lines in the floor plan based on the minimum beam span associated with the building and the maximum beam span associated with the building.

[0083] 6. The method of any one of Clauses 1-5, wherein applying the one or more placement rules to the floor plan comprises: matching a first parameter of the placement rule with the intersection of two grid lines in the set of grid lines; and applying a category to the intersection based on a second parameter of the placement rule.

[0084] 7. The method of any one of Clauses 1-6, wherein applying the category to the intersection includes at least one of: omitting the intersection from the set of candidate column positions, including the intersection in the set of candidate column positions; and designating the intersection as a preferred column position.

[0085] 8. The method of any one of Clauses 1-7, further comprising training the first RL agent using a set of randomly generated floor plans.

[0086] 9. The method of any one of Clauses 1-8, further comprising training the first RL agent using a reward function, the reward function including a first reward for placing the pillar at a preferred pillar location.

[0087] 10. The method of any one of Clauses 1-9, wherein the reward function further includes a second reward reflecting the coverage of one or more placed columns on a randomly generated floor plan.

[0088] 11. The method of any one of Clauses 1-10, further comprising adding one or more pre-placed columns to the floor plan based on the one or more placement rules.

[0089] 12. The method of any one of Clauses 1-11, wherein the floor plan includes a first outline of the building, a second outline of a region in the building, and the functional type of the region.

[0090] 13. In some embodiments, a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform the following steps: applying one or more placement rules to a floor plan of a building to generate a set of candidate column locations and a set of preferred column locations in the floor plan; selecting one or more column locations from the set of candidate column locations and the set of preferred column locations using a first reinforcement learning (RL) agent based on the structural stability of the one or more column locations; and outputting the floor plan including the one or more column locations as a structural design of the building.

[0091] 14. The non-transitory computer-readable medium as described in Clause 13, wherein the step further includes executing a second RL agent, prior to applying the one or more placement rules to the floor plan, the second RL agent generating a set of grid lines in the floor plan based on a set of structural importance of a set of walls in the floor plan, the minimum beam span associated with the building, and the maximum beam span associated with the building.

[0092] 15. A non-transitory computer-readable medium as described in any one of Clauses 13-14, wherein applying the one or more placement rules to the floor plan comprises: matching a first parameter of the placement rule to the intersection of two grid lines in the set of grid lines; and applying a category to the intersection based on a second parameter of the placement rule.

[0093] 16. A non-transitory computer-readable medium as described in any one of clauses 13-15, wherein applying the category to the intersection includes at least one of: omitting the intersection from the set of candidate column positions, including the intersection in the set of candidate column positions; and designating the intersection as a preferred column position.

[0094] 17. A non-transitory computer-readable medium as described in any one of Clauses 13-16, wherein the steps further include: receiving from a user one or more additional placement rules for the floor plan; updating the set of candidate column positions and the set of preferred column positions based on the one or more additional placement rules; and correcting the one or more column positions selected from the updated set of candidate column positions and the updated set of preferred column positions using the first RL agent based on the one or more additional placement rules.

[0095] 18. A non-transitory computer-readable medium as described in any one of Clauses 13-17, wherein the step further comprises: training the first RL agent based on a set of randomly generated floor plans and a reward function, the reward function comprising a first reward for placing a column at a preferred column location and a second reward reflecting the coverage of one or more placed columns on the randomly generated floor plans.

[0096] 19. A non-transitory computer-readable medium as described in any one of Clauses 13-18, wherein the step further includes adding one or more pre-placed columns to the floor plan based on the one or more placement rules.

[0097] 20. In some embodiments, a system includes a memory storing instructions and a processor coupled to the memory, and the processor, when executing the instructions, is configured to: execute a first reinforcement learning (RL) agent that generates a set of grid lines in a floor plan of a building based on a set of structural importance of a set of walls in the floor plan; apply the one or more placement rules to one or more intersections of the set of grid lines to generate a set of candidate column locations and one or more pre-placed columns in the floor plan; select the one or more column locations from the set of candidate column locations using a second RL agent based on the structural stability of the one or more column locations; and output the floor plan including the one or more column locations as a structural design of the building.

[0098] Any and all combinations of any claim element set forth in any claim and / or any element described in this application, in any manner, fall within the scope of the invention and protection.

[0099] Various embodiments have been described for illustrative purposes, but these descriptions are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.

[0100] Aspects of this disclosure may be embodied as a system, method, or computer program product. Therefore, aspects of this disclosure may take the form of an all-hardware implementation, an all-software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software and hardware aspects, all of which may be generally referred to herein as “module,” “system,” or “computer.” Furthermore, any hardware and / or software technology, process, function, component, engine, module, or system described in this disclosure may be implemented as a circuit or a collection of circuits. Additionally, aspects of this disclosure may take the form of a computer program product embodied in one or more computer-readable media having the computer-readable program code embodied therein.

[0101] Any combination of one or more computer-readable media may be used. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example (but not limited to), an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. More specific examples (not an exhaustive list) of computer-readable storage media will include: an electrical connection having one or more wires, a portable computer floppy disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compressed optical disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.

[0102] The foregoing description of aspects of this disclosure is based on flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine. When executed via a processor of the computer or other programmable data processing apparatus, the instructions implement the functions / actions specified in the blocks of the flowcharts and / or block diagrams. Such processors can be (non-limiting) general-purpose processors, special-purpose processors, special-purpose processors, or field-programmable gate arrays.

[0103] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of code, comprising one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions described in the blocks may not occur in the order shown in the figures. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or, depending on the functionality involved, the blocks may sometimes be executed in a reversed order. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, may be implemented by a system based on dedicated hardware or by a combination of dedicated hardware and computer instructions that performs the specified function or action.

[0104] While the foregoing describes embodiments of this disclosure, other and additional embodiments of this disclosure may be devised without departing from the basic scope of this disclosure, and the scope of this disclosure is defined by the appended claims.

Claims

1. A method for performing machine learning, the method comprising: Apply one or more placement rules to the floor plan of the building to generate a set of candidate column locations in the floor plan; A first reinforcement learning RL agent, trained using a set of randomly generated floor plans and a reward function, selects one or more column locations from the set of candidate column locations based on the structural stability of one or more column locations. as well as The output includes the floor plan of the one or more column locations as the structural design of the building.

2. The method of claim 1, further comprising: Receive one or more additional placement rules from the user for the floor plan; as well as The first RL agent is used to modify the one or more column positions selected from the set of candidate column positions based on the one or more additional placement rules.

3. The method of claim 2, further comprising: A warning for the conflict is output after a conflict is detected in one or more placement rules and one or more additional placement rules; as well as The conflict is resolved based on user input, and then the positions of the one or more pillars are corrected.

4. The method of claim 1, further comprising executing a second RL agent, the second RL agent generating a set of grid lines in the floor plan based on a set of structural importance of a set of walls in the floor plan, before applying the one or more placement rules to the floor plan.

5. The method of claim 4, wherein the second RL agent further generates the set of grid lines in the floor plan based on the minimum beam span associated with the building and the maximum beam span associated with the building.

6. The method of claim 4, wherein applying the one or more placement rules to the floor plan comprises: The first parameter of the placement rule is matched with the intersection of two grid lines in the set of grid lines; as well as A category is applied to the intersection based on the second parameter of the placement rule.

7. The method of claim 6, wherein applying the category to the intersection includes at least one of: omitting the intersection from the set of candidate column positions, including the intersection from the set of candidate column positions; and designating the intersection as a preferred column position.

8. The method of claim 1, wherein the reward function includes a first reward for placing the column at a preferred column position.

9. The method of claim 8, wherein the reward function further includes a second reward reflecting the coverage of one or more placed columns on a randomly generated floor plan.

10. The method of claim 1, further comprising adding one or more pre-placed columns to the floor plan based on the one or more placement rules.

11. The method of claim 1, wherein the floor plan includes a first outline of the building, a second outline of a region in the building, and the functional type of the region.

12. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform the following steps: Apply one or more placement rules to the floor plan of the building to generate a set of candidate column locations and a set of preferred column locations in the floor plan; A first reinforcement learning RL agent, trained using a set of randomly generated floor plans and a reward function, selects one or more column locations from a set of candidate column locations and a set of preferred column locations based on the structural stability of one or more column locations; and The output includes the floor plan of the one or more column locations as the structural design of the building.

13. The non-transitory computer-readable medium of claim 12, wherein the step further comprises, before applying the one or more placement rules to the floor plan, performing a second RL agent, the second RL agent generating a set of grid lines in the floor plan based on a set of structural importance of a set of walls in the floor plan, the minimum beam span associated with the building, and the maximum beam span associated with the building.

14. The non-transitory computer-readable medium of claim 13, wherein applying the one or more placement rules to the floor plan comprises: The first parameter of the placement rule is matched with the intersection of two grid lines in the set of grid lines; as well as A category is applied to the intersection based on the second parameter of the placement rule.

15. The non-transitory computer-readable medium of claim 14, wherein applying the category to the intersection includes at least one of: omitting the intersection from the set of candidate column positions, including the intersection among the set of candidate column positions; and designating the intersection as a preferred column position.

16. The non-transitory computer-readable medium of claim 12, wherein the step further comprises: Receive one or more additional placement rules from the user for the floor plan; The set of candidate column positions and the set of preferred column positions are updated based on the one or more additional placement rules. as well as The first RL agent is used to modify the one or more column positions selected from the updated set of candidate column positions and the updated set of preferred column positions based on the one or more additional placement rules.

17. The non-transitory computer-readable medium of claim 12, wherein the reward function includes a first reward for placing a column at a preferred column location and a second reward reflecting the coverage of one or more placed columns on a randomly generated floor plan.

18. The non-transitory computer-readable medium of claim 12, wherein the step further includes adding one or more pre-placed columns to the floor plan based on the one or more placement rules.

19. A system comprising: The memory stores instructions, and A processor, coupled to the memory and configured to execute the instructions as follows: A first reinforcement learning (RL) agent is executed, which generates a set of grid lines in the floor plan based on a set of structural importance of a set of walls in the floor plan of a building. Apply one or more placement rules to one or more intersections of the set of grid lines to generate a set of candidate column locations and one or more pre-placed columns in the floor plan; The one or more column locations are selected from the set of candidate column locations based on the structural stability of the one or more column locations by a second RL agent trained using a set of randomly generated floor plans and a reward function. as well as The output includes the floor plan of the one or more column locations as the structural design of the building.

Citation Information

Patent Citations

  • Self-learning-based security positioning method and device

    CN109557570A

  • Machine learning-oriented column sample architectural drawing layer classification method and system

    CN111368757A

  • Semantic Classification of Entities in a Building Information Model Based on Geometry and Neighborhood

    US20200081979A1