Acta Polytechnica Vol. 52 No. 6/2012 Global Optima for Size Optimization Benchmarks by Branch and Bound Principles Adéla Pospíšilová, Matěj Lepš Faculty of Civil Engineering, CTU in Prague, Thákurova 7, 166 29 Prague, Czech Republic Corresponding author: adela.pospisilova@fsv.cvut.cz Abstract This paper searches for global optima for size optimization benchmarks utilizing a method based on branch and bound principles. The goal is to demonstrate the process for finding these global optima on the basis of two examples. A suitable parallelization strategy is used in order to minimize the computational demands. Optima found in the literature are compared with the optima used in this work. Keywords: benchmarks, discrete sizing optimization, branch and bound method, global optima, parallel programming. 1 Introduction Optimization and search methodologies have become very popular for making products more desirable. The shape of a structure, the amount of reinforcement, the cross-sections, sheet thicknesses, design of the concrete mixture, and many other properties can be optimized. Recently, many heuristic algorithms have been developed and tested on benchmarks in order to assess their performance. In order to compare dif- ferent optimization methods, it is necessary to have reliable information on the global optima of the bench- marks. In the past, it was not possible to obtain these optima by exhaustive search approaches, due to the large computational demands. As computational power is growing year by year, it now seems to be the right time to deal with this issue. This paper outlines a process for searching global optima for sizing discrete optimization benchmarks. Various optimization methods can be used for obtain- ing optima, e.g. gradient methods [1], heuristic meth- ods, and evolutionary algorithms [2]. These methods do not guarantee that a global optimum is obtained because only a portion of the space is explored. It is not always necessary to obtain the global optimum. A local optimum with good qualities found within a short time can be considered as a mark of a high quality algorithm. However, without knowledge of the global optima for selected benchmarks, it is not possi- ble to make a reliable assessment of the performance of the methodology that is used. In our work, we look for global optima for some fundamental benchmarks, using a method based on branch and bound principles. This approach requires two values called bounds for determining the searched space. A good estimate of these bounds reduces the searched space but still ensures that global optima can be found. The optimization problem for the benchmarks presented in this paper is defined by an objective function that is easy to solve, constraints with high computational demands and with a searched space that is discrete and huge. The algorithm pre- sented here can be used for obtaining the global opti- mum for problems similar to those discussed in this paper. 2 Sizing optimization Sizing optimization [3] is a type of structural opti- mization that deals with truss-like structures. These structures are defined by a fixed topology, material, loading, supports, and a set of cross-sections or, al- ternatively, minimum and maximum cross-sectional areas of individual truss bars. The objective function is the weight of the structure or its volume. The objec- tive function is linear and easy to solve. Constraints are maximum stresses and maximum displacements, respectively. These functions are non-convex in the most cases, and it is more time-consuming to solve them that to solve the objective function. The goal is to find sections for a given structure that satisfy the prescribed constraints and have the lowest possible weight. The selection of cross-sections from the given database then defines a discrete optimization problem, and variables chosen from given limits lead to a continuous case. The continuous optimization problem can be efficiently solved by mathematical programming methods, e.g. gradient-based methods, as will be shown below. When using discrete variables, no such option is available. Thus we first give our attention to the discrete case. 74 Acta Polytechnica Vol. 52 No. 6/2012 3 Discrete problem The goal is to find a combination of cross-sections from the given list of profiles that leads to the lowest pos- sible weight, while still fulfilling the given constraints. We present two methods that are able to find global optima for this discrete optimization problem. 3.1 Enumeration Enumeration (also called a Brutal Force or Exhaustive search) is the simplest method for obtaining a global optimum of the discrete optimization problem. Here, it is necessary to compute values of an objective func- tion and constraints for every combination of cross- sections from a given set. The enumeration therefore poses very large computational demands. If there are n sections and k variables (i.e., truss bars or groups of bars), then nk possible solutions exist, i.e., the prob- lem grows exponentially with the growing number of variables. Enumeration can therefore be applied only for small structures or for analysing the neighborhood of some local optima. 3.2 A method based on branch and bound principles A branch and bound method is another method for obtaining global optima. Land and Doig [4] invented this method for linear programming problems. Later, it was modified for discrete problems and for mixed- discrete problems [5]. Branch and bound methods are based on a dividing the main problem into several subproblems, known as branches. To estimate which branches are to be eval- uated, the existence of the lower and upper bounds is assumed to restrict the searched space. The lower bound can be obtained by any continuous optimiza- tion method, because the global optimum with dis- crete design variables will never provide a lower value of the objective function than the global optimum with continuous design variables. The upper bound can be obtained by any heuristic method, because a local optimum always has a greater or equal value of the objective function than the global optimum. Since the constraints for the sizing optimization problem are more computationally demanding than the value of the objective function, they are calculated only for solutions that lie between the lower and upper bounds. If we obtain a subproblem with a value of the objective function outside the given bounds, the rest of the branch is not calculated because a global optimum cannot be located there. The more accurate the estimates of the lower and upper bounds are, the narrower the searched space can be. It is thus advan- tageous to decrease the upper bound on the basis of already obtained objective function values. Although this methodology is more efficient than enumeration, it is still time consuming. However, it is possible to parallelize the algorithm to reduce the computation time. The main idea of the parallel version of the algorithm is presented in Section 6. 4 Continuous problem A continuous optimization problem is more complex than a discrete problem, because an infinite num- ber of potential solutions exist in the space with real numbers. Therefore, for non-convex problems, it can- not be guaranteed that the optimum that is found is the global optimum. However, powerful and well- established continuous optimization algorithms such as mathematical programming methods, can be used for obtaining a potential global optimum. Obtaining a potential global optimum with continuous variables is therefore less demanding than solving the optimiza- tion problem with discrete variables. The main disadvantage of this methodology is the uncertainty of the quality of the solution. This can be overcome in one of two ways: • The branch and bound method expects that the lower bound has the same (or a lower) value of the objective function as the global optimum with continuous variables. Since the global optimum of the continuous problem cannot be generally known, the true lower bound cannot be ensured. As a solution, the lower bound is set to its low- est potential minimum, i.e., without using any continuous optimization method. This process provides a real global optimum with discrete vari- ables. In most cases, however, the searched space will be enormous for the computation of all pos- sible solutions in real time. • Other approaches do not fully guarantee the ac- quisition of the global optimum. Nevertheless, the probability of obtaining the global optimum is acceptable. These approaches are based on estimating the global optimum with continuous variables and the value of its objective function. We use nonlinear programming that is imple- mented in the MATLAB environment (e.g. the fmincon function). This routine is executed sev- eral times from random initial points. If the ob- tained optima do not differ from each other and the results are comparable to optima published in the available literature, the estimate is considered as credible. If the obtained optima differ from each other, then it is not possible to use them as the lower bound. The first approach (without us- ing the continuous optimization method) is then used, or the lower bound is estimated to be e.g. 20 % lower than the solution what is obtained. 75 Acta Polytechnica Vol. 52 No. 6/2012 10 in 3 kips 5 kips 1 kip 1 0 in 1 4 5 2 3 1 2 4 3 x y Figure 1: The 5-bar truss. All continuous optima for problems mentioned be- low were consistent with published results. For the sake of certainty, the nonlinear programming method was launched hundred times with different starting vectors, and the best solution was considered as the lower bound. 5 Benchmarks 5.1 5-bar truss It was necessary to have a representative example of a structure that was small enough for computational demands and yet big enough for branching purposes in order to test the branch and bound algorithm. Note that imperial units are used throughout the text, because our solutions will be compared with published optima in the available literature with the same units. The structure in Fig. 1 has four nodes and five truss bars, and is made from aluminium. The density of the material is 0.1 lb/in3 and the Young’s modulus is equal to 104 ksi. The allowable stress is limited to ±60 ksi in each element, and the displacements are limited to ±0.06 in along the horizontal and vertical directions. The continuous variables can vary between the lower bound 0.01 in2 and the upper bound 0.1 in2. A function for nonlinear programming fmincon [6] offers four variants of the optimization algorithms. In this paper, the Active Set Method [7] is suitable for our continuous sizing optimization problem. It is based on changing inequalities into equalities, followed by the line-search algorithm leading to a quadratic subproblem. This procedure is repeated in a sequence which converges in the limit to a critical point [8]. A starting point, i.e., a design variable vector com- posed of cross-sectional areas, an objective function, constraints and lower and upper bounds of the vari- ables are necessary as an input at the beginning of the algorithm. The objective function is the weight Variable Units Discrete optimization Continuous optimization E B&B fmincon() A1 in2 0.05 0.05 0.0500 A2 in2 0.01 0.01 0.01 A3 in2 0.06 0.06 0.0471 A4 in2 0.02 0.02 0.0167 A5 in2 0.01 0.01 0.01 m lb 0.179 0.179 0.157 max |wj| in 0.059 0.059 0.06 max |σi| ksi 59.371 59.371 60.006 wlim in 0.06 0.06 0.06 σlim ksi 60 60 60 Table 1: 5-bar truss optima. B&B — Method based on Branch and Bound principles, E — Enumeration. of the structure m = f(A) = ρ N∑ i=1 AiLi, (1) where N = 5 is the number of truss bars, Ai is the cross-sectional area and Li is the length of element i, and ρ is the density of the material. Constraints are defined as inequalities: max |σi|− 60 ≤ 0, (2) max |wj|− 0.06 ≤ 0, (3) where max |σi| is the maximum absolute value of stresses, j is an ordinal number of independent dis- placements and max |wj| is the maximum absolute value of displacements. These values can be obtained by several methods. In this paper, geometrically and physically linear behaviour was assumed and the finite element method was used, see e.g. [9]. The results for the continuous optimization problem of the 5-bar truss appear in Tab. 1. The objective function value of the optima obtained with the Active Set Method is later used as the lower bound for the branch and bound method. Dealing with inequalities in the form of equalities is solved by a penalty type approach, and therefore the exact fulfillment of the constraints therefore cannot be ensured, see Table 1. This discrepancy is not crucial since only a lower bound is needed, not the global continuous optimum. An identical topology of the 5-bar truss is used for the discrete optimization version. The mate- rial properties and constraints are also identical. 76 Acta Polytechnica Vol. 52 No. 6/2012 initialization set variables to the smallest values compute m compare m with mmin and mmax compute constraints Are they satisfied? mmin ≤ m < mmax YES m < mmax? YES mmax = m increase last variable by one compute m NO find combination m > mmin m < mmin m ≥ mmax are all variables set to the highest values? find combination m < mmax NO END YES NO STEP 1 STEP 2 STEP 3 STEP 4 STEP 5 STEP 6 Figure 2: A flow chart of the algorithm. The cross-sectional areas are chosen from the set {0.01, 0.02, . . . , 0.1} in2. Since the structure has five elements (k = 5) and 10 cross-sectional areas (n = 10), the number of all possible solutions is nk = 105. Therefore, the structure is small enough and the dis- crete global optimum can be obtained by the enumer- ation method. The results appear in Tab. 1. The lower bound for the branch and bound method is set to the optimum objective function value ob- tained with continuous variables. The upper bound is set to the estimated weight of 0.23 lb, which is 25 % higher than the global optimum value of the objective function obtained by the enumeration. The space is searched systematically between these two bounds until the global optimum is found. A flow chart of the algorithm is depicted in Fig. 2. The steps can be described as follows: 1. First, we have to decide which values will be used as the initial point. It is appropriate to begin with the smallest profiles and then increase them, since the objective function is linear with respect to the cross-section areas. From the programming point of view, it is easier to use integer variables that are the ordinal numbers of the given set of cross-sectional areas — set M. For example, the initial design variable vector is 1 1 1 1 1, which means that the first area (0.01 in2) from the given set is attached to each truss bar, according to the numbering of the trusses shown in Fig. 1. 2. The value of the objective function is then calcu- lated and compared with the lower mmin and up- per mmax bounds. If the weight of the structure is less than mmin, the algorithm will go to Step 3. If the weight of the structure is between mmin and mmax, the algorithm proceeds to Step 4. If the weight of the structure is greater than mmax, Step 5 is executed. 3. The value of the objective function is less than mmin. It is therefore necessary to find a combi- nation of variables that corresponds to weight larger than mmin. The last variable is raised to its maximum value, e.g. as 1 1 1 1 10, and the value of the objective function is calculated and compared to mmin. (a) If the value of the objective function is still less than mmin, the algorithm searches for a combination with greater weight than the lower bound. This can be done as follows. The next-to-last variable is repeatedly raised by one, e.g. to (1 1 1 2 10). If the value of the next-to-last variable reaches its maxi- mum, it is decreased to its minimum and the third from the end variable value is raised by one. The algorithm will go to Step 2 at the moment when all variables are set such that m > mmin. (b) If the value of the objective function is greater than the lower bound, the last vari- able value is decreased to its minimum (1 1 1 1 1) and is then increased one by one (1 1 1 1 2, 1 1 1 1 3, ..., etc.) un- til the weight is greater than mmin. If mmin > m the algorithm goes to Step 2. 4. The value of the objective function is greater than mmin and less than mmax. The global optimum is located somewhere in this subspace. Therefore, the constraints are evaluated, i.e the stresses and displacements are calculated. (a) If the constraints are fulfilled, i.e., max |σi| ≤ 60 ksi and max |wj| ≤ 0.06 in, the upper bound is updated to the actual objective function value mmax = m. Thus the upper bound is pushed down towards the global optimum and the searched space is reduced. The last variable value is then increased by one. If this variable value ex- ceeds its maximum possible cross-sectional area value from a given set, e.g. 1 1 5 11 1, its value is set to the minimum possible value, and the next-to-this variable value is increased by one, i.e., 1 1 6 1 1. The algorithm goes to Step 2. (b) If the constraints are not fulfilled, the value of the last variable is increased by one. The algorithm continues with Step 2. 5. The value of the objective function is greater than mmax. The value of the last variable is decreased 77 Acta Polytechnica Vol. 52 No. 6/2012 1.41% 6.13% 92.46% number of potential solutions below the lower bound (step 3) number of potential solutions between the lower bound and the upper bound (step 4) number of potential solutions above the upper bound (step 5) Figure 3: A pie chart of a distribution of the 5-bar truss problem solutions solved by the branch and bound method. to its minimum, the next-to-last variable value is increased by one and the objective function value is calculated. If the variable exceeds its maximum possible value from the given set, the algorithm acts as in Step 4a. (a) If the value of objective function m is lower than mmax, the algorithm goes to Step 2. (b) If objective function value m is greater than mmax, the value of the third variable from the end increases by one and the value of the next-to-last variable is set to its mini- mum. The algorithm continues in this way until the objective function value is less than mmax. If there is no such combination of cross-sectional areas, the algorithm is termi- nated. 6. If all variable values are set to their maxima, the algorithm ends. Fig. 3 shows the distribution of 5-bar truss potential solutions. The dark grey part shows the number of potential solutions below the lower bound, where only the objective function values are calculated, i.e., Step 3 of the algorithm. The grey part shows the number of potential solutions between the lower and the upper bound, where the values of the objective function and also the constraints are calculated (Step 4). The global optimum is included in this subspace. The light grey part represents the number of potential solutions above the upper bound, where only the objective function values are calculated (Step 5). It is obvious that there is no need to compute constraints for more than 90% of potential solutions. Since the evaluation of constraints is very computationally demanding, this results in significant time savings. The reason for the bigger number of potential solutions above the upper 1 2 3 5 8 6 7 10 9 75 z 1 0 0 1 0 0 x y 200200 [in] 4 Figure 4: A 25-bar truss. bound is that the optimum is placed relatively close to the lower bound in the searched subspace. Tab. 1 presents results for the continuous optimiza- tion problem along with results for the discrete prob- lem solved by the enumeration and the method based on branch and bound principles. Since the enumer- ation calculates the values of the objective function as well as constraints for all potential solutions, it is not possible to omit the global optimum. The results obtained by both presented methods are identical and this comparison serves as the verification of the branch and bound method. 5.2 25-bar truss The 25-bar truss is one of the most widely-used bench- marks for size optimization. It was introduced by Fox and Schmit [10] in 1966. The structure has ten nodes and four supports (at nodes 7–10), see Fig. 4; there- fore there are 18 free displacements. The structure is symmetric so some elements were gathered to eight groups, listed in Tab. 2. The truss is made of alu- minium material, with density equal to 0.1 lb/in3 and with the Young’s modulus equal to 104 ksi. The load- ing is defined in Tab. 3. All cross-sectional areas are chosen from the given set: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.8, 3.0, 3.2 and 3.4 in2, see [11]. The continuous variables range from 0.1 in2 to 3.4 in2. The allowable stress is set to ±40 ksi in all truss bars and the maximum allowable displacement is ±0.35 in at all nodes along the x, y and z directions. The results for the continuous case are shown in Tab. 4 and they are compared with the results pub- lished in the available literature. The discrete case cannot be enumerated within a reasonable time be- cause the number of potential solutions is nk = 308 = 6.561 · 1011, where k is the number of element groups. For the discrete case, the lower bound was set to the 78 Acta Polytechnica Vol. 52 No. 6/2012 Group of bars Conectivities A1 1-2 A2 1-4, 2-3, 1-5, 2-6 A3 2-5, 2-4, 1-3, 1-6 A4 3-6, 4-5 A5 2-4, 5-6 A6 3-10, 6-7, 4-9, 5-8 A7 3-8, 4-7, 6-9, 5-10 A8 3-7, 4-8, 5-9, 6-10 Table 2: Member grouping for the 25-bar truss. Node Fx Fy Fz 1 1.0 −10.0 −10.0 2 0 −10.0 −10.0 3 0.5 0 0 6 0.6 0 0 Table 3: Loadings for the 25-bar truss (kips). Variable Unit Perez & Behdinan This paper A1 in2 0.1 0.1 A2 in2 0.457 0.421 A3 in2 3.4 3.4 A4 in2 0.1 0.1 A5 in2 1.937 1.917 A6 in2 0.965 0.966 A7 in2 0.442 0.471 A8 in2 3.4 3.4 m lb 483.84 483.82 max |σi| ksi 6.15 6.13 max |wj| in 0.35 0.35 σlim ksi 40 40 wlim in 0.35 0.35 Table 4: Comparison of results for the 25-bar truss continuous case. 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 sp ee d- up number of cores speed-up linear speed-up Figure 5: A speed-up of the 25-bar truss problem solved by the parallel branch and bound method. value found with continuous optimization, and the upper bound was set to the worst available solution in the literature [12]. 6 Parallelization The 25-bar truss is relatively computationally de- manding. Since the evaluations of the solutions are independent from each other (except updating the upper bound mmax, as described in Step 4a of the algorithm), the method can be run in a parallel way. Nowadays, modern computers are equipped with sev- eral core processors, and we can to make use of this computational power. The MATLAB environment offers several parallelization tools, but not all of them provide shared memory. This consideration is essen- tial for our algorithm for updating the upper bound. The appropriate method is the spmd method, i.e., the Single Programm Multiple Data method, see e.g. [13] for more details. The spmd statement sepa- rates the block of the code to be run simultaneously on multiple labs. As in the parfor loop method, the matlabpool open N command opens the required number of labs. Data can be sent to another lab by the labSend(data, X) command, where X is the in- dex of the receiving lab to which the data is sent. The data is received by the labReceive(Y) command, where Y is the index of the lab from which the data will come. It is appropriate to split the data only at one so-called master lab and to receive data with the other so-called slaves. The master can also process its own data as well. The main problem here is to estimate a proper amount of data for each lab. If the data is sent too often communication between master and slaves is too costly. In the 25-bar truss task, permutations with repetition are generated in advance for several groups of elements (e.g. four groups), and the remaining groups of elements (four other groups) are generated in the branch and bound method independently at each lab. The generated combinations are assigned to individual labs in advance, and then the algorithm continues in the same way as for the 5-bar truss task. The maximum mmax values are collected at the end 79 Acta Polytechnica Vol. 52 No. 6/2012 480 500 520 540 560 1 10 100 1000 10000 w ei gh t [lb ] iterations of the algorithm Figure 6: A graph of the decreasing upper bound for the 25-bar truss problem. of each iteration. The smallest one is chosen as a new mmax and is resent to every lab as an initial value of mmax for another iteration. If all data has been used, the smallest value of mmax is taken as the global optimum. For the parallel version of the algorithm, scaling the algorithm is very important. If the algorithm is scaled badly, parallelization is not useful at all. Ideally, we would like to achieve linear scaling, i.e., speed-up of n on n cores. However, it is very hard to obtain linear scaling, e.g. because of the time spent on communications. Fig. 5 shows a graph where the speed-up of the parallel algorithm is compared at 1 to 8 labs1. The HP Xeon Z600 Workstation with two In- tel Xeon E5520 4-cores processors, frequency 2.27 GHz was used for computations within the Matlab R2009a 64-bit Debian GNU/Linux environment. 7 Conclusions Fig. 6 shows a graph with the decreasing upper bound mmax for the 25-bar truss problem. The value of mmax determines the best-so-far solution found during the whole algorithm run. It can be interpreted as the convergence of the objective function to the global optimum. All combinations generated in advance were divided into smaller blocks of data containing fifty combinations and these “packs” were sequentially sent to eight labs. The number of all iterations was therefore 304/(8 · 50) = 2025. The global optimum was gained in the 66th iteration. Nevertheless, it should be pointed out that the number of iterations depends strictly on the data ordering or the starting point (minimum vs maximum cross-sectional areas). Since the task is to find the global optima, the whole subspace of potential solutions must be searched for, and it is not possible to shorten the computation. In Tab. 5, we compare the optima obtained with the branch and bound method with the heuristic algorithms found in the literature. The result of the branch and bound method (B&B) is identical to the 1It was not necessary to compute the whole task. Some vari- ables were fixed to prescribed values, here 2 out of 8 variables, and the algorithm was run with this restriction. solution presented by Kripka [15] using the Simulated Annealing method (SA). However, he did not search the whole subspace of possible solutions, so he could not be sure that the obtained optimum is the global one. To the best of the authors’ knowledge, global op- tima for computationally demanding tasks such as the 25-bar truss problem have not been published yet. We hope that by publishing the algorithm as well as the value of the global optimum we will intro- duce a quality standard that will help to improve new optimization methods. Acknowledgements This work was supported by the Grant Agency of the Czech Technical University in Prague, grants number SGS11/021/OHK1/1T/11 and number SGS12/027/OHK1/1T/11, the Czech Science Foun- dation GACR, grant number P105/12/1146 and by Ministry of Education, Youth and Sports, grant num- ber MSM 6840770003. References [1] Shewchuk, J. R.: An Introduction to the Con- jugate Gradient Method Without the Agonizing Pain, School of Computer Science, Carnegie Mel- lon Univ., Pittsburgh, [online], 1994. [2] Eiben, A. E., Smith, J. E.: Introduction to Evo- lutionary Computing, Berlin: Springer, 2003. [3] Bendsoe, M. P., Sigmund O.: Topology Optimiza- tion: Theory, Methods and Applications, Berlin: Springer, 2003. [4] Land, A. H., Doig A. G.: “An Automatic Method of Solving Discrete Programming Prob- lems.” Econometrica, 28 (3), 1960, pp. 497–520. [5] Arora, J. S.: Methods for Discrete Variable Struc- tural Optimization. In: “Recent Advantages in Optimal Structural Design”. American Society of Civil Engineers, 2002, p. 1–40. [6] The MathWorks, Find minimum of constrained nonlinear multivariable function - MATLAB. [02/10/2011]. http://www.mathworks.com/ [7] Bhatti, M. A.: Practical Optimization Methods, New York: Springer-Verlag, 2000. [8] The MathWorks, Constrained Nonlinear Optimization Algorithms: Optimization Algorithms and Examples. [02/10/2011]. http://www.mathworks.com/ 80 Acta Polytechnica Vol. 52 No. 6/2012 Variable Units This paper Kripka Lemonge & Barbosa Li & Liu Wu & Chow Coello Rajeev & Krishnamoorthy [15] [16] [17] [11] [18] [12] B&B SA GA PSO GA GA GA Date 2012 2004 2004 2009 1995 1994 1992 A1 in2 0.1 0.1 0.1 0.1 0.1 1.5 0.1 A2 in2 0.4 0.4 0.3 0.3 0.5 0.7 1.8 A3 in2 3.4 3.4 3.4 3.4 3.4 3.4 2.3 A4 in2 0.1 0.1 0.1 0.1 0.1 0.7 0.2 A5 in2 2.2 2.2 2.1 2.1 1.5 0.4 0.1 A6 in2 1 1 1 1 0.9 0.7 0.8 A7 in2 0.4 0.4 0.5 0.5 0.6 1.5 1.8 A8 in2 3.4 3.4 3.4 3.4 3.4 3.2 3 m lb 484.33 484.33 484.85 484.85 486.29 539.78 546.01 max |σi| ksi 6.20 6.20 6.11 6.11 6.01 6.66 6.77 max |wj| in 0.35 0.35 0.35 0.35 0.35 0.34 0.35 Table 5: A comparison of results for the 25-bar truss, discrete case, from the literature and from our work. B&B — Method based on Branch and Bound principles, SA — Simulated Annealing, GA — Genetic Algorithm, PSO — Particle Swarm Optimization. σlim = 40 ksi, wlim = 0.35 in. [9] Pospíšilová A.: Analysis of Sizing Optimiza- tion Benchmarks, Bachelor Thesis, CTU in Prague, 2010. http://klobouk.fsv.cvut.cz/ ~pospisilova/publications/AP_BP_2010. pdf [10] Fox, R. L., Schmit, L. A. Jr.: “Advances in the Integrated Approach to Structural Synthesis.” J Spacecraft Rockets, 3 (6), 1966, p. 858–866. [11] Wu, S.-J., Chow, P.-T.: “Steady-State Genetic Algorithms for Discrete Optimization of Trusses.” Comput Struct, 56 (6), 1995, p. 979–991. [12] Rajeev, S., Krishnamoorthy, C. S.: “Discrete Optimization of Structures Using Genetic Algo- rithms.” J Struct Eng, 118 (5), 1992, p. 1233– 1250. [13] The MathWorks, Executing Simultane- ously on Multiple Data Sets: Single Pro- gram Multiple Data (spmd). [02/10/2011]. http://www.mathworks.com/ [14] Perez, R. E., Behdinan, K.: Particle Swarm Op- timization in Structural Design. In: “Swarm In- telligence, Focus on Ant and Particle Swarm Optimization”. Itech Education and Publishing, 2007, p. 373–394. [15] Kripka, M.: “Discrete Optimization of Trusses by Simulated Annealing.” J Braz Soc Mech Sci Eng, 26 (2), 2004, p. 170–173. [16] Lemonge, A. C. C., Barbosa, H. J. C.: “An adaptive penalty scheme for genetic algorithms in structural optimization.” Int J Numer Meth Eng, 59 (5), 2004, p. 703–736. [17] Li, L. J., Huang, Z. B., Liu, F.: “A heuristic par- ticle swarm optimization method for truss struc- tures with discrete variables.” Comput Struct, 87 (7-8), 2009, p. 435–443. [18] Coello, C. A. C.: Discrete Optimization of Trusses Using Genetic Algorithms. In: “EXPERSYS-94: Expert Systems Applications and Artificial Intelligence”. I.I.T.T. International, 1994, p. 331–336. 81