Integer Programming Techniques

Chapter 5
Integer Programming Techniques
In the previous chapter we illustrated the use of two simple integer programming techniques
for the design of laminates subject to in-plane stiness requirements. One method, enumeration, has general applicability beyond in-plane stiness design, but for most problems it is
too computationally expensive. The second method, Miki's lamination parameter diagram,
can be generalized to a few other problems, but cannot handle many problems of interest. The objective of the present chapter is to describe methods which are more generally
applicable to the design of laminated composites.
Section 5.1 describes the formulation of linear integer programming problems. This class
of problems has been studied extensively by developers of optimization methods, and ecient algorithms which are guaranteed to nd the global optimum are available. Section 5.2
shows how in-plane stiness design problems, of the type discussed in the previous chapter, can be formulated as linear integer programming problems. Section 5.3 describes the
branch-and-bound algorithm, which is the most popular general algorithm for linear integer
programming.
For problems that cannot be formulated as linear integer programming problems, algorithms that deal with nonlinear integer programming problems must be used. Such algorithms have not reached the level of eciency and reliability achieved for linear problems.
Furthermore, the choice of algorithm is highly problem dependent. We chose to concentrate
on a single class of algorithms, genetic algorithms, with which we had extensive and good
experience in the design of composite laminates. Additionally, genetic algorithms are fairly
easy to implement and to tailor to the particular laminate design problem at hand. Section 5.4 provides an introduction to genetic algorithms and their application to composite
laminate design.
143
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
5.1 Integer Linear Programming
An optimization problem is called a Linear Programming (LP) problem if the objective function and the constraint functions are linear functions of the design variables. The standard
form of an LP problem is
minimize
f (x) = cT x
such that
Ax = b
(5.1.1)
x 0
where c is an n 1 vector of constant coecients, A is an m n matrix of constraint
coecients, and b is an m 1 vector of constants. Note that the sign of the design variables
are restricted to be positive in the standard form. Some commercially available LP codes
are also restricted to handle positive valued design variables. If a variable is to have an
unrestricted sign, then the standard procedure is to replace it with the dierence of two
positive variables. For example, an unrestricted design variable xi is replaced by two new
variables, as
xi = x+i ; x;i
where both x+i and x;i are limited to be positive, but depending on relative magnitudes of
the two the outcome may yield a positive or a negative value for the variable xi . A disadvantage of the approach just described is the doubling of the number of design variables.
If the designer has a good idea of the lowest possible value of the variable that can assume
negative values, then more practical approach is to dene the new variable by adding a
positive constant C to the variable with an unrestricted sign,
xpos
i = xi + C
where C is greater than the absolute value of the lowest possible value of the unrestricted
variable.
More general LP problems allow design variables of unrestricted signs and general inequalities. However, frequently the values of the design variables are restricted not exceed
or drop below values that are dictated by either availability of the resources or physical
limitations. Such upper and lower bounds on the design variables are often treated dierently than constraints that involve more than one design variable. The bounds, therefore,
are often written separately. The general LP problem is
minimize
f (x) = cT x
such that
Ax b
(5.1.2)
x xU
x xL
144
5.2. IN-PLANE STIFFNESS DESIGN AS A LINEAR INTEGER PROGRAMMING PROBLEM
where xU and xL are the vectors of upper and lower bounds for the design variables. This
more general form of LP can be converted to the standard form by change of variables.
This standard form is then solved by a variety of solution techniques, most notably the
Simplex method. The reader is referred to, for example, Arora (1989) for more information
on solution of LP problems.
In the case of LP problems encountered in laminate design problems, some or all of the
variables of a LP problem are restricted to take only integer values. If all the variables are
so restricted, the problem is called an integer linear programming (ILP) problem or pure
ILP problem. If some of the design variables are allowed to be continuous, the problem is
referred to as mixed integer linear programming (MILP) problem, and its standard form is
minimize
f (x) = cT1 x + cT2 y
such that
A1x + A2 y = b
(5.1.3)
xi 0 integer
yj 0 :
It is also common to have problems where design variables are used to indicate a yes-orno type decision-making situation. Such problems are referred to as zero/one or binary ILP
problems. For example, as we will demonstrate later in Chapter 8, in a laminate stacking
sequence design the presence of a layer with a specied ber orientation (or its absence)
can be represented by a binary variable. Many programs for the solution of ILP programs
permit the user to specify that some of the variables are binary.
Most of the remaining discussion in this chapter assumes problems to be pure ILP.
5.2 In-plane Stiness Design as a Linear Integer Programming Problem
Linear Programming (LP) problems have been important in management, economics and
engineering for many years. As a result, ecient software for solving LP problems is readily available and, therefore, there is a substantial incentive to formulate laminate design
problems as LP problems. A quick review of the in-plane stiness problem reveals that
certain in-plane laminate properties are indeed linear functions of the design variables. For
example, from Table 2.1 and Eq. (2.4.31) we see that the elements of the in-plane stiness
matrix A,
A11 = h(U1 + U2 V1 + U3 V3 )
A12 = h(U4 ; U3 V3 )
A22 = h(U1 ; U2 V1 + U3 V3 )
A66 = h(U5 ; U3 V3 )
(5.2.1)
145
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
are all linear functions of the in-plane lamination parameters V1 and V3 . Furthermore, it
is demonstrated in the following that for laminates with prescribed ber orientations, it is
possible to express the in-plane lamination parameters as linear functions of the number of
layers of a given orientation.
Restricting ourselves to balanced symmetric laminates, we rewrite Eq. (4.2.4) by expanding the summation over each layer in one half of the laminate
V1 = 2(v1 cos 21 + v2 cos 22 + v3 cos 23 + : : : + vN=2 cos 2N=2 )
V3 = 2(v1 cos 41 + v2 cos 42 + v3 cos 43 + : : : + vN=2 cos 4N=2 ) : (5.2.2)
In this representation, the volume fractions of individual layers vi , i = 1 : : : N=2, are equal
to the ratio of the thickness of a layer, t, to total laminate thickness, h. Therefore, in the
common case when all layers have the same thickness t,
V = 2t (cos 2 + cos 2 + cos 2 + : : : + cos 2 )
1
2
3
N=2
h
V3 = 2ht (cos 41 + cos 42 + cos 43 + : : : + cos 4N=2 ) :
1
(5.2.3)
If several of the individual layers are made up of the same orientation angles, say np layers
with p, and nq layers with q , then Eqs. (5.2.3) take the following form
V = 2t (n cos 2 + n cos 2 )
p
q
q
h p
V3 = 2ht (np cos 4p + nq cos 4q ) :
1
(5.2.4)
For a constant thickness laminate with specied values of the ber orientations p and q ,
the cosine terms are constants and, therefore, the in-plane stiness parameters are linear
functions of the number of layers np and nq . Hence, the elements of the in-plane stiness
matrix A are also linear functions of the number of layers. When the laminate thickness is
not constant, the lamination parameters are not linear functions of the number of layers,
but the in-plane stiness coecients are still linear, because the h in the denominators in
Eqs. (5.2.4) cancels the h in Eqs. (5.2.1)
For example, consider a balanced symmetric laminate which contains only 0 , 45 ,
and 90 layers. The in-plane lamination parameters are given by
(5.2.5)
V = 2t (n ; n ) and V = 2t (n ; 2n + n )
1
h
o
n
3
h
o
f
n
where no is the number of 0 layers, nn is the number of 90 layers, and nf is the number
of 450 layer groups in half of the laminate. The thickness of the laminate may be written
as
h = 2t(no + 2nf + nn) :
(5.2.6)
146
5.2. IN-PLANE STIFFNESS DESIGN AS A LINEAR INTEGER PROGRAMMING PROBLEM
Substituting this expression into Eq. (5.2.5) we see that the in-plane stiness parameters
V1 and V3 are no longer linear in the numbers of layers of distinct orientation angles.
However, the coecients of the stiness matrix are still linear functions of the number of
layers. Substituting the in-plane stiness parameters into Eqs. (5.2.1) yields the following
expressions for stiness coecients
A11 = 2 t (no + 2nf + nn) U1 + (U2 + U3 ) no ; 2U3 nf + (U3 ; U2 )nn]
A22 = 2 t (no + 2nf + nn ) U1 + (U3 ; U2 ) no ; 2U3 nf + (U3 + U2 )nn]
A12 = 2 t (no + 2nf + nn) U4 ; U3 (no ; 2nf + nn )]
(5.2.7)
A66 = 2 t (no + 2nf + nn) U5 ; U3 (no ; 2nf + nn)] :
The weight of the laminate is proportional to the total laminate thickness h which we
have seen is a linear function of the number of layers. Thus, we can formulate as LP any
in-plane design problem which involves the weight and linear expressions in the elements
of the A matrix.
The eective engineering elastic constants are not linear functions of the numbers of
layers, but two of them, the laminate shear stiness Gxy and the Poisson's ratio xy , can
be used to formulate linear constraints. For example if we require that the laminate has a
d , using Eqs. (2.4.38) and (5.2.7) we can
Poisson's ratio larger than a certain value xy xy
impose the following linear constraint
d (n + 2n + n )U + (U ; U )n
(no + 2nf + nn)U4 ; U3 (no ; 2nf + nn)
xy
o
n 1
3
2 o
f
;2U3 nf + (U3 + U2)nn] :
(5.2.8)
This equation may be rearranged in the standard form of an inequality constraint as
;U4 ; U3 ; xyd (U1 + U3 ; U2 )]no ; 2U4 + 2U3 ; xyd (2U1 ; 2U3 )]nf
; U4 ; U3 ; xyd (U1 + U3 + U2 )] 0 : (5.2.9)
Most in-plane laminate design problems can be usually classied as weight minimization
or stiness maximization. In the weight minimization problem, we minimize the weight
of the laminate, which is equivalent to minimizing the thickness when the laminate is
made from a single material. Constraints are placed on the stinesses and occasionally
on the maximum or minimum percentages of layers of given orientation. In the stiness
maximization problem, the objective function is one of the stiness properties, while the
weight, or the thickness, or the total number of layers are specied. Additional stiness
and layer percentage constraints may also be present. The following example demonstrates
a stiness maximization problem. The weight minimization problem is left as an exercise
(see Exercise 1).
147
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
Example 5.2.1
For a 16 layer balanced symmetric laminate, formulate the problem of determining the number
of 0 , 45 , and 90 layers to maximize the stiness coecient A11 while keeping the shear
stiness Gxy of the laminate larger than 12 GPa, and A22 larger than 20 MN/m. The properties
of individual layers are E1 = 76 GPa, E2 = 5:5 GPa, G12 = 2:3 GPa, 12 = 0:34, and
t = 0:125 10;3m.
Using the material properties specied, we calculate the Ui 's to be
U1 = 32:44 GPa U2 = 35:55 GPa U3 = 8:652 GPa
U4 = 10:54 GPa and U5 = 10:95 GPa :
For this problem the laminate has constant thickness of
2 t (no + 2 nf + nn ) = h = 2 10;3m and so from Eq. (5.2.7) the coecients of the stiness matrix A are
A11 = 64:88 + 11:05no ; 4:326nf ; 6:724nn A22 = 64:88 ; 6:724no ; 4:326nf + 11:05nn A66 = 21:90 ; 2:163no + 4:326nf ; 2:163nn all in MN=m. Therefore, the shear stiness is
Gxy = 10:95 ; 1:082no + 2:163nf ; 1:082nn GPa :
The optimization problem is then formulated as
maximize
subject to
f (no nf nn ) = 11:05 no ; 4:326 nf ; 6:724 nn
6:724 no + 4:326 nf ; 11:05 nn 44:88 ;1:082 no + 2:163 nf ; 1:082 nn 1:050 no + 2 nf + nn = 8 (a)
no nn 2 0 1 2 : : : 8 nf 2 0 1 2 3 4 :
Note that the constant term in the A11 is ignored for the objective function because most
linear programming programs do not allow constants in their input. Adding a constant to the
objective function or multiplying it with a positive constant does not change the optimal values
of the design variables. However, these operations change the value of the objective function at
the optimum, and that change must be reversed in order to obtain the optimum of the original
problem. Also note that the constraint equation Eq. (a) is added to the problem to insure that
the total number of layers in the laminate adds up to sixteen. Based on this equation, the
148
5.3. SOLUTION OF INTEGER LINEAR PROGRAMMING PROBLEMS
design variable no and nn can take any integer value between 1 and 8, but the largest integer
number nf can assume is 4, which correspond to all 45 laminate.
The solution of the problem is no = 2, nf = 3, nn = 0 which corresponds to a 02= 453]s
laminate. 5.3 Solution of Integer Linear Programming Problems
A common approach to solving MILP problems is to round-o the optimum values of the
variables, obtained by assuming them to be continuous, to the nearest acceptable integer
value. For problems with n integer design variables there are 2n possible rounded-o designs,
and the problem of choosing the best one is formidable for large n. For example, for a
problem with 10 design variables there are 1,024 possibilities. Increasing the number of
design variables to 20 would increase the number of possibilities to more than 1,000,000.
Furthermore, for some problems the optimum design may not even be one of these roundedo designs, while for others, none of the rounded-o designs may be feasible. Thus, instead
of using continuous optimization method followed by rounding, it may be more reasonable
to use methods specically developed for MILP problems.
5.3.1 Enumeration
For problems with a small number of design variables, enumeration of all possible solutions
is a reasonable alternative to rounding. For many laminate design problems, the cost of an
analysis is low enough so that enumeration is a reasonable procedure, even if the number
of possible designs is in the thousands.
Example 5.3.1
Solve Example (5.2.1) by enumerating all possible 16-ply laminates. The possible laminates
are 0no= 45nf =90nn]s , with the condition of having exactly 16 layers given as
no + 2 nf + nn = 8 :
It is convenient to enumerate on the basis of the number nf of 45 pairs, as we can have only
5 possible values (0,1,2,3,4). Then for each value of nf , we can vary no from zero to 8 ; 2nf ,
and use what is left for nn . The results are summarized in Table 5.1.
Only four of the laminates satisfy the constraints that A22 be at least 20 MN/m and that
Gxy be at least 12 GPa, and these are marked by the letter 'F' (for feasible design). Among
these the 453=02]s design, has the highest A11 . 149
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
Table 5.1: Enumeration of all possible 16 balanced symmetric laminates
laminate
A11 (MN=m) A22 (MN=m) Gxy (GPa)
908]s
0=907]s
02 =906]s
03 =905]s
04 =904]s
05 =903]s
06 =902]s
07 =90]s
08 ]s
45=906]s
45=0=905]s
45=02=904]s
45=03=903]s
45=04=902]s
45=05=90]s
45=06]s
452=904]s
452=0=903]s
452=02=902]s
452=03=90]s
452=04]s
453=902]s
453=0=90]s
453=02]s
454]s
150
11.09
28.86
46.64
64.41
82.18
99.96
117.73
135.51
153.28
20.21
37.98
55.76
73.53
91.31
109.08
126.85
29.33
47.11
64.88
82.65
100.43
38.45
56.23
74.00
47.58
153.28
135.51
117.73
99.96
82.18
64.41
46.64
28.86
11.09
126.85
109.08
91.31
73.53
55.76
37.98
20.21
100.43
82.65
64.88
47.11
29.33
74.00
56.23
38.45
47.58
2.29
2.29
2.29
2.29
2.29
2.29
2.29
2.29
2.29
6.62
6.62
6.62
6.62
6.62
6.62
6.62
10.95
10.95
10.95
10.95
10.95
15.27
15.27
15.28
19.60
F
F
F
F
5.3. SOLUTION OF INTEGER LINEAR PROGRAMMING PROBLEMS
As can be seen from this example, we have used the condition that the total number
of layers is 16 to reduce the number of combinations of no , nf and nn that we needed to
check. A systematic way of taking advantage of constraints to reduce the number of cases
that need to be inspected by enumeration is called an enumeration tree. An example from
Garnkel and Nemhauser (1972) demonstrates the use of a constraint in an enumeration
tree. The example also introduces some of the terminology that will be useful for the most
important algorithm for ILP discussed later in this chapter text, the Branch-and-Bound
technique.
Example 5.3.2
Consider the binary ILP problem of choosing a combination of ve variables such that the
following summation is satised
h=
5
X
i=1
ixi = 5 :
A decision tree representing the progression of solution of this problem is composed of nodes
and branches that represent the solutions and the combinations of variables that lead to those
solutions, respectively (Figure 5.1). The top node of the tree corresponds to a solution for which
all the variables are turned o (xi = 0 i = 1 : : : 5) with a function value of h = 0. Branching
from this solution are two paths corresponding to the two alternatives for the rst variable. The
branch with x1 = 1 has h = 1 and tolerates turning additional variables on without running
the risk of exceeding the required function value of 5. The other branch is same as the initial
solution, and can be branched further. Next, these two nodes are branched by considering the
on and o alternatives for the second variable. The node arrived by taking x1 = x2 = 1 has
h = 3 and is terminated because further branching would mean adding a number that would
cause h to exceed its required value of 5. Such a vertex is said to be fathomed, and is indicated
by a vertical line. The other three vertices are said to be live, and can be branched further by
considering the alternatives for the remaining variables in a sequential manner until either the
created nodes are fathomed or the branches arrive at feasible solutions to the problem.
For the present example, after considering 19 possible combinations of variables, we identied 3 feasible solutions which are marked by an asterisk. This is a 40% reduction in the
total number of possible trials, namely 25 = 32, needed to identify all possible solutions. For a
laminate design problem in which trials with dierent combinations of variables could require
lengthy analyses an enumeration tree can yield substantial savings. 5.3.2 Branch-and-Bound Algorithm
The concept behind the enumeration technique forms the basis for this powerful algorithm
suitable for MILP problems. The original algorithm, developed by Land and Doig (1960),
151
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
*
x 2=
h=1
=1
1
x2 = 0
h=3
h=1
x 3=
1
x3 = 0
h=4
h=5
x 4=
h=1
x1
1
x4 = 0
h=1
*
x3
h=0
x2
x1 = 0
=
1
h=2
h=0
=1
x3 = 0
h=2
1
h=3
x3=
x2 = 0
h=5
h=4
x4 = 0
h=0
x4
h=0
x3 = 0
=1
h=0
x 5=
1
x5 = 0
h=5
*
h=0
P
Figure 5.1: Enumeration tree for binary ILP problem with constraint h = 5i=1 ixi = 5.
relies on calculating upper and lower bounds on the objective function, so that nodes that
result in designs with objective functions outside the bounds can be fathomed, and thereby,
the number of analyses required can be reduced. Consider a hypothetical example of a
MILP problem of the type of Eq. (5.1.3). The rst step of the algorithm is to solve the
LP problem obtained from the MILP problem by assuming the variables to be continuous
valued. If all the x variables for the resulting solution have integer values, there is no need to
continue the problem is solved. Suppose several of the variables assume non-integer values
and the objective function value is f1 . The f1 value will form a lower bound fL = f1 for the
MILP, since imposing conditions that require non-integer valued variables to take integer
values can only cause the objective function to increase. This initial problem is labeled as
LP-1 and is placed in the top node of the enumeration tree as shown in Figure (5.2). For
the purpose of illustration, it is assumed that only two variables xk and xk+1 violate the
integer requirement with xk = x1k = 4:3 and xk+1 = x1k+1 = 2:8.
The second step of the algorithm is to branch from the node into two new LP problems
by adding a new constraint to the LP-1 that involves only one of the non-integer variables,
say xk . One of the problems, LP-2, will require the value of the branched variable, xk to
be less than or equal to the largest integer smaller than x1k , and the other, LP-3, will have
a constraint that xk is larger than the smallest integer larger than x1k . These two problems
152
5.3. SOLUTION OF INTEGER LINEAR PROGRAMMING PROBLEMS
LP - 2
f2
_> 4
xk = 4
xk+1 = 3.5
xk
LP - 1
fL = f1
xk = 4.3
xk+1 = 2.8
x
k
>_ 5
xk = 5
xk+1 = 2
xk+1 >_ 3
x
k+
1
LP - 4
f4 > fU
>_ 4
LP - 5
f5 < fU
LP - 3
fU = f3
Figure 5.2: Illustration of branch-and-bound decision tree for MILP problems.
actually do branch the feasible design space of the LP-1 into two segments. There are
several possibilities for the solutions of these two new problems. One of these possibilities is
to have no feasible solution for the new problem. In that case the new node will be fathomed.
Another possibility is to reach an all integer feasible solution (see LP-3 of Figure 5.2). In this
case the node will again be fathomed, but the value of the objective function will provide
an upper bound for the optimum solution because it is feasible.
We denote that upper bound as fU and update it when we nd other integer solutions
with lower values than the current fU . Once an upper bound has been established, any node
that has an LP solution with a larger value of the objective function will be fathomed, and
only those solutions that have the potential of producing an objective function between
fL and fU will be pursued. If there are no solutions with an objective function smaller
than fU , then the node with fU is an optimum solution. If there are other solutions with
an objective function smaller than fU , they may still include non-integer valued variables
(LP-2 of Figure 5.2), and are labeled as live nodes. Live nodes are then branched again by
considering one of the remaining non-integer values and resulting solutions are analyzed
until all the nodes are fathomed.
The performance of the branch-and-bound algorithm depends heavily on the choice of
non-integer variable to be used for branching, and the selection of the node to be branched.
If a selected node and branching variable leads to an upper bound close to the objective
function of the LP-1 early in the enumeration scheme, then substantial computational savings can be obtained because of the elimination of branches that cannot generate solutions
lower than the upper bound. A rule of thumb for choosing the non-integer variable to be
153
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
no = 3.51
n = 2.24 A11 = 94.00
LP - 1 nf = 0
n
no ≥ 4
no ≤ 3
LP - 2
no solution
LP - 3
nf ≥ 3
no = 2
n
LP - 4 f = 3
A11 = 74.00
no = 3
nf = 2.5
A11 = 87.25
nf ≤ 2
LP - 5
no solution
Figure 5.3: Branch and Bound decision tree for laminate design problem
branched is to take the variable with the largest fraction. For the selection of the node to
be branched, we choose, among all the live nodes, the LP problem which has the smallest
value of the objective function that node is most likely to generate a feasible design with
a tighter upper bound.
Example 5.3.3
Solve Example (5.2.1) by the branch-and-bound method, using software for solving continuous
linear programming problems.
The decision tree for this problem is shown in Figure 5.3. The rst node shows the solution
with non-integer number of layers 03:51= 452:24]s , with A11 = 94 GPa. With no having the
larger fraction, we branch on no . The branch with the additional constraint of no 4 does
not have a solution because the constraint on Gxy cannot be satised. The branch with an
additional constraint of no 3 yields the solution 03 = 452:5]s with A11 = 87:25 GPa. Now
that no and nn are integers, we can branch only on nf . As shown in the Figure, the branch with
nf 2 does not have a solution because again we cannot satisfy the constraint on Gxy , and
the branch with nf 3 yields 02 = 453]s with A11 = 74:0 GPa. This is an integer solution,
and since we do not have any more live nodes it is the optimum solution.
154
5.4. GENETIC ALGORITHMS
Branch-and-bound is only one of the algorithms for the solution of ILP or MILP problems. However, because of its simplicity it is incorporated into many commercially available
computer programs (see, for example, Johnson and Powell (1978), and Schrage (1989)).
There are a number of other techniques which are capable of handling general discretevalued problems (see, for example, Kovacs (1980)). Some of these algorithms are good not
only for ILP problems but also for NLP problems with integer variables.
Linear problems have a big advantage over nonlinear ones in that we can count on getting the global optimum for the problem. Algorithms for nonlinear problems, on the other
hand, typically provide only a local optimum. A methodical way of dealing with multiple
minima for discrete optimization problems is to use random search techniques that sample
the design space for a global minimum without the use of derivatives. However, the eciency of traditional random search techniques is poor for problems that have large number
of variables. Two algorithms, simulated annealing (Laarhoven, 1987) and genetic algorithms
(Goldberg, 1989), have emerged more recently as tools ideally suited for optimization problems where a global minimum is sought. In addition to being able to locate near-global
solutions, these two algorithms are also powerful tools for problems with discrete-valued
design variables. Both algorithms mimic naturally observed phenomena and their implementation calls for the use of a random selection process which is guided by probabilistic
decisions. The next section describes genetic algorithms, in particular some which have
recently been applied to the design of composite laminates.
5.4 Genetic Algorithms
Genetic algorithms use techniques derived from biology, and rely on the application of
Darwin's principle of survival of the ttest. When a population of biological creatures is
allowed to evolve over generations, individual characteristics that are useful for survival tend
to be passed on to future generations, because individuals carrying them get more chances to
breed. In biological populations these characteristics are stored in chromosomal strings. The
mechanics of natural genetics is based on operations that result in structured yet randomized
exchange of genetic information (hence biological traits) between the chromosomal strings
of the reproducing parents, and consists of reproduction, crossover, occasional mutation,
and inversion of the chromosomal strings.
Genetic algorithms, developed by Holland (1975), mimic the mechanics of natural genetics for articial systems based on operations which are the counterparts of the natural ones
(even called by the same names). As will be described in the following paragraphs, these operations involve simple, easy to program, random exchanges of location of numbers in strings
that represent the design variables. These operations may appear like a completely random
155
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
search of extremum in parameter space based on function values only. However, genetic
algorithms are experimentally proven to be robust, and the reader is referred to Goldberg
(1989) for discussion of their theoretical properties. Here we discuss the genetic representation of a minimization problem, and focus on the mechanics of three commonly used
genetic operations (namely reproduction, crossover, and mutation) and a fourth operator,
permutation (or sometimes called gene swap), recently proposed for buckling optimization
of composite plates.
Unlike many search algorithms that move from one point to another in the design variable space, genetic algorithms work with a population of strings. This aspect of the genetic
algorithms is responsible for increased chance for obtaining global or near-global optima.
By keeping many solution points that may have the potential of being close to minima
(local or global) in the pool during the search process, rather than converging on a single
point early in the process, we reduce the risk of converging to a local minimum. Working
on a population of designs also suggests the possibility of implementation on parallel computers. However, the concept of parallelism is even more basic to genetic algorithms in that
evolutionary selection can improve in parallel many dierent characteristics of the design.
Also, since the outcome of the search is random, repeated genetic optimization will often
yield dierent good designs. This aspect can be very useful to the designer when the design
space includes many local optima of comparable performance.
Genetic algorithms have been applied to optimal structural design only recently. The
rst application of the algorithm to a structural design was presented by Goldberg and
Samtani (1986) who solved a well known 10-bar truss weight minimization problem. More
recently, Hajela (1990) used genetic search for several structural design problems for which
the design space is known to be either nonconvex or disjoint. Rao et al. (1991) addressed the
optimal selection of discrete actuator locations in actively controlled structures via genetic
algorithms. Applications of the algorithm to design with composite materials are recent (see
Callahan and Weeks, 1992, Le Riche and Haftka 1993, Hajela and Erisman 1993, Nagendra
et al.1993, and Kogiso et al.,1994).
5.4.1 Design Coding
Application of the operators of the genetic algorithm to a search problem rst requires the
representation of the possible combinations of the variables in terms of bit strings that are
counterparts of the chromosomes of the biological genetics. For historical reasons, binary
numbers were predominantly used for representing design information as bit strings. For
integer design variables this is quite simple. For example, consider the minimization problem
minimize
156
f (x)
x = fx1 x2 x3 x4 g
(5.4.1)
5.4. GENETIC ALGORITHMS
where the variables are integer and can assume values in the range f15 x1 x4 0g,
f7 x2 0g, and f3 x3 0g. The length of the bit string used to represent each
variable, in this case, is dictated by the range of the variables. For example, the design
variable vector can be a binary string represented as
1 1 1| 0{z1 1}
0| 1{z1 0} 1| {z0 1} |{z}
x1
x2
x3
x4
(5.4.2)
where binary representations of the individual variables are strung head-to-tail, and, in this
example, the variables are x1 = 6 x2 = 5 x3 = 3 x4 = 11. For problems where the design
variables are continuous within a range xLi xi xUi , the common practice is to divide
the intervals to a nite number of subintervals so as to discretize the design variables. The
size of the subintervals, which determines the precision of the solution obtained by the
genetic algorithm, denes the number of bits needed. If a variable is dened in a range
fxLi xi xUi g and the precision needed for the nal value is xincr, then the number m of
binary digits needed for an appropriate representation can be calculated from
2m
(xUi ; xLi )=xincr + 1 :
(5.4.3)
For example, if f0:01 xi 1:81g and the required precision is 0:001, the smallest number
of digits is m = 11, which actually produces increments of 0:00087 in the value of the
variable, instead of the required value of 0:001.
The conversion of variables to binary numbers introduces a degree of complexity that is
not always necessary. Binary variables have the advantage of corresponding to the smallest
possible alphabet, which has some theoretical advantages. For example, with a very large
alphabet, it is more dicult to ensure that every possible gene is present in the initial population. However, studies comparing binary to other representations tend to nd superior
performance by non-binary representations (e.g., Michalewicz, 1992, Furuya and Haftka,
1993). In many problems we can use the actual values of the design variables in the string,
as long as we take precautions with the crossover and mutation operators as will be described later. The use of real variables in strings has enjoyed more popularity in Europe
than in the United States (see, for example, Back and Schwefel, 1993). The European school
often uses the term Evolutionary Strategies to describe methods, such as genetic algorithms,
based on mimicking evolution. Variants of genetic algorithms that employ real numbers and
are applied to function optimization have been dubbed as Evolutionary Algorithms by the
European school.
For designing the stacking sequence of a laminate we typically employ a code assigning
an integer digit to each possible orientation angle. For example, the stacking sequence of
a laminate that can only admit 0 , 45 , ;45 and 90 layers with xed thickness t can
157
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
be represented by a string containing the digits 1, 2, 3, and 4, respectively. The 16-ply
laminate 45=04 =902 ]s is then represented by the genetic code 2 3 1 1 1 1 4 4 4 4 1 1 1 1
3 2]. If we make use of the symmetry condition (that is, limit ourselves to only symmetric
laminates) we can simply represent the same laminate by 2 3 1 1 1 1 4 4]. This reduction in
the length of the string can signicantly improve the speed of the genetic search. There are
416 = 4:3 109 16-digit strings that correspond to distinct designs, but only 48 = 65 536
strings of 8 digits.
For most applications laminates are further assumed to be balanced, requiring a ;45
layer for every 45 layer. The pair of o-axis angles are normally placed adjacent to one
another in order to keep the values of the D16 and D26 terms small. This allows us to
reduce further the length of the string for balanced symmetric laminates. We dene stack
variables which represent two adjacent layers with the same orientation. For a laminate
made of only 02 , 452 , and 902 layers we use the 1 2 and 3 representation. Therefore, the
45=04 =902 ]s laminate is represented by 2 1 1 3]. This reduction in the length of the string,
however, does not permit us to represent laminates containing stacks with odd number of
0 or 90 layers. It is also possible to use natural coding, where the gene looks like the
stacking sequence. For example, the stacking sequence 45=04 =902 ]s may be represented
as 45 0 0 90]. This natural representation reduces the eort of coding and decoding, but it
requires more specialized programming tailored to the specic set of orientations used.
For in-plane laminate-design problems, the stacking sequence is often unimportant, and
we need only the number of layers in each given orientation. Then we can represent the
symmetric and balanced laminate (L )NL =(L;1 )NL;1 = : : : =(1 )N1 ]s as a string with
the L integers Ni , i = 1 : : : L, or with a longer string containing the binary representation
of these integers. For example, in-plane design of a 48-ply balanced and symmetric laminate
with 30 , 45 , and 60 stacks can be represented by a string N1 N2 N3 ]. The integers
N1, N2 and N3 , represent the number of stacks of 30 , 45 , and 60 layers, respectively,
and can vary between 0 and 12. Of course, we will need a constraint requiring that N1 + N2 +
N3 = 12. Instead we can have a string composed only of N1 N2 ], with N3 = 12 ; N1 ; N2,
with a constraint that N3 0. This second representation is much more ecient. The design
space associated with N1 N2 N3 ] has 133 = 2197 possible designs, while the design space
associated with N1 N2 ] has only 169 possible designs. It is easy to check that, because of
the constraint on N3 , there are only 91 possible designs. So with the rst representation
we have a much larger design space, and additionally the great majority of the designs
generated by the genetic algorithm on the way to the optimum will violate the constraint
N1 + N2 + N3 = 12, resulting in slower progress towards the optimum. With the second
representation, we have a smaller design space, and more than half of the designs generated
by the genetic algorithm will be possible designs (that is, satisfy the constraint N3 0).
158
5.4. GENETIC ALGORITHMS
Genetic algorithms generally work with a population of strings that are all of the same
length. This can present a problem when the number of layers in the laminate is unknown,
as in the case of thickness minimization, and we use a coding with one number for each
layer or each two-layer stack. We can solve this problem by making the length of our
strings correspond to an upper limit on the thickness of the laminate and adding another
digit to represent an absent layer or stack. For example, assume that we found that all
the constraints can be satised with a 12-ply laminate, but we seek thinner laminates that
satisfy these constraints. Limiting ourselves to symmetric laminates, this means that we can
use 6 digit strings to code the laminate. We will then represent the laminate 05 ]s by 0 1 1 1
1 1], with the zero in the leftmost position corresponding to the absent layer. Similarly, we
will represent 0=90=45= ; 45]s by 0 0 1 4 2 3]. As will be seen later, with this approach we
need to take precautions of not having 0s appear anywhere except for the leftmost positions
in the string.
5.4.2 Initial Population
Most genetic algorithms work with a xed size population, so that the size of the initial
population of designs determines the size of the population in all future generations as well.
We will denote that size by ns , for the number of strings. Choosing the population size is
at the present a matter of trial and error. In general, the optimal size of the population
increases with problem size. That is, the design of a thin laminate that can be represented
by a short string will require a smaller population size than the design of a thicker laminate
that must be represented by a longer string. Similarly, the design of a structure composed
of several laminates will require an even larger population size. For example, for the design
of 48-ply balanced symmetric laminates (12-digit string) subject to buckling and strength
constraints, Le Riche and Haftka (1993) found that the optimum population size was 8. For
the design of a simple wing made up of 18 dierent laminates, the best population size was
about 50 (Le Riche, 1994).
The initial population is typically generated at random. Subroutines or functions that
generate random numbers distributed uniformly between 0 and 1 are widely available, and
we use them extensively in genetic algorithms. Such random number generators typically
require an input `seed' the rst time they are called. The seed determines the sequence of
random number that will be generated by repeatedly calling the function or subroutine.
Thus the numbers are not truly random, and are often called pseudo random numbers.
However, for the use in genetic algorithms the distinction is not important. In the following
we will assume that random numbers are generated by a function RAND(ISEED) and we
will denote by r the output of the function.
For example, consider the case of the stacking sequence design of a laminate made of 0 ,
159
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
subroutine init(lamin,L,ns,nmax)
integer lamin(L,ns)
do 100 i=1,ns
do 100 j=1,L
lamin(j,i)=(nmax+1)*rand(iseed)
100 continue
return
end
Figure 5.4: Fortran subroutine for generating initial population of ns strings of length L,
with each digit being an integer between 0 and nmax.
45 , ;45 and 90 layers, so that each digit in the string can take integer values in the range
(0,4), with zero corresponding to an absent layer. Using RAND, we rst generate a random
number r between 0 and 1.0, and then transform it to a choice of an integer between zero
and four by taking the value b5rc, where bxc indicate the integer part of a real number
x (oor function). We can then repeat this process for each layer to generate the entire
laminate. Then we repeat it again to generate the requisite ns laminates (see Figure 5.4).
Subroutine init of Figure 5.4 will produce zeroes or `voids' inside the laminate, and these
voids will have to be pushed out, for example
1 0 4 2 0 3 ) 0 0 1 4 2 3 ) 0=90=45= ; 45]s :
(5.4.4)
We can use information on the design to bias the initial population makeup. One case
where we need such bias is when we encounter a singular optimum associated with 0 layers.
A singular optimum is an isolated optimum which represents a discontinuity in design space.
We can get a singular optimum in the design of composite laminates when the objective
function favors designs with 45 or 90 layers, but the loading is primarily in the 0
direction. This phenomenon was reported by Schmit and Farshi, 1973, for continuous layerthickness design variables. However, a similar problem with a singular optimum occurs with
discrete thickness designs, as explained below.
Consider, for example, a 48-ply laminate under uniaxial tension, where we want to
maximize Gxy subject to constraints on strains in the layers. The optimum design will
usually be an all 45 laminate. If we start with a design with a small number of 0 layers,
such as (458 =04 )s , the strains in the zero bers will be higher than the strains in the 45
or the ;45 bers (see Exercise 2 at the end of this chapter). If the load is high enough, the
laminate will rst fail due to breakage of the 0 bers. If we reduce the number of 0 layers
160
5.4. GENETIC ALGORITHMS
by two to (459 =02 )s , the situation will worsen as the strains in the 0 layers will increase.
However, if we eliminate the last 0 layer and get an all 45 laminate, the strains in the
zero direction will not matter because we will not have any bers in this direction. The all
45 optimum is called singular because it cannot be obtained by gradual reduction of the
0 layers.
When continuous optimization techniques are used, this diculty has to be countered
by considering designs that have 0 layers and also designs that do not have 0 layers.
With genetic algorithms we have to use a similar strategy, seeding the initial population
with some designs without any 0 layers. Kogiso et al. (1994) have shown that such seeding
helps in getting optimal no-zero-layer designs, and does not appear to have adverse eects
even when the optimum is not singular.
Once an initial population is generated we apply a series of genetic operators that
produce a new generation and replace the initial population with the new one. The rst of
these operations is selection.
5.4.3 Selection and Fitness
The selection process in genetic algorithms mimics biology in giving more t designs a higher
chance to breed and pass their genes to future generations. Genetic algorithms therefore
need to dene tness and use it in a procedure that selects pairs of parent designs that
will be used to create child designs for future generations. For unconstrained problems, the
tness of a design can be dened as the objective function (for maximization problems)
or a constant minus the objective (for minimization problems). For constrained problems
the tness also must consider constraint violations or constraint margins. Several methods
exist for handling constraints, and this is a hotly debated topic (e.g., Le Riche et al., 1995).
The following is one simple way for handling constraints.
Consider the standard formulation of an optimization problem, Eq. (1.4.1), where for
simplicity we omit the equality constraints
minimize
such that
f (x)
gj (x) 0
x2X
j = 1 : : : ng :
We assume that the constraints are normalized so that a constraint value of -0.1 corresponds
to a 10 percent margin, while a constraint value of 0.1 corresponds to a 10 percent deciency.
The design margin of safety is then dened by the most critical constraint gmax = maxj (gj ).
If gmax is positive the design is infeasible, and we want to add a penalty to the objective
161
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
function to help the search move into the feasible design. If gmax is negative we have a feasible
design with a positive margin of safety, and we want to reduce the objective function as a
bonus for that margin. We can dene an augmented objective function f f =
(
f + p gmax + if gmax > 0 ,
f ; jgmax j
otherwise:
(5.4.5)
In Eq. (5.4.5) there are two parameters, and p that penalize infeasible design. The
rst, should be chosen as a small infeasibility penalty which applies even for very small
constraint violations. It should typically be a very small percentage of the average value of
the objective function. The second parameter p penalizes substantial constraint violations.
The penalty parameter p needs to be chosen large enough so that all infeasible designs
have a higher value of f than the optimum design. However, we do not want to use a very
large penalty parameter because the design process often benets from shortcuts taken via
infeasible design. For example, consider a situation where we require the laminate to be
balanced, but we have a coding that permits unbalanced designs. Now suppose we have
a design that needs to replace a pair of 0=90] layers with a stack of 45] layers. We
can have intermediate designs where only one layer is replaced. For example, a 0 layer
is replaced by a 45 layer, resulting in an unbalanced laminate. If we penalize constraint
violation too heavily, the unbalanced laminate will have such low tness value that it will
have very little chance of being selected for reproduction. So to achieve a transition from
the pair of 0=90] layers to the 45] stack, we must have two changes in the genetic string
occur simultaneously. Such double change has very little probability of happening with the
standard genetic operators described below, and having to rely on a double change will slow
down convergence. This example illustrates a case where the easiest transition between two
feasible designs proceeds through an intermediate infeasible design. This situation is not
unique to balance constraints, but is quite common. Therefore, large values for penalty
parameters are often found to slow down the convergence of the genetic algorithm.
Occasionally, we have designs which are only slightly infeasible, but which have very
good objective functions. Without the rst penalty parameter, we would have to use very
large values of p to ensure that these designs did not have the best augmented objective,
because the value of gmax for these designs is very small. This situation is the reason for
using two penalty parameters instead of one.
The bonus parameter is needed when the optimum design is not unique, so that we
want to nd the optimum design with the highest safety margin. When we design laminates
for minimum thickness we often encounter such non-uniqueness because the thickness can
be only a multiple of the basic layer thickness. Thus, we often can obtain several laminates,
all having the same thickness, but with dierent constraint margins. The bonus parameter
162
5.4. GENETIC ALGORITHMS
ensures that the selection process favors the design with the highest margin of safety.
However, the bonus parameter needs to be small enough so that no design has a lower f than the optimum design, no matter how large the constraint margin is.
Genetic algorithms traditionally use the concept of tness, which is higher for the better
individuals, rather than the concept of an objective function which could be maximized or
minimized. To accommodate the minimization problem, we can dene the tness, , from
f as
= c ; f
(5.4.6)
where c is a constant chosen large enough so that is always positive, but not so large, so as
to almost obliterate the relative dierences between dierent designs. When large changes
in the magnitude of f occur during the optimization, it may be desirable to periodically
update c as well, so that these conditions will be met.
Example 5.4.1
Consider the following optimization problem,
maximize
f (x)
such that
g1 (x) 0 and g2 (x) 0 A population of four designs calculated to have the following objective function and constraint
function values,
design-1:
f 1 = 6:69 g11 = ;0:11 g21 = ;0:50
design-2:
f 2 = 7:30 g12 = 0:28 g22 = 0:15
design-3:
f 3 = 6:49 g13 = ;0:71 g23 = ;0:51
design-4:
f 4 = 7:02 g14 = 0:16 g24 = ;0:79
a) Determine the largest value of the bonus parameter that may be used for this set of
designs without causing the GA to pick an inferior design as the best design of the population.
b) If the bonus parameter is = 0:2, and the penalty parameter = 0:01, determine the
smallest value of the penalty parameter p that can be used without causing the GA to pick an
infeasible design as the best design of the population.
For part a) of this problem, we consider only designs that satisfy both constraints. Therefore,
we will add bonus only to the objective functions of design-1 and design-3. Note that this is
a maximization problem so we add the bonus to the objective function (as opposed to the
function of Eq. (5.4.5) from which we subtract the bonus). The bonus is calculated on the
basis of the most critical constraint. For design-1, g11 = 0:11 is the most critical, and for
design-3, g23 = 0:51, is the most critical. Adding a bonus to these constraints for the two
designs will change the tness function of the respective designs,
1 = 6:69 + 0:11 and 3 = 6:49 + 0:51
163
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
Clearly, design-1 has a better objective function than design-3. However, design-3 has a constraint margin which is larger than that of design-1, and adding too large a bonus may make the
tness of the design-3 better than that of design-1. This is not an acceptable situation, and
the largest value of the bonus parameter should be limited such that the tness 3 is smaller
than the tness 1 . Therefore,
(0:51 ; 0:11) < (6:69 ; 6:49) ) 0:5 :
For part b), we penalize those designs that have constraint violation, namely, design-2 and
design-4. Typically, designs that violate one or more of the constraints have better objective
function values than designs that satisfy all constraints, as is the case in this example. If the
penalty parameter is not large enough, the tness function of the design with a constraint
violation may be better than the tness of the best design which satises all the constraints.
In this example, the tness of the best feasible design with the specied bonus parameter of
= 0:2 is,
1 = 6:69 + 0:2 0:11 = 6:71 :
For the second design, the value of the penalty parameter which will cause 3 to become larger
than 1 is,
7:30 ; 0:01 ; p 0:28 > 6:71 ! p < 2:07 :
For the fourth design, the value of the penalty parameter which will cause its tness to become
larger than 1 is,
7:02 ; 0:01 ; p 0:16 > 6:71 ) p < 1:88 :
Therefore, the smallest penalty parameter that can be used without causing the GA to pick an
infeasible design as the best design of the population is the largest of the two values, p = 2:07.
If we use a penalty parameter of p = 1:88, the tness of design-2 becomes 2 = 6:76 which is
larger than the tness of the best feasible design and, therefore, is unacceptable. In the example above we picked the permissible values of the penalty and bonus parameters by inspecting 4 possible designs. Of course, other designs may exist that will require
more stringent values for these parameters. In general, we need to try and estimate reasonable values for these parameters based on our knowledge of the problem. It pays to begin
with relatively small penalty parameters. If these parameters are inappropriate we will nd
that the genetic algorithm will yield infeasible designs, and then we can increase the penalty
parameters. Similarly, we may want to start with fairly substantial bonus parameters. If we
nd that some of the designs with high constraint margins produce tnesses larger than tnesses for designs that have better value of actual objective function but smaller constraint
margins, we can reduce the bonus parameter.
Once we dene the tness of all the designs in the population, a common procedure
for selecting parent designs is to simulate a biased roulette wheel, with each design being
assigned to a sector of the roulette wheel with an area proportional to its tness. That is,
164
5.4. GENETIC ALGORITHMS
subroutine select(R,ns,parent)
integer parent(2)
dimension R(ns)
do 400 i=1,2
place=rand(iseed)
do 300 j=2,ns
if (place .gt. R(j-1)) go to 300
parent(i)=j-1
go to 400
300 continue
parent(i)=ns
400 continue
return
end
Figure 5.5: Fortran subroutine for selecting two parents by simulating a roulette wheel.
with ns designs having tness values of i i = 1 : : : ns , the ith designs gets a fraction ri
of the wheel, where
ri = Pns i :
(5.4.7)
j =1 j
On the computer the roulette wheel can be implemented by generating a random number
r between zero and one, and then selecting the ith design if
Ri;1 r < Ri
(5.4.8)
where R0 = 0:0, and
i
X
Ri = rj
i = 1 : : : ns :
(5.4.9)
j =1
The procedure is coded as subroutine select in Figure 5.5, and demonstrated in the
following example.
Example 5.4.2
For a generation of six designs the following tnesses were calculated, f1 2 3 4 5 6 g =
f0:35 0:60 0:38 0:65 0:45 0:15g. In order to select parents for crossover, six random numbers
165
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
between 0:0 and 1:0 were generated: r = f0:2825 0:7123 0:1560 0:9217 0:6120 0:3471g.
Construct the roulette wheel and determine the individuals selected for the crossover operation.
For the given list of tnesses, the sum of all tnesses yield
ns
X
j =1
j = 0:35 + 0:60 + 0:38 + 0:65 + 0:45 + 0:15 = 2:58 :
Therefore, the fractions of the wheel occupied by the dierent designs are given by,
fr1 r2 r3 r4 r5 r6 g = f0:1357 0:2326 0:1473 0:2519 0:1744 0:0581g :
In order to implement the selection process using the roulette wheel, we create another list of
numbers following Eq. (5.4.9),
fR0 R1 R2 R3 R4 R5 R6 g = f0:0 0:1357 0:3683 0:5156 0:7675 0:9419 1:0g and the wheel for this generation of designs is shown in Figure 5.6 with the integers on the
slices indicating the location of the design in the initial tness list (Also note that the angles
associated with the Ri s are obtained by multiplying them by 360 ).
r = 0.2825
r = 0.3471
r = 0.1560
R2
R1
2
1
3
R3
6
4
5
R0, R6
R5
r = 0.9217
r = 0.6120
R4
r = 0.7123
Figure 5.6: Roulette wheel for Example 5.4.1
The locations of the Ri i = 1 : : : 6 are marked along the circumference of the wheel. For
each value of the random number r, we chose a parent design using Eq. (5.4.8). That is, we
place the random number around the circumference going counter clockwise from R0 = 0 and
166
5.4. GENETIC ALGORITHMS
nd the interval in which the random number falls. For the rst random number r = 0:2825
we have
R1 < 0:2825 < R2 therefore, design 2 is selected. For the remaining random numbers, we have
R3 < 0:7123 < R4 R1 < 0:1560 < R2 R4 < 0:9217 < R5 R3 < 0:6120 < R4 and R1 < 0:3471 < R2
:
The parent designs selected for the next generations are,
f2 4 2 5 4 2g :
Dening tness on the basis of the numerical value of the objective function or the
augmented function carries the disadvantage that towards the end of the optimization,
when the dierences between competing designs become small, the selection pressures in
favor of the better design becomes small, and progress slows down. For this reason, another
popular strategy is to dene the tness based on the relative rank of the designs. In that
case, the ith ranked design is reassigned a tness value of
i = ns ; i + 1 :
(5.4.10)
In this case the portion of the roulette wheel assigned to the design, Eq. (5.4.7), becomes
i + 1)
ri = 2((nns ;
+ 1)n :
s
s
(5.4.11)
Example 5.4.3
Repeat the previous example, Example 5.4.2, for a tness list of f1 2 3 4 5 6 g =
f0:62 0:60 0:65 0:61 0:57 0:64g, which represent a typical population towards the end of a
genetic optimization when the dierence between the designs becomes small. Use the same six
random numbers used in the previous example, a) for the standard tness-based selection, b)
for the rank-based selection process.
a) In this case of tness based selection, the fractions of the wheel occupied by the dierent
designs are given by,
fr1 r2 r3 r4 r5 r6 g = f0:1680 0:1626 0:1762 0:1653 0:1545 0:1734g and the wheel for this generation of designs is shown in Figure 5.7-a.
167
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
r = 0.2825
r = 0.3471
r = 0.2825
r = 0.1560
R2
r = 0.3471
r = 0.1560
R1
R1
2
1
2
1
3
R3
R0, R6
R4
4
r = 0.9217
R5
r = 0.9217
R4
r = 0.6120
R3
r = 0.7123
a) based on fitnesses
r = 0.7123
b) based on ranking
Figure 5.7: Roulette wheel for example 5.4.2
The list of summation of fractions of the area of the wheel is,
fR1 R2 R3 R4 R5 R6 g = f0:1680 0:3306 0:5068 0:6721 0:8266 1:0g :
For the same set of random numbers used in the previous example, we have
R1 < 0:2825 < R2 R4 < 0:7123 < R5 R0 < 0:1560 < R1 R5 < 0:9217 < R6 R3 < 0:6120 < R4 and R2 < 0:3471 < R3 yielding the following parents,
f2 5 1 6 4 3g :
Note that, none of the designs are selected twice as parents.
b) Reordering the designs according to ranking we have
f0:65 0:64 0:62 0:61 0:60 0:57g where the corresponding designs from the original list are,
f3 6 1 4 2 5g :
The new rank-based tnesses for these designs are,
f6 5 4 3 2 1g :
168
R0, R6
R5
5
3
5
r = 0.6120
R2
6
4
6
5.4. GENETIC ALGORITHMS
The fractions of the wheel occupied by the rank-based designs are given by Eq. 5.4.11 as,
fr1 r2 r3 r4 r5 r6 g = f0:2857 0:2381 0:1905 0:1429 0:0952 0:0476g and the wheel for this generation of designs is shown in Figure 5.7-b. Note that the numbers in
the list above are ordered from best to poorest rather than by the original order of the designs.
So r1 = 0:2857 corresponds to the best design, or design #3 of the original list.
The list of summation of fractions of the areas of the wheel is,
fR1 R2 R3 R4 R5 R6 g = f0:2857 0:5238 0:7143 0:8572 0:9524 1:0g and, for the same set of random numbers used in the previous example, we have
R0 < 0:2825 < R1 R2 < 0:7123 < R3 R0 < 0:1560 < R1 R4 < 0:9217 < R5 R2 < 0:6120 < R3 and R1 < 0:3471 < R2 :
These random numbers select the
f1 3 1 5 3 2g
designs of the ranked population as parents. The original designs corresponding to these parents
are,
f3 1 3 2 1 6g :
The designs 1 and 3 in the original population, which are among the designs with the highest
tnesses, are each selected twice as parents. On the other hand designs 4 and 5 of the original
population with low tnesses are not selected. Another advantage of the rank-based selection procedure is its capability to handle
negative values of the tness function, , as well as the combination of negative and positive
ones. This feature becomes especially handy in cases where, for designs that violate the
constraint, a large penalty multiplier causes the tness function to become negative (see
for example Exercise 5.5) .
5.4.4 Crossover
Once pairs of parents are selected, the mating of the pair also involves a random process
called crossover. The simplest crossover, the single-point crossover, begins by generating a
random integer k between 1 and L ; 1, where L is the string length. This number denes a
cuto point in each of the two strings, and separates each into two sub-strings. Denoting,
for convenience, the two parts as left (initial part) and right (nal part) substrings, we
splice together the left part of the string of one parent with the right part of the string of
the other parent. The random integer needed for dening the cuto point can be generated
169
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
as (L ; 1)r + 1], where r is our (0.,1.) uniformly distributed random variable. Consider, for
example, two symmetric laminates coded in a string of length L = 9, and a crossover point
k=5
parent 1:
0 0 1 2 1k3 1 1 1 0=45=0= ; 45=03 ]s
parent 2:
0 0 0 0 1k2 3 4 1 0=45= ; 45=90=0]s :
(5.4.12)
The two possible child designs are
child 1:
0 0 1 2 1 2 3 4 1 0=45=0=45= ; 45=90=0]s
child 2:
0 0 0 0 1 3 1 1 1 0= ; 45=03 ]s :
(5.4.13)
One or both of the child designs are then selected for the next generation. Note that even
though both parent laminates are balanced, neither child is. This indicates the disadvantage
of coding that distinguishes between + and ; in balanced laminates. One solution to this
problem is to use the previously discussed two-layer stacks. Another solution is discussed
later in Section 5.4.7 .
Crossover is typically implemented with some probability pc. If crossover is not indicated
then one of the parents is cloned into the next generation. Implementation of crossover
begins with the generation of single random number r uniformly distributed between 0.
and 1. If the number is less than pc crossover will be performed by generating another
random number for the cuto point. The decisions on which parent to clone or which child
design to select are not important, as the parents were selected at random. The processes
of selection and crossover are repeated until there are ns child designs.
Multiple point crossovers in which information between the two parents are swapped
among more string segments is also possible, but because of the mixing of the strings the
crossover becomes a more random process and the performance of the algorithm might
degrade (De Jong, 1975). An exception to this is the two-point crossover. In fact, the one
point crossover can be viewed as a special case of the two point crossover in which one end
of the string is the second crossover point. Booker (1987) showed that, instead of letting
the end of the string to be the second point that denes the string segment to be crossed,
choosing the end-point randomly improves the performance of the algorithm.
When integer or real variables, such as number of layers or panel dimensions, are represented by binary strings, crossover may generate child designs that do not bear any
resemblance to the parent designs. Consider, for example, a rectangular panel with a length
variable l. Assume the length variable to have an expected range of (0.05, 3.2) inches, represented to an accuracy of 0.05 inch by a 6-digit binary number b. The binary number has
a range from 0 to 26 ; 1 = 63, so that we calculate l as
l = 0:05 (b + 1) :
(5.4.14)
170
5.4. GENETIC ALGORITHMS
The following crossover scenario, between two panels of lengths 0.8 and 2.45 can take place
parent 1:
parent 2:
0 0k1 1 1 1 l = 0:8
1 1k0 0 0 0 l = 2:45 :
(5.4.15)
The two possible child designs are
child 1:
child 2:
0 0 0 0 0 0 l = 0:05
1 1 1 1 1 1 l = 3:2 :
(5.4.16)
That is, instead of getting child designs that have some intermediate value between the
two parent designs we obtain designs that are more extreme than either parent. One can
check that most of the designs obtained by crossover from these two parents will have this
property. This property reduces from the eectiveness of crossover operator for combining
existing traits from parent designs into the child designs. However, it contributes to the
exploration of new design alternatives, a process which is usually handled by the mutation
operator described in the next section. It is probably preferable to let the crossover operator
control recombination of existing traits, and the mutation operator handle exploration of
new traits. However, one can expect that in some situations the additional exploratory
power of the binary crossover operator is benecial.
If, on the other hand, we use real numbers to represent the variables we run into the
opposite problem. In this kind of a representation the real values of each of the variables
is assigned to a single location in the genetic string. With binary representation of these
real numbers, crossover can create child designs which have intermediate values of the
parents genes. However, with each real number represented by a single gene, crossover can
only reproduce values present in the initial population. This situation may be acceptable,
since the mutation operator, described in the next section can create new values. Another
solution to this problem is to replace the ordinary crossover with an averaging crossover.
For example, if we have a string of length L with integer or real variables, we generate the
crossover cuto point as a real random number w = rL between 0 and L. Then we take the
rst bwc variables from one parent, the last L ; bwc ; 1 from the second parent, and we
average the bwc + 1 variable between the two parents according to the fraction w ; bwc.
That is, if in location bwc + 1 the rst parent has the value x1 and the second parent x2 ,
then the child design will have
xc = (w ; bwc) x1 + (1 ; w + bwc) x2
(5.4.17)
Consider, for example, a problem where we design a balanced, symmetric laminated plate
with the design variables being the length a and width b of the plate, and the numbers of
stacks of 02 , 45 , and 902 in half of the thickness of the plate, denoted as N0 , N45 and
171
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
N90 , respectively. The genetic string will be a b N0 N45 N90 ]. The following crossover
scenario will correspond to a 10:1 7:3 0]20 plate crossed with a 12:5 6:3 04 = 45=904 ]s
plate with a cuto point of 2.35:
parent 1:
parent 2:
10:1 7:3 5 0 0
12:5 6:3 2 1 2 :
(5.4.18)
The (only) child design is
child : 10:1 7:3 3 1 2 :
(5.4.19)
That is the child design is a 10:1 7:3 06 = 45=904 ]s plate. Note that with the cuto point
being 2.35, the rst two numbers in the string were taken from parent 1, the last two from
parent 2, while the third number was calculated as
N0 = (2:35 ; 2)5 + (1 ; 2:35 + 2)2 = 3:05
(5.4.20)
and then rounded down to an integer. If the cuto involved one of the real numbers in
the string the last step of rounding would have not been required. The process is coded in
subroutine cross for integer variables, as shown in Figure 5.8.
5.4.5 Mutation
Mutation serves an important task of preventing premature loss of important genetic information by introduction of occasional random alteration of a string. Inferior designs may
have some good traits that can get lost in the gene pool when these designs are not selected
as parents. Additionally, mutation is needed when integer or real coding is used because in
most cases there is low probability that all the possible genes are represented in the initial
population. Consider, for example an initial population of 20 designs, each with 6 genes,
where each gene can take a value from 1 to 10. Let us calculate the probability that no
member of the initial population will have a value of 10 for one of the 6 genes. The probability that any individual design does not have the value 10 in the rst gene is 0.9. The
probability that none of the designs have that value is 0:920 = 0:121. That is the probability
that at least one design will have a gene with a value of 10 is 0.879. The probability that
at least one design will have the value 10 for each one of the 6 genes is 0:8796 = 0:46. That
is, there is more than 50 percent chance that the value 10 is missing from at least one gene
in the entire initial population. Because this is the highest value for the gene, averaging
crossover cannot create this gene, and only mutation can.
Mutation is implemented by changing, at random, the value of a digit in the string with
small probability. Based on small rate of occurrence in biological systems and on numerical
172
5.4. GENETIC ALGORITHMS
subroutine cross(parent,chldlm,prntlm,ns,pc,L)
integer parent(2),prntlm(L,ns),chldlm(L)
id1=parent(1)
id2=parent(2)
clone=rand(iseed)
if (clone .gt. pc) then
do 100 i=1,L
chldlm(i)=prntlm(i,id1)
100 continue
return
else
endif
rcut=L*rand(iseed)
icut=int(rcut)
if (icut .eq. 0) go to 300
do 200 i=1,icut
chldlm(i)=prntlm(i,id1)
200 continue
300 continue
chldlm(icut+1)=(rcut-icut)*prntlm(icut+1,id1)
@ +(1.-rcut+icut)*prntlm(icut+1,id2)
if (icut .eq. L-1) return
do 400 i=icut+2,L
chldlm(i)=prntlm(i,id2)
400 continue
return
end
Figure 5.8: Fortran subroutine for averaging crossover with integer variables in a string of
length L. Crossover is performed with probability pc, otherwise the rst parent is cloned.
173
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
experiments, the role of the mutation operation on the performance of a genetic algorithm
is considered to be a secondary eect. Goldberg suggests a rate of mutation pm of one in
one thousand bit operations. However, when integer coding is used higher mutation rates
are required. Our experience with stacking sequence design suggests a rate of about one in
a hundred, with smaller populations requiring higher mutation rates to preserve diversity
in the population. Mutation is implemented by generating a random number between 0 and
1 and applying a mutation if its value is smaller than pm . Another random number can
then be used to select a replacement to the digit being mutated. When we use 0 to denote
absent layers, a mutation may create a void inside the laminate, so that we have to pack
the laminate as described earlier in Section 5.4.2 after the mutation operation.
When real design variables are coded as binary numbers, there are situations where
small changes in the design cannot be achieved by mutations. For example, consider the
case when we have an integer design variable varying from 0 to 31, coded as a 5 digit binary
number. The string 01111] corresponds to 15 and the string 10000] corresponds to 16. Even
though the two designs are close, it is extremely unlikely that a mutation will change one
string into another. This can occasionally result in slower progress for the algorithm. For
example, if the optimum design corresponds to 16, and 15 is a close second best, we can
run into situations when most of the members of the population have a value of 15 at some
stage of the optimization. Making the nal improvement from 15 to 16 can then take a very
long time. To counteract this problem, one can use another binary coding, called the gray
code, which does not have the abrupt change in digits due to small changes in the value
of the number. Alternatively, we can add another mutation operator, called local mutation,
applied to the original variables rather than the coded ones. This local mutation operator
is also useful when we do not use binary numbers but use the actual values of the variables
in the string. Subroutine locmut, shown in Figure 5.9, performs such a mutation. The
size of the mutation is dictated by the parameter range.
The mutation coded in subroutine locmut in Figure 5.9 is based on a uniform distribution. When real variables are used in the string, the mutation is often a normally
distributed random number with a zero mean and a specied standard deviation (see, Back
and Schwefel, 1993).
5.4.6 Permutation, Ply Addition and Deletion
For stacking sequence design, several specialized mutation operators have been suggested
in the literature. One class of operators is permutation operators which change the stacking sequence without changing the composition of the laminate. These operators change
the bending stiness of the laminate without changing its in-plane properties. They are
particularly useful for laminate problems with constraints on both in-plane and bending
174
5.4. GENETIC ALGORITHMS
subroutine locmut(lamin,L,pm,range)
dimension lamin(L)
do 100 i=1,L
dodont=rand(iseed)
if (dodont .gt. pm) go to 100
mute=range*rand(iseed)
if (dodont .lt. 0.5) then
lamin(i)=lamin(i)-mute
if (lamin(i) .lt. 0) lamin(i)=0
else
lamin(i)=lamin(i)+mute
endif
100 continue
return
end
Figure 5.9: Fortran subroutine for local mutation which perturbs integer variables by range
with probability pm.
properties as explained below.
In problems of stacking sequence design, there are many laminates with the same inplane properties and dierent bending properties. For example, the laminates 0=902 ]s ,
90=0=90]s , and 902 =0]s have the same in-plane stinesses but dierent bending stinesses.
In fact, any permutation of the stacking sequence preserves the in-plane properties. In particular, if we consider the optimum stacking sequence for a combined in-plane and bending
problem, there may be many laminates with identical layer composition, but with dierent
(non-optimal) stacking sequence. Since there are many possible laminates, the genetic algorithm typically nds laminates with optimal composition of orientation angles early in the
search, and the rest of the search is devoted to shu ing the stacking sequence to produce
the desired bending properties.
Achieving a permutation in stacking sequence by a standard mutation operator is difcult because it calls for two simultaneous mutations, which have a low probability of
occurring. For this reason, various permutation operators have been proposed for stacking
sequence design (e.g., Le Riche and Haftka 1993, 1995 Marcelin et al., 1995 Nagendra et
al., 1996). The simplest, and possibly the most eective permutation operator is the plyswap, where two layers are interchanged. For example, for a symmetric balanced laminate
175
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
45= ; 45=0=902 =0=45=02 = ; 45]s with positions 3 and 7 chosen for a ply-swap, we have (0 ,
45 , ;45 , 90 coded as 1,2,3,4, respectively)
before ply-swap :
2314412113
after ply-swap :
2324411113
leading to 45= ; 45=45=902 =04 = ; 45]s laminate.
(5.4.21)
Occasionally, the number of plies of each orientation is xed, and the laminate design requires only to obtain the best stacking sequence with the given orientations. This
is equivalent to nding the best permutation of a baseline laminate. Specialized codings
and crossover have been developed for permutation problems arising in scheduling (e.g.
Michalewicz, 1992). These can be adapted to composite optimization, and have proved to
be highly ecient (Liu et al. 1998).
When the thickness of a laminate is not specied, we use empty layers or stacks with
special code (e.g. zero) to allow for variable thickness. The standard mutation operator
in this case controls the processes of adding layers, deleting layers, and changing their
orientation in a collective manner. These operators are referred to as, the ply-addition, plydeletion, and ply-orientation mutations, respectively. Assigning dierent probabilities to
the three dierent forms of the mutation operator may provide performance improvements.
For example, if a single mutation probability is used, we may change the laminate thickness
more frequently than we need. The optimum laminate thickness is usually achieved early
in the genetic search, so that the probability of adding or subtracting layers should be low
compared to the probability of changing the orientation. Le Riche and Haftka, 1995, show
the benet of using separate ply-addition, ply-deletion, and ply-orientation mutations. Nagendra et al., 1995, show similar gains, and also suggest separate ply-swap operators for
interchanging layers in the same laminate and between dierent laminates in the components of a stiened panel (e.g., between the skin and the stiener laminates).
5.4.7 Computational Cost and Reliability
Genetic algorithms tend to be costly, requiring thousands of analyses. The cost depends on
the size of the design space and the way constraints hinder movement in the design space.
Therefore, to keep the computational cost manageable it is useful to try and keep down
the size of the design space and avoid formulating constraints in such a way that they will
greatly constrain the movement in the design space. The constraint reecting the balanced
laminate requirement is a good example of this principle. Consider for example, the design
of a 48-ply symmetric and balanced laminate to be made of 0 , 90 , and 45 orientations.
The symmetry allows modeling of only half of the laminate, so that the string length is
176
5.4. GENETIC ALGORITHMS
24. With four possible digits to represent the four orientations, the size of the design space
is 424 = 2:8 1014 . As noted in the Crossover Section (Section 5.4.4), even if two parent
laminates are balanced the child laminate is often not balanced. That is, we have a very
large design space, and the balance constraint is violated for many laminates generated by
crossover or mutation.
If we use stacks of two layers each 02 , 45, and 902 , we automatically satisfy the
balance constraint and, for the 48-ply laminate, reduce the string length to 12. With only
three possible digits the size of the design space shrinks to 312 = 531 441. Of course, we
may lose a bit on performance, because we exclude laminates with odd number of layers of
the same orientation in a stack. If we have a problem where this consideration is important
enough, we can still salvage some of the performance gains. We can use, for example, the
digits 1, 2, and 3 to represent the possible layers, with 1 representing 0 and 3 representing
90 layers. The digit 2 represents either a 45 or a ;45 layer, with the understanding that
the outermost 2 in the string corresponds to 45 , the next 2 corresponds to ;45 , and so on.
The size of the design space is now 324 = 2:8 1011 , which is still 1000 times smaller than
the original design space. Also, now we can never have more than a single layer violation
of the balance condition, and violations are less common as a result of crossover.
The computational cost of genetic algorithms also depends on our requirements in terms
of reliability. It is important to realize that because of the random aspects of the algorithm,
each execution of the algorithm can result in a dierent answer. High reliability means that
almost always the answer is close enough to the global optimum. Le Riche and Haftka (1993)
dened practical reliability as the probability that the optimum is \practically equal" to
the global optimum. For the buckling and strength problems that they solved, they dened
the term \practically equal" to mean within 0.1 percent of the optimum. The reliability
can be increased by increasing the number of generations that the algorithm is run, and by
increasing the number of strings ns. Alternatively, we can simply run the algorithm several
times and take the best answer. All of these strategies cause an increase in computational
cost. However, multiple runs may also produce multiple solutions that could be useful to
the designer. This point is illustrated in the following example.
The reliability of the genetic algorithm is usually established by testing with problems
with known solutions. If the algorithm is run m times and is successful in nding the global
optimum ms of these runs, then the apparent reliability ra is
ra = ms =m :
(5.4.22)
However if m is small, the apparent reliability may be quite dierent from the true reliability
r. In fact, with a bit of statistics, it can be shown that the standard deviation a of the
177
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
apparent reliability is
q
a = r(1 ; r)=m :
(5.4.23)
For example, if we have 7 successful runs out of 10, the apparent reliability is 0.7, with a
standard deviation of 0.145.
Example 5.4.4
Use genetic optimization to nd the thinnest balanced symmetric Graphite/Epoxy laminate
made of 0 , 30 , 45 , 60 and 90 layers that satises the strain constraints of Example
4.1.1.
Since this is an in-plane problem, we do not need to design the stacking sequence but only
the number of layers in each orientation. We, therefore, select the design variables as n0 , n30 ,
n45 , n60 , and n90 . With the symmetry and the balance condition the total number of layers in
the laminate, which is the objective function, is
f = 2(n0 + n90 ) + 4(n30 + n45 + n60 ) :
The two constraints are a limit of 0.004 on the axial strain x under a load of Nx = 10 000
lb/in, and a limit of 0.006 on the shear strain xy under a load of Nxy = 3 000 lb/in. We write
the constraints in a normalized form as
g1 =
g2 =
x
0:004 ; 1 0 xy
0:006 ; 1 0 :
For the genetic optimization we use a string of (n0 n30 n45 n60 n90 ), and an augmented
objective function of
f + p max(g1 g2 ) if max(g1 g2 ) > 0 ,
f ; jmax(g1 g2 )j otherwise:
To determine the magnitude of p we note that in Example 4.1.1 the total number of layers
f =
varied between 68 and 158, depending on the choice of orientation angles. For any of these
choices, one constraint is critical, i.e. close to zero. Reducing the number of layers by, say 10
percent, will increase the strains by 10 percent, and so will result in gmax becoming about 0.1.
We need the penalty associated with this violation to result in an increment to the augmented
objective of at least 10 percent of that objective. This means a p of between 68 and 158. To
ensure feasibility we chose p = 300.
To provide bonus for feasible designs with constraint margin, we need to choose to be
small enough so that even a large constraint margin will not overpower a dierence in thickness.
On the other hand, we want it to be large enough to reward constraint margins for designs with
the same thickness. For this we chose = 0:1 (for a discussion of the selection of the bonus
and penalty parameters, refer to Section 5.4.3 and Example 5.4.1). For the initial population
178
5.4. GENETIC ALGORITHMS
we used subroutine init of Figure 5.4, with nmax=20. As can be seen from the equation for
the objective function, this choice permits the initial population to have up to 320 layers, with
an average of 160. We used the averaging crossover of Figure 5.8, and the local mutation of
Figure 5.9. After some experimentation we settled on a mutation rate, pm = 0:15, a mutation
range of 5, and a crossover probability, pc = 0:9.
To determine the population size and number of generations, we ran the optimization
20 times and monitored the reliability of the process. For a population size of 80 and 50
generations, 19 of the 20 optimizations gave the same nal objective. Using Eqs. (5.4.22) and
(5.4.23) this corresponds to a reliability of 0.95 with standard deviation of 0.049. Of course,
for more expensive problems we may not be able to engage in such extensive experimentation.
However, it is important to build up intuition for these parameters from simple problems.
The optimizations yielded 4 designs with practically identical performance. These were
012 = 454 ]s , 010 = 303= 45= 60]s , 09= 304= 45=90]s, and (010 = 304 = 45)s . All
four designs have 40 layers, and the rst three have g1 = ;0:0001, g2 = ;0:0006. The last
design has g1 = ;0:0365, g2 = ;0:0006. This last design is slightly superior in that it has
a minimum margin of 0.06 percent instead of the 0.01 percent obtained for the other three.
However, the dierence is so minute, that it is much smaller than the error associated with
predicting the strains using classical lamination theory (or any other theory).
It is worthwhile to note again that composite stiness design problems often have multiple
optima, and that genetic algorithms help the designer nd all or many of these optima, thus
presenting a choice that could be decided on the basis of other considerations. The example above demonstrates that multiple genetic runs can produce near equivalent
designs. Additionally, it is often computationally advantageous to make multiple runs rather
than a single long genetic optimization. For example, if we nd that optimization runs that
last 100 generations give us 40% reliability, then the probability that we will not nd the
optimum in one run is 60%, the probability that we will not nd the optimum in two runs
is 0:62 = 36%, and the probability that we will not nd the optimum in three runs is
0:63 = 21:6%. That is, two runs give us a reliability of 64%, and three runs a reliability
of 78.4%. We need to compare these numbers with the reliability achieved in a single run
of 200 generations and 300 generations, respectively. In general, if we denote the reliability
achieved by q runs each with n generations as rq (n), then
rq (n) = 1 ; 1 ; r1 (n)]q :
(5.4.24)
This equation can be used to compare the relative eciency of multiple runs for simple
cases for which we can aord to make a large number of runs. Then the results could
serve as guidelines for choosing the number of runs for similar but more computationally
expensive cases. Le Riche and Haftka (1995) found that for designing the stacking sequence
of unstiened panels for strength and buckling constraints, single runs are most ecient
179
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
when the desired reliability is below about 80%. For higher reliabilities multiple runs are
more ecient.
Most of the discussion in the section on genetic algorithm focused on integer codings.
However, binary codings are also popular, and we close the chapter with an example of an
application of a genetic algorithm based on binary coding.
Example 5.4.5
The cantilever composite beam shown in Figure 5.10 is subjected to a transverse load P and
a twisting moment Mxy . Use a genetic algorithm to design of a hygrothermally curvaturestable laminate for the beam. The beam is to be designed to maximize extension-twisting and
bending-extension coupling, with constraints on stiness in exure and twist under the applied
loads. The constraints require the tip displacement to be less than 0.1 inch and the tip twist to
be less than 0.01 radians. The couplings as well as the tip displacement and twist are given in
terms of the inverse of the (A,B,D) matrix, with the corresponding locations os submatrices in
the inverse are denoted as aij , bij , and dij , respectively, see Eq. (3.3.3). The tip displacement
wtip is given as
2
3
wtip = d113PL + d16 M2xy L :
The tip twist tip is given as
2
tip = d164PL + d66 M2 xy L :
Assuming that we want to maximize a linear combination of the two coupling coecients b11
and b16 , the objective function is (c1 jb11 j + c2 jb16 j). The coecients c1 and c2 are chosen
depending on how we want to emphasize the two coupling terms. In addition to constraints on
maximum deection and twist at the tip, an additional constraint was imposed in this problem
that limited the number of layers in the laminate to a maximum of 24.
Material properties may assumed to be those corresponding to HT-S/4617 Graphite/Epoxy,
and are dened as follows:
E1 = 20 106 psi E2 = 1:3 106 psi G12 = 0:65 106 psi 12 = 0:304 t = 0:005 in:
A hygrothermally curvature-stable, antisymmetric laminate 3 =(
+ 90)6=
3 = ; 3= ; (
+
90)6 = ; 3 ] provides one solution that would meet the desired objective (see Chapter 3). Finding
the optimum value of is a one dimensional optimization problem, and can be solved by plotting
the objective function and constraints as a function of . The hygrothermal curvature stability
can also be realized in more general unsymmetric composite laminates that are obtained by
stacking two symmetric layer groups =
+ 90]n1s (type-I) and = + 60= + 120]n2s (typeII). Any additional symmetric layer groups with equally spaced angles can also be added to
the laminate without disturbing the hygrothermal curvature stability. The problem formulation
allows for the two layer groups to be assigned to the two available positions on the laminate.
180
5.4. GENETIC ALGORITHMS
P
A
A
L = 10 in
M xy
1.0 in
0.12 in
Section A-A
Figure 5.10: Cantilevered beam with a tip load and a moment
It is possible to have both layer groups be of the same type, with similar or dierent basic
orientation angles. The optimization problem for nding the optimum laminate with the angles
and was formulated as
minimize
b ; (c1jb11 j + c2 jb16j)
such that
n1 p1 + n2 p2 24
10 113
100 164
d PL3 + d16 Mxy L2 ; 1 0
2
d PL2 + d66Mxy L ; 1 0 2
The design variables for this problem are the basic orientation angles and , the number
of layer groups n1 and n2 , and the number of layers in each layer group p1 and p2 . That is,
p1 = 2 if we select the rst layer group to go with n1 , and p1 = 3 if we select the second
layer group to go with n1 . The constant b , which was set to 10 10;4, is used to convert the
maximization problem into a minimization.
The orientation angles and were varied discretely between 0 and 174 in increments
of 6 . The 30 possible values of were each represented by one of the unique combinations
available from a 5-digit binary string the two excess binary string combinations were assigned
to 0 and 90 degrees, respectively. The variables n1 and n2 varied between 1 and 4, and required
a 2-digit binary string to uniquely represent the four possibilities. It is important to indicate that
there is an inherent danger in representing certain variables by more strings than others, in that
the search is biased in favor of the overrepresented variables. In this problem, however, due to
a large number of possible choices of and to select from, this is not a serious concern. The
choice of layer group is assigned to two variables p1 and p2 , which could assume the values of
181
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
Table 5.2: Summary of optimization results for weighting coecients c1 = 0:5 c2 = 0:5
Run
ID
1
2
3
4
5
1
126
174
126
126
126
2 Group Type n1 n2
p1 p2
30
168
168
168
168
2
2
3
2
2
2
3
2
3
3
4
3
2
3
3
2
2
3
2
2
b11
;6
b16
10
10;6
-16.210 -26.839
-26.031 18.544
25.743 -17.924
-26.031 18.544
-26.031 18.544
Table 5.3: Summary of optimization results for weighting coecients c1 = 0:75 c2 = 0:75
Run 1 2 Group Type n1 n2
b11
b16
;
6
ID
p1 p2
10
10;6
1
36 168
2 3
3 2 -26.031 18.544
2
0 48
3 2
2 3 28.696 7.1758
3 126 168
2 3
3 2 -26.031 18.544
4
0 48
3 2
2 3 28.696 7.1758
5 168 42
3 2
2 3 28.705 -6.7722
2 or 3. Hence, a single digit string is sucient to represent each of these variables. A 16-digit
binary string is required to represent all design variables for this problem (10 digits for and
, 2 digits each for n1 and n2 , and 1 digit each for p1 and p2 ).
Two variations of the above problem were considered. In each case, a total of 10000 function
evaluations were permitted. A two-point crossover was used with a probability of 0.8. Mutation
with a probability of 0.02 per string was used. The rst test case required the maximization of
an equally weighted sum of the b11 and b16 coecients, with only a constraint on the total
allowable thickness of the beam. The best design obtained for this case was that in each of
the two available slots, layer group I was selected, the basic orientation angles for these groups
were 1 = 108 and 2 = 150 , and the coupling coecients b11 and b16 were 122:44 10;6
in/lb-in and 436:98 10;6 in/lb-in, respectively. The variables n1 and n2 were both obtained as
unity this is to be expected as the thinner laminate would maximize the compliance coecients.
This experiment was repeated for population sizes of 100, 150, and 200, and similar solutions
were identied in each case.
In the second test case, the bending and twist displacement constraints were activated in
addition to the maximum thickness requirement. The population size was selected as 200. For
three distinct choices of weighting coecients c1 and c2 , ve simulations of genetic search were
182
5.5. EXERCISES
Table 5.4: Summary of optimization results for weighting coecients c1 = 0:25 c2 = 0:75
Run 1 2 Group Type n1 n2 b11
b16
;
6
ID
p1 p2
10
10;6
1 144 126
2 2
3 3 0.9194 -36.545
2
36 54
2 2
3 3 0.9194 -36.545
3
36 54
2 2
3 3 0.9194 -36.545
4
36 54
2 2
3 3 0.9194 -36.545
5 144 126
2 2
3 3 0.9194 -36.545
performed. These results are summarized in Tables 5.2{5.4. For the case where c1 = 0:75 c2 =
0:25 and c1 = c2 = 0:5, similar results were obtained. As seen in Tables 5.2 and 5.3, the
solutions corresponded to a use of both Type I and Type II groups in establishing an optimal
laminate for the given design constraints. When, the tension-twist coupling is emphasized to
a greater degree than bending-extension (c1 = 0:25 c2 = 0:75), the Type I group was used
exclusively as shown in Table 5.4. This is easily explained by the observation that the Type
II group is mechanically isotropic, and would not contribute to the extension-twist coupling
coecient. In contrast, the Type I group is mechanically orthotropic, and is the predominant
source of the b16 coupling coecient. It is also worthwhile to note that the presence of the
bending and twisting stiness constraints increases the laminate thickness by introducing n1
and n2 values dierent from unity.
5.5 Exercises
1. Design a minimum thickness laminate with 0 , 45 , and 90 layers such that the
laminate Poisson's ratio is greater than 0.6, the shear modulus is less than 16 GPa, and
the stiness term A22 is greater than 30 MN/m. Formulate the problem as a linear integer
programming problem and use optimization software (e.g. Microsoft Excel) to solve it.
Note that the total laminate thickness is not expected to be larger than 20 layers. Use the
following material properties, E1 = 76 GPa, E2 = 5:5 GPa, G12 = 2:3 GPa, 12 = 0:34,
and t = 0:125 mm.
2. For a 40-ply Graphite/Epoxy laminate under unit axial load, show that as you decrease the number of zeroes in the laminate, from (458 =04 )s to (459 =02 )s and nally
to (4510 )s , the maximum strain in any ber direction increases and then decreases. This
makes the all 45 design singular, in that it cannot be reached by gradually reducing the
183
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
number of 0 layers.
3. Solve Problem 1 by genetic optimization.
4. Repeat Example 5.4.4 using binary coding of the design variables.
5. Using genetic optimization, design 16-, 24-, and 32-ply balanced symmetric laminates
to maximize the Poisson's ratio of the laminate subjected to the constraint that Ey >
40GPa. Use the following material constants.
U1 = 57:5GPa U2 = 58:0GPa U3 = 13:6GPa U4 = 17:5GPa and U5 = 20:0GPa:
Study the eects of the probability of mutation and the magnitude of the penalty
multiplier on the progress and nal results of the design optimization.
5.6 References
Arora, J. S., \Introduction to Optimum Design," McGraw{Hill, New York, 1989.
Back, T., and Schwefel, H.-P., \An Overview of Evolutionary Algorithms for Parameter
Optimization," Evolutionary Computation, 1 (1), 1{23, 1993.
Booker, L., \Improving Search in Genetic Algorithms," in Genetic Algorithms and Simulated Annealing, Ed. Davis, L., Morgan Kaufmann Publishers, Inc., Los Altos, CA. 1987,
pp. 61{73.
Callahan, J. K., and Weeks, G. E., \Optimum Design of Composite Laminates Using
Genetic Algorithms," Composites Engineering, 2 (3), pp. 149{160, 1992.
De Jong, K. A., Analysis of the Behavior of a Class of Genetic Adaptive Systems (Doctoral Dissertation, The University of Michigan University Microlms No. 76-9381), Dissertation Abstracts International, 36 (10), 5140B, 1975.
Furuya, H., and Haftka, R.T., \Genetic Algorithms for Placing Actuators on Space
Structures," Proceedings, Fifth International Conference on Genetic Algorithms," July 17{
22, 1993, Urbana, IL., pp. 536{542.
Garnkel, R. S., and Nemhauser, G. L., Integer Programming, John Wiley & Sons, Inc.,
New York, 1972.
Goldberg, D. E., and Samtani, M. P., \Engineering Optimization via Genetic Algorithm," Proceedings of the Ninth Conference on Electronic Computation, ASCE, February
1986, pp. 471{482.
184
5.6. REFERENCES
Goldberg, D. E., Genetic Algorithms in Search, Optimization, and Machine Learning,
Addison-Wesley Publishing Co. Inc., Reading, Massachusetts, 1989.
Hajela, P., \Genetic Search|An Approach to the Nonconvex Optimization Problem,"
AIAA J., 28 (7), July 1990, pp. 1205{1210.
Holland, J. H., Adaptation of Natural and Articial Systems, The University of Michigan
Press, Ann Arbor, MI, 1975.
Johnson, E. L., and Powell, S., \Integer Programming Codes," in Design and Implementation of Optimization Software, Greenberg, H. J. (ed.), pp. 225{240, 1978.
Kogiso, N., Watson, L.T., Gurdal Z., Haftka, R.T., and Nagendra, S., \Design of Composite Laminates by a Genetic Algorithm with Memory," Mechanics of Composite Materials
and Structures, 1(1), pp. 95{117, September 1994.
Kovacs, L. B., Combinatorial Methods of Discrete Programming, Mathematical Methods of Operations Research Series, Vol. 2, Akademiai Kiado, Budapest, 1980.
Land, A. H., and Doig, A. G., \An Automatic Method for Solving Discrete Programming
Problems," Econometrica, 28, pp. 497{520, 1960.
Laarhoven, P. J. M. van. and Aarts, E.,glossaryAarts, E., Simulated Annealing: Theory
and Applications, D. Reidel Publishing, Dordrecht, The Netherlands, 1987.
Lawler, E. L., and Wood, D. E., \Branch-and-Bound Methods|A Survey," Operations
research, 14, pp. 699{719, 1966.
Le Riche, R. Optimization of Composite Structures by Genetic Algorithms, Ph.D. Dissertation, Virginia Polytechnic Institute and State University, Oct.1994.
Le Riche, R., and Haftka, R. T. , \Optimization of Laminate Stacking Sequence for
Buckling Load Maximization by Genetic Algorithm," AIAA/ASME/AHS/ASCE/ ASC
33rd Structures, Structural Dynamics and Materials Conference, Dallas, TX. 1992, also
AIAA Journal, Vol. 31 (5), pp. 951{956, 1993.
Le Riche, R., and Haftka, R.T., \Improved Genetic Algorithm for Minimum Thickness
Composite Laminate Design," Composite Engineering, 5 (2), pp. 143{161, 1995.
Le Riche, R., Knopf-Lenoir, C., and Haftka, R. T., \A Segregated Genetic Algorithm
for Constrained Structural Optimization," in Genetic Algorithms: Proceedings of 6th International Conference on Genetic Algorithms (ICGA95) (L. Eshelman, editor), July 1995.
Liu, B., Haftka R. T., and Akgun, M. A., \Permutation Genetic Algorithm for Stacking
Sequence Optimization," AIAA Paper 98-1830, 1998.
Marcelin, J.-L., Trompette, P., and Dornberger, R., \Optimization of Composite Beam
Structures using a Genetic Algorithm," Structural Optimization, 9(3/4), pp. 236{244, 1995.
185
CHAPTER 5. INTEGER PROGRAMMING TECHNIQUES
Michalewicz, Z., Genetic Algorithms + Data Structures = Evolution Programs, Springer
Verlag, Berlin, 1992.
Nagendra, S., Haftka, R. T., and Gurdal, Z., \ Design of a Blade Stiened Composite
Panel by a Genetic Algorithm," Proceedings, AIAA/ASME/ASCE-/AHS/ASC 34th Structures, Structural Dynamics and Materials Conference, San Diego, CA, April 19{21, 1993,
Part 4, pp. 2418{2436.
Nagendra, S., Jestin, D., and Gurdal, Z.,, Haftka, R. T., and Watson, L. T., \ Improved Genetic Algorithm for the Design of Stiened Composite Panels," Computers and
Structures, 58 (3), pp. 543{555, 1996.
Rao, S. S., Pan, T.-S., and Venkayya, V. B., \Optimal Placement of Actuators in Actively Controlled Structures Using Genetic Algorithms," AIAA J., 29 (6), pp. 942{943, June
1991.
Schmit,L. A., and Farshi, B., \Optimum Laminate Design for Strength and Stiness,"
Int. J. Num. Meth. Engrg., 7, pp. 519{536, 1973.
Schrage, L., Linear, Integer, and Quadratic Programming with LINDO, 4th Edition,
The Scientic Press, Redwood City CA., 1989.
Tomlin, J. A., \Branch-and-Bound Methods for Integer and Non-convex Programming,"
in Integer and Nonlinear Programming, J. Abadie (ed.), pp. 437{450, Elsevier Publishing
Co., New York, 1970.
186