When dealing with structural design tasks, engineers often have to explore a vast space of possible alternatives. But exploration comes at a cost, as developing one design instance requires (1) qualified workforce, (2) additional time to product delivery and (3) computational resources. In this sense, as long as a technical problem can be described analytically in a way the algorithm can handle, MCTS may result in being quite helpful, as it operates effectively in vast search spaces, with a limited number of instantiations [22].
Many structural engineering design problems could be treated just as search-problems with a vast solution space. We prove this, with an example. Let the work task consist of designing an earthquake-resistant u-storey reinforced concrete building, with v load-bearing elements at each storey. In this problem, the shape, size and positions of the bearing elements affect the dynamic response of the building and determine the seismic response to be considered in the calculations. We call w, the number of possible different cross-sections for a single load-bearing element at ground floor. We assume that, once the cross-section at floor i-1 has been selected, the number of possible alternatives for the element immediately on top of it (i.e. that at floor i) is immediately reduced—for consistency reasons—by a factor of x. Both variables are integers and at least equal to 1. As a consequence, for each set of t load-bearing elements on the same vertical line, the number of possible different solutions—y—is as given in Formula 2.
$$y=\prod_{k=0}^{u-1}\mathrm{max}\left\{\left\lfloor \frac{w}{{x}^{k}}\right\rfloor, 1\right\}.$$
(2)
The possible different combinations of vertical elements for the whole building is equal to z = yv. As an example, with u = 6, v = 49, w = 36, x = 4, we get y = 648 and then z ≈ 5.85, the total number of combinations would be 10137 (for sake of brevity we ignored the design options concerning the beams). With a machine capable of evaluating 100 × 109 different structural models each second (that is far from true, as a structural calculation can take seconds to minutes to be completed), the full exploration of this search space would take 10118 years to be finished on a regular desktop machine.
Similar problems can be developed for steel and masonry buildings as well, this proving that search problems concern many different applications in practical structural engineering.
Definition of the considered structural problem
In this paper, we consider a simple reference design problem, to show how MCTS may be integrated among structural engineering design tools. The problem consists of a one-storey RC building with a rigid horizontal slab placed on both columns and shear walls as vertical load-bearing elements. Beams are considered as part of the slab. The task is to define number, shape, size and position of the load-bearing elements, so to achieve specific targets (θ) in terms of the dynamic behaviour of the structure. Targets are expressed in terms of (1) a selected main translational periods (TX, TY) [45], and (2) maximum distance between the centre of mass (CM) and the centre of stiffness (CS) of the structure [45]. The problem can be simplified to a single degree of freedom (SDOF) as illustrated in Fig. 4, where (1) the mass m is obtained from both the slab’s and (half of the) vertical elements’ mass, while (2) stiffness values Kx and Ky depend (as an assumption) just on flexural deformability of the bearing elements. More in detail, horizontal stiffness in the direction i – Ki—is obtained as given in Formula 3 [46].
$${K}_{i}=\sum_{s=1}^{n}\frac{12 E{J}_{s,i}}{{h}_{s}^{3}},$$
(3)
where n is the number of RC bearing elements; E is concrete’s Young Module (assumed always equal to 30,000 MPa); Js,i is the moment of inertia around the axis orthogonal to direction i; hs is the height of the sth bearing element (always assumed equal to 3.0 m).
Once the story’s lateral stiffness in the direction i is known, the correspondent vibration period—Ti—can be calculated as given in Formula 4 [45].
$${T}_{i}=2\cdot \pi \sqrt{\frac{m}{{K}_{i}}}.$$
(4)
To resemble real-life projects’ requirements, while looking for suitable combinations of bearing elements, our agents have to observe rules. First of all, we assume that design units cannot be placed everywhere on the ground-floor; on the contrary—so to simulate real-life design limitations—positions exist where they are not allowed (see white-coloured 1-cells in Fig. 5); we call such limitations geometric constraints (γ). Second, we do assume that the building’s storey has a squared shape, with an assigned value of the distributed mass of η t/m2 (these being design assumptions, υ). The set of target values θ, geometric constraints γ, and design assumptions υ forms a design task, δ.
Problem’s analytical description and assumptions
To be able to handle the problem analytically, we discretized the structural plan into a grid of identical squared cells; each cell hosts an integer value from the set {0, 1, 2}. Zeros (0) identify free positions, i.e. locations were a design unit can be placed; one (1) values stay for unavailable locations, i.e. cells not accessible to the agent for selection. As bearing elements are inserted, free positions are filled with the number two (2).
All the envisaged agents operate on the grid by changing one single cell at a time. MCTS can just add design units (in the expansion step)—see for example Fig. 5a–c—while GA can both add and remove them (using crossover and mutation). Every time a design unit is added or removed, the global geometry of the bearing elements changes and has to be re-computed. In addition, if any two cells come to have a side in common, they are considered as belonging to the same structural bearing element. On one hand, the insertion of a design unit in a certain position can lead to two, three or four different bearing entities (columns and/or walls) being unified into a new, larger structural element; on the other hand, the removal of a design unit may provoke disconnection and separation of one structural element in up to four new smaller and independent entities. Because of this, in our study, the agents’ search space is characterised by strong discontinuity and non-linearity. As an example, Fig. 6a–c show how the number of bearing elements and as a consequence the horizontal stiffness of the storey along the X-direction can change drastically in just one single step. In the code, a specific procedure to update the global geometry of the load-bearing elements in case of insertion or removal of a bearing units was developed and implemented. (In our study, as a work hypothesis, we set no limitations to the shape and size a bearing element can have, as long as (1) it is obtained by putting squared cells together, and (2) it is consistent with γ.)
In Fig. 7, we show an example of the MCTS’ four steps; it was obtained by adapting Fig. 1 to the specific search of our problem. In Fig. 7a, the tree is already partially developed; the root is not a leaf anymore, so the best_child() function is called to select the most promising branch. (In the figure, a light-grey triangle with a white circle on top represents a sub-tree we omitted for the sake of clarity.) In Fig. 7b, a leaf node is expanded with the addition of a new node. In Fig. 7c, a roll-out is performed, till a reward is generated. Finally, in Fig. 7d, the reward is back-propagated, by updating the values of total reward and number of simulations performed all along the path back to the tree’s root. After back-propagation (as suggested by the transparency of the node at the bottom of the tree in Fig. 7d), those nodes created within the roll-out are discarded.
Problem’s search space
In Silver et al. [18], the MCTS application for the board game Go had to consider a search space of the order of 10172 different configurations. In that study, the algorithm proved to work effectively, also due to its integration with Deep Neural Networks. In our work, as the first attempt at an application in the realm of structural engineering, we adopted some limitations. First of all, our search space’s maximum dimension (problem’s initial branching factor) is up to 2.239102. Such number is obtained by generating grids with a total of 340 zero-cells, and then letting the agent decide whether to place or not to place a design unit in each of them (the total dimension of the grids is always 20-by-20 cells). For each task we posed, many combinations could fit as an acceptable solution. In general, the more solutions exist for a design task, the easier for the agent to find them. Unfortunately, telling in advance how large this number is, is not trivial, also because design tasks δ may be very different from each other. The GA-based agents will serve as a term of comparison of design task’s complexity. As a second limitation, at this stage, we discarded any neural network as a support for the MCTS-agent, as well as nested algorithm’s architecture existing in the current literature [34].
Performance measures
For all the agents, performance has to be measured each time a new structural solution is generated. On the one hand, this happens at the end of any roll-out phase. On the other hand, it is needed as new items are included in the solutions pool. Formula 5 is applied to calculate the performance of the i-th solution, pi.
$${p}_{i}=\mathrm{max}\left\{ \frac{ A+ B+\lambda \cdot \Gamma }{2+\lambda }, 0\right\},$$
(5)
where
$$A=1- \frac{\left|{T}_{x,i}{- T}_{x}^{*}\right|}{{T}_{x}^{*}},$$
(6)
$$B=1- \frac{\left|{T}_{y,i}{- T}_{y}^{*}\right|}{{T}_{y}^{*}},$$
(7)
T*x is the target translational period in X-direction; T*y is the target translational period in Y-direction; Tx,i is the actual translational period in X-direction of the ith solution; Ty,i is the actual translational period in Y-direction of the ith solution; λ is a control parameter with values in {0, 1}; it is used for including or excluding the distance component from the performance assessment. Γ is the component explained in Formula 8;
$$\Gamma =\left\{\begin{array}{c}1- \frac{{d}_{i}-{d}^{*}}{{d}^{*}},\quad \mathrm{if} \,{ d}_{i}>{d}^{*}\\ 1,\quad \mathrm{if} \,{d}_{i}\le {d}^{*}\end{array}\right.,$$
(8)
d* is the target distance between the structure’s centre of mass (CM) and centre of stiffness (CS); di is the actual distance between the structure’s centre of mass (CM) and centre of stiffness (CS).
In the tests, performance goals of both 95.0% and 97.5% are used; such high level of request forces the agents to look for solutions that satisfy more than one requirement at a time.