Application of Deterministic Operations Research for Structural Optimization ARCHVEvs INSTITIJTE MASSACHUSET OF I ECHNOLOWY by JUL U2 2015 Yue Chen LIBRARIES B.Eng. in Civil and Structural Engineering The Hong Kong University of Science and Technology, 2014 SUBMITTED TO THE DEPARTMENT OF CIVIL AND ENVRONMENTAL ENGINEERING IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF ENGINEERING IN CIVIL AND ENVIRONMENTAL ENGINEERING AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY JUNE 2015 02015 Yue Chen. All rights reserved. The author hereby grants to MIT permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole or in part in any medium now known or hereafter created Signature of Author: Signature redacted Department of Civil and Environmental Engineering May 15, 2015 n Certified by: Signature redacted Jerome J. Connor Professor of Civil and Environmental Engineering The)4s upervisor Accepted by: Signature redacted V I f HeidN f Donald and Martha Harleman Professor of Civil and Environmental Enginee ng Chair, Departmental Committee for Graduate Students Application of Deterministic Operations Research for Structural Optimization by Yue Chen Submitted to the Department of Civil and Environmental Engineering on May 15 h, 2015 in Partial Fulfillment of the Requirements for the Degree of Master of Engineering in Civil and Environmental Engineering Abstract This thesis discusses the application of operations research theories for structural optimization problems, while the discussion is restricted to deterministic system. The methodology employed follows the general methodology of operations research: mathematical models are utilized to represent real-world problems and making decisions based on the solutions generated through mathematical models. The discussion is focused on three general categories of structural optimization problems: sizing optimization, shape optimization and topology optimization. Simple structures are included as examples to illustrate the application of operations research theories. Abstract operations research models are formulated to represent the general case for each category of structural optimization. The thesis shows that operations research models provide mathematical insights for structural optimization problems and the theories are of significant value for solving high-dimensional structural optimization problems. Operations research model formulation and solving techniques are also discussed for a more efficient computation of the optimal answers. Thesis Supervisor: Jerome J. Connor Title: Professor of Civil and Environmental Engineering Acknowledgments To Prof. Jerome Connor, for the careful guidance and help he offered me that made this thesis possible, and the kindest advice as an amiable grandpa. To Prof. John Ochsendorf, Dr. Pierre Ghisbain, Dr. Eric Adams, Prof. Caitlin Mueller and all the other professors and scholars that I have met during my journey at MIT this year, whose contribution in providing structural engineering knowledge and general wisdom helped me to be a better engineer and person. To my mom and dad, to whom I owe whatever I have achieved in my life. To my professors in HKUST, who helped me to be well prepared for the challenges I encountered in MIT. To my classmates in the M.Eng. Class of 2015, who are the most inspiring and hardworking group that I am forever proud to be part of. Table of Contents Key Sym bols and Abbreviations .......................................................................................... 9 List of Figures..........................................................................................................................10 Chapteri. Introduction....................................................................................................... 12 1.1. B ackgrou nd .......................................................................................................................... 13 1.2 . T hesis O bjective ................................................................................................................... 17 1.3 . T h esis Ou tline ...................................................................................................................... 18 Chapter2. Problem Formulation for Structural Optimization. ................... 19 2.1. M ethodology for Deterministic Operations Research...................................................... 20 2.2. General M athematical Form for Structural Optimization ............................................... 22 2.3. Classifications of Structural Optimization Problem ........................................................ 23 2.4. Problem Formulation Procedures of Structural Optimization......................................... 25 Chapter3. Structural Sizing Optimization Problem ......................................................... 3.1. W eight M inimization of a Truss System.......................................................................... 3.1.1. Two-Bar Truss System Subject to Stress Constraints ................ 26 27 27 3.1.2. Two-Bar Truss System Subject to Stress and Displacement Constraints ... 31 3.1.3. Two-Bar Truss System Subject to Stress and Instability Constraints ......... 35 3.2. Abstract OR Model for Sizing Optimization Problems ................................................... 37 3.3. Linear Programming and Simplex M ethod ..................................................................... 39 Chapter4. Structural Shape Optimization Problem ......................................................... 4.1. 4.2. 42 Shape Representation ....................................................................................................... 43 4.1.1. Bezier Spline............................................................................................ 45 4.1.2. B-Spline ................................................................................................... 47 Geometric Design Constraints.......................................................................................... 52 4.2. 1. Nodal Sensitivity and Spline Continuity ................................................. 52 4.2.2. Continuity between the Splines ................................................................ 53 7 4.2.3. Continuity on the Point of Symmetry......................................................54 4.3. Abstract OR Model for Optimal Shape Design Problems............................................... 56 Chapter5. Structural Topology Optimization Problem.................................................. 57 5.1. Problem Formulation for Minimum Compliance Truss Design...................58 5.2. Abstract OR Model for Minimum Compliance Design Problems ................................... 60 Chapter6. Conclusions............................................................................................................63 6 .1. C onclu sion s .......................................................................................................................... 64 6.2. Suggestions for Future Studies........................................................................................ 65 BIBLIOGRAPHY ................................................................................................................... 8 66 Key Symbols and Abbreviations x f(x) g (x) S x* so -i Ai 6 j,k PC W Vi r(u) Bi,n(u) ti T J(n, u) K ki, ke U F A Ii Vmax F Ft t(x) p (x) C(u) E(p, u, u) e(u) U Ee Ead Decision variables Objective function Constraint function Feasible set Optimal solution Maximum allowable stress Maximum deflection value Axial stress in the ith element Slenderness ratio of the ith element Displacements in the kth direction of the jth joint Euler buckling load Overall weight of the structure Control vertex Shape function Bernstein polynomial Knot for B-Splines Knot sequence Cost function for shape optimization problem System stiffness matrix Element stiffness matrix Displacement vector Force vector Cross-sectional areas of the truss system Element length Maximum material volume Reference domain Domain occupied by the structure Boundary of the structure Free boundary of the structure Boundary where connected to the support Force per unit length Density distribution Compliance of the structure Strain energy of the structure Specific strain energy Admissible displacement set Stiffness for each finite element Admissible stiffness tensors set 9 OR SO s.t. LP R Rn BFS Operations research Structural optimization Subject to Linear programming Real number n-tuples of real numbers Basic feasible solution List of Figures Figure 1.1. Overall design process for engineering projects ------------------------------------ 14 Figure1.2. Comparison between conventional design approach and design method with structural optimization -------------------------------------------------------------------------------- 15 Figure2.1. General methodology for operations research ---------------------------------------- 20 Figure2.2 -Three categories of structural optimization (Sigmund, 2004) ----------------------- 24 Figure3.1. Two-bar truss system subject to stress constraints ---------------------------------- 27 Figure3.2. Graphical representation of the optimization problem for the two-bar truss system subject to stress constraints ---------------------------------------------------------------------------- 29 Figure 3.3: Two-bar truss system subject to stress and displacement constraints -------------- 31 Figure 3.4: Graphical representation of the optimization problem for the two-bar truss system subject to stress and displacement constraints --------------------------------------------------- 33 Figure 3.5: Two-bar truss system subject to stress and instability constraints ------------------ 35 Figure 3.6: Graphical representation of simplex algorithm as a 3D polyhedron -------------- 39 Figure 3.7: Flowchart for the simplex algorithm -------------------------------------------------- 41 Figure 4.1: Control vertices of a spline curve --------------------------------------------------- 43 Figure 4.2: Moving space for the control vertex Vi ------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 44 Figure 4.3: 3rd degree B-splines constructed with different knot sequences ------------------- 51 Figure 4.4: Two linked 3rd degree Bezier splines ---------------------------------------------- 53 Figure 4.5: Two symmetrical 3rd degree Bezier splines --------------------------------------- 55 Figure 5.1: Two-dimensional elastic domain l --------------------------------------------------- 61 10 11 Chapter 1. Introduction Overview Operations research is a discipline that deals with the application of advanced analytical methods to help make better decisions. Structural optimization is about deciding on the optimal design while complying with certain constraint conditions. This chapter first provides background for both structural optimization and operations research, and then states the objective and presents an outline of the work. 12 1.1. Background During the design process of an engineering project, it is generally the case when all possibilities of structural design solutions come up. However, to analyze and design all the alternatives is time-consuming and unrealistic. Usually, one proposal is selected based on some preliminary analyses and further designed in detail. It is intriguing, however, to have a generic approach to determine the optimal scheme among all the possible solutions. Such process, known as structural optimization, has been widely studied for decades, with rich academic literature showing its potential to dramatically improve the design process as well as outcomes [1]. More applications of structural optimization can be found in aircraft and automotive industries, generating lighter and cheaper design proposals. The same motivation can be spotted in the construction industry, as design efficiency is considered to be one of the major goals for engineers, architects and developers. The model described in Figure 1.1 is a simplified block diagram for the overall process of engineering projects. In actual practice, each block may have to be broken down into several sub-blocks to arrive at rational decisions. In any case, however, iteration will generally take place, when optimization concepts and methods are helpful for decision making. Along with appropriate aids from computer software, structural optimization can be useful in rapidly selecting various design possibilities. In brief, structural optimization is an approach using certain algorithms to seek an optimal solution to a structural engineering design problem represented mathematically. The design of a structural system can be formulated as a set of optimization problems, where one specific targeted performance is optimized while all the other requirements are satisfied. 13 Definition of the problem :aeak Invention of alternatve -- Figurel.1 - ova*m - -- OModfictio Overall design process for engineering projects Operations research has a very broad range of application. Any problem, in which a certain target is optimized while some constraints are satisfied, can be solved using operations research theories. And deterministic operations research is when all the parameters in the problem are certain. In this thesis, basic structural optimization problems are presented formulated and solved using operations research models, and all the discussion is restricted to deterministic level. However, the real situations are more complex, where indeterminacy often exists. Assumptions are important to simplify the problem, making it possible to be formulated mathematically and applicable for the available methods. Besides, economic considerations generally play the decisive role in reality. Most projects strive to achieve the most cost-efficient system, while satisfying the client's needs. In the practice, the entire design is generally broken down into several sub-problems and then treated independently using structural optimization. 14 aimulate the problem as an optimization problem CoSect dam -- cEsfinate inWal desip Colect data Estimate inste Analze system Check constraints Check prrmne Is the design satisfactory Analyze system i Yes Stp Yes Dt4< ] I ] 1 Does design satisf Co egne criteria Update design with optimization method Update design based on experience (b) (a) Figurel.2 -Comparison between (a) conventional design approach and (b) design method with structural optimization Figure 1.2 compares the conventional design method with the design approach utilizing structural optimization. Both methods involve iterations and have similar steps during the whole design process. The key differences lie in the starting step and the criteria for the final choice. 15 The optimal design method starts with formulating the optimization problem, with an objective defined and a series of constraints specified. During the iteration process, conventional method checks the design's performance. Once the performance criteria are met, the iteration stops and the final design scheme is filed. Termination of iteration for optimal design, on the contrary, is based on certain convergence criteria. When the termination criteria cannot be met, the conventional approach updates the design based on the designer's experience, intuition, or some simple mathematical analyses. Optimum design approach, on the other hand, updates using optimization concepts and procedures. Comparing the two approaches, the optimum design method is more quantitative, with a clear objective measuring the design's merits, and adopting trend information to make design changes. 16 1.2. Thesis Objective Ever since modem operations research arose during World War II [2], the field of study has been widely applied in various practical problems, including manufacturing industry, supply chain and financial engineering. In the civil engineering field, it is mostly studied and utilized in traffic analysis, transportation engineering and construction management. However, the problem of structural optimization is rarely approached and analyzed comprehensively through operations research. The objective of this thesis is to identify and solve structural optimization problems using operations research theories. All the operations research models employed in the thesis are deterministic. Simple structures, mainly truss system with discrete structural parameters, will be listed as a typical and simplified case representing a more general category of problems. 17 1.3. Thesis Outline The thesis is divided into five chapters. Chapter 2 covers the general problem formulation for structural optimization, including the methodology used in deterministic operations research, the mathematical model for general structural optimization problems, the three categories of SO problems and the problem formulation procedures. Chapters 3 to 5 then discuss the three major classes of structural optimization: sizing, shape and topology optimization. Simple structures are listed as examples to illustrate the application of operations research theories. Then particular examples are presented and abstract operations research models are formulated for the more general condition. Finally, conclusions and suggestions for future work are presented in Chapter 6. 18 Chapter2. Problem Formulation for Structural Optimization Overview This chapter provides more background information before going into specific problems. First, the methodology of deterministic operations research is covered. Then the general mathematical model for structural optimization problems and the three general categories of SO problems are presented. The general problem formulation procedures are discussed at the end of the chapter. 19 2.1. Methodology for Deterministic Operations Research Operations mean the activities carried out in an organization related to the attainment of its goals, and research is the scientific method to study the operations [3]. Operations research is the study of how to form mathematical models of complex science, engineering, industrial, and management problems and how to analyze those using mathematical techniques [4]. A general model of operations research methodology is illustrated as Figure 2.1. The main feature for operations research is to make decisions while achieve some objectives, for example, to maximize the profits or minimize the costs. Operations research is widely applied to manufacturing industry, logistics and supply chain. In the civil engineering field, more in-depth studies are often found in traffic analysis and transportation system design and project management. modeling Real-orldOR problems sohving models Methods sokuton interpretation Figure2.1 - General methodology for operations research Deterministic operations research is a division of OR, where all parameters are fixed. The opposite is called stochastic operations research, where some of the problem parameters are assumed random. Stochastic operations research requires robust modeling, leading to much more complex models. This thesis deals exclusively with structural optimization using deterministic operations research models. 20 As Figure2.1 suggested, one of the main step in operations research is to set up the OR model, which is a mathematical structure where problem choices are represented in decision variables [4]. The mathematical program looks to optimize some objective functions of decision variables subject to certain constraints that limit the possible choices. Assuming a maximization problem, a deterministic operations research model can be written in the most general form: max{f(x): x E S} (2.1) where, x is the vector of decision variables, f(x) is the objective function, S is the feasible set, where the values for the decision variables satisfy all the constraints. 21 2.2. General Mathematical Form for Structural Optimization Structural optimization is the subject of making an assemblage of materials sustaining loads in the best way [5]. Structural optimization is consistent with operations research in essence: certain structural performance is optimized while certain aspects are constrained. Typical measurements for structural performance include weight, stiffness, critical load, stress, displacement and geometry. Quantities usually constrained in structural optimization problems are stresses, displacements and/or the geometry. A structural optimization problem is formulated by picking one of these as an objective function that should be maximized or minimized and using some of the other measurements as constraints. Consistent with x and f(x) defined in 2.1, the general mathematical form of structural optimization can be written as min f (x) s.t.g (x) 0 (2.2) where, x is the decision variables, f(x) is the one scalar objective function, eliminating multi-criteria structural optimization from discussion, g(x) is the constraint functions, both equality and inequality, including design constraints, behavioral constraints and equilibrium constraints, where they are assumed to be present in the form of g (x) 5 0. 22 2.3. Classifications of Structural Optimization Problem The standard model for structural optimization problems can represent many different cases. Accordingly, the OR models used to represent them include unconstrained, constrained, linear programming, and nonlinear programming optimization problems. Many times these problems can be transformed into the standard model. In the context of SO, x generally represents some sort of geometric features of the structure. Based on the different decision variables x in a certain problem, SO can be divided into three typical classes of problem: sizing optimization, shape optimization and topology optimization. Sizing optimization is when decision variables x represent some structural thickness, for example, the cross sectional area of the member. In the case of shape optimization, x indicates the form of the structure, when connectivity and boundary conditions remain unchanged. Topology optimization is the most general case of structural optimization, where connectivity of the nodes is the decision variables, cross sectional areas can take the value zero. 23 XXXXX[X => (a). Sizing Optimization (b). Shape Optimization (c). Topology Optimization Figure2.2 -Three categories of structural optimization (Sigmund, 2004) Based on the decision variables x, a SO problem can also be categorized as continuous/ discrete-variable optimization problems. If x E R' (x belongs to the space R' of n-tuples of real numbers), the structure is a discrete parameter system and typical examples are trusses. For example, x is a finite number of cross sectional areas. On the other hand, if x is a field, indicating infinite numbers of degrees-of-freedom, it is a continuum problem for a distributed parameter system. An example would be the shape optimization for a continuous beam member and x is the cross sectional areas of the beam sections taking any values not less than zero. 24 2.4. Problem Formulation Procedures of Structural Optimization As indicated previously in Figure 1.2, the structural optimization approach is different from the conventional approach for its problem formulation as a structural optimization problem before the design process. The problem formulation involves translating the descriptive statements into mathematical statements. To set up the deterministic OR model for a structural optimization model, a general process with five steps can be applied. Stepi. Problem Description The problem formulation begins with the problem description, clarifying the overall objectives and requirements. In cases where the problem description is vague, assumptions about modeling of the problem need to be made in order to formulate and solve it. .Step2. Information Collection More information needs to be collected in order to develop the mathematical formulation of the problem. This includes information on material properties, performance requirements, resource limits, cost of raw materials, and so forth. Step3. Defining Design Variables The next step is to determine design variables x for the OR model. During identifying of design variables, a better problem formulation is constructed with a minimum possible number of, independent design variables. Step4. Defining Objective Function The objective function for the model is the function of design variables, being either maximized or minimized. It measures the merit of a given design. Step5. Constraints Formulation The final step in obtaining the OR model is constraints formulation. A meaningful constraint must be a function of the design variables 25 Chapter3. Structural Sizing Optimization Problem Overview This chapter talks about structural sizing optimization problem. The discussion starts with the weight minimization problem of the truss system, the discretized version of sizing optimization problem. Three simple truss structures under different constraint conditions are listed as examples to illustrate the application of operations research theories. An abstract operations research model is formulized for the general case of the sizing problem. Following it is linear programming and simplex algorithm, which is an efficient form of problem formulation and the corresponding search method for the optimal solution. 26 3.1. Weight Minimization of a Truss System The weight minimization problem is a typical sizing optimization problem. The discussion about structural sizing optimization will start with the discrete parameter systems, where the variables are finite dimensional. A truss structure is a naturally discrete parameter system [5]. Weight minimization of a truss system concerns finding the cross sectional areas of the bars. Despite the simplicity, it turns out that this category of problems display several representative features of structural optimization problems. The discussion of this question from the operations research perspective is illustrated with three two-bar truss models under different design constraints. 3.1.1. Two-Bar Truss System Subject to Stress Constraints A2, A1, L, L, E E F Figure3.1 - Two-bar truss system subject to stress constraints First consider the simple case of a two-bar truss system under a point load F and the goal is to minimize the weight under the stress constraint. Following the problem formulation , procedures as described previously, the decision variables are the cross sectional areas A1 , A 2 and the objective function is the total weight of the system. As the structure is statically determinate, the forces in the bar can be obtained directly from the equilibrium equations. Otherwise, a more general approach would be establishing a state constraint with the form K x u = F. Assume the two bars are of equal length and Young's modulus and the maximum tensile stress in the bar is ao. 27 The deterministic operations research model for the problem can be identified as, min f(AA2)= p x (A 1 x L + A 2 s.t. x L) Fcosa A1 Fsina A2 As the factor pL in the objective function is constant and does not affect the optimum answer, it can be left out and the constraints can also be further modified. The simplified OR model then becomes, minA 1 +A 2 F cos a s.t. A 1 > F sin a A2 > G Go This simple structural optimization problem is a typical case of Linear Programming where the requirements are represented in linear relationships. However, it is actually not common for SO problems to be formulized as LP. The simplicity of this problem results from the constraints and its statically determinate nature. The answer is intuitive, and can be interpreted as the stresses are at the maximum level and the material is fully utilized giving the optimal design state. F cos a GO F sin a A2* = T The problem can also be interpreted graphically as shown Figure 3.2. The feasible region is represented in grey for the decision variables A 1 , A 2 . And the objective function is plotted as 28 the linef (A 1 , A 2) = A 1 +A 2 = constant, moving within the feasible region trying to reach the minimum value. The solution is found when f (A 1 , A2) is given the smallest possible value that maintains part of the line in the admissible region. This coincides with the general conclusion of linear programming problem with a convex feasible region: the optimal solution is located at the edge of the feasible region. A2 st A*=F SmG A1 AIL wa Figure3.2 - Graphical representation of the optimization problem for the two-bar truss system subject to stress constraints The linear programming problem can also be implemented through MATLAB's Optimization Toolbox functions linprog. %%Weight minimization problem of a two-bar truss system %%Under stress constraint sigma = 50; F = 10; %ksi %kips alpha = 30; %Find x that %degree minimizes f(x) = x1 + x2 %subject to %xl >= F cos(alpha)/sigma0 29 %x2 >= F sin (alpha)/sigmaO 1]; [1; f = lb xl = F*cosd(alpha)/sigma; lbx2 = F*sind(alpha)/sigma; lb [lb_xl lbx2]; = % Returns the value of the objective function fun at the optimal solution x [x,fval] = linprog(f, l,[],[,[],lb) Optimization terminated. x 0.1732 = 0.1000 fval = 0.2732 30 Two-Bar Truss System Subject to Stress and Displacement Constraints 3.1.2. A,, L/cos(a), E a A2, L, 60 E F Figure3.3 - Two-bar truss system subject to stress and displacement constraints In addition to the maximum stress constraint in the previous problem, consider another SO problem with additional constraint with displacement. For the two bar truss system indicated as in Figure 3.3, the displacement at the tip in the vertical direction needs to be within the value 60. Assume the system has uniform material properties: the two bars have the same E 2 andp and a=30'. And 1, = TL, 2 = L. Same as the previous problem, the first step involves identifying the internal forces in the two bars. As the system is still structurally determinate, the internal force can be obtained directly. 12F -VF1 P =JP1 P2 Similarly, the constraint regarding the maximum stress can be formulated as: A, -,F >V3 A2 90 GO And the objective function is 2 f(A 1, A 2 ) = -A 31 1 + A2 Then, to construct the deflection constraint, one needs to utilize the Hook's Law, PL Substitute the corresponding P and L for barl and bar2, the elongations of the two members are V A 1E 1 -2 V-3FL 4FL A I 2E J The displacement of the free node can be determined based on the truss's geometry, FL ~= E lux U = tuy A2 8 3 VA, Imposing constraint on uY A21 80, E60 3 8 V-A 1 A 2 ~ FL The optimization problem can be summarized as the OR model as follows, 2 min f(A 1 , A 2 ) = -A 1 + A2 2F A,, GO V3F s~t. A2 > Ga 0 8 3 3. A2 E60 FL The design variables A 1 , A 2 don't appear in the constraint functions in a linear fashion. To linearize the constraint functions, substitute the variables and rewrite the OR model, 32 2F x1 = , X2 NFF A = 4 1 + 3x, - minf(xix2 ) = X2 4 S.t- +V3x2 7=x1 x1,x2 1 < > 0 the constraint Represent the problem graphically as in Figure 3.4. It shows that 4 NxX 2 1 is active. By setting Tx1 + VFx 2 = 1, the problem can be solved analytically. x2 'x4 Figure3.4 - Graphical representation of the optimization problem for the two-bar truss system subject to stress and displacement constraints The optimal solution, x1 x - -, x2 = - = 7 Substitute back to the original design variables, A*= A* 4 ,A4F __A* 33 = 7F 1 The constrained nonlinear multivariable function can be solved through MATLAB's Optimization Toolbox functions fmincon. function f = myfun(x) f = 4/3/x(l) + 1/x(2) %%Weight minimization problem of a two-bar %%Under stress truss system and displacement constraint %Formulate the linear constraints as the matrix inequality A-x <= sqrt(3); A = [4/sqrt(3) b [1;0;0]; = xO = [10;10]; = [x,fval] 50; F %kips 10; 0; 0 -1]; % Starting guess at the solution fmincon(@myfun,xO,A,b) sigma = = -1 %ksi Al = 2*F/sigma/x(l) A2 = sqrt(3)*F/sigma/x(2) 34 b 3.1.3. Two-Bar Truss System Subject to Stress and Instability Constraints I A 1 , L, E F A2 , L, E Figure3.5 - Two-bar truss system subject to stress and instability constraints Consider a truss with two bars of the same length L and Young's modulus E, placed at right angle as shown in Figure 3.5. The force F >0 is applied at an angle a = 300. The problem is to find the circular cross-sectional areas A1 and A 2 such that the weight of the truss is minimized under constraints both on stresses and Euler buckling. The weight of the truss is f(A 1 , A 2 ) = A1 + A 2 The internal forces in the two bars as F P= I =P1 I-21 With the stress constraints as VNF 2aO A2 > 35 F 2- As the second bar is in compression under the load F, imposing a stability constraint against Euler buckling with a safety factor of 3. The buckling load for a column simply supported at both ends is 2 7 PC= EI L2 Assume the bar is of circular cross section, the moment of inertia, A2 - I= 47 The second bar has to be stable against Euler buckling for a safety factor of 3, F -%F2 PC 3 w2 E w2 E -3L =IL2 - 3L 2 x A2 wE 2 -- = 1 A 4w 12!2 Therefore, the instability constraint regarding design variable A 2 can be formulated as A2 2 >12F L2 The OR model for the sizing optimization problem under stress and instability constraints is min f (A 1 , A 2 ) A1 s.t. A2 A1 + A 2 V F 2a2co F 2 = 12FL2 A2 > According to the OR model, it can be inferred that the optimal answer will depend on the Fand relative values of -andF FL2 r whether the second or the third constraint will be active. 36 3.2. Abstract OR Model for Sizing Optimization Problems Sizing optimization problems have a large number of different situations. Typically in practical design optimization for a discrete parameter system the goal is to find the minimum cost or weight by selecting the cross-sectional areas of structural members. Meanwhile, the final design needs to satisfy strength and serviceability requirements determined by standard design codes. For a given truss structure composed of N members, the deterministic operations research model can be stated as follows, (3.1) N min W =piLiAi s. t. gi, si, di,k 0 In the OR model, the design variable is A = [A 1 , A 2 , ... ,AN ]T represents the cross sectional arears for N members of the structure. The objective of the problem is to find the optimal vector A such that it minimizes the weight objective function W = EN, piLiAi, where W is the overall weight of the structure, pi, Li is the unit weight and length of the i-th member. The objective function is achieved while satisfying the design constraints consisting of the overall structural response and behaviors of the individual members. gi, si, dj,k represent the optimization constraints on stresses, slenderness ratios and displacements; gi = -1 <0; 1 si = ( dj,k = i = 1,..., N (ci)all ' (6j,k )aii 0; - 1 5 0; 37 i = N i = 1, ... , N Where a-, (a-)all is the computed and allowable axial stress for the i-th member; Ai, (i)au 6j,k, is the slenderness ratio and its upper limit for the i-th member; 6 ( j,k),ll is the displacement computed in the k-th direction of the j-th joint and its allowable value and N is the number of joint. 38 3.3. Linear Programming and Simplex Method The importance of operations research in business and industry is due to the enormous numbers of real-world applications that can be modeled as mathematical programs, and in particular, as linear programs [4]. Linear programming, also called linear optimization, is a method to achieve the best outcome in a mathematical model whose requirements are represented by linear relationships. As shown in the previous examples, LP plays a major role in sizing optimization problem: the objective and constraint functions can generally be formulized directly as linear functions of design variables A = [A 1 , A 2 , ..., AN]T or indirectly be converted to LP through linearization. Invented by George Dantzig in 1947 [6], simplex method is a specialized version of the general search algorithm that is designed to take advantage of the properties of linear programs. As the previous graphical methods of sizing optimization problems suggested, the optimal answer only happens at the corner of the feasible region. The basic idea of the simplex method is to start at a corner of the feasible region followed by visiting neighboring corners that improve the objective. The corner points are referred to as basic feasible solutions (BFS) in OR problems. Figure3.6 - Graphical representation of simplex algorithm as a 3D polyhedron (Image from Wikipedia, Simplex Algorithm) 39 The MATLAB function 'linprog' implements the simplex algorithm to solve linear programming. By determining the A and B matrix, it solves linear programming problem minimize f(x) = cT x subject to Ax B. The simplex algorithm operates on linear programming in standard form max cTX ts.t. Ax = B,x (3.2) 0 with x = [x 1, x 2 , --- xn] as the variables of the problem, c = [c 1 , c 2 , --- rall A = ... ami , cn] as the coefficients of the objective function, 1i ... -.. ... ... , the m x n matrix as the coefficients of the constraint functions, amn B = [bl, b 2 , ... , bm], bi 0, non-negative constants. 40 The general searching algorithm of the simplex methods is Identify an initial BFS Construct simplex direction No Is simplex direction Yes Check ifunbounded improving? Yes No Stop LP is unbounded Stop Current solution is optimal Figure3.7 - Flowchart for the simplex algorithm The sizing optimization problems generally fall into the category of linear programming by nature: the objective function as well as the constraint functions are mostly linear functions of the design variables A = [A 1 , A 2 , ..., AN ]T. Therefore, formulating the problem as an LP and solving with simplex method can greatly improve the computational efficiency, especially for high-dimensional problems. 41 Chapter4. Structural Shape Optimization Problem Overview Shape optimization is part of the field of optimal control. The typical problem is to find the shape which is optimal minimizing a certain cost function and satisfying a few given constraints. In many cases, the function being solved depends on the solution of a given partial differential equation defined on the variable domain. This chapter discusses the shape optimization problem by presenting how to represent the shape mathematically and formulize the constraint functions about continuity on the curve. And the end of this chapter will talk about how to formulize the OR model for the general shape optimization problem. 42 4.1. Shape Representation Dealing with shape optimization problem through OR method requires representing the shape of the structure mathematically. A typical way to achieve this is to adopt polynomial functions of the design variables to describe the boundary. A complex geometry can be represented from a high-order polynomial function or with a low-order piecewise polynomial function. It shows that better results are obtained with low-order splines for shape optimization, while boundaries from higher-order polynomial tend to become highly oscillatory [7]. Similar to drawing a spline in AutoCAD by determining a series of points, the idea of shape representation is to define the spline using a number of control vertices, of which their coordinates will change during the iteration process. The control vertices are shown in Figure4. 1. Vi = t~j, i = 0, 1, 2, ... V2 V0 Figure4.1 - Control vertices of a spline curve Besides using control vertices to represent the spline curve for the shape function, design variables ai are introduced to determine the coordinates of the control vertices. To limit the control vertices to move within a certain space, propose two end points Vin = [x '"i yff V max [[<ax y!ax T 43 ]T Therefore, the control vertices will move within the span as indicated in Figure 4.2. Sa-=1 V.I ai=0 Figure4.2 - Moving space for the control vertex Vi Define the constant vector Li = Vimax - vmin The location of vertex Vi can be represented with regard of design variable ai as V, = Vmin + aiLi, 0 : ati 1 (4.1) Bezier and B-splines are two types of piecewise low-order splines commonly used for shape representation. Detailed introduction is followed in the next session. r(u) is adopted representing the shape function in terms of design variables u. 44 4.1.1. Bezier Spline Following the idea in (4.1), define design variable u as 0 5 u ! 1, a straight line can be described with two control vertices and this is the 1 " degree Bezier Spline, r(u) = (1 - u)V + uV (4.2) For a more complex curve, a higher order Bezier Spline [8] is required for shape representation. As implied from (4.2), a Bezier Spline with n degrees has n+1 control vertices. The coefficients for the control vertices are called Bernstein polynomials and defined as (for an n-degree Bezier Spline): Bi,,,(u) = n) u(1-U)n-i =. __ n__ .U' t(n - t . (1 - U)n-i (4.3) 1 (44) An n-th degree Bezier Spline is n r(u) = Bi,n(u)Vi, i=O 0 5 u The design variable u is a scalar variable ranges from 0 to 1 and one u value corresponds to a specific point on the spline. 45 Examples for the first three degree B'zier Splines: (0 u 1) For n = 1, Bu,1 = UO(1 - U)1-0 = 1 - u B1!=u'(1 - u)1-1 = u r(u)= (1 - u)VO + uV For n = 2, BO,2 2! B1,2 2! u(1- u)2-- = (1 - u) 2 B2 ,2 - r(u) = (1 u'(1 2! - 2 u 1(1 -u) - - 1 = 2u(1 - u) U)2-2 = U 2 u) 2 V0 + 2u(1 u)V 1 + u 2V 2 - For n = 3, BO 3 u (1 - u) 3 -0 = (1 - u) 3 B 1,3 = u (1 - u) 3 -1= 3u(1 - u) 2 B 2,3 = u 2 (1 - U 3 2!3! S21(3-2)1 B 3,3 = r(u) =( -- )3 3! 3!(3-3)! u 3 (1 + 3u(1I - )V 46 2 = 3u 2 (1 u) 3 - 3 = - u) u3 + 3&21-u u33 4.1.2. B-Spline An alternative method of shape representation is B-Splines [9]. Different from Bezier Splines, the degree and the number of control vertices of B-Splines are independent. And in Bezier Splines, a change of one control vertex will result in an entirely-different curve. B-Splines, on the other hand, have better local control: moving one control vertex will only change a part of the spline. An n-degree B-Spline with m+1 control vertices is defined as m r(u) = Bi,(u)Vt,i 0 u<1 (4.5) i=O There are also a series of given scalar called knots: t1 , t2 , t 3 -... . .. . The knot sequence T containing the knots is defined as --- ,1. tm, 1, ... ... ,I 0 tn+1, ... ,. T = {0,. ... ... (4.6) And tn+1 5 .. !5 tm The number of the knots is (n + m + 1) and the fist (n + 1) knots are 0 and the last (n + 1) knots are 1. A uniform knot vector means that the intermediate part of the knots { tn+1 , ... ... , tm, 1 } is evenly spaced. 47 The coefficients for the control vertices are called B-spline basis functions and defined as (for an n-degree B-Spline,n > 1): U - t ( Bix 1 (u) + ti+n+1 - U Bi,n(u) =ti+n - ti ti+n+1 - ti+1 if ti :5 U < ti+1 10 (4.7) otherwise For ti+n - ti = 0, ti+n+1 - U B i ,n(u) = ti+n+1 - Bi,n-1(U) ti+1 For ti+n+l - ti+1 = 0, Bix,(u) = ti+n - ti Bi,,Ju) The definition is recursive, involving Bi,_ 1 (u)and Bi+1,n-1(u). One special case to be noted is when n = 0, Bj, 0(u) = 1 if ki u< k 1 otherwise (4.8) MATLAB has function spmax in the Curve Fitting Toolbox putting together spline in B-form. Assume a 3 rd degree B-Spline has 8 control vertices (n = 3, m = 7), and the number of knots is n + m + 2 = 12, Vo= {, V1 = { }, V2 = {4), V3 = f 5, V4 = f 5, V5 = { 6, V7 = 48 t(3, V8 = to8 Construct the B-Spline with spmax using four different knot sequences, %%Construct c = [0 0; a 3rd degree B-Spline using different 1 2; 2 1; 5 1; 5 4; 6 6; 7 3; 8 01.'; knots sequences %Control Vertices = [0, 0, 0, 0, 1/5, 2/5, 3/5, 4/5, 1, 1, 1, 1]; %Single knot t2 = [0, 0, 0, 0, 1/4, 1/4, 2/4, 3/4, 1, 1, 1, 1]; %Double knot t3 = [0, 0, 0, 0, 1/3, 1/3, 1/3, 2/3, 1, 1, 1, 1]; %Triple knot t4 = [0, 0, 0, 0, 1/2, 1/2, 1/2, 1/2, 1, ti spl = spmak(tl,c); sp2 = spmak(t2,c); sp3 = spmak(t3,c); sp4 = spmak(t4,c); figure subplot (2,2,1) fnplt (spl) hold on plot(c(1,:) ,c(2, :),':ok') title ('B-Spline with single knots') subplot (2,2,2) 49 1, 1, 1]; %Quadruple knot fnplt (sp2) hold on plot(c(1,:),c(2,:),':ok') title('B-Spline with double knots') subplot (2, 2, 3) fnplt (sp3) hold on plot(c(1,:),c(2,:),':ok') title ('B-Spline with triple knots') subplot (2, 2, 4) fnplt (sp4) hold on plot(c(1,:),c(2,:),':ok') title ('B-Spline with quadruple knots') 50 The figures constructed from MATLAB, B-Spline with single knots_ 6 4 4 Ck 2 01 W1 2 B-Spline with double knots 6 -f . 4 6 2 L 8 0 2 4 6 8 B-Spline with quadruple knots B-Spline with triple knots 7 6 4 4 2 2 A ~J 0 2 4 6 ~;.v- 0 8 2 4 6 Figure4.3 - 3 rd degree B-splines constructed with different knots sequences As indicated in Figure 4.3, the knot sequence has influenced the shape of the curve. Knot sequence with multiplicity r is continuous at the points on B-Spline corresponding to control vertices Vn-r. B-Spline with single and double knots are continuous for the whole spline, but B-Spline with quadruple knots is discontinuous. 51 4.2. Geometric Design Constraints After defining the splines mathematically, certain constraints on the control vertices have to be imposed so that the boundary of the structure can achieve a desired degree of smoothness. Continuity of the curve is a very important criterion and two constraints of continuity are discussed as follows. 4.2.1. Nodal Sensitivity and Spline Continuity Solving SO problem generally involves differentiating the objective and constraint functions with respect to the design variables. The derivatives are referred to as sensitivities. Nodal sensitivity is the derivative at the spline's endpoints. It is important for shape optimization problem as it is related to the continuity of the boundary curve. Differentiating (4.4) leads to the nodal sensitivity of the Bezier Spline dr(O) = n(V1 - VO) du = n(V, - V_ 1 ) dr(1) du (4.9) (4.10) This indicates that Bezier Spline's nodal sensitivity only depends on the first two control 1 . vertices V1 , Vo and the last two control vertices Vn, V,_ Similarly, differentiating (4.5) leads to the nodal sensitivity of the B-Spline, which is also only related to the first and the last two control vertices. dr(O) n (V 1 -V 0 d = ) du tn4 i n dr(1) du (4.11) - l tm (V-Vn- 1 ) 52 (4.12) 4.2.2. Continuity between the Splines As discussed above, generally for complex shape boundary representation, lower-order piecewise polynomial functions are adopted rather than one single high-order polynomial function. Therefore, the continuity between the two different splines at the joint control vertices should be formulated as a constraint function for the problem. Yr VIV Figure4.4 -Two linked 3 rd degree Bezier splines Figure4.4 shows two 3 rd degree Bezier Spline joining at control vertex V. The parameters for the left spline are denoted with "I" and right spline with "r". According to (4.9) and (4.10), the curve is continuous at the joint if nl(V - VI) = nr(Vr - Vj) (4.13) Particularly for two splines with the same degree joining together, the joint control vertex is located right between the two control vertices from the two splines. V = Vi + Vr 2 53 (4.14) 4.2.3. Continuity on the Point of Symmetry link Symmetry is a common feature for the structure. As shown in Figure 4.5, the two splines together on V, which is located on the axis of symmetrical. Besides, as the left and right splines are symmetrical, they should be of the same degree. Figure4.5 -Two symmetrical 3 rd degree Bezier splines Assume x1 = 0, therefore To achieve both continuity and symmetry, the location of V and V should satisfy the two requirements at the same time, + Vr Vi V= V;= 2 xi = -xr, Y1 = Yr This indicates that the y coordinates for V, , Vr and V 54 are the same YI = Yr = yj Vi = Y. V, , , V;= {. -xrIj Similar to (4.1), define L, , LY for both x and y coordinates but with the same design variable ai, x, =x + a1 Li,x, 0 ai 1 (4.15) y,= yi + aiLi,y, 0 a 1 (4.16) Therefore, Xi = xlnin + Liy (y-i_), 0 0! 1 a (4.17) 1 According to the relationship established previously, V = [Xr yr]T can be expressed in terms of aj for V. = yjTin + a Ljy, 0 Yr = Y x= r xrmin r = x;"?l + LX (Yr Lr,y + ~ (y 7 55 (4.18) a 5 1 (4.19) - yrif) + aj L1 , - yrVu'), 0 ! a1 1 4.3. Abstract OR Model for Optimal Shape Design Problems The typical problem of shape optimization is to find the shape which is optimal and minimize certain cost functions while satisfying given constraints. An abstract optimal shape design problem can be modeled as a deterministic operations research model, Find a* E U fs.t. J(fl(a*), u(a*)) ;J(Q(a),u(a)) (4.20) Va E U In the OR model, a represents the design variables which has the admissible domain U. And fl(a) represents the curve defined by the design variables a, which is the optimization objective. Following the definition U, fl(a) E S stands for are all the curves within a certain boundary of variation. And since fl(a) is solely characterized by a, there exists a one-to-one correspondence between S and U. S= ffl(a) I a E U} Uniquely determined for a given , (4.21) u(a) is defined as the state variable, representing the structure's response including displacements, stress, strain and force. V = fu(a) I a E U} (4.22) And the cost function is determined as J(f, u) E R, fl E S, u E V (4.23) As described previously, fl represents the form or contour of some part of the structural boundary. It is noted that the state problems for a solid shape are described by a set of partial differential equations. The shape optimization consists in choosing the integration domain for the differential equations in an optimal way. Therefore, different from sizing optimization problems controlling the parameters, shape optimization is concerned with the control of the equation domain. 56 Chapter5. Structural Topology Optimization Problem Overview This chapter gives a brief introduction to the formulations and solving techniques for topology optimization problems of elastic structures. As a starting point, the problem is focused on the structures with discretized parameters. Then a general case for continuum is discussed and the corresponding OR model is proposed. 57 5.1. Problem Formulation for Minimum Compliance Truss Design Different from sizing and shape optimization problems, topology optimization problems seek to find the optimal layout of a structure within a specified region: structural features including numbers of elements, shape of voids and connectivity of the domain [10]. Generally, the problem is formulized under some given loading, support conditions, total volume of the material and other possible design constraints. One major type of topology problem is minimum compliance design optimizing the structure for the maximum global stiffness. Compliance is defined as the property of a material undergoing elastic deformation and is equal to the reciprocal of stiffness [10]. Instead of formulating the objective function directly, using compliance FTu has the advantage of being a convex function of the design variables. Topology optimization problem can be treated as a special case of sizing optimization, when the sizes can take zero values. In a truss structure with a fixed set of nodal points, the lay-out can be determined by regarding all connections between the nodes as potential or non-existent members. This approach to topology optimal design is known as the ground structure approach [10]. Assume n possible connections between a set of chosen node points, and that all bars are made of the same linear elastic material with Young's modulus E. The deterministic OR model for minimum compliance truss design with a limit on the total amount of material is, min F u (5.1) Ku= F Vmax liAi S. t. <A<=1 n 1ATn" < Ai !! Ain, 58 i= i =,,..,n 2 where, u is the displacement vector, F is the given force vector for the external loadings, K is the system stiffness matrix and K = Z' ki ki is the element stiffness matrix in the global coordinate system, n is the number of elements, A = [A 1, ... , An] is the design variables, with Ai as the cross-sectional area of the i-th element and is within a certain range [Af n, Afax], 1i is the length for the i - th element, and Knax is the maximum volume of the material for the truss system. The above OR model is the discretized version for topology optimization problem. If the lower bound of the design variables Af n is non-zero, the system stiffness matrix K determined from A = [A 1, ... , An] is positive definite and the existence of the solution is assured [10]. Allowing zero lower bounds may complicate the analysis. Besides, it is noted that every load case F will give rise to a distinct structure topology lay-out. Then topology optimal design under multiple load cases should be reformulated as the problem of worst case minimum compliance design. 59 5.2. Abstract OR Model for Minimum Compliance Design Problems The OR model for the minimum compliance truss design is the discretized version of the topology optimization problem. For the general problem formulation with continuous structural parameters, consider a structure existing on a reference domain fl occupying the domain fo. Define the boundary of the structure as &I = F, and Ft to be the part of the free boundary and F, to be where the structure is connected to the support with no deflection. The structure experiences external loadings and the force per unit length is t(x) for x E Ft. The material layout is represented by the density distribution p(x) for x E fl, which is also the problem's design variable. Figure5.1 -Two-dimensional elastic domain fl Similar to FTu representing compliance for the discretized parameter case, the compliance of the continual system is given by, C(u) = fr tTu The total material volume can be obtained by integrating over the whole domain fl. 6o (5.2) f (5.3) p(x) dfl = Vmax The strain energy of a continuum is defined as E(p, u, u)=2f, p e(u)dfl (5.4) where e (u) is the specific strain energy: if fl is two-dimensional, e (u) is the strain energy per area; if f is three-dimensional, e(u) is the strain energy per volume, E(p, u, u) represents the total strain energy in the entire structure. And the set of admissible displacements is defined as U={u:*I>R2|u=0onu} (5.5) Utilizing the virtual displacement method, the OR model of minimum compliance design for continuous parameters can be formulized as, min C(u) (5.6) u e U s.t. E(p,u,v) = C(v) for all v E U S. t. f p(x) dl <V ax for all x E E p(x) > 0, A typical approach to solve the problem is to discretize the structure using finite elements [11]. Assume the material property E is constant in each element. The discrete form of OR model for topology optimization problem can be written as { min F u Ee E Ead is. t. K( E,)u = F, 61 (5.7) where, u is the displacement vector, F is the force vector, Ee is the stiffness of the element (e = 1,2, ... , N), Ead is the admissible stiffness tensors set, K is the system stiffness matrix and K = EN ke ke is the global-level element stiffness matrix, which depends on E,, N is the number of finite elements. 62 Chapter6. Conclusions Overview This chapter summarizes the discussion from the previous chapters with the conclusions for the thesis. Besides, suggestions for future studies are provided for potential continuing exploration and extension of this study. 63 6.1. Conclusions Following the discussion in the previous chapters, a few conclusions can be drawn from this study of application of deterministic operations research for structural optimization: 1. Operations research provides mathematical insights for structural optimization problems. The theories are of significant value for solving high-dimensional structural optimization problems. 2. Appropriate mathematical model formulization is crucial for solving the problem efficiently. 3. It is very important to utilize the properties of convex set and convex function. If the feasible region can be formulized as a convex set, or the objective function as a convex function, the search for the optimal solution will be much more efficient. 4. Linear programming can be solved very efficiently for its embedded properties of having a convex feasible region. Simplex algorithm can be utilized accordingly to find the optimal answer. 5. Linearization is a common technique to simplify the operations research models. The goal for representing the structural optimization problems mathematically is to try to formulize the problem directly or indirectly as linear programming models. 6. To solve the structural optimization problems with continuous properties, one typical approach is to discretize the structures using finite elements. 64 6.2. Suggestions for Future Studies The entire discussion of structural optimization through operations research here is limited to deterministic level. While in real situations, uncertainty always takes place and the mathematical formulations need to be altered accordingly. The operations research including indeterminacy is referred to as stochastic operations research and solving requires robust modeling. Robustness means the ability of a system to resist change without adapting its initial stable configuration [12]. Julia is a high-level, high-performance dynamic programming language for technical computing [13]. Development of Julia began in 2009 and an open-source version was publicized in February 2012 [14]. Its syntax is similar to other technical computing environments, like MATLAB or Python. For potential future studies about structural optimization through robust modeling, the mathematical models can be fed into Julia, utilizing its built-in robust modeling solving algorithms. 65 BIBLIOGRAPHY [1]. Clune, R. (2013). Algorithm Selection in Structural Optimization. MassachusettsInstitute of Technology LibraryArchive, Doctor of Philosophy Thesis in the Field of Civil Engineering and Computation. [2]. Shrader, C. (2006). History of operations research in the United States Army. Washington, D.C.: Office of the Deputy Under Secretary of the Army for Operations Research, U.S. Army:. [3]. Charnes, A. (1964). The attainment of organization goals through appropriate selection of sub-unit goals,. [4]. Rader, D. (2010). Deterministicoperationsresearch:Models and methods in linear optimization. Hoboken, N.J.: John Wiley & Sons. [5]. Christensen, P., & Klarbring, A. (2009). An introduction to structural optimization. Solid Mechanics and Its Applications, 153. [6]. Maros, Istvain; Mitra, Gautam (1996). "Simplex algorithms". In J. E. Beasley. Advances in linear and integerprogramming. Oxford Science. pp. 1-46. MR 1438309. [7]. De Boor, C. (1978). A practical guide to splines: Applied mathematical sciences (Vol. 27). New York: Springer-Verlag. [8]. Hazewinkel, Michiel, ed. (2001), "Bezier curve", Encyclopedia of Mathematics, Springer, ISBN 978-1-55608-010-4 [9]. Zorin, Denis (2002), Bezier Curves and B-splines, Blossoming (PDF), New York University, retrieved 4 January 2015 [10]. E, M., & Sigmund, 0. (2003). Topology optimization: Theory, methods, and applications. Berlin: Springer. [11]. Waqas, S., Lu, H., & Fan, Y. (n.d.). Topology Optimization- Problem Formulation and Pragmatic Outcomes by integration of TOSCA and CAE tools. Proceedings of the World Congress on Engineering and Computer Science 2008 WCECS 2008, October 22 - 24, 2008, San Francisco, USA. [12]. Wieland, A., & Wallenburg, C. (n.d.). Dealing with supply chain risks: Linking risk management practices and strategies to performance. International Journal of Physical Distribution & Logistics Management, 887-905. 66 [13]. A Summary of Features. (n.d.). Retrieved May 8, 2015, from http://julialang.org/ (n.d.). Retrieved Julia. [14]. Why We Created http://julialang.org/blog/2012/02/why-we-created-julia/ 67 May 8, 2015, from