0% found this document useful (0 votes)
26 views23 pages

A Genetic Algorithm Approach For The Time-Cost Trade-Off in PERT Networks

This document presents a genetic algorithm approach for solving a multi-objective time-cost trade-off problem in PERT networks with uncertain activity durations modeled by generalized Erlang distributions. The authors develop a model that considers project cost, mean completion time, completion time variance, and project completion probability as objectives. A genetic algorithm called GENOCOP is applied to solve the problem. Computational experiments are performed to identify effective genetic algorithm parameters and compare the genetic algorithm results to other solution methods.

Uploaded by

Leonardo Baganha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views23 pages

A Genetic Algorithm Approach For The Time-Cost Trade-Off in PERT Networks

This document presents a genetic algorithm approach for solving a multi-objective time-cost trade-off problem in PERT networks with uncertain activity durations modeled by generalized Erlang distributions. The authors develop a model that considers project cost, mean completion time, completion time variance, and project completion probability as objectives. A genetic algorithm called GENOCOP is applied to solve the problem. Computational experiments are performed to identify effective genetic algorithm parameters and compare the genetic algorithm results to other solution methods.

Uploaded by

Leonardo Baganha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Applied Mathematics and Computation 168 (2005) 1317–1339

[Link]/locate/amc

A genetic algorithm approach for the


time-cost trade-off in PERT networks
Amir Azaron *, Cahit Perkgoz, Masatoshi Sakawa
Department of Artificial Complex Systems Engineering, Graduate School of Engineering,
Hiroshima University, Kagamiyama 1-4-1, Higashi-Hiroshima, Hiroshima 739-8527, Japan

Abstract

We develop a multi-objective model for the time-cost trade-off problem in PERT net-
works with generalized Erlang distributions of activity durations, using a genetic algo-
rithm. The mean duration of each activity is assumed to be a non-increasing function
and the direct cost of each activity is assumed to be a non-decreasing function of the
amount of resource allocated to it. The decision variables of the model are the allocated
resource quantities. The problem is formulated as a multi-objective optimal control
problem that involves four conflicting objective functions. The objective functions are
the project direct cost (to be minimized), the mean of the project completion time
(min), the variance of the project completion time (min), and the probability that the
project completion time does not exceed a certain threshold (max). It is impossible to
solve this problem optimally. Therefore, we apply a ‘‘Genetic Algorithm for Numerical
Optimizations of Constrained Problems’’ (GENOCOP) to solve this multi-objective
problem using a goal attainment technique. Several factorial experiments are performed
to identify appropriate genetic algorithm parameters that produce the best results within
a given execution time in the three typical cases with different configurations. Finally, we
compare the genetic algorithm results against the results of a discrete-time approxima-
tion method for solving the original optimal control problem.
Ó 2004 Elsevier Inc. All rights reserved.

*
Corresponding author.
E-mail address: azaron@[Link] (A. Azaron).

0096-3003/$ - see front matter Ó 2004 Elsevier Inc. All rights reserved.
doi:10.1016/[Link].2004.10.021
1318 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

Keywords: Project management and scheduling; Genetic algorithm; Multiple objective program-
ming; Optimal control; Design of experiments

1. Introduction

Since the late 1950s, critical path method (CPM) techniques have become
widely recognized as valuable tools for the planning and scheduling of large pro-
jects. In a traditional CPM analysis, the major objective is to schedule a project
assuming deterministic durations. However, project activities must be scheduled
under available resources, such as crew sizes, equipment and materials. The
activity duration can be looked upon as a function of resource availability.
Moreover, different resource combinations have their own costs. Ultimately,
the schedule needs to take account of the trade-off between project direct cost
and project completion time. For example, using more productive equipment
or hiring more workers may save time, but the project direct cost could increase.
In CPM networks, activity duration is viewed either as a function of cost or
as a function of resources committed to it. The well-known time-cost trade-off
problem (TCTP) in CPM networks takes the former view. In the TCTP, the
objective is to determine the duration of each activity in order to achieve the
minimum total direct and indirect costs of the project. Studies on TCTP have
been done using various kinds of cost functions such as linear [1,2], discrete [3],
convex [4,5], and concave [6].
When the cost functions are arbitrary (still non-increasing), the dynamic pro-
gramming (DP) approach was suggested by Robinson [7] and Elmaghraby [8].
Tavares [9] has presented a general model based on the decomposition of the
project into a sequence of stages and the optimal solution can be easily computed
for each practical problem as it is shown for a real case study. Weglarz [10] stud-
ied this problem using optimal control theory and assumed that the processing
speed of each activity at time t is a continuous, non-decreasing function of the
amount of resource allocated to the activity at that instant of time. This means
that time is considered as a continuous variable. Unfortunately, it seems that this
approach is not applicable to networks of a reasonable size (>10).
Recently, some researchers have adopted computational optimization tech-
niques, such as genetic algorithms and simulated annealing to solve TCTP. Feng
et al. [11] and Chua et al. [12] proposed models using genetic algorithms and the
Pareto front approach to solve construction time-cost trade-off problems.
These models mainly focus on deterministic situations. However, during
project implementation, many uncertain variables dynamically affect activity
durations, and the costs could also change accordingly. Examples of these
variables are weather, space congestion, productivity level, etc. To solve prob-
lems of this kind, PERT has been developed to deal with uncertainty in the
project completion time.
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1319

PERT does not take into account the time-cost trade-off. Therefore, com-
bining the aforementioned concepts to develop a time-cost trade-off model
under uncertainty would be beneficial to scheduling engineers in forecasting
a more realistic project completion time and cost.
In this paper, we develop a multi-objective model for the time-cost trade-off
problem in PERT networks, using a genetic algorithm. It is assumed that the
activity durations are independent random variables with generalized Erlang dis-
tributions. It is also assumed that the amount of resource allocated to each activ-
ity is controllable, where the mean duration of each activity is a non-increasing
function of this control variable. The direct cost of each activity is also assumed
to be a non-decreasing function of the amount of resource allocated to it.
The problem is formulated as a multi-objective optimal control problem,
where the objective functions are the project direct cost (to be minimized),
the mean of the project completion time (min), its variance (min) and the prob-
ability that the project completion time does not exceed a given level (max).
Then, we apply the goal attainment technique, which is a variation of the goal
programming technique, to solve this multi-objective problem.
For the problem concerned in this paper, as a general-purpose solution
method for non-linear programming problems, in order to consider the non-
linearity of problems and to cope with large-scale problems, we apply the
revised GENOCOP V, developed by Suzuki [13], which is a direct extension
of the genetic algorithm for numerical optimizations of constrained problems
(GENOCOP), proposed by Koziel and Michalewicz [14].
Three factorial experiments are performed to identify appropriate genetic
algorithm parameters that produce the best results within a given execution
time in the three typical cases with different configurations. Moreover, an
experiment in randomized block design is conducted to study the effects of
three different methods of solving this problem, including the GA, on the
objective function value and on the computational time.
The remainder of this paper is organized in the following way. In Section 2,
we extend the method of Kulkarni and Adlakha [15] to analytically compute
the project completion time distribution in PERT networks with generalized
Erlang distributions of activity durations. Section 3 presents the multi-objec-
tive resource allocation formulation. In Section 4, we explain the revised
GENOCOP V. Section 5 presents the computational experiments, and finally
we draw conclusions from these experiments in Section 6.

2. Project completion time distribution in PERT networks

In this section, we present an analytical method to compute the distribution


function of the project completion time in PERT networks, or in fact the
distribution function of the longest path from the source to the sink node of
1320 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

a directed acyclic stochastic network, where the arc lengths or activity dura-
tions are mutually independent random variables with generalized Erlang dis-
tributions. To do this, we extend the technique of Kulkarni and Adlakha [15],
because this method is an analytical one, simple, easy to implement on a com-
puter and computationally stable.
Let G = (V, A) be a PERT network with set of nodes V = {v1, v2, . . . , vm} and
set of activities A = {a1, a2, . . . , an}. Duration of activity a 2 A (Ta) exhibits
a generalized Erlang distribution of order na and the infinitesimal generator
matrix Ga as:
2 3
ka1 ka1 0 ... 0 0
6 7
6 0 ka2 ka2 ... 0 0 7
6 7
Ga ¼ 6
6 : : : ... : : 7:
7
6 7
4 0 0 0 . . . kana kana 5
0 0 0 ... 0 0

In this case, Ta would be the time until absorption in the absorbing state. An
Erlang distribution of order na is a generalized Erlang distribution with
ka1 ¼ ka2 ¼    ¼ kana . When na = 1, the underlying distribution becomes expo-
nential with the parameter ka1.
First, we transform the original PERT network into a new one, in which all
activity durations have exponential distributions. For constructing this net-
work, we use the idea that if the duration of activity a is distributed according
to a generalized Erlang distribution of order na and the infinitesimal generator
matrix Ga, it can be decomposed to na exponential series of arcs with the
parameters ka1 ,ka2 , . . . ,kana . Then, we substitute each generalized Erlang activ-
ity with na series of exponential activities with the parameters ka1 ,ka2 , . . . ,kana .
Now, Let G 0 = (V 0 , A 0 ) be the transformed network, in which V 0 and A 0 rep-
resent the sets of nodes and arcs of this transformed network, respectively,
where the duration of each activity a 2 A 0 is exponential with parameter ka.
The source and sink nodes are denoted by s and t, respectively. For a 2 A 0 ,
let a(a) be the starting node of arc a, and b(a) be the ending node of arc a.

Definition 1. Let I(v) and O(v) be the sets of arcs ending and starting at node v,
respectively, which are defined as follows:
IðvÞ ¼ fa 2 A0 : bðaÞ ¼ vg ðv 2 V 0 Þ, ð1Þ

OðvÞ ¼ fa 2 A0 : aðaÞ ¼ vg ðv 2 V 0 Þ: ð2Þ

Definition 2. If X
V 0 , such that s 2 X and t 2 X ¼ V 0  X , then an (s, t) cut is
defined as
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1321

ðX , X Þ ¼ fa 2 A0 : aðaÞ 2 X , bðaÞ 2 X g: ð3Þ


An (s, t) cut ðX , X Þ is called an uniformly directed cut (UDC), if ðX , X Þ is
empty.

Example 1. Before proceeding, we illustrate the material by an example.


Consider the network shown in Fig. 1.
Clearly, (1, 2) is a uniformly directed cut (UDC), because V 0 is divided into
two disjoint subsets X and X , where s 2 X and t 2 X . The other UDCs of this
network are (2, 3), (1, 4, 6), (3, 4, 6) and (5, 6).

Definition 3. Let D = E [ F be a uniformly directed cut (UDC) of a network.


Then, it is called an admissible 2-partition, if I(b(a)) X F, for a 2 F.

To illustrate this definition, consider Example 1 again. As mentioned,


(3, 4, 6) is a UDC. This cut can be divided into two subsets E and F. For exam-
ple, E = {4} and F = {3, 6}. In this case, the cut is an admissible 2-partition, be-
cause I(b(3)) = {3, 4} X F and also I(b(6)) = {5, 6} X F. However, if E = {6}
and F = {3, 4}, then the cut is not an admissible 2-partition, because
I(b(3)) = {3, 4}
F = {3, 4}.

Definition 4. During the project execution and at time t, each activity can be in
one of the active, dormant or idle states, which are defined as follows:

(i) Active. An activity is active at time t, if it is being executed at time t.


(ii) Dormant. An activity is dormant at time t, if it has finished but there is at
least one unfinished activity in I(b(a)). If an activity is dormant at time t,
then its successor activities in O(b(a)) cannot begin.
(iii) Idle. An activity is idle at time t, if it is neither active nor dormant at
time t.

The sets of active and dormant activities are denoted by Y(t) and Z(t), respec-
tively, and X(t) = (Y(t), Z(t)).

Fig. 1. Network corresponding to Example 1 and also Case II.


1322 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

Table 1
All admissible 2-partition cuts of the example network
1. (1, 2) 5. (1, 4*, 6) 9. (3*, 4, 6) 13. (3, 4*, 6*) 17. (/, /)
2. (2, 3) 6. (1, 4, 6*) 10. (3, 4*, 6) 14. (5, 6)
3. (2, 3*) 7. (1, 4*, 6*) 11. (3, 4, 6*) 15. (5*, 6)
4. (1, 4, 6) 8. (3, 4, 6) 12. (3*, 4, 6*) 16. (5, 6*)

Consider Example 1, again. If activity 3 is dormant, it means that this activ-


ity has finished but the next activity, i.e. 5, cannot begin because activity 4 is
still active.
Table 1, presents all admissible 2-partition cuts of this network. We use a
superscript star to denote a dormant activity. All others are active. E contains
all active while F includes all dormant activities.
Let S denote the set of all admissible 2-partition cuts of the network, and
S ¼ S [ fð/,/Þg. Note that X(t) = (/, /) implies that Y(t) = / and Z(t) = /,
i.e. all activities are idle at time t and hence the project is completed by time
t. It is proven that {X(t), t P 0} is a continuous-time Markov process with state
space S, refer to [15] for details.
As mentioned, E and F contain active and dormant activities of a UDC,
respectively. When activity a finishes (with the rate of ka), and there is at least
one unfinished activity in I(b(a)), it moves from E to a new dormant activities
set, i.e. to F 0 . Furthermore, if by finishing this activity, its succeeding ones,
O(b(a)), become active, then this set will also be included in the new E 0 , while
the elements of I(b(a)), which one of them belongs to E and the other ones be-
long to F, will be deleted from the particular sets. Thus, the elements of the
infinitesimal generator matrix Q = [q{(E, F), (E 0 , F 0 )}], (E, F) and ðE0 ,F 0 Þ 2 S,
are calculated as follows:
qfðE; F Þ; ðE0 ; F 0 Þg
8
> ka if a 2 E; IðbðaÞÞ 6
F [ fag; E0 ¼ E  fag;
>
>
>
> F 0 ¼ F [ fag; ð4Þ
>
>
>
>
>
< ka if a 2 E; IðbðaÞÞ
F [ fag; E0 ¼ ðE  fagÞ [ OðbðaÞÞ;
¼
>
> F 0 ¼ F  IðbðaÞÞ; ð5Þ
>
> P
>
>  ka if E0 ¼ E; F 0 ¼ F ; ð6Þ
>
>
> a2E
>
:
0 otherwise: ð7Þ
In Example 1, if we consider E = {1, 2}, F(/), E 0 = {2, 3} and F 0 = (/), then
E 0 = (E  {1}) [ O(b(1)), and thus from (5), q{(E, F),(E 0 , F 0 )} = k1.
{X(t), t P 0} is a finite-state absorbing continuous-time Markov process.
Since q{(/, /), (/, /)} = 0, this state would be an absorbing one and obviously
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1323

the other states are transient. Furthermore, we number the states in S such that
the Q matrix is an upper triangular matrix. We assume that the states are num-
bered 1,2, . . . ,N ¼ jSj. State 1 is the initial state, namely (O(s), /); and state N is
the absorbing state, namely (/, /).
Let T represent the length of the longest path in the network, or the project
completion time. Clearly, T = min{t > 0:X(t) = N/X(0) = 1}. Thus, T is the
time until {X(t), t P 0} gets absorbed in the final state starting from state 1.
Chapman–Kolmogorov backward equations can be applied to compute
F(t) = P{T 6 t}. If we define:

P i ðtÞ ¼ P fX ðtÞ ¼ N =X ð0Þ ¼ ig, i ¼ 1,2, . . . ,N : ð8Þ

Then F(t) = P1(t).


The system of differential equations for the vector P(t) = [P1(t),
P2(t), . . . , PN(t)]T is given by

P 0 ðtÞ ¼ QP ðtÞ,
T
ð9Þ
P ð0Þ ¼ ½0,0, . . . ,1 :

3. Multi-objective resource allocation problem

In this section, we develop a multi-objective model to optimally control the


resources allocated to the activities in a PERT network whose activity dura-
tions exhibit generalized Erlang distributions, where the mean duration of each
activity is a non-increasing function and the direct cost of each activity is a
non-decreasing function of the amount of resource allocated to it. We may de-
crease the project direct cost, by decreasing the amount of resource allocated to
the activities. However, clearly it causes the mean project completion time to be
increased, because these objectives are in conflict with each other. Conse-
quently, an appropriate trade-off between the total direct costs and the mean
project completion time is required. The variance of the project completion
time should also be considered in the model, because when we only focus on
the mean time, the resource quantities may be non-optimal if the project com-
pletion time substantially varies because of randomness. The probability that
the project completion time does not exceed a certain threshold is also impor-
tant in many cases and to be considered.
Therefore, we have a multi-objective stochastic programming problem. The
objective functions are the project direct cost (to be minimized), the mean of
project completion time (min), the variance of project completion time (min),
and the probability that the project completion time does not exceed a certain
threshold (max).
1324 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

The direct cost of activity a 2 A is assumed to be a non-decreasing function


da(xa) of the amount of resource
P xa allocated to it. Therefore, the project direct
cost would be equal to a2A d a ðxa Þ. Pna 1
The mean duration of activity a 2 A, which is equal to j¼1 kaj
, is assumed
to be the non-increasing function ga(xa) of the amount of resource xa allocated
to it. Let Ua represent the amount of resource available to be allocated to the
activity a, and La represent the minimum amount of resource required to
achieve the activity a.
In reality da(xa) and ga(xa) can be estimated using linear regression. We can
collect the sample paired data of da(xa) and ga(xa) as the dependent variables,
for different values of xa as the independent variables, from the previous similar
activities or using the judgments of the experts in this area. Then, we can esti-
mate the parameters of the relevant linear regression model.
The mean and the variance of project completion time are given by
Z 1
EðT Þ ¼ ð1  P 1 ðtÞÞ dt, ð10Þ
0

Z 1 Z 1 2
VarðT Þ ¼ t2 P 01 ðtÞ dt  tP 01 ðtÞ dt , ð11Þ
0 0

where P 01 ðtÞ is the density function of project completion time.


The probability that the project completion time does not exceed the given
threshold u is
P ðT 6 uÞ ¼ P 1 ðuÞ: ð12Þ
The infinitesimal generator matrix Q would be a function of the vector
T
k ¼ ½kaj ; a 2 A, j ¼ 1,2, . . . ,na  , in the optimal control problem. Therefore,
the non-linear dynamic model is
P 0 ðtÞ ¼ QðkÞP ðtÞ,
P i ð0Þ ¼ 0 8i ¼ 1,2, . . . ,N  1, ð13Þ
P N ðtÞ ¼ 1:

Accordingly, the appropriate multi-objective optimal control problem is


X
Min f 1 ðx,kÞ ¼ d a ðxa Þ,
a2A
Z 1
Min f 2 ðx,kÞ ¼ ð1  P 1 ðtÞÞ dt,
0
Z 1 Z 1 2
Min f 3 ðx,kÞ ¼ t2 P 01 ðtÞ dt  tP 01 ðtÞ dt ,
0 0

Max f 4 ðx,kÞ ¼ P 1 ðuÞ


A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1325

s:t:
P 0 ðtÞ ¼ QðkÞP ðtÞ,
P i ð0Þ ¼ 0 8i ¼ 1,2, . . . ,N  1,
P N ðtÞ ¼ 1,
Xna
1 ð14Þ
ga ðxa Þ ¼ a 2 A,
j¼1
kaj

xa 6 U a a 2 A,
xa P La a 2 A,
kaj P 0 a 2 A, j ¼ 1,2, . . . ,na :

A possible approach to solving (14) to optimality is to use the Maximum


Principle (see [16] for details). For simplicity, consider
R1 solving the problem with
only one of the objective functions, f2 ðx,kÞ ¼ 0 ð1  P 1 ðtÞÞ dt.
P 
na
Clearly, xa ¼ g1a
1
j¼1 ka for a 2 A. Therefore, we can consider k as the
j

unique control vector of the problem, and ignore the role of x = [x1, x2, . . . , xn]T
as the other independent decision vector. Consider K as the set of allowable
controls consisting of all constraints except the constraints representing the dy-
namic model (k 2 K), and N-vector l(t) as the adjoint vector function. Then,
Hamiltonian function would be
T
H ðlðtÞ,P ðtÞ,kÞ ¼ lðtÞ QðkÞP ðtÞ þ 1  P 1 ðtÞ: ð15Þ

Now, we write the adjoint equations and terminal conditions, which are

 l0 ðtÞT ¼ lðtÞT QðkÞ þ ½1,0, . . . ,0,


ð16Þ
lðT ÞT ¼ 0, T ! 1:

If we could compute l(t) from (16), then we would be able to minimize the
Hamiltonian function subject to k 2 K in order to get the optimal control k*,
and solve the problem optimally. Unfortunately, the adjoint equations (16)
are dependent on the unknown control vector, k, and therefore they cannot
be solved directly.
If we could also minimize the Hamiltonian function (15), subject to k 2 K,
for an optimal control function in closed form as k* = f(P*(t), l*(t)), then we
would be able to substitute this into the state equations, P 0 (t) = Q(k) Æ P(t),
P(0) = [0, 0, . . . , 1]T, and adjoint equations (16) to get a set of differential equa-
tions, which is a two-point boundary value problem. Unfortunately, we cannot
obtain k* by differentiating H with respect to k, because the minimum of H
1326 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

occurs on the boundary of K, and consequently k* cannot be obtained in a


closed form.
According to these points, it is impossible to solve the optimal control prob-
lem (14), optimally, even in the restricted case of a single objective problem.
Relatively few optimal control problems can be solved optimally. Therefore,
we apply a genetic algorithm for numerical optimizations of constrained prob-
lems (revised GENOCOP V), which is fully described in Section 4, to solve this
problem, using a goal attainment method.

3.1. Goal attainment method

This method requires setting up a goal and weight, bj and cj(cj P 0) for
j = 1,2,3,4, for the four indicated objective functions. The cj relates the relative
under-attainment of the bj. For under-attainment of the goals, a smaller cj is
associated with the P more important objectives. cj, j = 1, 2, 3, 4, are generally
normalized so that 4j¼1 cj ¼ 1. The appropriate goal attainment formulation
to obtain x* is

Min z
s:t :
X
d a ðxa Þ  c1 z 6 b1 ,
a2A
Z 1
ð1  P 1 ðtÞÞdt  c2 z 6 b2 ,
0
Z 1 Z 1 2
t 2
P 01 ðtÞ dt  tP 01 ðtÞ dt  c 3 z 6 b3 ,
0 0

P 1 ðuÞ þ c4 z P b4 ,
P 0 ðtÞ ¼ QðkÞP ðtÞ, ð17Þ
P i ð0Þ ¼ 0 8i ¼ 1,2, . . . ,N  1,
P N ðtÞ ¼ 1,
Xna
1
ga ðxa Þ ¼ a 2 A,
j¼1
k aj

xa 6 U a a 2 A,
xa P La a 2 A,
kaj P 0 a 2 A, j ¼ 1,2, . . . ,na ,
z P 0:
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1327

Lemma 1. If x* is Pareto-optimal, then there exists a c, b pair such that x* is an


optimal solution to the optimization problem (17).

4. A genetic algorithm for numerical optimizations of constrained problems


(revised GENOCOP V)

In this section, we use the revised GENOCOP V proposed as a general


purpose method for solving non-linear programming problems as defined in
(18).

Min f ðkÞ
s:t :
gr ðkÞ ¼ 0, r ¼ 1,2, . . . ,k 1 , ð18Þ
hr ðkÞ 6 0, r ¼ k 1 þ 1,k 1 þ 2, . . . ,k,
Lj 6 kj 6 U j , j ¼ 1,2, . . . ,l,

where k is an l dimensional decision vector, gr(k) = 0, r = 1,2, . . . , k1, are k1


equality constraints and hr(k) 6 0, r = k1 + 1,k1 + 2, . . . , k, are k  k1 inequality
constraints. These are assumed to be either linear or non-linear real-values
functions. Moreover, Lj and Uj, j = 1, . . . , l, are the lower and upper bounds
of the decision variables, respectively.
In order to have the same form given in (18), we reformulate the problem
(17), by combining the objective functions and the state equations. We Pnalso
consider a new decision vector k = [kj;j = 1,2, . . . , m]T, where m ¼ n þ i¼1 ni ,
instead of the original decision vectors x and k, in the reformulated problem
(19). The appropriate min–max problem is obtained as:
Min f ðkÞ ¼ Maxfz1 ðkÞ,z2 ðkÞ,z3 ðkÞ,z4 ðkÞg
s:t :
ð19Þ
gr ðkÞ ¼ 0, r ¼ 1,2, . . . ,n,
Lj 6 kj 6 U j , j ¼ 1,2, . . . ,n,
where
f1 ðx,kÞ  b1
z1 ðkÞ ¼ ,
c1

f2 ðx,kÞ  b2
z2 ðkÞ ¼ ,
c2

f3 ðx,kÞ  b3
z3 ðkÞ ¼ ,
c3
1328 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

b4  f4 ðx,kÞ
z4 ðkÞ ¼ ,
c4
Xnr
1
gr ðkÞ ¼ gr ðkr Þ  ¼ 0, r ¼ 1,2, . . . ,n, j ¼ 1,2, . . . ,nr
j¼1
k rj

and
T
P 0 ðtÞ ¼ QðkÞP ðtÞ, P ð0Þ ¼ ½0,0, . . . ,1 : ð20Þ
It should be noted that in our computer program, P1(t) is obtained by solv-
ing the system of differential equations (20) analytically and then the mean and
the variance of project completion time are computed, numerically. The prob-
lem (19) does not have the inequality constraints (hr(k) 6 0) of problem (18).
The only restriction that we have in this problem is that the elements of k vec-
tor (decision variables) are selected between the given lower and upper bounds.
We apply the revised GENOCOP V, developed by Suzuki [13], which is a
direct extension of the genetic algorithm for numerical optimizations of con-
strained problems (GENOCOP), proposed by Koziel and Michalewicz [14].
In GENOCOP V, an initial reference point is generated randomly from indi-
viduals satisfying the lower and upper bounds, which is quite difficult in prac-
tice. Furthermore, because a new search point is randomly generated on the
line segment between a search point and a reference point, the effectiveness
and speed of the search may be quite low. The proposed revised GENOCOP
V overcomes these drawbacks by generating an initial reference point by min-
imizing the sum of squares of the violated non-linear constraints and using a
bisection method for generating a new feasible point on the line segment
between a search point and a reference point.
To be more explicit about finding the initial reference point, for some

k, Lj 6 
kj 6 U j , j = 1, . . . , l, we use the set of violated non-linear equality
constraints

I g ¼ fwjgw ð
kÞ 6¼ 0, w ¼ 1, . . . ,k 1 g ð21aÞ

and the set of violated non-linear inequality constraints

I h ¼ fwjhw ð
kÞ > 0, w ¼ k 1 þ 1, . . . ,kg: ð21bÞ

An unconstrained optimization problem is formulated to minimize the sum of


squares of violated non-linear constraints
X X
Min ðgw ðkÞÞ2 þ ðhw ðkÞÞ2 ð21cÞ
w2I g w2I h

and the optimization problem (21) is solved for obtaining one initial reference
point.
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1329

In the bisection method for generating a new search point, two cases are
considered, in which the search points are either feasible or infeasible
individuals.
If search points are feasible, a new search point is generated on the line seg-
ment between a search point and a reference point. If search points are infea-
sible, a boundary point is found and a new point is generated on the line
segment between the boundary point and a reference point. If the feasible space
is not convex, the new point could be infeasible. In this case the generation of a
new point is repeated if becomes feasible.

4.1. Computational procedures of revised GENOCOP V

In this section, the genetic algorithm for numerical optimizations of con-


strained problems (revised GENOCOP V) is summarized step by step.

Step 0. Determine the values of the population size P, the total number of
generations G, the probability of mutation Pm, and the probability
of crossover Pc.
Step 1. Generate one or more initial reference points by minimizing the sum
of squares of violated non-linear constraints.
Step 2. Generate the initial population consisting of P individuals.
Step 3. Solve the system of differential equations in (20) and compute P1(t) for
each individual. The solution of the system is found as follows; first,
the eigenvalues and then the related eigenvectors of the constant coef-
ficient matrix Q are found. According to the eigenvectors and the
eigenvalues of the system, the solution is found for each individual.
Step 4. Decode each individual (genotype) in the current population and cal-
culate its fitness (phenotype).
Step 5. Apply the mutation and crossover operations with the probabilities
provided in step 0.
Step 6. Generate the new population by applying the reproduction operator,
based on the ranking selection.
Step 7. When the maximum number of iterations is reached, then go to step 8.
Otherwise, increase the generation number by 1 and then go to step 3.
Step 8. Stop.

5. Computational experiments

To investigate the performance of the proposed genetic algorithm method


(revised GENOCOP V) for the time-cost trade-off problem in PERT networks,
we consider 3 typical small, medium and large cases with different configura-
1330 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

tions. Cases I–III are shown in Figs. 1–3, respectively. Tables 2–4 show the
characteristics of the activities in Cases I—III, respectively. The structure of
functions (different linear and non-linear forms) and also the distributions
(generalized Erlang with different parameters) are selected so as to represent
a wide variety of problems encountered in the time-cost trade-off problem in
PERT networks. In real cases, these functions can be estimated using linear

Fig. 2. Case I.

Fig. 3. Case III.

Table 2
Characteristics of the activities in Case I
a Distribution Parameters da(xa) ga(xa) La Ua
1 Exponential k1 3x21þ2 24  5x1 1 4
2 Exponential k2 2x2 + 1 203x2 1 6
3 Generalized Erlang (k31, k32) x3 15  2x3 1 6

Table 3
Characteristics of the exponential activities in Case II
A da(xa) ga(xa) La Ua
1 2x1 0.70.1x1 1 5
2 3x2 + 1 1.50.2x2 1 6
3 x3 + 2 10.1x3 1 9
4 x4 1.50.3x4 1 4
5 3x5 + 4 0.90.1x5 1 5
6 x6 + 3 1.10.1x6 1 6
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1331

Table 4
Characteristics of the exponential activities in Case III
a da(xa) ga(xa) La Ua
1 2x1 0.7  0.1x1 1.5 3
2 3x2 + 1 1.5  0.2x2 1.5 3
3 x3 + 2 1  0.1x3 1.5 3
4 x4 1.5  0.3x4 1.5 3
5 3x5 + 4 1.3  0.2x5 1.5 3
6 x6 + 3 1.1  0.1x6 1.5 3
7 2x7 + 5 1.5  0.2x7 1.5 3
8 4x8 + 1 1  0.2x8 1.5 3
9 5x9 + 2 0.9  0.1x9 1.5 3
10 2x10 + 3 2  0.4x10 1.5 3

or non-linear regression. The given threshold value (u) in Cases I, II and III is
equal to 25, 3 and 8, respectively. The cost unit is in thousand dollars and the
time is in months. The objective is to obtain the optimal allocated resource
quantities using the GA.
Since one month deviation from the mean project completion time is consid-
ered to be as important as its variance and also 20 and 5 times as important as
one thousand dollars deviation from the project direct cost, and the probability
that the project completion time does not exceed the threshold, respectively,
then the under-attainment of the goals are considered as (c1 = 0.7407,
c2 = 0.037, c3 = 0.037, c4 = 0.1853) in all cases. The following b vectors are also
considered in the three indicates cases: Case I: (b1 = 25, b2 = 8, b3 = 25,
b4 = 0.98), Case II: (b1 = 40, b2 = 1.5, b3 = 0.7, b4 = 0.95), and Case III:
(b1 = 65, b2 = 5, b3 = 3.5, b4 = 0.95). However, in this stage the fixed values
for b and c are considered in the three cases, but in the next experiments we
consider different sets of b and c in each case.

5.1. Identifying efficient genetic algorithm parameters

Three sets of designed experiments, corresponding to the three cases, are


performed that consider various levels of the GA parameters population size,
number of generations and the probability of crossover and mutation. In gen-
eral, if the computational time is unlimited, the best results are obtained with
large populations and many generations. However, in practical cases the com-
putational time is limited. Therefore, the selection of appropriate GA para-
meters in each case is investigated when the total number of chromosomes
generated is fixed. The factors used in the experiments are shown in Table 5.
The probability of crossover and mutation are both considered in two levels.
Three different combinations of population size and number of generations
are also used. In each case, the total number of chromosomes generated by
the GA is fixed at 40000. This approach for determining the most efficient
1332 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

Table 5
Experimental factors
Factors Levels Values Values Values
Population/generation combination (P/G) 3 80/500 50/800 40/1000
Probability of mutation (pm) 2 0.2 0.32
Probability of crossover (pc) 2 0.24 0.5

GA parameters is similar to the work of Pongcharoen et al. [17]. The full fac-
torial designs are replicated four times using different random number seeds.
Figs. 4–6 provide three scatter plots that show the objective function value
(z) arising from each of the 12 (combinations of GA parameters)*4(Repli-
cates) = 48 problems produced in Cases I–III, respectively.
The scatter plots suggest that the runs that use a population of 40 with 1000
generations achieve the lowest z with the smallest spread.

Case I
57.5
57
56.5
z

56
55.5
55
54.5
P=80 P=50 P=40
0 G=500 4 G=800 8 G=1000 12
Run

Fig. 4. Scatter plot of Case I.

Case II
12.25
12.2
12.15
12.1
z

12.05
12
11.95
11.9
P=80 P=50 P=40
0 G=500 4 G=800 8 G=1000 12
Run

Fig. 5. Scatter plot of Case II.


A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1333

Case III
9.8

9.6

9.4
z

9.2

8.8
P=80 P=50 P=40
0 4 8 12
G=500 G=800 G=1000
Run

Fig. 6. Scatter plot of Case III.

5.1.1. Regression analysis


An example of a potential regression model containing just the main and
interactions is given in Eq. (22), where zi is the mean objective function value
of the four replicates and bi is the coefficient of the ith regression term.
zi ¼ b0 þ b1 P =G þ b2 pm þ b3 pc þ b4 P =Gpm þ b5 P =Gpc þ b6 pm pc ð22Þ

The appropriate regression models for the three cases are as follows:
z ¼ 53:885 þ 18:31P =G þ 4:58pm þ 4:797pc  32:6P =Gpm  20:855P =Gpc
 11:098pm pc ðCase IÞ,

z ¼ 12:227 þ 0:936P =G  1:059pm  0:397pc  0:551P =Gpm


 1:472P =Gpc þ 1:728pm pc ðCase IIÞ,

z ¼ 9:4 þ 4:284P =G  2:35pm  0:742pc  5:305P =Gpm  4:832P =Gpc


þ 4:973pm pc ðCase IIIÞ:
With a 95% level of confidence, it can be seen that in Case I the terms P/G and
P/Gpc are the only significant ones, in Case II there is no significant term and in
Case III all terms except P/Gpm are significant. Moreover, in Case III (largest
case) the minimum z is also obtained with large values of pm and pc. Therefore,
we conduct the next experiments using P = 40, G = 1000, pm = 0.32 and
pc = 0.5 in four runs, in which the average results will be used.

5.2. Comparison of the GA method against a discrete-time approximation method

As we explained in Section 3, solving the goal attainment formulation (17)


optimally and consequently comparing the genetic algorithm results against
1334 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

the optimal results is impossible. Therefore, we try to compare the genetic


algorithm results against the results of a discrete-time approximation to the
problem. To do that, we do the discretization of time and convert the optimal
control problem (17) into an equivalent non-linear programming one. In other
words, we transform the differential equations to the equivalent difference
equations as well as transform the integral terms into equivalent summation
terms. To follow this approach, the time interval is divided into K equal por-
tions with the length of Dt. If Dt is sufficiently small, it can be assumed that
P(t) varies only in times 0, Dt, . . . , (K  1)Dt. Considering ½Dtu  as the integer part
of Dtu , the appropriate non-linear programming would be (see [18] for details)

Min z
s:t :
X
d a ðxa Þ  c1 z 6 b1 ,
a2A
X
K
ð1  P 1 ðkÞÞDt  c2 z 6 b2 ,
k¼0
" #2
X
K 1
2
X
K 1
ðkDtÞ ðP 1 ðk þ 1Þ  P 1 ðkÞÞ  kDtðP 1 ðk þ 1Þ  P 1 ðkÞÞ
k¼0 k¼0

 c3 z 6 b3 ,
h u i
P1 þ c 4 z P b4 ,
Dt
P ðk þ 1Þ ¼ P ðkÞ þ QðkÞP ðkÞDt k ¼ 0,1, . . . ,K  1,
P i ð0Þ ¼ 0 i ¼ 1,2, . . . ,N  1,
P N ðkÞ ¼ 1 k ¼ 0,1, . . . ,K,
P i ðkÞ 6 1 i ¼ 1,2, . . . ,N  1, k ¼ 1,2, . . . ,K,
Xna
1
ga ðxa Þ ¼ , a 2 A,
j¼1
ka j
xa 6 U a a 2 A,
xa P La a 2 A,
kaj P 0 a 2 A, j ¼ 1,2, . . . ,na ,
z P 0: ð23Þ
Then, we design two randomized block experiments to study the effects of the
two different methods (GA and the discrete-time approximation) on the objec-
tive function value (z) and on the computational time (seconds) on a PC Pen-
tium IV 2.1 GHz. The computational time reported in this paper, using the GA
method, is the recorded time that the best solution was found.
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1335

Theoretically, when K approaches to infinity and Dt approaches to zero, the


optimal results of the original problem will be obtained, but in this case the com-
putational time also approaches to infinity, which is not practical in reality. There-
fore, we restrict ourselves to the following levels of K (K = 20 and K = 50) when
using the discrete-time approximation method. Finally, two completely random-
ized single-factor models with three levels of the treatment (three solving meth-
ods) are conducted. Totally, 18 blocks, according to the following three sets of c:

Set 1. (c1 = 0.7407, c2 = 0.037, c3 = 0.037, c4 = 0.1853),


Set 2. (c1 = 0.5556, c2 = 0.0556, c3 = 0.1111, c4 = 0.2777),
Set 3. (c1 = 0.8196, c2 = 0.0164, c3 = 0.082, c4 = 0.082)

and the following two sets of b in the three cases:

Case I: Set 1. (b1 = 25, b2 = 8, b3 = 25, b4 = 0.98); Set 2. (b1 = 40, b2 = 7,


b3 = 20, b4 = 0.99);
Case II: Set 1. (b1 = 40, b2 = 1.5, b3 = 0.7, b4 = 0.95). Set 2. (b1 = 35, b2 = 1.6,
b3 = 0.8, b4 = 0.9);
Case III: Set 1. (b1 = 65, b2 = 5, b3 = 3.5, b4 = 0.95). Set 2. (b1 = 70, b2 = 4.5,
b3 = 3, b4 = 0.99)

are considered in these experiments.


In the second method of solving (discrete-time approximation with K = 20),
we consider the following combinations of K and Dt for Cases I, II and III,
respectively: (K = 20, Dt = 2), (K = 20, Dt = 0.25) and (K = 20, Dt = 0.5). In
the third method (discrete-time approximation with K = 50), we consider the
following combinations of K and Dt for Cases I, II and III, respectively:
(K = 50, Dt = 0.8), (K = 50, Dt = 0.1) and (K = 50, Dt = 0.2). Then, we use
LINGO on the same computer to solve Cases I–III, respectively, according
to the formulation (23) for the six indicated combinations of b and c in each
case. The GA method is also used to obtain z and the computational time in
these 18 blocks considering P = 40, G = 1000, pm = 0.32 and pc = 0.5 in four
runs, in which the average results will be used. Figs. 7 and 8 show the objective
function values and the computational times of the three indicated methods,
respectively.
Fig. 7 shows that in all cases the objective function value obtained using the
genetic algorithm is less than the value obtained by the discrete-time approxi-
mation technique. Additionally, the objective function is much smaller if there
is any activity with generalized Erlang duration in the project.
Fig. 8 shows that the computational time is strongly dependent on the num-
ber of activities and also the number of activities with non-exponentially dura-
tions. Additionally, the computational time used by the genetic algorithm is
much smaller for large-scale cases.
1336 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

400
350
300
250 Genetic Algorithm
Discrete-Time Approximation (K=20)
z

200
Discrete-Time Approximation (K=50)
150
100
50
0

III b1
III b2
III b1
III b2
III b1
b2
IIc 1
IIc 2
IIc 1
IIc 2
IIc 1
III 2
1
2
1
2
1

IIc 2
1b
1b
2b
2b
3b
3b
1b
1b
2b
2b
3b
3b

c1
c1
c2
c2
c3
c3
Ic
Ic
Ic
Ic
Ic
Ic

Fig. 7. Objective function values of the three methods.

12000
Computational Time (Sec.)

10000

8000
Genetic Algorithm
6000 Discrete-Time Approximation (K=20)
Discrete-Time Approximation (K=50)
4000

2000

0
III b1
III b2
III b1
III b2
III b1
b2
IIc 1
IIc 2
IIc 1
IIc 2
IIc 1
III b2
Ic 1
2
1

Ic 2
1

IIc 2
1b
1b
2b
2b
3b
1b
1b
2b
2b
3b
3b

c1
c1
c2
c2
c3
c3
3
Ic

Ic
Ic

Ic

Fig. 8. Computational times of the three methods.

The analysis of variance according to z and the computational time as the


proper responses are shown in Tables 6 and 7, respectively. Using a = 0.05,
the critical value of F is F0.05,2,34 = 3.28. Since 8.428 and 21.436 are both greater
than 3.28, then we conclude that the solving method significantly affects both z
and the computational time.
Using Duncans multiple range tests for the multiple comparisons, refer to
[19] for details, shows that the genetic algorithm method causes the minimum
value for z and also the least computational time among the three mentioned

Table 6
Analysis of variance for the solving methods experiment (z)
Source of variation Sum of squares Degree of freedom Mean square F0
Treatments 36962.848 2 18481.424 8.428
Blocks 168606.89 17 9918.052
Error 74557.064 34 2192.855
Total 280126.802 53
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1337

Table 7
Analysis of variance for the solving methods experiment (computational time)
Source of variation Sum of squares Degree of freedom Mean square F0
Treatments 118567836.3 2 59283918.15 21.436
Blocks 63981320.37 17 3763607.081
Error 94032703.33 34 2765667.74
Total 276581860 53

methods. Therefore, comparing the GA results against the discrete-time


approximation results shows the efficiency of the GA method for the time-cost
trade-off in PERT networks.

6. Conclusion

In this paper, we developed a new multi-objective model for the time-cost


trade-off problem in PERT networks with generalized Erlang distributions of
activity durations, using a genetic algorithm. It was assumed that the amount
of resource allocated to each activity is controllable, where the mean duration
of each activity is a non-increasing function of this control variable. The direct
cost of each activity was also assumed to be a non-decreasing function of the
amount of resource allocated to it.
To obtain the optimal resources allocated to the activities, we developed a
goal attainment model with four conflicting objectives, minimization of the
project direct cost, minimization of the mean of project completion time, min-
imization of the variance of project completion time and also maximization of
the probability that the project completion time does not exceed the given
threshold.
The problem considered in this paper has continuous decision variables and
involves non-linearity. After the reformulation of the problem, we applied a ge-
netic algorithm for numerical optimizations of constrained problems (revised
GENOCOP V) to solve the problem.
This work investigated appropriate levels for genetic algorithm parameters
in the three different typical cases with different configurations. It was found
that in all cases, the minimum objective function value occurred with low level
of population size and high level of generations within a given execution time,
based upon regression analysis. We also concluded that the genetic algorithm
produces z and the computational time that are significantly lower than z and
computational time obtained from the discrete-time approximation method
with two different levels of K and Dt, in all cases. Finally, it is seen that the pro-
posed genetic algorithm method is an efficient method for the time-cost trade-
off problem in PERT networks.
1338 A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339

The limitation of this model is that the state space can grow exponentially
with the network size. As the worst case example, for a complete transformed
network with n nodes and n(n  1)/2 arcs, the size of the state space is given by
N(n) = Un  Un1, where
X n
Un ¼ 2kðnkÞ ð24Þ
k¼0

(refer [15]).
In practice, the number of arcs in PERT networks is generally much less
than n(n  1)/2, and it should also be noted that for large networks any alter-
nate method of producing reasonably accurate answers will be prohibitively
expensive.
The model can be extended to the general PERT networks, where general
activity durations are allowed. In general networks, the activity distribution
can be approximated by an appropriate generalized Erlang distribution, by
matching the first three moments, because the generalized Erlang distributions
are a special class of Coxian distributions and each general distribution can be
easily approximated by a Coxian distribution.
Another multi-objective technique like goal programming, SWT or STEM
can also be applied to solve the multi-objective problem (14), refer to [20]
for the details of the mentioned methods.

References

[1] D. Fulkerson, A network flow computation for project cost curves, Management Science 7
(1961) 167–178.
[2] J. Kelly, Critical path planning and scheduling: mathematical basis, Operations Research 9
(1961) 296–320.
[3] E. Demeulemeester, W. Herroelen, S. Elmaghraby, Optimal procedures for the discrete time-
cost trade-off problem in project networks, Research Report, Department of Applied
Economics, Katholieke Universiteit Leuven, Leuven, Belgium, 1993.
[4] L. Lamberson, R. Hocking, Optimum time compression in project scheduling, Management
Science 16 (1970) 597–606.
[5] E. Berman, Resource allocation in a PERT network under continuous activity time–cost
function, Management Science 10 (1964) 734–745.
[6] J. Falk, J. Horowitz, Critical path problem with concave cost curves, Management Science 19
(1972) 446–455.
[7] D. Robinson, A dynamic programming solution to cost-time trade-off for CPM, Management
Science 22 (1965) 158–166.
[8] S. Elmaghraby, Resource allocation via dynamic programming in activity networks, European
Journal of Operational Research 64 (1993) 199–245.
[9] L. Tavares, Optimal resource profiles for program scheduling, European Journal of
Operational Research 29 (1987) 83–90.
[10] J. Weglarz, Project scheduling with continuously divisible doubly constrained resources,
Management Science 27 (1981) 1040–1053.
A. Azaron et al. / Appl. Math. Comput. 168 (2005) 1317–1339 1339

[11] C.W. Feng, L. Liu, S.A. Burns, Using genetic algorithms to solve construction time-cost
trade-off problems, Journal of Construction Engineering and Management, ASCE 11 (1997)
184–189.
[12] D.K.H. Chau, W.T. Chan, K. Govindan, A time-cost trade-off model with resource
consideration using genetic algorithm, Civil Engineering Systems 14 (1997) 291–311.
[13] T. Suzuki, An interactive fuzzy satisfying method through genetic algorithms for multiobjec-
tive nonconvex programming problems. Dissertation, Hiroshima University, 2004.
[14] S. Koziel, Z. Michalewicz, Evolutionary algorithms, homomorphous mappings, and
constrained parameter optimization, Evolutionary Computation 7 (1999) 19–44.
[15] V. Kulkarni, V. Adlakha, Markov and Markov-regenerative PERT networks, Operations
Research 34 (1986) 769–781.
[16] S. Sethi, G. Thompson, Optimal Control Theory, Martinus Nijhoff Publishing, Boston, 1981.
[17] P. Pongcharoen, C. Hicks, P.M. Braiden, D.J. Stewardson, Determining optimum genetic
algorithm parameters for scheduling the manufacturing and assembly of complex products,
International Journal of Production Economics 78 (2002) 311–322.
[18] A. Azaron, S.M.T. Fatemi Ghomi, Optimal control of service rates and arrivals in Jackson
networks, European Journal of Operational Research 147 (2003) 17–31.
[19] D.C. Montgomery, Design and Analysis of Experiments, Second Ed., Wiley, New York, 1984.
[20] C. Hwang, A. Masud, Multiple Objective Decision Making, Methods and Applications,
Springer-Verlag, Berlin, 1979.

You might also like