Scheduling of Pipeline Construction Projects Using Simulation
Scheduling of Pipeline Construction Projects Using Simulation
6-1-2016
Recommended Citation
APA Citation
Zahran, H. (2016).Scheduling of pipeline construction projects using simulation [Master’s thesis, the
American University in Cairo]. AUC Knowledge Fountain.
https://fount.aucegypt.edu/etds/280
MLA Citation
Zahran, Hany Mohsen. Scheduling of pipeline construction projects using simulation. 2016. American
University in Cairo, Master's thesis. AUC Knowledge Fountain.
https://fount.aucegypt.edu/etds/280
This Thesis is brought to you for free and open access by AUC Knowledge Fountain. It has been accepted for
inclusion in Theses and Dissertations by an authorized administrator of AUC Knowledge Fountain. For more
information, please contact [email protected].
The American University in Cairo
A Thesis Submitted to
Repetitive Projects represent a large percentage of construction projects. They usually have
an immense importance for a nation’s economy and future. Highways, tunnels, infrastructure
networks, high-rise buildings, housing projects, pipeline networks, airport runways, railways,
bridges, sewer mains and mass transit systems are all considered projects of repetitive
nature. Research that started to serve industrial purposes for the military efforts in World War
II has been revised and improved to be employed for repetitive construction projects.
Obtaining an optimum schedule that would be achievable, feasible, and comprehensive by all
involved parties besides maintaining minimum overall cost and duration has been an
important objective. Another main objective was to maintain an optimal formation of various
types of crews and equipment that would avoid idle periods as well as work stoppages.
Various examples of mathematical models presented in the literature were presented as an
example to show their limitations. This research presents a simulation-based scheduling
model for pipeline construction projects. The model was developed with a simulation software
called “AnyLogic”; this software supports discrete events, agent based and system dynamics
simulation, presents an easy graphical user interface and utilizes Java coding. The model
consists of various types of pre-programmed objects that were used and connected together
to model the different stages of the project and resources involved within them. The model
also contains a simulation experiment that would be used to provide the visual presentation of
the construction process including the layout of the project and all kinds of utilized resources
moving within it. The final part of the model is the optimization module. This module has the
definition of the optimization objective, the optimization parameters and constraints. This
module would run the simulation experiment a numerous trials while changing the parameters
to get the optimal solution which is the optimal schedule for the project. This simulation model
would aid planners in scheduling, tracking and controlling the construction operations over the
lifetime of the project. It would present an important tool for top management to visualize the
impact of their decisions.
ii
ACKNOWLEDGEMENTS
I wish to express my deepest gratitude and sincere appreciation to my supervisor Dr. Khaled
Nassar, for his unconditional support, valuable advice, constructive guidance and
encouragement throughout all stages of this study. His effort and suggestions to improve the
contents of this thesis are greatly appreciated. I would also like to express appreciation to
each of my committee members for the time and effort they gave to m y comprehensive and
final defense.
I am grateful and will always be indebted to my family, and especially my future wife, who
always encouraged me, believed in me and provided unlimited support during the course of
this study.
iii
TABLE OF CONTENTS
LIST OF FIGURES...................................................................................................... vi
LIST OF TABLES ...................................................................................................... viii
CHAPTER1
INTRODUCTION......................................................................................................... 1
1.1. Introduction ................................................................................................... 1
CHAPTER 2
LITERATURE REVIEW .............................................................................................. 7
2.1. Introduction ................................................................................................... 7
CHAPTER 3
STAGES OF PIPELINE CONSTRUCTION .............................................................. 15
3.1 Introduction ................................................................................................. 15
CHAPTER 4
DETERMINISTIC MODELS ...................................................................................... 24
iv
4.1 Introduction ................................................................................................. 24
CHAPTER 5
SIMULATION MODEL .............................................................................................. 34
5.1. Introduction ................................................................................................. 34
CHAPTER 6
OPTIMIZATION MODEL .......................................................................................... 77
6.1. Introduction ................................................................................................. 77
CHAPTER 7
CONCLUSIONS........................................................................................................ 98
7.1. Summary of Research ................................................................................ 98
7.2. Research Contributions .............................................................................. 99
7.3. Recommendations for Future Research ................................................... 100
v
LIST OF FIGURES
CHAPTER 1
Figure 1-1 : Nord Stream and South Stream Pipelines ............................................... 2
Figure 1-2: Pipeline Construction Quantities in 2013 .................................................. 3
CHAPTER 3
Figure 3-1: Flowchart of Spread Method Activities ................................................... 16
Figure 3-2 : Pipe Stringing Activity ............................................................................ 19
Figure 3-3 : Pipe Welding Activity ............................................................................. 20
Figure 3-4 : Trench Excavation Activity..................................................................... 21
Figure 3-5 : Lowering pipes in Trenches .................................................................. 22
Figure 3-6: Pipeline Construction Operation ............................................................. 23
CHAPTER 4
Figure 4-1 : MS Excel Worksheet Used for (MIP) ..................................................... 30
CHAPTER 5
Figure 5-1: Typical Interface in AnyLogic .................................................................. 37
Figure 5-2: Palette View Window .............................................................................. 38
Figure 5-3: Layout of Pipeline Project in AnyLogic ................................................... 39
Figure 5-4: First Window in “New Java Class” wizard ............................................... 41
Figure 5-5: Second Window in “New Java Class” wizard ......................................... 42
Figure 5-6: Properties View for “Pline” Resource Pool ............................................. 46
Figure 5-7: Resource Pools Diagram ........................................................................ 49
Figure 5-8: Complete Flowchart of Model ................................................................. 49
Figure 5-9: Stage (1) – Creating Entities................................................................... 55
Figure 5-10: Stage (2) - Pipe Stringing ..................................................................... 61
Figure 5-11: Stage (3) - Pipe Bending and Welding ................................................. 65
Figure 5-12 : Stage (4) - Weld Inspection and Repair............................................... 68
Figure 5-13: Stage (5) - Joints Coating, Trench Excavation and Pipe Lowering ...... 73
Figure 5-14: Stage (6) - Joints Welding and Weld Inspection ................................... 75
Figure 5-15: Stage (7) - Trench Backfilling and Hydrotesting ................................... 79
CHAPTER 6
Figure 6-1: Properties View of Optimization Model ................................................... 82
Figure 6-2: Setting the Optimization Objective.......................................................... 83
vi
Figure 6-3: Defining Optimization Parameters .......................................................... 85
Figure 6-4: Constraints Table in Properties View...................................................... 91
Figure 6-5: Graphical Presentation for Optimization Model ...................................... 92
Figure 6-6: Map of South Valley Gas Pipeline .......................................................... 93
Figure 6-7: Results of 50 Simulation Runs................................................................ 95
Figure 6-8: Second Stage Optimization Model ......................................................... 97
Figure 6-9: Example of Used Sub-models ................................................................ 98
vii
LIST OF TABLES
CHAPTER 4
Table 4-1: Job durations in man-hours ..................................................................... 25
Table 4-2: Completion times for jobs in man-hours .................................................. 26
Table 4-3: Dividing jobs into two sets........................................................................ 26
Table 4-4: Completion times for jobs after applying Johnson’s rule
(In man-hours)........................................................................................................... 27
Table 4-5: Job durations in man-hours ..................................................................... 28
Table 4-6: Completion times for jobs in man-hours .................................................. 29
Table 4-7: Decision Variable Matrix (xjk) .................................................................. 29
Table 4-8: Waiting Time Matrix (Wik) ........................................................................ 30
Table 4-9: Idle Time Matrix (Iik) ................................................................................ 30
Table 4-10: Completion times for jobs in man-hours ................................................ 31
Table 4-11: Job durations in man-hours ................................................................... 32
Table 4-12: Completion times for jobs in man-hours ................................................ 32
Table 4-13: Slope Index for jobs ............................................................................... 32
Table 4-14: Completion times for jobs in man-hours ................................................ 33
CHAPTER 5
Table 5-1: Names and Animation Shapes of Model Components ............................ 40
Table 5-2: New Fields of Entity Class ....................................................................... 43
Table 5-3: Arrays Properties ..................................................................................... 53
CHAPTER 6
Table 6-1: Properties of “stationProps1” ................................................................... 84
Table 6-2: Values of Optimization Parameter “Strng1” ............................................. 85
Table 6-3: Properties of Arrays “stationProps2” to “stationProps14” ........................ 87
Table 6-4: Values of Optimization Parameters ......................................................... 90
Table 6-5: Definition of 1st Constraint for Stringing Optimization Parameters ........... 90
Table 6-6: Definition of 2nd Constraint for Stringing Optimization Parameters .......... 91
Table 6-7: Constraints for Optimization Parameters ................................................. 92
Table 6-8: Second Stage’s Resulting Sequence of Work for Pipeline Stations ........ 97
Table 6-9: Final Sequence of Work for Pipeline Stations .......................................... 98
viii
Chapter 1
Introduction
1.1. Introduction
Pipelines transport crude oil and raw natural gas over long distances from producing regions
to refineries and processing plants, where these energy sources are converted into useful fuel
types such as gasoline, diesel and commercial-grade natural gas. Pipelines are also used to
transport these consumer-ready fuels from refineries and gas processing plants to large
terminals on the edge of towns and cities, where they can then be distributed to homes and
businesses. Pipelines are utilized for many reasons such as:
Pipelines are more cost-effective than the alternative transportation options such as
tanker trucks or rail cars.
They are more stable and reliable as they are not affected by any conditions such as
road or weather conditions
They require significantly less energy to operate than operating trucks or rail and
thus, have a much lower carbon footprint.
Pipelines for major energy resources (petroleum and natural gas) are not merely an
element of trade. They connect to issues of geopolitics and international security as well. The
construction, placement, and control of oil and gas pipelines often take an important position
in state interests and actions. A notable example of pipeline politics occurred at the beginning
of the year 2009, wherein a dispute between Russia and Ukraine seemingly over pricing of
sold natural gas led to a major political crisis. Russian state-owned gas
company Gazprom cut off natural gas supplies to Ukraine after talks between it and the
Ukrainian government failed. In addition to cutting off supplies to Ukraine, Russian gas
flowing through Ukraine, which included nearly all supplies to Southeastern Europe and some
supplies to Central and Western Europe, was cut off, creating a major crisis in several
countries heavily dependent on Russian gas as fuel. To avoid another crisis, two new
pipelines, “Nord stream” and “South stream”, were constructed to connect Russia with central
and south Europe without passing by Ukraine.
Oil pipelines are made from steel or plastic tubes with inner diameter typically from 4 to
48 inches (100 to 1,220 mm). Most pipelines are typically buried at a depth of about 3 to 6
feet (0.91 to 1.83 m). The oil is kept in motion by pump stations along the pipeline, and
usually flows at speed of about 1 to 6 meters per second (3.3 to 19.7 ft. /s). Pipelines could
also be used as multi-product pipelines; they are used to transport two or more different
products in sequence in the same pipeline.
1
Figure 0-1
0 : Nord Sttream and South
S Stream
m Pipelines
s (Insa Wrede, 2014).
Com
mpressor/pu
ump stations
s
Pum
mps for liquid
d pipelines and
a Compresssors for gass pipelines are
a located along the lin
ne to
movve the produ
uct through the pipeline
e. The locattion of these
e stations iss defined byy the
topo
ography of th
he terrain, th
he type of prroduct being transported, or operatio
onal condition
ns of
the n
network.
Bloc
ck valve sta
ation
Thesse are the first line of prrotection for pipelines. With
W these va
alves the ope
erator can isolate
any segment of the line for maintenance
m work or isola
ate a rupture
e or leak. Blo
ock valve stations
are usually loca
ated every 20 to 30 mile
es (48 km), d
depending on
o the type of
o pipeline. Even
E
thou
ugh it is not a design rule, it is a ve
ery usual pra
actice in liqu
uid pipelines. The locatio
on of
2
thesse stations depends
d exxclusively on
n the nature
e of the pro
oduct being transported,, the
traje
ectory of the pipeline and/or the opera
ational conditions of the line.
Fina
al delivery station
s
It is also known as outlet sta
ations or term
minals, this is where the product will be distribute
ed to
the consumer. Itt could be a tank termina
al for liquid pipelines
p or a connection
n to a distribution
netw
work for gas pipelines.
The market size
e for oil and gas pipeline
e constructio
on experienc
ced tremendo
ous growth. For
2013
3 only, operators plann
ned to build more than 15,300 miles of oil an
nd gas pipe
elines
worlldwide at a cost
c of more
e than $50 billion.
b For 20
012 only, co
ompanies had
d planned nearly
8,90
00 miles at a cost of mo
ore than $39.6 billion (Sm
mith, 2013). For projects
s completed after
2013
3 (Table 2), companies
c p
plan to lay more than 44,800 miles off line and spe
end roughly $144
$
billio
on. It is estim
mated that $193
$ billion will
w be spentt on onshore
e pipeline prrojects world
dwide
through 2015, according
a to
o data in en
nergy business analystss Douglas-W
Westwood’s third
editiion of The World
W Onshore Pipeline
es Report 20
011-2015. (W
Worldwide Onshore
O Pip
peline
Con
nstruction Ma
arket Appearss Strong thro
ough 2015, 2010)
2
Figu
ure 0-2: Pipe
eline Construction Quan
ntities in 201
13 (Smith, 2013).
2
Due
e to the econ
nomical and
d sometimes political sig
gnificance off pipelines projects,
p theyy are
usua
ally construc
cted under a very tigh
ht schedule
e. They require working
g under diffficult
cond
ditions in rem
mote location
ns such as mountains,
m jungles, deserrts, and even
n the Arctic Circle
C
whicch causes logistical
l co
onstraints off deploying equipment, materials and
a labor. They
T
3
sometimes require working within different countries which means different labor and
equipment conditions. They involve various types of labor and equipment that work
simultaneously or consecutively along the pipeline path. Avoiding delays during the
construction phase of pipeline projects can yield significant benefits to owners, pipeline
contractors, and the public. Delays in completing pipeline construction projects not only result
in higher costs to owners and contractors, but also add to the cost passed down to the end
users. Although some of the variables causing delay are difficult to control, good planning and
scheduling of pipeline construction projects can reduce the time and cost of construction.
Pipeline construction falls under the category of repetitive construction. Other examples
of repetitive construction can be highways, multiple housing projects and dike construction
projects. In repetitive construction, the same activities are repeated for a similar number of
units at different locations. Pipeline path is divided into number of segments or stations which
are covered by number of construction base camps. Accordingly, each station can be
considered a separate unit for which all activities of the project are performed.
Pipeline construction projects require resources to perform the same work in the various
stations by moving from one station to the next in the project. Because of this frequent
resource movement, an effective schedule is important to ensure the uninterrupted usage of
resources of repetitive activities between stations. Consequently, the waste from resource
waiting for preceding resources to finish their work should be eliminated to maintain continuity
of work. Maintaining work continuity leads to maximizing the learning curve effect and
minimizing the idle time of each resource.
Various scheduling techniques have been used for repetitive construction projects.
However, they have all proven not to be capable of providing all the benefits simultaneously.
Each technique had to overlook some aspects to reach an optimal schedule. Further
discussion of the disadvantages of using these techniques will be fully shown in Chapter Two.
There are various challenges that should be considered in the development of an effective
model for the planning and control of pipeline construction. During the construction phase of a
project, job superintendents place resource utilization as a priority, thus creating resource
driven schedules will help reflect the actual construction process.
4
and leave them idle. In addition, several types of resources utilized in pipeline construction
are expensive and sophisticated that only one crew would be available for the whole
segment. Therefore, the utilization of each crew of every resource separately among the
various stations would help in obtaining the optimum schedule.
The second challenge is to develop a model that deals with the geographic nature of the
pipeline construction site. Pipelines are usually located in remote areas that are not served
with any type of infrastructure. There are a number of base camps that contain labor housing,
technical offices, material storage and equipment’s shelters and workshops. The location and
number of base camps that serve the project is decided based on the nearby populated
areas. An optimum schedule would take into account the travel time of the resources to the
site and back to the camp based on its location relative to the different stations.
The third challenge is considering realistic activity durations in the model. As the stations
of the pipeline varies in their conditions such as the soil type and the topographic nature, the
productivity of various resources and quantity of needed work are affected. As a result, the
activities duration becomes function not only of resources productivity but also the conditions
of each station.
The main objective of this research is to study planning and scheduling of pipeline projects
and develop a model for scheduling and control of pipeline projects that addresses the
challenges outlined in the earlier section. In order to develop this model, the objectives of this
study are:
5
1) To study related literature focusing on scheduling of repetitive activities and
determine the problems that faced researchers in this field.
2) To develop simple models based on the literature to solve the scheduling problem
addressed previously and illustrate the limitations of these models
5) To implement the model on a real case study and study the difference between the
real and proposed schedule.
Chapter 3 explains the stages of pipeline construction projects. The sequence of activities is
explained showing the utilization of the different kinds of resources in each activity.
Chapter 4 presents the stages of creating the deterministic models found in the literature that
could be used for repetitive construction projects and the limitations of their use.
Chapter 5 presents the stages of constructing the simulation model which would represent the
different stages of pipeline construction
Chapter 6 presents the stages of defining the optimization module which would depend on the
simulation model to come out with the optimum schedule
Chapter 7 presents the results of the case study, summarizes the results of this research,
highlights its contributions and advises the recommendations for future research.
6
Chapter 2
Literature Review
2.1. Introduction
The main purpose of Construction Management is to deliver a project on time, within a certain
budget and in accordance to pre-defined quality standards. Time, cost and quality create a
triangle, which is called the fundamental triangle of project management. The planning of a
project is carried out in a manner to accommodate these criteria.
The creation of a realistic schedule also serves purposes other than the one stated
above, in fact its use is not just limited to the construction stage, and it is extended to the pre-
construction and post-construction stages as well. The schedule provides the necessary
insight for the project manager or his/her representative to identify the required resources and
plan for their timely allocation ahead of time. Cash flows, the assignment of work crews,
delivery of material and equipment allocation are such considerations. Schedules are also
appropriate tools for project control. In the post construction stage, project schedules serve as
a reference to facilitate construction claims and disputes.
Different types of construction projects are planned and scheduled according to their
characteristics, in order to achieve an optimum schedule in respect to the fundamental
triangle of construction management. Among the available categories existing in construction,
pipelines construction fall into the category of repetitive construction projects. Repetitive
construction projects are made up of a number of similar or identical units (El Rayes, 1997).
Examples of repetitive construction could be high-rise buildings, housing projects, highways,
airport runways, railways, bridges, tunnels, wind energy farms, water pipes and civil
infrastructure. Repetitive projects may be divided into two categories: (1) projects that are
repetitive due to a uniform repetition of a unit work throughout projects such as multiple
similar houses and high rise building; (2) projects that are repetitive due to their geometrical
layout such as highways, tunnels and pipelines.
This chapter presents a review of recent literature in traditional scheduling techniques for
construction projects in general, and special scheduling techniques for repetitive construction
projects in particular.
Bar Chart method utilizes graphical approach to represent the project schedule by plotting the
activities against time. It was invented and developed by Henry L. Gantt during World War I.
7
The duration of each activity is represented by the length of the bar in accordance with the
time scale of the chart. Bar charts are still popular and are used in construction till now. Due
to Its graphical nature, it is easily understood by all levels of management and supervision,
thus becoming an effective means of communication between engineers and foremen. It is
also used as a tool to identify the required resources. Resource allocation and leveling is
often done using Bar charts. The major deficiency of this method is that it cannot illustrate the
interrelationships between activities, thereby failing to identify the critical activities, which
actually control the project duration (Chzanowski and Johnston, 1986; Stradal and Cacha,
1982).
Network techniques were the next step after bar charts. Network diagrams had the ability to
graphically represent the activities and their relationships. By displaying the relationships
between activities, these diagrams effectively eliminated the main disadvantage of bar charts.
This way the Network techniques enabled the identification of critical activities that control the
project duration. They are either deterministic or probabilistic. (Chzanowski and Johnston,
1986)
The Arrow Diagram Method (ADM) and the Precedence Diagram Method (PDM) are the
two common deterministic network techniques available. These methods are also known as
the Critical Path Method (CPM). In ADM, activities are represented by arrows and nodes
connecting these arrows are considered events or milestones. In PDM, nodes represent
activities and connecting arrows represent the interrelationship among these activities. PDM
has a number of advantages over ADM; there is no need for 'dummy activities' in PDM, and
ADM can consider only one type of relationship namely finish to start whereas PDM can
consider four different types of relationships namely, Finish to Start, Finish to Finish, Start to
Start and Start to Finish with lag and lead times.
As for probabilistic network scheduling techniques, one method, Program Evaluation and
Review Technique (PERT), considers three different durations for each activity, the most
optimistic, the most likely and the most pessimistic durations. This characteristic helps the
scheduler in modeling the uncertainty associated with the duration of each activity. Besides
the fact that PERT has the same limitations of deterministic network methods, its use is
limited due to the assumptions it is based on.
As for repetitive construction, there are limitations for the network scheduling techniques.
The main concern is that these techniques do not consider effective resource utilization and
for this reason it is widely criticized in literature (Birrell, 1980; Kavanagh, 1985). Network
techniques emphasize on minimizing the total project duration and thus make the
fundamental, unrealistic assumption that resources are unlimited and centrally controlled. Top
management can relate to such goal. On the other hand, site superintendents focus on
8
minimizing the resource input and maximizing resource utilization rather than critical paths or
early project completion (Birrell, 1980; Kavanagh, 1985). That’s why they are reluctant to use
it in spite of management encouragement (Tavakoli & Riachi, 1990).
Moreover, these techniques produce large and complex schedules when applied to
repetitive activities and the complexity increases with the increase in repetitions (Carr and
Meyer, 1974). Hence it becomes practically inapplicable for projects that comprise a large
number of repetitive activities such as a housing development project with 100 houses. For
example, if a housing project with 50 typical houses is to be considered and if the work of
each house can be broken down into only 20 activities, the project network would consist of
1000 activities, which complicates the understanding of the schedule and control process.
In addition to all of the mentioned shortcomings of network scheduling, there are hidden
interrelationships between activities due to resource constraints which are not shown in the
actual network. The methods used to calculate the float of activities cannot depict this
constraint, therefore there is actually a 'Phantom Float' which alters the network calculations
and perhaps even the total project time (Kim and de la Garza, 2003).
They also complicate the implementation of multiple-crew strategies. They cannot provide
data for the progress of individual crews alongside the progress of the project itself.
Due to the limitations of the network techniques mentioned in the earlier section, a number of
techniques were proposed in the literature for scheduling. Repetitive activities generally can
be divided into two categories: ‘typical’ and ‘non-typical’ or ‘atypical ’activities. In the typical
repetitive category, common activities in all repetitive units are assumed to have identical
durations, such as the paving activity. In the non-typical category, activities need not have
identical durations, as in the earth moving activity.
Methods of scheduling projects with repetitive activities can be grouped into two main
categories. The first category comprises of methods, which were developed to schedule
typical repetitive activities only. These methods are often referred to as 'Line Of Balance'
9
(LOB) (Al Sarraj, 1990; Carr and Meyer, 1974). The second category includes methods which
were developed to schedule both typical and non-typical repetitive activities, and are often
referred to as 'Linear Scheduling Method' (LSM) (Russell and Caselton, 1988; Chrazanwski
and Johnston, 1986).
There are other techniques proposed in the literature for scheduling repetitive activities
utilizing the principles of either LOB or LSM, with the main objective of maintaining crew work
continuity. These techniques include 'Vertical production method' (VPM) (O'Brien, 1975;
O'Brien et al. 1985), Time-Space Scheduling (Stradal and Cacha, 1982), 'Disturbance
Scheduling' (Whiteman and Irwing, 1988), 'Horizontal and Vertical Logic Scheduling', (Thabet
and Beliveau, 1994), 'Velocity Diagrams' (Dressler, 1980), Simulation of Repetitive Networks
(SIREN) (Kavanagh, 1985), Repetitive Project Modelling (RPM) (Reda, 1990).
Line of Balance (LOB) method was developed by the U.S Navy in 1942 for planning and
control of repetitive projects. The method was primarily designed for industrial manufacturing
operations. It was used by the industrial engineers to optimize the cost of output by
determining the required resources and setting the speed of each stage. However, in
industrial manufacturing, products move along a production line. On the other hand, in
construction of repetitive projects the products are stationary and machines move along a
line. Due to this difference, LOB method was modified in 1966 from its original manufacturing
industry purpose to enable its application to housing. The developed method was simple and
the schedule could be represented by plotting the number of units in Y-axis and the duration
in X-axis. Repetitive activities are represented by separate inclined bars. (Al Sarraj, 1990)
There are several methods proposed in the literature having the same name 'Line of
Balance' (LOB) and sharing the same concept (Al Sarraj, 1990; Arditi and Albulak, 1986;
Ammar, 2013). Arditi and Albulak (1986) used LOB to schedule a highway project. They
concluded that LOB schedule is easy to understand and requires less time and effort. AI
Sarraj (1990) developed a formal algorithm for LOB to facilitate scheduling, resource
management and project analysis and control in order to provide a mathematical alternative
for the graphical LOB method. Ammar (2013) introduced a method that integrates CPM with
LOB to make use of the analytical capabilities of CPM in addition to LOB’s capabilities in
resource utilization
LOB method has been found to have apparent advantages such as maintaining crew
work continuity, generating resource driven schedules, incorporating multiple crews and
providing clear and easy way to produce schedules (Arditi and Albulak, 1986). However, it
has been criticized in the literature for a number of reasons.
10
Kavanagh (1985) indicated that LOB method was designed to model simple repetitive
production process and is not suitable for complex construction projects. Arditi and Albulak
(1986) commented about the visual problems associated with the graphical LOB diagram
and suggested that different colors can be used to distinguish overlapping activities. They
also stated that the schedule is very sensitive to the estimations of activities’ man hour
requirements and needed crew sizes. Any error in these estimations would be magnified due
to repetition. Neale and Raju (1988) stated that the calculations needed in LOB are tedious
and requires a lot of trials in order to make the pace of work similar for all activities. Thus,
they introduced a way to refine LOB method using a spreadsheet format but they faced
complex relationships and concluded that it was practically infeasible to draw the schedule in
the form of a diagram. Another major disadvantage of LOB method is its inability to schedule
non-typical repetitive activities as well as any non-repetitive activities that occur within the
project (Moselhi and EI-Rayes, 1993(a) (b)).
Linear Scheduling Method (LSM) was developed to overcome the limitations of LOB method.
LSM is capable of scheduling typical and non-typical repetitive activities along with all the
apparent advantages of LOB method (Russell and Caselton, 1988; Chrzanowski and
Johnston, 1986; Moselhi and El Rayes, 1993(a)). An important difference between LOB
method and LSM is the graphical presentation of the schedule. In LOB method, an activity is
represented by two parallel lines with a constant slope, whereas in LSM it is represented by a
single line with varying slope.
Johnston (1981) described the basic presentation format of LSM as having two axes. The
horizontal axis represents the project duration and the vertical axis represents the number of
repetitive units while separate diagonal lines represent repetitive activities. He suggested that
LSM schedule is simple and can convey detail work schedule. Chrzanowski and Johnston
(1986) employed CPM technique with LSM to schedule a highway project in order to evaluate
the capabilities of LSM. They concluded that LSM has several advantages such as its
simplicity that helps personnel to understand with minimum training, the ability to extract
various types of information such as job progress and resource allocations and the ability to
take quick decisions in resource utilization matters. On the other hand, LSM cannot be used
for non-repetitive activities and it is a graphical method that cannot utilize numerical
computations.
As mentioned before, in the practice of professional construction management, time, cost and
quality are of essence. For repetitive projects such as pipeline, roads, high rise buildings or
housing projects, corporations usually invest a large capital and need the project up-and-
running as fast as possible. Thus, minimizing total construction costs along with the duration
11
is of utmost importance when scheduling construction projects with repetitive activities. In the
literature, Attempts made to optimize LSM using mathematically based models can be
categorized as follows: 1) operations research models; 2) simulation models; and 3) artificial
intelligence (AI) models (Hassanein, 2002).
In recent attempts made to optimize repetitive construction, operation research models have
proven to be the tool of choice among the researchers. Either linear programming or dynamic
programming was employed in these models.
Reda (1990) developed a model called Repetitive Project Model (RPM) to minimize
project direct costs. It combined a linear programming formulation with network technique to
present a typical stage of the project and a graphical technique to represent the results. This
formulation had a number of limitations. One of which is that the productivity rates are
constant for all stages of project which limits its application to typical repetitive projects.
Another was that the possibility of work interruptions was ignored.
Selinger (1980) was the first to develop a dynamic programming formulation solution to
optimize linear schedules. The formulation managed to maintain crew work continuity
however it did not consider cost.
Handa and Barcia (1986) presented a model that relied on Optimal Control Theory. The
model could take account for variable production rates. The work continuity constraint was
maintained but not enforced. Moreover, the model was incapable of considering multiple
crews for activities.
Russell and Caselton (1988) built on the works of Selinger (1980) and developed a two-
variable N-stage dynamic programming solution that can find the minimum project duration. In
order to achieve this, the set of possible interruption vectors were defined for each activity as
the second variable where the first is the set of possible durations for the activity. The
possibility of work interruption contradicts with the work-continuity constraint; however, it
achieves the objective of schedule optimization in respect to time. The limitations of this
model are that it does not consider cost like Selinger (1980) and it is incapable of considering
multiple predecessors and/or successors.
Moselhi and El Rayes (1993 (a) & (b)) proposed a dynamic programming model that
overcame the limitations of previous models of Selinger (1980) and Russell and Caselton
(1988). Their model was an object oriented optimization model that used a two-variable N-
stage dynamic programming formulation to consider overall project cost as a priority as well
as the learning curve effect and the impact of weather on crews’ productivity. The model's
optimization procedure was executed in two stages, forward and backward paths, and
12
enforced work continuity. It offered assistance to the user to select an optimum crew
formation from a set of possible alternatives.
Eldin and Senouci (1994) also used a two-variable N-stage dynamic programming
formulation to minimize total project cost. The two variables represented possible activity
resources and acceptable interruptions at each stage. The model, however, could only
consider one crew per activity.
Moselhi and Hassanein (2003) developed a model that employs a two-variable, N-stage,
dynamic programming formulation coupled with a set of heuristic rules. It had the ability to
optimize either project duration, total cost or their combined effect (A+B bidding). The model
supported multiple crews to work simultaneously on any activity while accounting for: 1)
accounts for the presence of transverse obstructions, such as rivers and creeks; 2) utilizes
resource-driven scheduling; 3) incorporates repetitive and non-repetitive activities in the
optimization procedure; 4) enables the consideration of multiple predecessors and
successors for each activity; and 5) accounts for variations in quantity of work and unit length
of repetitive activities
Several simulation models have been developed to introduce computer simulation modeling
to scheduling of repetitive projects. Computer simulation models are utilized to change some
of the deterministic input elements in the construction process and estimate the consequence.
Ashley (1980) proposed a simulation model for scheduling of repetitive projects that
adopts a queuing model to resolve the crew availability problem. The model is implemented
using GPSS simulation language, and is based on the concept that repetitive units are
organized in a queue to be served by the assigned crew. A main limitation in this model that
it doesn’t recognize any priority for an activities or units
13
a priority system for assigning crews that is close to a superintendent’s priorities. However,
this model had some limitations. First, one activity cannot utilize more than one type of crew.
Second, it doesn’t allow the user to enforce his plan of work and priorities for activities or
stages. Finally, the model presumes that the repetitive units are essentially independent.
Pena-Mora et al. (2008) developed a Discrete Event & System Dynamics hybrid
simulation model to simulate the combined effect of operational and strategic management
decisions on infrastructure projects performance. The model was coded using Extend
simulation environment. They concluded that simulation models are useful means for
construction managers to consider the impact of their decisions without facing costly
consequences.
Moradi et al. (2015) proposed another hybrid simulation model that uses both Discrete
Event & System Dynamics to simulate repetitive construction projects. The model was
developed using AnyLogic software. The model used concreting projects as an example to
test the performance of the proposed model. They concluded that using hybrid model that
employs both Discrete Event & System Dynamics is better than using each of them
individually.
14
Chapter 3
Stages of Pipeline Construction
3.1 Introduction
This chapter presents the stages of pipeline construction illustrating the sequence of activities
and the resources employed in each of them. Pipeline construction is one of the complex
construction projects which employ a large number of specialized crews as well as many
types of heavy machinery. Such projects need an accurate schedule to maintain the crew
work continuity and minimize idle times.
A pipeline can be broken down into three basic elements where different forms of pipeline
construction method are used. They are:
(i) Open cross-country areas, where the spread technique is used
(ii) Crossings, where specialist crews and civil engineering techniques are used
(iii) Special sections such as built up urban areas, restricted working areas, difficult
terrain sections and environmentally sensitive areas.
The basic method of constructing steel, welded oil and gas onshore pipelines in open
cross country areas is generally known as the “spread technique”. The spread technique
utilizes the principles of the production line system, but in the case of a pipeline the product
(the pipeline) is static and the individual work force, (crews) move along the pipeline track.
The implementation of the spread technique is conditional on the pipeline being welded above
ground in maximum possible continuous lengths between obstructions/crossings, which can
extend to lengths in excess of 10 kilometers. These welded pipe lengths are then immediately
installed into unsupported/unobstructed trenches gradually in one continuous length utilizing
multiple (three or more) mobile lifting tractors (side-booms) together. The breaks in the
continuous main spread method of working result from the location of existing services, roads,
railways, tracks, ditches, streams and river crossings, and are also dependent upon restricted
working, time constraints and physical features/obstructions. These breaks in the main
pipeline spread activities are undertaken by dedicated specialist crews utilizing a variety of
special construction techniques and are generally undertaken after the main pipeline sections
have been installed.
The main pipeline spread installation is undertaken by dedicated crews undertaking one
operation at a time commencing at one end of the pipeline and travelling forward to the other
end at anything from 500m to 1,500m per day depending on the diameter of the pipe, terrain,
15
soils, etc. The program of activities and the start-up of the crews is dependent on available
resources and the risk of one crew having an impact upon the following activities.
Pre-construction activities need to be carried out by the Installation Contractor prior to the
start of the main pipeline installation activities. These activities include finalizing the pipeline
route, detailed design finalization, mobilization, notification of entry to landowners, setting-up
of pipe yards and base camps, establishing temporary works requirements, setting-up of
geographic positioning stations, design of land drainage in agricultural areas and
reinstatement works, construction of temporary access roads, pre-environmental mitigation
works, and agreeing with landowners any special requirements prior to entry onto their
properties. The Installation Contractor will carry out pre-entry surveys as-and-where required
so as to record the condition of the land prior to the start of any work.
Once the pre-construction activities have been completed, then the main construction
works can commence. Generally, operations are carried out in three main activities groups as
shown in figure (3-1):
Terrain Trench
Pre‐
Setting‐ and excavation Testing of
construction
out ground in rock welders
cut‐off drains
stability areas
Welding of Weld
Pipe forming NDT
the repairs
stringing field bends inspection
pipeline
Backfilling of
Field joint Trench Pipe
the pipeline
coating excavation installation
trench
16
The first group which is Preparing Work Area contains many operations, First, Setting-
out. The setting-out crews are the first personnel from the construction contractor’s workforce
to enter the site to commence the main construction activities. The setting out of the works
should be scheduled to commence at least four weeks prior to the remainder of the first group
activities. This work will be carried out with small four man crews using GPS and surveying
instruments. Setting-out pegs will be placed at all boundaries, changes in direction and
intermediate sightings on the proposed centre line and the extremities of the working
easement. In areas of open country where good and level access is available along the
pipeline route and it is anticipated the rock or ground is of sufficient strength that it could
impede progress of the trench excavation, then initial ground investigations works will be
carried out directly behind the setting-out crew. Part of the setting-out crew’s duties is to
identify any existing services that cross or are in close proximity to the pipeline and supervise
the trial hole crew. The trial hole crew will hand excavate to expose, identify and determine
the exact location of all existing services. This data will be recorded and transferred to the
engineers for incorporation into the final pipeline design.
The second activity is Pre-construction terrain and ground stability. At locations where
there is a risk of ground movement that could result in safety risks to the construction
activities and/or undermine the pipe during installation and the period prior to final
reinstatement then permanent stability of the affected terrain needs to be undertaken. This
work can be separated into two elements; first, Removal of material such as the overburden
at the top of ravines and the removal of loose material that could move during the installation
works and second, Addition of material such as Bentonite, which is injected under pressure
into gravels with high and fast water tables and deep mining areas to provide a protective
curtain around the pipe. It also includes the adding (placement) of boulders/ground at the toe
of steep gradients on forwarded and side slopes in the second element.
The third activity is Trench excavation in rock areas. In areas where rock is confirmed as
such by the initial ground investigation works then the trench is excavated ahead of any pipe
operations. This sequence of working is undertaken to ensure that the excavation of the
trench cannot cause any damage to the pipe and/or pipe coating and provide an extended
safe working width for the excavation crews allowing double –sided trench working by
excavators/ breakers.
Following the review of the data from the initial ripper and trial hole surveys, the ground
will be classified in ease of excavation into five groups defined by the method of removal.
These are (i) utilizing standard excavation, (ii) larger more powerful excavators (face shovels
converted to back-actors), (iii) ripping/hydraulic hammer and excavation, (iv)
blasting/hydraulic hammer and excavation and (v) rock trenchers (saw and blade). The
finished trench should be to the correct depth and width to suite the pipe diameter, plus any
17
bedding and pipe cover. The trench should also be in a straight line so that the pipe can la y
central in the trench without coming into contact with the trench sides. All loose and jagged
outcrops, which could come in contact with the pipe during lay operations, will be removed.
The excavation will commence with dedicated crews immediately following the ROW
operation. The forward progress will be dependent upon the ground strength, grain structure,
terrain, access, method of removal and number of crews/equipment employed.
The fourth and last activity is Pre-construction cut-off drains. All cut-off drainage works,
which comprise the connection of existing drains to a new header pipe, will commence
immediately after the right of way and fencing operations. Cut-off drainage works will be
undertaken at locations where there are existing concentrated drainage schemes on
agricultural land and where agreement is reached with the landowners and/or occupiers to
their installation. This work will be resourced taking account of the scope of work and the
requirement to achieve pipeline installation progress of, say, 500 to 1,500 meters per day
along the pipeline route.
The second group of activities is layout pipe and weld above ground. The first activity is
Project mechanical procedures/testing of welders. prior to the start of any mechanical works
the Contractor will issue for Client approval a full set of mechanical procedures for bending,
welding, x-ray and coating. These procedures will address how the Contractor intends to
undertake the work in accordance with the project specifications detailing equipment and
specific mandatory requirements. The procedures, particularly with regard to welding and x-
ray will be sufficient to cover the full ranges of the various parameters characteristic of the
project in terms of diameter, wall thickness and technique. Once the documented procedures
are approved then full trials for each element of the works will be carried out, fully inspected
and witnessed by the Client. The welding will include non-and full destructive testing to
ensure that the procedure welds are undertaken in strict compliance with the contract
requirements and fully comply with the minimum strength, hardness and quality requirements
of the relevant specifications. Once the procedures have been approved then the welders will
be tested to ensure that they can comply with the requirements of the procedure welds. A
register will be maintained of the welders employed on the project with the various welding
techniques they are approved to work on.
The second activity is Pipe stringing. The pipes and pre-formed bends will be scheduled
to be delivered to, and stock piled at, the proposed pipeline pipe yards some 4 to 8 weeks in
advance of stringing operations. The pipe supply should ensure that the various grades, wall
thicknesses and coatings are supplied in sufficient and correct quantities to meet the
program. Immediately following ROW or topsoil strip or excavation in rock areas, the pipe
stringing operations will commence, which involves laying the pipe lengths along the
easement length using pipe trailers. A typical crew will consist of two cranes - one at the base
camp loading the pipe trailers and the other on the pipeline easement off-loading the pipe
18
traile
ers. In the event
e that ground condiitions do nott permit travvel down the
e easement with
stan
ndard or special heavy-duty pipe trailers then the
e pipes will be
b loaded on
n to tracked pipe
carriers at the public
p roads or at a pointt where the change in ground
g conditions occurss and
perm
mits the turning of the wh
heeled pipe trrailers. See figure
f (3-2)
19
implly manual welding involvves the weld
ding of the pipe by welde
ers and auto
omatic involvves a
sem
mi-automatic system.
s Both
h systems ge
enerally (alth
hough certain
n automatic systems
s can now
do ssingle pass complete welds)
w operate on a fron
nt-end/back-end principle
e. The frontt-end
conssists in a manual
m opera
ation with, sa
ay, 3 separa
ate welding stations pla
aced on CAT
T D6
carriage consistting of a HIA
AB for the welding
w sheltter (used in inclement weather
w or windy
w
cond
ditions), 4 welding
w bulletts and a compressor. The
T welding stations worrk on 3 sepa
arate
jointts and comp
plete one pa
ass before moving
m on with
w the sequ
uence being the bead (2
2 - 4
weld
ders), immed
diately follow
wed by the hot pass (2 – 3 welders) and then ho
ot fill (2 weld
ders).
With
h the automatic processs, 1 machine
e deposits ssufficient weld metal equ
uivalent to the 3
man
nual passes. The weld is allowed to
o cool after the
t front-end
d passes an
nd then sufficient
weld
ders working
g in pairs or multiple auttomatic machines follow on to fill an
nd cap that day’s
d
prod
duction. The crew will acchieve progre
ess in the ord
der of one weld
w approxim
mately everyy 3 to
5 minutes or up to 90 to 150
0 welds per day, which is equivalentt to 1,000 to
o 1,500 mete
ers of
pipe
eline on 12 meter
m pipes and
a up to tw
wice that if do
ouble -jointed pipes are used. See fiigure
(3-3).
20
com
mpleted by semi-automattic welding processes
p a examined
are d using auto
omatic ultrassonic
testiing (AUT) te
echniques. This
T consists of an assem
mbly that tra
averses the circumferencce of
each
h completed
d weld in order to dete
ect any defe
ects. The re
esults of ea
ach ultrasoniically
insp
pected weld are
a automatically recorde
ed and are ussed to determ
mine whethe
er a weld repair is
requ
uired and if so
s what type.
21
The second activity is Pipe
P installattion. The pip
peline will be
e positioned approximate
ely 5
mete
ers from the
e trench cen
ntre-line and will be insttalled into th
he open uno
obstructed trrench
utilizzing a numb
ber of side-booms. Thiss operation will usually be carried out immediately
follo
owing the exccavation crew
w. As the pip
peline is bein
ng installed a coating cre
ew will be pre
esent
who
o will holiday detect the pipe to detectt any damage to the pipe
e coating justt prior to the pipe
ente
ering the tren
nch. Any dam
mage detecte
ed will be re
epaired by a fast setting repair coatin
ng. In
area
as of rock, th
he pipe installation will co
ommence anyything from 5 to 15 days after the welding
crew
w. If there are
e any above ground brea
aks in the ma
ainline due to
o access ope
enings acrosss the
ROW
W, expansion breaks or bend breakks, then thesse will be we
elded above ground, x-rayed
and coated durring the exccavation and
d lowered-in
n as part of
o the mainline lower & lay
operration. This will
w optimize the use of th
he side-boom
ms within the lower & lay crew and reduce
the n
number of be
elow ground tie-ins. See figure (3-5).
gure 0-5 : Lo
Fig owering pip
pes in Trenches
22
Figurre 3-6 : Pipe
eline Constrruction Operration
3.3
3 Summa
ary and Conclusio
C on
23
Chapter 4
Deterministic Models
4.1 Introduction
This chapter presents the methodology of constructing simple deterministic models based on
the literature. There are numerous mathematical models that are used to solve various
scheduling problems. Repetitive construction must be classified into a form of the different
forms present in the literature in order to choose the appropriate model.
4.2 Methodology
According to the framework established by Pinedo (2011) (α|β|γ), our scheduling problem
would be formulated as follows: FFc | prmp, sjk, Mj, prmu | Cmax. Each part of this
formula will be explained in the next paragraphs.
The first part of the formula (α) describes the arrangement of the machines and the
sequence in which each job will be processed through these machines. The pipeline project
site would be categorized best as Flexible Flow shop (FFc). The construction project consists
of a number of stages as it was illustrated earlier (Stringing, Bending, Welding ….etc). Each
stage utilizes a single or a number of resources (machines) which are either similar to each
other or vary in their productivity.
The second part of the formula (β) describes the characteristics of construction stages
and the constraints imposed on them. The first characteristic is preemptions (prmp). It
means that after the job is on the machine, it is allowed to stop processing this job for some
time and then proceed once again until it’s finished. In our problem, this means that after
starting a certain activity in one station, it is allowed to stop working in this station, utilize the
resources in a different station and then returning the resources to finish working in the first
station. The second characteristic is sequence dependent setup times (sjk). This means that
there is setup time for the resources incurred as the resources are relocated between
stations. Pipeline projects extend over hundreds of kilometers and it utilizes heavy machinery
such as excavators and side booms. Arrangement of stations in a certain sequence will
greatly affect setup times of resources. The third characteristic is machine eligibility
restrictions (Mj). This means that not all machines in one stage of the project is suitable for all
jobs (stations). One major example of that is the (Excavation) activity. As the pipeline passes
through different areas, different types of soil starting from loose sand all the way to hard rock
may be incurred within the same project. As a result each station would require a different
type of excavation equipment depending on the nature of soil. The fourth characteristic is
permutation (prmu). This means that the sequence of work in stations is fixed for all
24
activities. In linear projects such as construction of pipelines, it is established that work
sequence is fixed for all activities. It is even preferred to make the sequence made so that all
the equipments move from one end of the pipeline directly to the other end. However, as
shown previously in the literature and in the model used in this thesis, permutation could be
overlooked to get a better schedule.
The third part of the formula (γ) describes the objective that needs to be minimized. Our
objective is to minimize the makespan (Cmax) which is the completion time of the last job. This
objective is the common objective in construction projects. In pipeline projects, it is crucial to
finish all the stations as early as possible in order to start the operation of it.
There have been many approaches to solve scheduling problems for flowshop and flexible
flowshops environments. It will be illustrated that these methods are not sufficient to solve the
scheduling problem of pipeline construction projects. The methods developed according to
Pinedo (2011) will be illustrated in the next part.
This method was developed by Johnson (1954) to minimize the makespan for flowshops with
2 machines (F2 || Cmax) problems. It is commonly referred to as Johnson’s rule. If there are
(n) jobs in one problem .The processing time of job (j) on machine 1 is (p1j) and its processing
time on machine 2 is (p2j). An optimal sequence can be generated as follows. First, divide the
jobs into two sets with “Set I” containing all jobs with (p1j) < (p2j) and “Set II” containing all jobs
with (p1j) > (p2j). The jobs with (p1j) = (p2j) may be put in either set. Second, the jobs in Set I go
first in the sequence and they go in increasing order of (p1j). “Set I” is referred to as (SPT).
Finally, the jobs in “Set II” follow in the sequence in a decreasing order of (p2j). “Set I” is
referred to as (LPT). Such schedule is referred to as “SPT (1) – LPT (2)”schedules. The
following example illustrates the way this method works.
If we take five jobs (stations) j1, j2, …, j5 and two machines (activities) e.g. “Excavation”
and “Welding” , the following is the durations for the five jobs on the two machines:
Job j1 j2 j3 j4 j5
Excavation P1, jk 62 86 87 66 56
welding P2, jk 60 75 57 82 76
Where, p1, jk = the duration for job (jk) on machine (1)
P2, jk = the duration for job (jk) on machine (2)
25
The makespan or the total completion time for the five jobs on the two machines equals the
completion time for the last job on the second machine (C2, j5). The completion time (Ci, jk)
for job (jk) on machine (i) is calculated using the following formulas:
C1, j1 = P1, j1
(Eq. 4-1)
C1, jk = C1, j (k-1) + P1, jk for k = 2,…..,5
(Eq. 4-2)
C2, j1 = C1, j1 + P2, j1
(Eq. 4-3)
C2, jk = max (C1, jk , C2, j (k-1) ) + P2, jk for k = 2,…..,5
(Eq. 4-4)
If the jobs were processed on the machines with their default sequence (j1, j2, j3, j4, j5), the
total completion time equals 459 man-hours as calculated in the following table:
Job Sequence j1 j2 j3 j4 j5
Completion
C1,j C2,j C3,j C4,j C5,j
Time (Ci,jk)
Excavation
62 148 235 301 357
(machine 1)
welding
122 223 292 383 459
(machine 2)
Next, the makespan is minimized by applying Johnson’s rule. The five jobs are divided to two
sets (SPT) and (LPT) as follows:
Job j1 j2 j3 j4 j5
Excavation P1, jk 62 86 87 66 56
welding P2, jk 60 75 57 82 76
LPT LPT LPT SPT SPT
For (SPT), jobs are arranged in increasing order, so, “j5” comes first and “j4” comes second in
the sequence. Followed by these two jobs, comes (LPT) jobs in decreasing order. As a result,
the jobs would be arranged in the order “j2”, “j1” and finally “j3”. Applying this sequence and
calculating the total completion time, the resulting total decreases to 414 man-hours.
26
Table 4-4: Completion times for jobs after applying Johnson’s rule
(In man-hours)
Job j5 j4 j2 j1 j3
Completion time
C5,j C4,j C2,j C1,j C3,j
(Ci,jk)
Excavation
56 122 208 270 357
(machine 1)
welding
132 214 289 349 414
(machine 2)
In conclusion, Johnson’s rule is suitable for getting optimal schedule for (F2 || Cmax)
problems. However, it cannot be generalized to problems with more than two machines
(activities). In addition, it cannot be used for flexible flowshops (FFc). Another disadvantage of
this method is that the sequence of jobs is fixed through both machines i.e the schedule must
be permutation (prmu).
Wagner (1959) developed a method in order to solve problems with more than two machines
(Fm | prmu | Cmax). His method was based on formulating the problem as a Mixed Integer
Program (MIP). First, the variables are defined. The decision variable (xjk) equals 1 if job ( j) is
the kth job in the sequence and 0 otherwise. The auxiliary variable (Iik) denotes the idle time
on machine (i) between the processing of the jobs in the kth position and (k + 1)th position
and the auxiliary variable (Wik) denotes the waiting time of the job in the kth position in
between machines (i) and (i+1). Wagner (1959) stated that minimizing the makespan is
equivalent to minimizing the total idle time on the last machine, machine m. hence, the
problem was formulated as follows:
min( + )
(Eq. 3-5)
=1
= 1, . . … , ( . 3 − 6)
27
=1 = 1, … . . , ( . 3 − 7)
+ , + , − − , − ,
=0
= 1, … , − 1;
= 1, … . , − 1 ( . 3 − 8)
=0
= 1, … . . , −1 ( . 3 − 9)
=0
= 1, … . . , − 1 ( . 3 − 10)
The first set of constraints (Eq. 3-6) specifies that exactly one job has to be assigned to
position (k) for any (k). The second set of constraints (Eq. 3-7) specifies that job (j) has to be
assigned to exactly one position. The third set of constraints (Eq. 3-8) relates the decision
variables (xjk) to the physical constraints. These physical constraints enforce the necessary
relationships between the idle time variables and the waiting time variables. The fourth set of
constraints (Eq. 3-9) insures that the waiting time for the first job equals zero on all machines.
The last set of constraints (Eq. 3-10) insures that the idle time for the first machine equals
zero for all jobs.
The following example illustrates the way this method works. If we take five jobs (stations)
j1, j2, …, j5 and three machines (activities) e.g. “Excavation”, “Welding” and “Lowering of
pipes” , the following is the durations for the five jobs on the three machines:
Job j1 j2 j3 j4 j5
Excavation P1,jk 62 86 87 66 56
welding P2,jk 60 75 57 82 76
Lowering P2,jk 78 82 77 87 80
Following the default sequence (j1, j2, j3, j4, j5) for processing the jobs on all three
machines, the total completion time equals 550 man-hours as calculated using equations (3-
1) to (3-4) in the following table:
28
Table 4-6: Completion times for jobs in man-hours
Job Sequence j1 j2 j3 j4 j5
Completion
C1,j C2,j C3,j C4,j C5,j
Time (Ci,jk)
Excavation
62 148 235 301 357
(machine 1)
welding
122 223 292 383 459
(machine 2)
Lowering
200 305 382 470 550
(machine 3)
Next, the Mixed Integer Program (MIP) is used to minimize the makespan. A MS Excel
worksheet (see figure (1)) is set as follows. First, the matrix of job durations (pij) [table (4-5)]
is set as the input matrix. Second, three matrices are set as variables matrices: the decision
variable matrix (xjk) [table (4-7)], the waiting time matrix (Wik) [table (4-8)] and the idle time
matrix (Iik) [table (4-9)]. In table (4-7), Cells (D11:H15) can take one of two values (0 or 1) so
that each the total of each row and column equals one to satisfy equations (3-6) and (3-7).
Cells (U36: X37) in table (8) and (L37: O38) in table (4-9) can take any value ≥ zero.
However, these values must satisfy the set of constraints (Eq. 3-8) which in this example
would add up to 8 equations e.g. for the second machine (i=2) and third job (k=3), the
constraint would be:
. + , , + , − , − . , − , =0
Excel Cell
C D E F J H I
Designation
10 Xjk j1 j2 j3 j4 j5 Σ
11 1 1 0 0 0 0 1
12 2 0 0 0 0 1 1
13 3 0 0 1 0 0 1
14 4 0 0 0 1 0 1
15 5 0 1 0 0 0 1
16 Σ 1 1 1 1 1
29
T
Table 4-7: Waiting
W Time
e Matrix (Wik
k)
E
Excel Cell
S T U V W X Y
D
Designation
35 j1 j5 j3 j4
j j2
2 Σ
36 W1,k 0 4 0 2 1 7
37 W2,k 0 2 18 2 11
1 33
38 W3,k 0 0 0 0 0 0
39 Σ 0 6 18 4 12
2 40
E
Excel Cell
K L M N O P Q
D
Designation
35 j1 j5 j3 j4
j j2
2 Σ
36 I1,k 0 0 0 0 0 0
37 I2,k 0 7 11 3 0 21
38 I3,k 0 0 0 0 0 0
39 Σ 0 7 11 3 0 21
min( + , )
Orriginal Sche
edule
Decision Variable
V
Matrix (xjk)
Target Ce
ell
Op
ptimum Sche
edule
Figure
e 4-1 : MS Ex
xcel Worksh
heet Used fo
or (MIP)
30
The resulting schedule would decrease the makespan to 526 man-hours as the following
sequence is followed:
Job Sequence j1 j5 j3 j4 j2
Completion
C1,j C5,j C3,j C4,j C2,j
Time (Ci,jk)
Excavation
62 118 205 271 357
(machine 1)
Welding
122 198 262 353 432
(machine 2)
Lowering
200 280 357 444 526
(machine 3)
In conclusion, MIP is suitable for (Fm | prmu | Cmax). It can be used to any number of
machines and jobs. However, like Johnson’s rule, it cannot be used for flexible flowshops
(FFc) and the sequence of jobs is fixed through all machines i.e. the schedule must be
permutation (prmu). In addition, (F3 || Cmax) problems were found to be strongly NP-Hard
(Pinedo, 2011). Thus, any problem with more than three machines would also be strongly NP-
Hard.
Another method to solve scheduling problems of type (Fm | prmu | Cmax) was developed by
Palmer (1965). It was based on the same principle used by Johnson (1954). Jobs with small
processing times on the first machine and large processing times on the second machine
should be positioned more towards the beginning of the sequence, while jobs with large
processing times on the first machine and small processing times on the second machine
should be positioned more towards the end of the sequence. According to this heuristic a
slope index (Aj) is computed for each job. It is defined as:
= −∑ ( − (2 − 1) (Eq. 3-5)
The jobs are then arranged in a decreasing order of the slope index. The following
example illustrates the way this method works. If we take five jobs (stations) j1, j2, …, j5 and
three machines (activities) e.g. “Excavation”, “Welding” and “Lowering of pipes” , the following
is the durations for the five jobs on the three machines:
31
Table 4-10: Job durations in man-hours
Job j1 j2 j3 j4 j5
Excavation P1,jk 62 86 87 66 56
welding P2,jk 60 75 57 82 76
Lowering P2,jk 78 82 77 87 80
Following the default sequence (j1, j2, j3, j4, j5) for processing the jobs on all three machines,
the total completion time equals 550 man-hours as calculated using equations (3-1) to (3-4) in
the following table:
Job Sequence j1 j2 j3 j4 j5
Completion
C1,j C2,j C3,j C4,j C5,j
Time (Ci,jk)
Excavation
62 148 235 301 357
(machine 1)
welding
122 223 292 383 459
(machine 2)
Lowering
200 305 382 470 550
(machine 3)
Next, the slope heuristic method is applied by calculating the slope index (Aj) for each of the
five jobs using equation (3-5). For example, for (j1):
Job j1 j2 j3 j4 j5
Slope Index (Aj) 32 -8 -20 42 48
According to the jobs’ slope index (Aj), the jobs are arranged in the sequence (j5, j4, j1, j2,
j3). Applying this sequence and calculating the total completion time, the resulting total
decreases to 538 man-hours.
32
Table 4-13: Completion times for jobs in man-hours
Job Sequence j5 j4 j1 j2 j3
Completion
C5,j C4,j C1,j C2,j C3,j
Time (Ci,jk)
Excavation
56 122 184 270 357
(machine 1)
welding
132 214 274 349 414
(machine 2)
Lowering
212 301 379 461 538
(machine 3)
In conclusion, slope heuristic is suitable for (Fm | prmu | Cmax). It can be used to any
number of machines and jobs. However, like MIP, it cannot be used for flexible flowshops
(FFc) and the sequence of jobs is fixed through both machines i.e. the schedule must be
permutation (prmu).
After testing all the methods demonstrated by Pinedo (2011), they all have proven, as shown
above, to be inadequate to solve the scheduling problem of pipeline construction projects due
to the following reasons. First, all three methods are not suitable for flexible flowshops (FFc).
They only deal with one machine per stage which is not applicable. In pipeline construction,
each stage usually utilize a number of machines (crews and equipments), which may be
different in their productivity. Second, the large number of stages involved would, if they were
reduced to a single machine, result in a huge problem for which an optimum solution would
be impossible to find. Third, all three methods inflict the permutation (prmu) condition in the
schedule. As mentioned earlier, overlooking this condition would result in a much optimal
schedule.
33
CHAPTER 5
SIMULATION MODEL
5.1. Introduction
As addressed in the previous chapters, heuristics and analytical methods are incapable of
finding the optimal schedule for linear projects, involving various activities and resources.
Simulation modeling, which represents a powerful alternative, would be illustrated in this
chapter.
The simulation method used is Discrete Event Simulation. This method is based on
modeling the operation of any system as a discrete sequence of events occurring in different
instances of time. Each event occurs at a particular instant in time and marks a change of
state in the system. Between consecutive events, no change in the system is assumed to
occur; thus the simulation can directly jump in time from one event to the next.
The “Active objects” are the main building blocks of AnyLogic models. Active objects can
be used to model very diverse objects of the real world such as processing stations,
resources, and various operations. Active objects may encapsulate other active objects to any
desired depth. This enables building the model from as many levels of details as required;
each active object typically represents a logical section of the model. Each AnyLogic model
has a main active object which contains embedded objects which, in turn, may contain their
embedded objects, and so on. These embedded objects serve as tools to facilitate modeling
the events of the process.
These objects are assembled in a number of libraries. One of the main libraries is called
the “Enterprise Library”. The Enterprise Library supports discrete-event, or, to be more
precise, process-centric modeling paradigm. This library’s tools are used to create discrete
event patterns frequently used in process-centric modeling such as queuing, resource usage
and entity generation. Using the Enterprise Library objects, the real-world systems can be
modeled in terms of entities (transactions, customers, products, parts, vehicles, etc.),
processes (sequences of operations typically involving queues, delays, resource utilization),
34
and resources. The Enterprise Library contains a set of objects specifically designed for
“Network Based Modeling”.
There are two main classes that are used in discrete event models: Entity and
ResourceUnit. Entity is a base class for all entities, that are generated, access resources and
take part in the process flow in process-centric models. An entity may represent a person, a
document, a piece of information or a vehicle. Entity is a regular Java class with functionality
sufficient for the Enterprise Library objects to handle and animate it. Its functionality could be
extended by creating a costume entity subclass, adding custom fields to it accessing them
from the process model. Enterprise Library objects are used to handle entities through the
process whether by generating them like Source, Combine and Split, disposing of them like
Sink, handling resources like Seize, Release and Service, controlling their flow through the
process like Queue, Hold and SelectOutput or Network-based objects such as
NetworkMoveTo, NetworkSeize and NetworkSendTo.
35
portable resources. Moving and portable resources have their home locations where they can
optionally return or be returned.
Resource units are utilized by entities during the operation of the process. The resource
management in a network is done centrally. The Network object maintains the queue of
requests from entities that want to seize the network resources and processes them from
front to back. Requests are arranged, by default, according to the rule “First In, First Out”
(FIFO), but optionally it can be a priority queue where requests are arranged based on
priorities of request which depend on the entities. If a request can be satisfied (i.e. all
requested resource units are simultaneously available), the units will be allocated, otherwise
the units that are available will be "reserved" by that request and the request stays in the
queue. This means that a request from the middle of the queue can be satisfied only if it does
not conflict with any request in front of it.
• Graphical Editor: Each active object class has a graphical editor associated with it. The
graphical editor is the place where the structure of the active object class is defined. It
plays several roles:
- Defines the interface of the active object class.
- Defines a presentation and icon for the active object using presentation shapes and
controls. Graphical editor links shape properties to active object data and embedded
objects.
- Defines behavior elements, such as events and state charts.
- Defines the embedded objects and their interconnection.
• Project View provides access to projects currently opened in the workspace. The
workspace tree provides easy navigation throughout the models. As models are
organized hierarchically, they are displayed in a tree structure.
• Palette View lists the model elements grouped in palettes. An element is added to the
model by dragging it from the palette to the graphical editor.
• Properties View is used to view and modify the properties of the selected model item(s).
36
Graphical Editor
Projects Palettte
V
View View
Properrties
View
Fig
gure 5-1: Typ
pical Interfa
ace in AnyLo
ogic
Build
ding the mod
del will go thrrough five main stages as follows:
1- Creating the
e model anim
mation by dra
awing the ne
etwork that re
epresents the
e actual spacce of
the project in
ncluding all the
t nodes an
nd the paths linking them. In addition,, the shapes,, that
represent the entities and resources used in the model, are created.
c
3- Creating the
e diagram of the model by
b adding the
e needed ob
bjects from th
he libraries in
n the
graphical ed
ditor, modifying the objeccts’ propertie
es and defining the relatio
onships betw
ween
them to fit th
he logic of the
e actual proc
cess.
37
5.3.1. Stage
e (1): Creating of Mo
odel Animation
reso
ources. The library used is the prese
entation libra
ary (palette) (Fig.5-2). Th
he tools with
h
icon
ns support th
he “drawing”” mode in addition
a to “D
Drag & Drop
p” mode. No
odes are ussually
reprresented by rectangles
r w
while paths be
etween them
m are represe
ented by liness or polyliness.
Pipe
eline constru
uction projectts rely on a number of camps
c set along the pipeline path; these
cam
mps are well-equipped forr housing of the workers e.g. welderss and storag
ge of construction
equiipment such as trucks and bulldozerrs and materrial such as pipes. Each camp is loccated
prop
perly to serve
e a segment of the pipeline. The mod
del would rep
present only one construction
cam
mp and the se
egment it covvers. The se
egment would
d be divided it into ten sttations which
h are
equa
al in length. The construction camp consists
c of a base camp for the resid
dence of worrkers
and storage of equipment
e in
n addition to a pipe yard for storage of
o pipes. A te
emporary road is
consstructed alon
ngside the pipeline path. The length of this road on the mod
del representts 90
38
km iin reality. The speed of e
each equipm
ment is set to match this path’s
p line on
n the model.. The
step
ps of the first stage are ass follows:
Figure 5-3:
5 Layout of Pipeline Project in AnyLogic
A
39
ne would be named tempRoad. It re
The other polylin epresents the
e temporary road constru
ucted
ng the path of
alon o the pipelin
ne. This road
d would be u
utilized for the transportation of resou
urces
and material bettween the pip
peline’s stations. The arrrangement off lines and polylines is sh
hown
gure (5-3).
in fig
1.6) A new group
g is created using the
t tool Gro
oup by grabb
bing it from the Presenttation
ette to the gra
pale aphical edito
or and named Group. All shapes,
d networkG s crea
ated in steps (1.1)
to (1
1.5), would be put togethe
er in the grou
up.
Now
w that the ne
etwork is cre
eated, the animation sha
apes used for
f the resou
urces are drrawn.
Shapes are grab
bbed from th
he Presentatiion palette to
o the graphic
cal editor and
d added toge
ether
in grroups as illus
strated in ste
eps (1.1) to (1.6) to form
m the shapes of the differrent resource
es as
show
wn in table (5
5-1). Using these
t shapess in the anim
mation of the model would
d be illustrate
ed in
the ssecond stage
e.
Tab
ble 5-1: Nam
mes and Animation Sha
apes of Mode
el Compone
ents
De
escription Nam
me (in the mo
odel) A
Animation shape
Pipes Truck
T TruckShap
T e
Side bo
oom Sid
deboomSha
ape
Pipe be
ending mach
hine Pipe
ebenderSh
hape
Excava
ator ExcavShap
E e
Bulldoz
zer Bul
lldozerShape
Hydro testing
t Crew
w Hy
ydTestShape
Pipes P
PipeShape
e
Welderr We
elderShap
pe
Coating
g Crew C
CoatShape
e
5.3.2. Stage
e (2): Creating of Co
ostume Cla
asses
40
prop
perties added
d by the use
er. In this mo
odel, entities represent sttations of the
e pipeline. These
statiions have va
arious properrties that affe uctivity of ressources for each activity. As a
ect the produ
resu
ult, these prroperties sho
ould be add
ded to a su
ubclass nam
med Statio
on of the class
c
tity. On th
Ent he other han
nd, all units of each ressource type would be assumed
a to have
similar characterristics e.g. productivity, speed…etc.
s in order to simplify
s the model.
m The ssteps
to crreate the sub
bclass stat
tion are as follows:
Figure 5-4
4: First Window in “New
w Java Clas
ss” wizard
2.3) Click Ne
ext to go to the next pag
ge of the wizzard. On the
e second pag
ge of the wizzard,
Java
a class Field
ds are speciffied in the ta
able, each cclass field is defined in the
t separate
e row
(figu
ure 5-5). The
e type of the field
f is enterred in the Typ
pe cell, name
e of the field in the Name
e cell
and optionally na
ame the acccess modifierr in the Acce
ess cell and the
t initial value is specifie
ed in
the Initial value cell.
c The data
a entered in this table are
e presented in table (5-2).
41
Figure 5-5:: Second Wiindow in “New Java Cla
ass” wizard
T
Table 5-2: Ne
ew Fields off Entity Clas
ss
42
Counter of the number of
WeldPipeNo double Public 0
welded pipes in a station
The station’s priority in
CoatPriority double Public 0
entering “Coating” activity
Factor that represents the type
Excvdiff double Public 0 of soil of a station and the
difficulty of excavation in it.
The station’s priority in
ExcvPriority double Public 0
entering “Excavation” activity
Number of excavators assigned
ExcvNo double Public 0
to a station
The station’s priority in
LwrPriority double Public 0 entering “Pipe Lowering”
activity
The station’s priority in
BckflPriority double Public 0
entering “Backfilling” activity
Number of bulldozers assigned
BldzrNo double Public 0
to a station
The station’s priority in
HdrtstPriority double Public 0
entering “Hydrotesting” activity
2.4) Using Create constructor and Create toString() method check boxes, default class
constructor and toString() method are created automatically.
2.5) Click Finish to complete the process. The code editor for the created class would be
opened. The code for subclass Station is presented in appendix-A
The third stage is constructing the diagram of the model in a proper way to represent the
actual events occurring in the actual process. The technique used to complete this stage
mainly depends on adding the needed objects from the libraries into the graphical editor,
modifying the objects’ properties and defining the relationships between them to fit the logic of
the actual process. This stage contains a large number of steps, thus it will divided into
several sub-stages.
3.1) Add Network object by dragging it from the Enterprise palette into the graphical
editor. The object’s properties are set by selecting it and modifying the needed fields in the
properties view. The properties are as follows:
43
Nam
me: netwo
ork (The default na
ame)
Gro
oup of netwo
ork netw
workGroup (It links the Ne
etwork objectt to the
shapes: gra work created in the
aphical netw
firsst stage. Reffer to step (1.6))
Ena
able prioritie
es: checkked (This allows enntities to be arranged
a
acccording to th
heir priorities)
Req
quest priority
y: 0 (The default va
alue)
3.2) Add Ne
etworkResou y dragging it from the Enterprise palette into
urcePool by o the
phical editor.. The objectt’s propertiess are set byy selecting it and modiffying the nee
grap eded
field
ds in the prop
perties view (see
( figure 5-6). The prop
perties are as follows:
Nam
me: Pline (The namme for the ressource pool of
o
pipeline stations’
s loca
ation)
Res
source type: Static
Cap
pacity By home shape (The hom me shape is the
t
defined: PlineLocation polyline.
p It ha
as ten
nodes, thhus, the capaacity of this re
esource
pool would be also teen). Refer to step
(1.5)
Homme defined Path ac
cross nodes
s (It definess the home of
o resources as a
by: number of o nodes on a path speciffied in
the next field)
f
Hom
me path: PlineLocation
Figure 5-6
6: Properties
s View for “Pline”
“ Reso
ource Pool
44
3.4) To add the defined resources in
nto the netwo
ork, the portts of NetworrkResourcePool
obje
ects are conn
nected with th
he port of the
e Network object
o as sho
own in figure (5-7).
Figure 5-7
7: Sub-stage
e (1): Definition of Resource Pools
After finishing th
he definition of resource
e pools, the next steps will
w demonstrate constructing
the flowchart de
escribing the
e process. The final com
mplete flowch
hart is show
wn in figure ((5-8).
The following ste
eps will show
w the modific
cations done
e in each elem
ment of the flowchart
f and
d the
grou
up of objects that represe
ent each activvity will be sh
hown later in
n separate fig
gures.
Fig
gure 5-8: Complete Flow
wchart of Mo
odel
Sub
b-stage (2):: Creating Entities
E
45
4.1) The flowchart starts with Source object drawn from the Enterprise palette. This object
generates entities. It is usually a starting point of a process model. Entities generated will be
of the subclass Station. The subclass created in the second stage was modified from the
super class Entity by adding various attributes in order to utilize them in the model. After
dragging the object into the graphical editor, the following properties are assigned to it.
Arrival rate: 1
Entities per arrival: 10
Limited number of Checked
arrivals:
Max. number of 1
arrivals:
New entity: new Station()
4.2) The next object NetworkEnter is drawn next to Source object and a connector is
drawn between Source object’s only port and the left port of NetworkEnter object. In this
object, each generated entity’s attributes would be assigned with a value. These values are
stored in a number of arrays that would be listed in the next step. This process is done
through a Java code written in the On enter field of the object. As each entity enters the
object, it is assigned with one value from each array that corresponds to its order of entry i.e.
the first entity takes the first value of each array and the second entity takes the second value
and so on. The following properties are assigned to NetworkEnter:
46
//
weldProp1=stationProps5[i];
if( entity instanceof Station ) ((Station)entity).WeldPriority =
weldProp1;
weldProp2=stationProps6[i];
if( entity instanceof Station ) ((Station)entity).WelderNo =
weldProp2;
//
coatProp1=stationProps7[i];
if( entity instanceof Station ) ((Station)entity).CoatPriority =
coatProp1;
//
excvProp1=stationProps8[i];
if( entity instanceof Station ) ((Station)entity).Excvdiff =
excvProp1;
excvProp2=stationProps9[i];
if( entity instanceof Station ) ((Station)entity).ExcvPriority =
excvProp2;
excvProp3=stationProps10[i];
if( entity instanceof Station ) ((Station)entity).ExcvNo =
excvProp3;
//
lwrProp1=stationProps11[i];
if( entity instanceof Station ) ((Station)entity).LwrPriority =
lwrProp1;
//
bckflProp1=stationProps12[i];
if( entity instanceof Station ) ((Station)entity).BckflPriority =
bckflProp1;
bckflProp2=stationProps13[i];
if( entity instanceof Station ) ((Station)entity).BldzrNo =
bckflProp2;
//
hdrtstProp1=stationProps14[i];
if( entity instanceof Station ) ((Station)entity).HdrtstPriority =
hdrtstProp1;
j++;
4.3) The arrays used in the previous step are plain variables where ten values are stored
in each one. The Plain Variable object is drawn from the General palette into the graphical
editor. Fourteen objects (stationProps1 to stationProps14) will be created and
modified as shown in the following table:
Name: stationProps1
Plain Type: Other: int[] Array for
Variable 1 StrngPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps2
Plain Type: Other: int[] Array for
Variable 2 TruckNo
new
Initial Value:
int[]{2,2,1,2,1,1,1,2,2,1}
Plain Name: stationProps3 Array for
47
Variable 3 Type: Other: int[] BendPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps4
Plain Type: Other: int[] Array for
Variable 4 BendNo
new
Initial Value:
int[]{1,2,1,2,2,3,2,0,1,2}
Name: stationProps5
Plain Type: Other: int[] Array for
Variable 5 WeldPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps6
Plain Type: Other: int[] Array for
Variable 6
new WelderNo
Initial Value:
int[]{2,2,1,2,1,1,1,2,2,1}
Name: stationProps7
Plain Type: Other: int[] Array for
Variable 7 CoatPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps8
Plain Type: Other: int[] Array for
Variable 8 Excvdiff
new
Initial Value:
int[]{1,2,1,2,2,3,2,1,1,2}
Name: stationProps9
Plain Type: Other: int[] Array for
Variable 9 ExcvPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps10
Plain Type: Other: int[] Array for
Variable 10 ExcvNo
new
Initial Value:
int[]{2,2,1,2,1,1,1,2,2,1}
Name: stationProps11
Plain Type: Other: int[] Array for
Variable 11 LwrPriority
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
Name: stationProps12
Plain Type: Other: int[] Array for
Variable 12 BckflPriority
new
Initial Value:
int[]{2,2,1,2,1,1,1,2,2,1}
Name: stationProps13
Plain Type: Other: int[] Array for
Variable 13 BldzrNo
new
Initial Value:
int[]{2,2,1,2,1,1,1,2,2,1}
Plain Name: stationProps14 Array for
Variable 14 Type: Other: int[] HdrtstPriority
48
new
Initial Value:
int[]{1,2,3,4,5,6,7,8,9,10}
4.4) The next object NetworkSeize is drawn from the Enterprise palette next to
NetworkEnter object and a connector is drawn between its right port and the left port of
NetworkSeize object. NetworkSeize object is used to seize a given set of network resources
and optionally attaches them to the entity. It is considered as a queue for the entities waiting
for the required resources. As explained earlier, assigning resources to the entities follows
either the “First In, First Out” (FIFO) rule or based on priorities of request which depend on
the entities. This object would be used many times in the model to seize different sets of
resources depending on the activity performed. The first usage of NetworkSeize object would
be to seize a station for each entity. The following properties are assigned to it:
Name: SeizePline
4.5) The next object is NetworkMoveTo drawn from the Enterprise palette next to
NetworkSeize object and a connector is drawn between NetworkSeize object’s right port
and the left port of NetworkMoveTo object. This object is used to move the entity from its
current location in the network to a new location. The new location is identified either directly
as a node in the network or as the location of a certain seized resource. The first
NetworkMoveTo object in the model will move the entities from their home node
entitySource to the seized resource Pline which is the stations’ location on the network
i.e. each entity would move to its station. This step is not a real activity but rather a dummy
step to distribute the entities, which are the stations, on the pipeline path. The properties of
the object would be modified as follows:
Name: MoveToPline
49
entitty or calculated based on the entity properties and
a external conditions. One
O of three
e exit
portss set in the Queue obje
ect is used by
b entities to
o exit. The default
d port is out port which
w
wou
uld be used iff the next ob
bject allows for
f it. The se
econd port ou
utPreempte
ed would be used
in a priority-bas
sed queue. In a priority queue any incoming entity is alwa
ays accepted
d, its
ed and the entity is place
priorrity evaluate ed at the corresponding position in the
t queue. If the
queu
ue is full, the
e new entity may then ca
ause the lastt entity to be
e thrown out of the queue via
outP
Preempted port.
p If an en
ntity is assocciated with a maximum waiting
w time, it will exit via
a the
third
d port outTim e used if the maximum waiting time is
meout will be s reached.
The current queue is used to
o stop all the
e entities tha
at exit from NetworkMov
N veTo object when
w
theyy reach theirr station from
m proceeding
g to the nextt phase of th
he model un
ntil the last entity
e
reacches its statio
on. The obje
ective of this step is to givve all the entities the sam
me arrival tim
me in
the next object. This way the
ey all have the
t same cha
ance in seizing the resou
urces neede
ed for
the first
f activity depending
d only on their priority.
p In orrder for the queue
q to hold
d the entities until
theyy all arrive, th y another objject which iss Hold. The Hold object acts
he Queue iss followed by
as a gate that can block the
e flow along a particular path. It will be
b closed un
ntil the numb
ber of
entitties inside th at precedes it reaches 10
he queue tha 0. Then, it will ed through a java
w be opene
code
e written in th
he Queue ob
bject propertties window as
a follows:
Name: queu
ue he default na
(th ame)
Entity class:
c Ent
tity
Capacitty: 100 (any value abo
ove 10)
On ente
er: if (count1=
==10) (a code that op
pens Hold object
h
hold.setB
Blocked(false) whhen number of entities
reaches 10)
The properties of
o the Hold object
o are to be
b as followss:
Name: hold (the defa
ault name)
Entity class:
c Entity
Initially blocked: checked
The above step
ps would sum
m up the firrst stage of the model. In this stage, entities which
w
reprresent the pipeline statio
ons are crea
ated and asssigned to th
heir physicall location on
n the
netw
work, which represents
r th
he layout of the
t pipeline construction site. The layyout of objeccts in
grap
phical editor will
w be as shown in Figurre (5-8).
50
Sub-stage (3): Modeling of “Pipe Stringing” Activity
This sub-stage of the model will represent the first activity of pipeline construction, Pipe
Stringing, starting from seizing the pipe trucks to pick up the pipes from the pipe yard and
sending them to the corresponding station until the side booms unload them from the trucks
along the pipeline path.
5.1) The first object to be drawn from the Enterprise palette next to Hold object is
NetworkSeize and is named “SeizePipes”. This object allows each entity to seize number of
resource units, e.g. 10, from resource pool “Pipe” along with a “Side boom” resource. All the
NetworkSeize objects from now on will be priority based. The entity’s priority was assigned to
it in step (3.6) as a number from 1 to 10. As each entity enters “SeizePipes” object, it shall
wait for its turn to acquire all the resources, whenever they are available, based on its priority
e.g. if the entity with priority equal to 8 arrives first to the “SeizePipes” object, it shall remain in
the queue waiting for the entities with priority equal to 10 and 9 to arrive and seize the needed
resources before it is allowed to seize its resources, if they are still available. “SeizePipes”
object’s properties are modified as follows:
Name: SeizePipes
51
Name: SeizeTrk
Name: SendToPipeYard
52
NetworkResourcePool[] { Truck, Truck }
Destination is: Seized resource unit (The option selected to identify the
destination as the current location of
a certain seized resource)
Resource: Pipe (The seized resource whose location
is specified to send the resources to)
5.4) The next object is also a NetworkSendTo object. It is called “SendToSite”. It is used
to send all the seized resources to their entity i.e. one or two trucks, one or two pipes and a
side boom. “SendToSite” object’s properties are modified as follows:
Name: SendToSite
5.5) The next object in the model is Delay. It is drawn from the Enterprise palette next to
“SendToSite” object. This object delays entities for a given amount of time. The delay time is
may be stochastic and may depend on the entity as well as on any other conditions. Multiple
entities, depending on the Delay’s capacity, can be delayed simultaneously and
independently. Delay objects are used in this model to represent the actual time spent in
executing the activity after all the resources are gathered together in the pipeline station. The
current object, called “PipeStringing”, would represent the time of execution of pipes stringing
activity. “PipeStringing” object’s properties are modified as follows:
Name: PipeStringing
5.6) The next object to be added to the model from the Enterprise palette next to
“PipeStringing” object is NetworkRelease. This object is used to Releases all or some
network resources previously seized by the entity. If a moving resource is released, there are
53
two options; it either returns to its home location or to stays where it is. However, after the
resource is released, the network checks if the released resources have been requested by
other entities and, if yes, the moving resource will be seized and not go to its home location
regardless of the chosen option. A portable resource after its release will stay at its current
location. If it needs to be returned to its home location, it should be moved either with the
entity or with a seized moving resource. The current object “ReleasePipes” is used to release
the seized one or two pipes, depending on number of trucks used for the entity, in the
station’s location in the network. “ReleasePipes” object’s properties are modified as follows:
Name: ReleasePipes
Entity
Entity
class:
(The option selected to specify that only the
Release Specified resources
selected resources would be released)
List of Resources: (The following code is used to release the seized pipes
whether they are one or two)
((Station)entity).TruckNo == 1 ? new
NetworkResourcePool[] { Pipe } : new
NetworkResourcePool[] { Pipe,Pipe }
Moving Stay where they are (The option selected to specify where the
resources:
released moving resources, if any, should go)
5.7) The next object in the model is SelectOutput.This object helps in routing the
incoming entities to one of two output ports depending on probabilistic or deterministic
condition. The condition may depend on the entity as well as on any external factors. The two
output ports are OutTrue and OutFalse and as each entity enters the object, according to its
compliance to the condition, exits from one output port in zero time. The current object is used
to decide whether the trucks should go back to the pipe yard to transport another batch of
pipes to the station or not. The condition put in the object depends on each entity’s property
PipeNo which was set to 1 or 2 in step (3.12). A java code is executed when the entity exits
through the OutFalse port to accumulate the number of delivered pipes in the entity’s
property PipeNo. The properties of the object are modified as follows:
((Station)entity).PipeNo=((Station)entity).PipeNo+(((
Station)entity).TruckNo*1)
54
5.8) As for the OutFalse port of the SelectOutput added previously, the next object is a
NetworkSendTo object called “SendToPipeYard1”. Similar to the object “SendToPipeYard”
added in step (3.13), this object is used to return the trucks to the pipe yard to get another
batch of pipes and transport them to site. Its properties are as follows:
Name: SendToPipeYard1
Resources to send: (The following code is used to send the seized trucks
whether they are one or two trucks)
((Station)entity).TruckNo == 1 ? new
NetworkResourcePool[] { Truck } : new
NetworkResourcePool[] { Truck, Truck }
Destination is: Seized resource unit (The option selected to identify the
destination as the current location of a
certain seized resource)
Resource: Pipe (The seized resource whose location is
specified to send the resources to)
Name: SendToSite1
Resources to send: (The following code is used to send the seized trucks
whether they are one or two trucks)
((Station)entity).TruckNo == 1 ? new
NetworkResourcePool[] { Truck,Pipe } : new
NetworkResourcePool[] { Truck,Truck,Pipe,Pipe }
5.10) The entity shall pass through the objects “PipeStringing”, “ReleasePipes”, then the
OutFalse port of SelectOutput, then “SendToPipeYard1” and finally “SendToSite1” for as
many cycles as needed to fulfill the condition in SelectOutput object i.e. the number of pipes
delivered to a certain station (entity) reaches ten pipes. In that case, the entity shall pass
through OutTrue port. The next object, that the entity enters is a NetworkRelease object
called “ReleaseTrk”. This object is connected to the OutTrue port; it is used to release the
seized trucks to be sent to the base camp or seized by the entity next in the queue at
“SeizeTrk” object in step (3.12). “ReleaseTrk” object’s properties are modified as follows:
Name: ReleaseTrk
55
(The opption selected
d to specify that
t
Release
e: Speciffied resource
es only the
e selected ressources wou uld be
releasedd)
List of Resources:
R (The fo
ollowing codee is used to release
r the seized
s truckss
whetheer they are one or two)
((S
Station)e
entity).T
TruckNo == 1 ? new
w
Net
tworkReso
ourcePool uck } : new
l[] { Tru
Net
tworkReso
ourcePool uck, Truck }
l[] { Tru
Moving Return
n to home lo
ocation (Thee option sele
ected to spec
cify where the
ces:
resourc rele
eased moving g resources, if any, should go)
5.11
1) The lastt object in the
e “Pipe Strin
nging” activityy is another NetworkRellease object. It is
calle
ed “ReleaseS
Sdboom1”. It releases th
he seized side booms and
a let them stay where they
are w
waiting for th
he next entityy to seize the
em. The obje
ect’s properties are modiffied as follow
ws:
Name: Rele
easeSdboom
m1
e:
Release Spe
ecified resourrces (The option seleccted to specify that only tthe
seleccted resource
es would be released)
List of {Si
ideboom} (The
e name for thhe resource pool
p of side
Resourc ces: boomms)
Figu
ure 5-10: Su
ub-stage (3) - Pipe Stringing
Sub
b-stage (4):: Modeling of “Pipe Bending”
B an
nd “Weldin
ng” Activitiies
Thiss sub-stage of
o the model represents the
t second and
a third activities of the project; theyy are
Pipe
e Bending and
a Pipe We
elding. Both activities fo
ollow the sa
ame sequence of objects to
simu
ulate them.
6.1) The firstt object in this stage is Queue object “queue1”. This object is used to store
e the
entitties with lower priority in “Pipe g”
Bending activityy i.e. have
((S entity).BendPriority less th
Station)e han 10 ,if th
hey passed through
t prevvious
obje
ects, before they enter the next NetworkSeize
e object in order to lett the entity with
Ben ty = 10 have the priorityy to seize the
ndPriorit e needed ressources first. Entities ente
ering
“que
eue1” objectt are arrang
ged based on d object will be placed after
o their priority. A Hold
“que
eue1” to blocck the flow until
u the entitty with highe
est priority arrrives. The condition
c to open
o
Hold
d Object is placed in “queue1”.
“ As
s each entitty enters “queue1” obje
ect, its prioriity is
56
compared with a plain variable named “hold1Limit” which has an initial value of 10. If this
entity has any priority less than 10, it exits from outTimeout port and return to input port of
the Queue. Otherwise, the Hold object opens to pass this entity then closes again and
“hold1Limit” value decreases by one. Then, the entity with priority equal to 9 takes its turn in
this process and so on. This process is executed via a Java code put in “queue1”. Its
properties are modified as follows:
Name: queue1
Capacity: 100 (any value above 10)
On at exit: if (a code that opens hold1
(((Station)entity).BendPriorit object when the entity with
y == hold1Limit) priority equals hold1Limit)
hold1.setBlocked(false)
6.2) The next object added to the model is a NetworkSeize object named “SeizeBndr”. It
is used to seize a side boom and a pipe bending machine. Its properties are as follows:
Name: SeizeBndr
List of {Pipebender,Sideboom} (The name for the resource pools
Resources: of side booms and pipe bending
machines)
Enable Checked (An option that specifies the queue
Preemption: as priority based)
Destination Entity
is:
57
6.3) After “SeizeBndr” object, a Delay object named “PipeBending” is added to the model.
This object represents the time of execution of Pipe bending. The time depends on the
topography of the pipeline station which is reflected in the number of pipe bends needed in
each station. Therefore, the delay time is a function of entity’s property called BendNo.
“PipeBending” object’s properties are as follows:
Name: PipeBending
Name: ReleaseBndr
Release: Specified resources (The option selected to specify that
only the selected resources would be
released)
List of {Pipebender,Sideboom} (The name for the resource pools of
Resources: side booms and pipe bending
machines)
Moving Stay where they are (The option selected to specify where
resources the released moving resources, if any,
should go)
6.5) Pipe Welding activity are modeled in the same sequence of objects used for Pipe
Bending activity (steps (3.22) to (3.25)). The entities shall pass through Queue object
“queue2”, followed by Hold object “hold2” and two NetworkSeize objects “SeizeWldr” and
“SeizeSdboom1”, then, a Delay object “PipeWelding” and finally two NetworkRelease
objects “ReleaseWldr” and “ReleaseSdboom2”. “queue2” object’s properties are as follows:
Name: queue2
Capacity: 100 (any value above 10)
58
Entity Priority: ((Station)entity).We (The entity’s property on which the
ldPriority priority of queue is based)
Name: hold2
(The value of “hold2Limit” is decreased
On enter: Hold2Limit--;
by 1 as an entity enters)
Initially blocked: checked
Name: SeizeWldr
List of Resources: (The following code is used to decide whether to seize one or
two welders for the entity)
((Station)entity).WelderNo == 1 ? new NetworkResourcePool[]
{ Welder } : new NetworkResourcePool[] { Welder, Welder }
Name: SeizeSdboom1
List of Resources: (The following code is used to decide whether to seize
one or two side booms for the entity)
((Station)entity).WelderNo == 1 ? new NetworkResourcePool[] {
Sideboom } : new NetworkResourcePool[] { Sideboom, Sideboom }
On exit: (The following code is executed as every entity exits the object. it is used
to count the number of welded pipes depending on number of welders)
if (((Station)entity).WelderNo == 1)
((Station)entity).WeldPipeNo = 1;
else
((Station)entity).WeldPipeNo = 2
Send seized Checked (An option that sends the seized resources
resources: to a given destination)
59
Name: PipeWelding
Specified expllicitly
Delay time is
triangular
r(42, 50,
, 60 ) (The durration of the activity
a in
Delay time: /((Station
n)entity)
).WeldPip
p hours tak kes a triangu
ular
No
eN distributio
on function)
Name: Rele
easeWldr
e:
Release Spe
ecified resourrces ((The option selected
s to specify that only
t selected resources would
the w be
r
released)
List of (The
e following code
c is used to decide whhether to rele
ease one or ttwo
Resourc ces: weld
ders)
((Stat
tion)enti
ity).Weld
derNo == 1 ? new
Networ
rkResourc
cePool[] { Welder
r } : new
w
Networ
rkResourc
cePool[] { Welder
r, Welder
r }
Name: Rele
easeSdboom
m2
e:
Release Spe
ecified resourrces (Thhe option sellected to spe
ecify that onlyy the selecte
ed
ressources would be release ed)
List of {Si
ideboom} (Thhe name for the resource e pool of side
e booms)
Resourc ces:
By adding
a this last
l object, this
t sub-stag
ge of the mo
odel is finish
hed and wou
uld appear in
n the
grap
phical editor as shown in figure (5-10))
Figu
ure 5-11: Su
ub-stage (4) - Pipe Bend
ding and We
elding Activ
vities
60
Sub-stage (5): Modeling of “Weld Inspection” and “Weld Repair” Activities
This sub-stage of the model contains the sequence of objects that simulate the fourth and fifth
activities of the project. These are Weld Inspection and Weld Repair. As weld inspection for
the pipes of a certain station relies on finishing the welding activity for this station, any station,
where welding activity is finished and regardless of its WeldPriority, shall seize
“Inspector” resource first i.e. it will be “First In, First Out” (FIFO) based. However, if two
entities requested the “Inspector” resource in the same time, WeldPriority of both
entities will decides which gets it. This method will also be applied for “Weld Repair” activity.
7.1) The first object in this stage is a NetworkSeize object called “SeizeInspctr”. It is used
to seize an inspector and sends him to the entity (station). Its properties are modified as
follows:
Name: SeizeInspctr
List of {Inspector} (The name for the resource
Resources: pool of inspectors)
Enable Checked (An option that specifies the
Preemption: queue as priority based)
7.2) The following object is “WeldInspecting” Delay object. It simulates the time taken to
inspect the welded joints within one station. Its properties are as follows:
Name: WeldInspecting
Specified explicitly
Delay time is
7.3) The Delay object is followed by SelectOutput object. Object is used to route the
entities to one of two paths. The condition for this object is a probability condition. This
means that passing entities shall exit through OutTrue or OutFalse output ports relies on a
certain probability. In the current object, the probability condition equals 90% which is the
average percent for welded joints passing the inspection successfully. Its properties are set
as follows:
Name: SelectOutput1
Select True With specified probability (The option selected to specify the
output: condition used)
61
0.9
Condition
Name: ReleaseInspctr
Release: Specified resources (The option selected to specify that only the selected
resources would be released)
List of { Inspector } (The name for the resource pool of inspectors)
Resources:
Moving Return to home location (The option selected to specify where the released
resources moving resources, if any, should go)
7.5) The stations, that do not pass the inspection, require welders to repair the welded
joints and an inspector to re-inspect the repaired welds. Thus, the OutFalse output port of
“SelectOutput1” object is connected to a NetworkRelease object named “ReleaseInspctr1”
Its properties are similar to “ReleaseInspctr” object created in the previous step. After that, a
NetworkSeize object is placed. It is used to seize a side boom and a welder to work on “Weld
Repairing”. Its properties is modified as follows:
Name: SeizeWldrSdboom
List of {Sideboom,Welder} (The name for the resource pool of
Resources: side booms and welders)
Enable Checked (An option that specifies the queue as
Preemption: priority based)
Destination Entity
is:
7.6) After seizing the required resources, the entities shall pass through a Delay object
named “WeldingRpr”. The delay time of this object takes a triangular distribution. Its
properties are:
Name: WeldRpr
Specified explicitly
Delay time is
62
Name: ReleaseWldr1
Release: Specified resources (The option selected to specify that only the
selected resources would be released)
List of {Welder} (The name for the resource pool of welders)
Resources:
Name: ReleaseSdboom3
Release: Specified resources (The option selected to specify that only the
selected resources would be released)
List of {Sideboom} (The name for the resource pool of side
Resources: booms)
Moving Stay where they are (The option selected to specify where the
resources released moving resources, if any, should
go)
7.8) Each entity need to seize the inspector once more to repeat the inspection for
repaired welded joints. This needs adding “SeizeInspctr1” and “WeldInspecting1” objects to
the sequence similar to those in steps (3.27) and (3.28). however, for “WeldInspecting1”
object, the delay time would be as follows:
Name: WeldInspecting1
Specified explicitly
Delay time is
7.9) The last object in this stage is “SelectOutput2” object. This object represents the
probability of passing the inspection for the repaired joints. The OutFalse port shall be
connected back with input port of “ReleaseInspctr1” (see step (3.31)) to repeat the process of
weld repair. On the other hand, the OutTrue port is connected to “ReleaseInspctr” added in
step (3.30) i.e. entities exiting through it shall proceed to the next stage. The probability used
in “SelectOutput2” is as follows:
Name: SelectOutput2
Select True (The option selected to specify the
With specified probability
output: condition used)
Condition 0.9
The sequence of objects in this sub-stage is shown in figure (5.11).
63
Figu
ure 5-12: Sub-stage (5) - Weld Inspe
ection and Repair
R Activ
vities
Sub
b-stage (6):: Modeling of “Joints Coating”, “Excavatio
on” and “P
Pipe
Lowerring” Activities
Name: eue3
que
Capacitty: 100
0 any value above
(a
10
0)
On at ex
xit: if (((Station
n)entity).CoatPri
iority (aa code that opens
o
== ho
old3Limit
t) “h hold3” objectt
ho
old3.setB
Blocked(f
false) w
when the entitty
w priority eq
with quals
“hhold3Limit”)
On exit:: hold3
3.setBloc
cked(true
e) (a
a code that closes
c “hold3
3”
affter the entityy exits)
Enable exit on Checked (It allows
s the entity to
o exit through
h
timeoutt: OutTime eout port)
Timeout: 1 (The max ximum waitin ng time beforre
the entityy exits from OutTimeout
O t port)
64
Enable Checked (An option that specifies the queue as
Preemption: priority based)
Entity Priority: ((Station)entity). (The entity’s property on which the
CoatPriority priority of queue is based)
Name: hold3
(The value of “hold3Limit” is
On enter: hold3Limit--;
decreased by 1 as an entity enters)
Initially blocked: checked
Name: SeizeCoating
List of {CoatingTeam} (The name for the resource pool
Resources: of coating teams)
Destination Entity
is:
Name: Coating
Specified explicitly
Delay time is
8.2) In the second activity, Pipeline Trench Excavation, the same sequence of objects is
followed. The entities (stations) are held in a priority based Queue “queue4” based on their
ExcvPriority value. The Hold object “hold4” remains closed until the entity with
ExcvPriority value equal to 10 arrives to the queue. Only then, the Hold object will
open for this entity to pass and closes again waiting for the entity with ExcvPriority
value equal to 9 to arrive to the queue and so on (see step (3.22)). The entity, which passes
through the “hold4”, enters “SeizeExcvtr” NetworkSeize object and seizes one or two units of
“Excavator” Resource based on the entity’s property ExcvNo and sends the resource to the
station’s location. Once the resource arrives to its station, the entity exits “SeizeExcvtr” object
65
and enters the Delay object “Excavation” to spend the time of execution of the activity. The
delay time has a triangular distribution and is a function in the number of seized excavators
along with another property of the entity which is Excvdiff. This property stands for the soil
type of each station which may vary from loose sand to hard clay. Therefore, Excvdiff
value will increase as the hardness of soil increases to affect the excavation duration. Finally,
the entity releases the “Excavator” Resource at “ReleaseExcvtr” NetworkRelease object and
sends it to its home location or a new station. The properties of these objects are as follows:
Name: queue4
Capacity: 100 (any value above 10)
On at exit: if (a code that opens
(((Station)entity).ExcvPriority “hold4” object when
== hold4Limit) the entity with priority
hold4.setBlocked(false) equals “hold4Limit”)
Name: hold4
(The value of “hold4Limit” is
On enter: Hold4Limit--;
decreased by 1 as an entity enters)
checked
Initially blocked:
Name: SeizeExcvtr
List of Resources: (The following code is used to decide whether to seize one
or two excavators)
66
Destination Entity
is:
Name: Excavation
Specified explicitly
Delay time is
Moving Stay where they are (The option selected to specify where the
resources released moving resources, if any, should go)
8.3) The third activity that follows the same sequence of objects is Lowering of Pipes. The
entities (stations) are held in a priority based Queue “queue5” based on their LwrPriority
value. The Hold object “hold5” remains closed until the entity with LwrPriority value
equal to 10 arrives to the queue. Only then, the Hold object will open for this entity to pass
and closes again waiting for the entity with LwrPriority value equal to 9 to arrive to the
queue and so on (see step (3.22)). The entity, which passes through the “hold5”, enters
“SeizeSdboom” NetworkSeize object and seizes five units of “Sideboom” Resource and
sends the resource to the station’s location. Once the resource arrives to its station, the entity
exits “SeizeSdboom” object and enters the Delay object “PipeLowering” to spend the time of
execution of the activity. Finally, the entity releases the “Sideboom” Resource at
“ReleaseSdboom4” NetworkRelease object and sends it to its home location or a new
station. The properties of these objects are as follows:
Name: queue5
Capacity: 100 (any value above 10)
On at exit: if (a code that opens
(((Station)entity).LwrPriority “hold5” object when the
== hold5Limit) entity with priority equals
hold5.setBlocked(false) “hold5Limit”)
67
Enable Checked (An option that specifies the queue as
Preemption: priority based)
Entity Priority: ((Station)entity). (The entity’s property on which the
LwrPriority priority of queue is based)
Name: hold5
(The value of “hold5Limit” is
On enter: hold5Limit--;
decreased by 1 as an entity enters)
checked
Initially blocked:
Name: SeizeSdboom
List of {Sideboom,Sideboom,Side (The name for the resource
Resources: boom,Sideboom,Sideboom} pool of side booms)
Destination Entity
is:
Name: PipeLowering
Specified explicitly
Delay time is
68
F
Figure 5-13: Sub-stage (6) - Joints Coating,
C Treench Excava
ation and Pipe Lowerin
ng
Activities
Sub
b-stage (7):: Modeling of “Joint Welding”
W a
and “Weld Inspection
I ” Activities
s
Name: Se
eizeWldrSdbo
oom1
List of {S
Sideboom,Welder} (The name for the resource pool of
o
Resourc ces: ms and welde
side boom ers)
Enable Ch
hecked (An optionn that specifies the queue
e as
Preempption: priority ba
ased)
Entity (Station)entity).
(( (The entityy’s property on which the
e
priority: eldPriority
We priority of queue is bassed)
Send se
eized Ch
hecked n that sends the seized
(An option
resourc
ces: resourcess to a given destination)
d
Destina
ation Entity
is:
Name: PipeWelding1
69
Specified explicitly
Delay time is
Name: ReleaseWldr2
Release: Specified resources (The option selected to specify that only
the selected resources would be
released)
List of {Welder} (The name for the resource pool of
Resources: welders)
Moving Return to home location (The option selected to specify where the
resources released moving resources, if any, should
go)
Name: ReleaseSdboom5
Release: Specified resources (The option selected to specify that only
the selected resources would be
released)
List of {Sideboom} (The name for the resource pool of side
Resources: booms)
Moving Stay where they are (The option selected to specify where the
resources released moving resources, if any, should
go)
The second activity, Weld Inspection, follows the same sequence of objects. Each entity shall
enter a NetworkSeize object “SeizeInspctr2” to seize an “Inspector” resource. When he
arrives to the station location, the entity enters the Delay object “WeldInspecting2” as its
delay time represents the duration of inspection activity. Finally, the entity releases the seized
resource and sends it to its home location via NetworkRelease object “ReleaseInspctr2”.
Figure (5-13) shows the sequence of objects of this stage. The properties of these objects are
as follows:
Name: SeizeInspctr2
List of {Inspector} (The name for the resource pool of
Resources: inspectors)
Destination Entity
is:
Name: WeldInspecting2
70
Delay time is Specified expllicitly
Delay time: triangular
r(1.5, (The duration of the activity
a in hours
1.67, 1.9 ) takes a triangular dis
stribution funcction)
Name: Rele
easeInspctr2
2
Release
e: Spe
ecified resourrces (The optiion selected to specify th
hat
only the selected resources would d be
released)
List of {In
nspector}
} (The nam source pool of
me for the res
Resourc ces: welders)
Figure 5-14:
5 Sub-stage (7) – Jo
oint Welding
g and Weld Inspection Activities
A
Sub
b-stage (8):: Modeling of “Trench
h Backfillin
ng” and “Hydro-testin
ng” Activitiies
n a priority based
For the first actiivity, Trench Backfilling, the entities (stations) wiill be held in
Que
eue “queue6” based on ttheir BckflPriority value. The Hold objectt “hold6” rem
mains
closed until the entity with BckflPrio
B ority value equal to 10 arrives to the queue. Only
n, the Hold object
then o will op
pen for this entity
e to passs and closes again waitting for the entity
e
with BckflPri
iority vallue equal to 9 to arrive to
o the queue and so on (see
( step (3.22)).
The entity, whicch passes th
hrough “hold
d6”, enters “SeizeBulldz
“ r” NetworkS
Seize objectt and
seizzes one or tw
wo units of “B
Bulldozer” re
esource base
ed on the entity’s propertty BldzrNo
o and
send
ds the resource to the sta
ation’s locatiion. Once the
e resource arrives
a to its station,
s the entity
e
exitss “SeizeBulld
dzr” object and enters the Delay object
o “Backkfilling” to sp
pend the tim
me of
execcution of the
t activity. Finally, th
he entity releases
r the
e “Bulldozer” Resource
e at
“RelleaseBulldzr”” NetworkRe
elease objec
ct and sendss it to its hom
me location or
o a new sta
ation.
The properties of
o these objeccts are as follows:
71
Name: queue6
Capacity: 100 (any value above 10)
Name: hold6
(The value of “hold6Limit” is
On enter: hold6Limit--;
decreased by 1 as an entity enters)
Initially blocked: checked
Name: SeizeBulldzr
List of Resources: (The following code is used to decide whether to seize one
or two bulldozers)
((Station)entity).BldzrNo == 1 ? new
NetworkResourcePool[] { Bulldozer } : new
NetworkResourcePool[] { Bulldozer, Bulldozer }
Enable Checked (An option that specifies the queue as
Preemption: priority based)
Destination Entity
is:
Name: Backfilling
Specified explicitly
Delay time is
72
Release: Specified resources (The option selected to specify that only the
selected resources would be released)
List of Resources: (The following code is used to decide whether to release
one or two bulldozers)
((Station)entity).BldzrNo == 1 ? new
NetworkResourcePool[] { Bulldozer } : new
NetworkResourcePool[] { Bulldozer, Bulldozer }
Moving Stay where they are (The option selected to specify where the
resources: released moving resources, if any, should
go)
In the second activity, Hydro testing of Pipeline, the same sequence of objects is followed.
The entities (stations) are held in a priority based Queue “queue7” based on their
HdrtstPriority value. The Hold object “hold7” remains closed until the entity with
HdrtstPriority value equal to 10 arrives to the queue. Only then, the Hold object will
open for this entity to pass and closes again waiting for the entity with HdrtstPriority
value equal to 9 to arrive to the queue and so on (see step (3.22)). The entity, which passes
through “hold7”, enters “SeizeHydtest” NetworkSeize object and seizes a “Hydro-testing
team” Resource, if available, and sends the resource to the station’s location. Once the
resource arrives to its station, the entity exits “SeizeHydtest” object and enters the Delay
object “HydroTesting” to spend the time of execution of the activity. Finally, the entity releases
the “Hydro-testing team” Resource at “ReleaseHydtest” NetworkRelease object and sends
it to its home location or a new station. In addition, the variable time2 stores the time at
which the entity with the lowest priority i.e. (1) enters the “ReleaseHydtest” object. This
variable along with time1 variable in step (3.12) will be used to calculate the total time of the
construction process. The properties of these objects are as follows:
Name: queue7
Capacity: 100 (any value above 10)
73
Name: hold7
(The value of “hold7Limit” is
On enter: hold7Limit--;
decreased by 1 as an entity enters)
checked
Initially blocked:
Name: SeizeHydtest
List of {HydTestTeam} (The name for the resource pool of
Resources: hydro-testing teams)
Destination Entity
is:
Name: HydroTesting
Specified explicitly
Delay time is
On enter (The following code is executed as every entity enters the object. It
is used to store the time at which the entity with priority equal to 1
enters the object)
if (((Station)entity).HdrtstPriority == 1)
time2=time();
time=time2-time1;
As all the activities are finished in all stations, each entity must release any resources seized
by it. At this point, the only remaining seized resource is “Pline” resource, which was seized in
step (3.8). However, another option in the NetworkRelease object, called “ReleasePline”, is
used; this option is to release all seized resources whatever they are. As a result, the object’s
properties is modified as follows:
74
Name: Rele
easePline
e:
Release All seized
s
resoources (The option selecte
ed to release
e all resource
es)
In o
order to finaliize the simu
ulation proce
ess, two obje
ects must be
e added afte
er the last ob
bject.
The first object is NetworkExit. This obje
ect unregiste
ers the entity
y from the ne
etwork. The entity
e
will also no long
ger be anim
mated by the network. Th
he second object
o is Sin
nk. This obje
ect is
conssidered the end point off the model. It is used to
o dispose en
ntities. Both
h objects’ de
efault
prop d be used. Figure (5-14) shows
perties would s the se
equence of objects
o of the
e last stage.
5.3.4. Stage
e (4): Creating the “S
Simulation” experim
ment
5.4
4. Summ
mary and Conclusiion
In th
his chapter, the
t steps of constructing
g the simulattion model needed for th
his research were
w
pressented. Thesse steps’ pu
urpose was managing the
t positions
s and prope
erties of diffe
erent
obje
ects constitutting the mode
el, defining relationships
r between the
em and crea
ating an anim
mated
pressentation to the
t whole prrocess. Dealling with the simulation software
s “An
nyLogic” inclu
uded
interracting with graphic view
w as well as Java code lines. The re
esulting model could be used
75
individually to simulate a typical pipeline project, modify any number of variables and observe
the resulting change in project’s total duration.
76
CHAPTER 6
OPTIMIZATION MODEL
6.1. Introduction
In the previous chapter, the simulation model was created using various objects from the
enterprise library, introducing a number of Java code lines and creating a graphical network
that resembles the project’s landscape. The model employs Discrete Event Simulation to
simulate the activities of pipeline construction starting from pipe stringing all the way to Hydro-
testing of pipeline. It shows the real time sequence of events that the project would run
through to finish all activities for all stations using the needed resources, based on their
availability, and maintaining different relationships between the activities.
In this chapter, the final step of constructing the model is demonstrated. The optimal
schedule for the project and the number of resources utilized in each station for each activity
shall be obtained by an “Optimization Experiment”. An optimization experiment is one of many
experiments, available in AnyLogic, which can be done on the model. As stated previously, an
optimization experiment is the process of finding the best possible solution for a certain
problem by getting the optimal combination of conditions that affect the result.
AnyLogic optimization process is built using an optimization engine called OptQuest. The
OptQuest Engine automatically finds the best parameters of a model, with respect to certain
constraints. The optimization process consists of repetitive simulations of a model with
different parameters. Using sophisticated algorithms, the OptQuest Engine varies
controllable parameters from simulation to simulation to find the optimal parameters for
solving a problem. In addition, AnyLogic provides a convenient graphical user interface to set
up and control the optimization. The optimization experiment in AnyLogic relies on defining
several factors such as the objective function, which needs to be maximized or minimized, the
optimization parameters and the optimization constraints. The steps of defining these factors
will be demonstrated later.
In the final part of this chapter and after finishing the definition of the optimization
problem, a case study will be illustrated to show the applicability of the simulation model and
how much does it resemble the real process. The schedule generated for the construction of
South Valley (Ganoub Elwadi) Gas pipeline would be presented. This case study was used
primarily to assist in planning, testing and validating the model and its functions. This chapter
also presents three stages of model runs and evaluation of their results.
Constructing an optimization experiment is done using the same user interface used for
the simulation model (see figure (5-1)). However, unlike the simulation model, optimization
77
expe
eriment doessn’t need mu
uch effort on defining the different ele
ements it relie
es on. This iss the
resu
ult of AnyLog
gic employing
g an optimization engine
e. This engine has within it all the nee
eded
proccedures to ru
un the simulation numerrous times, while
w altering
g the values for a number of
para
ameters, until it reach the
e optimal so
olution for the
e objective fu
unction. Thu
us, the majorr part
of crreating the optimization
o e
experiment is
s done throu
ugh modifying
g its various properties in
n the
perties view. In the differrent tabs sho
prop own in figure
e (6-1) all the
e elements needed
n to define
the experiment. As for the graphical
g edittor, all the objects
o insertted in it would be to illusstrate
any sort of input used or ou
utput resultin
ng from the experiment such as graphs or chartts. In
addiition, some additions
a an
nd modificatio
ons will be done
d inside the main acctive object Main
M
whicch contains the model.
Figure 6-1:
6 Propertties View of Optimizatio
on Model
Crea
ating the exp
periment sha
all undergo fo
our main stag
ges:
1- Defining
g the objectivve function
2- Defining
g the optimiza
ation parame
eters
3- Defining
g the optimiza
ation constra
aints
4- Forming
g the graphical presentation for the exxperiment.
78
value off variable time which iss calculated in
i the model in step (3.42
2) of the prevvious
chapter. The propertties of this ob
bject are as follows:
f
Name: to
otalTime
Return type:
t do
ouble
Functio
on body return tim
me; (Thee code is used to get the value
v of time
e
(found in
i “Code” Tab):
T varia
able)
1.2) Returnin
ng to optimization window
w, the objective function i.e. minimize
e totalTime is set
in General page of th
he experiment’s propertie
es as shown in figure (6-2).
Figure
e 6-2: Settin
ng the Optim
mization Objjective
The second
d stage is to
t define the optimization parameters. The OptQuest En
ngine
searrches through possible va
alues of thes
se parameterrs to find the
e optimal para
ameters.
79
As illustrated in previous chapters, the optimization parameters for the model are the
sequence of work in pipeline stations for each activity and the number of utilized resources in
each station for each activity. The sequence for each activity was defined in step (3.7) in the
previous chapter as an array of ten values. Each entity as it enters the network has a value
assigned from each array to its corresponding entity’s property. Among these properties is the
entity’s priority to seize the resources needed for each activity. The default values for the
arrays of priorities of all activities are {1, 2, 3….… 9, 10} i.e. the first entity takes priority=1
and the second takes priority =2 and so on. In order to incorporate the arrays as optimization
parameters, each element of each array shall be a separate optimization parameter that takes
any value from 1 to 10. Accordingly, each array would be changed to {parameter1,
parameter2, paramater3……, parameter9, parameter10} where parameter1 ≠ parameter2 ≠
parameter3 ……. parameter9 ≠ parameter10. The resulting arrays after the optimization
process would be the optimum sequence. The arrays of number of resources used for each
activity such as number of trucks (TruckNo) and number of excavators (ExcvNo) will
also be optimization parameters. Each element of the array shall take a value between one
and the maximum number of units of the resource. The following steps to define the
optimization parameters would be undertaken in the same order for each array:
2.1) The Parameter object is drawn from the General palette into the graphical editor in
the main model. The object would be named strng1 and it represents the first element in
“stationProp1” array (see step (3.7) in chapter 5) which is used to assign entities’
StrngPriority. Strng1 indicate the priority assigned for first entity or station. the
following properties are assigned to it:
Name: strng1
Type: int (The parameter value shall be integer number)
Name: stationProps1
80
desiign type is ch
hosen. The range for the
e parameter is specified where the parameter’s
p lower
boun ed in the Min field and the parametter’s upper bound
nd is entere b e Max field. The
in the
para
ameter step value
v is speccified in the Step
S field. The values en e parameter is as
ntered for the
follo
ows:
Valu
ue
ameter
Para Type
Min Ma
ax Step
Sttrng1 design 1 100 1
2.5) Steps (2
2.1) & (2.2) are repeated
d to create the
t remaining optimizatio
on paramete
ers in
arrays “station
nProp2”, “sstationProp3””, “stationP
Prop5”, “sta
ationProp6”, “stationPro
op7”,
“stattionProp9”, “stationProp
p10”, “stationProp11”, “stationPro
op12”, “stationProp13” and
“stattionProp14”. They would contain the following opttimization pa
arameters:
81
Table 6-3: Properties of Arrays “stationProps2” to “stationProps14”
Name: stationProps2
Type: Other: int[]
Array for
new int[]
TruckNo
Initial {trucks1,trucks2,trucks3,trucks4,t
Value: rucks5,trucks6,trucks7,trucks8,tru
cks9,trucks10}
Name: stationProps3
Type: Other: int[] Array for
new int[] BendPriority
Initial
{bend1,bend2,bend3,bend4,bend5,ben
Value:
d6,bend7,bend8,bend9,bend10}
Name: stationProps5
Type: Other: int[] Array for
new int[] WeldPriority
Initial
{weld1,weld2,weld3,weld4,weld5,wel
Value:
d6,weld7,weld8,weld9,weld10}
Name: stationProps6
Type: Other: int[]
Array for
new int[]
WelderNo
Initial {welder1,welder2,welder3,welder4,w
Value: elder5,welder6,welder7,welder8,wel
der9,welder10}
Name: stationProps7
Type: Other: int[] Array for
new int[] CoatPriority
Initial
{coat1,coat2,coat3,coat4,coat5,coa
Value:
t6,coat7,coat8,coat9,coat10}
Name: stationProps9
Type: Other: int[] Array for
new int[] ExcvPriority
Initial
{excv1,excv2,excv3,excv4,excv5,exc
Value:
v6,excv7,excv8,excv9,excv10}
Name: stationProps10
Type: Other: int[]
new int[] Array for ExcvNo
Initial {excvtr1,excvtr2,excvtr3,excvtr4,e
Value: xcvtr5,excvtr6,excvtr7,excvtr8,exc
vtr9,excvtr10}
Name: stationProps11
Type: Other: int[] Array for
new int[] LwrPriority
Initial
{lwr1,lwr2,lwr3,lwr4,lwr5,lwr6,lwr
Value:
7,lwr8,lwr9,lwr10}
Name: stationProps12
82
Type: Other: int[]
Array for
new int[] BckflPriority
Initial {bckfl1,bckfl2,bckfl3,bckfl4,bckfl
Value: 5,bckfl6,bckfl7,bckfl8,bckfl9,bckf
l10}
Name: stationProps13
Type: Other: int[]
Array for
new int[]
BldzrNo
Initial {bldzr1,bldzr2,bldzr3,bldzr4,bldzr
Value: 5,bldzr6,bldzr7,bldzr8,bldzr9,bldz
r10}
Name: stationProps14
Type: Other: int[]
Array for
new int[]
HdrtstPriority
Initial {hdrtst1,hdrtst2,hdrtst3,hdrtst4,h
Value: drtst5,hdrtst6,hdrtst7,hdrtst8,hdr
tst9,hdrtst10}
2.6) Steps (2.3) & (2.4) are repeated to define the parameters’ type, range and step. They
will be as follows:
Value
Parameter Type
Min Max Step
trucks1 design 1 2 1
trucks2 design 1 2 1
trucks3 design 1 2 1
trucks4 design 1 2 1
trucks5 design 1 2 1
trucks6 design 1 2 1
trucks7 design 1 2 1
trucks8 design 1 2 1
trucks9 design 1 2 1
trucks10 design 1 2 1
bend1 design 1 10 1
bend2 design 1 10 1
bend3 design 1 10 1
bend4 design 1 10 1
bend5 design 1 10 1
bend6 design 1 10 1
bend7 design 1 10 1
bend8 design 1 10 1
bend9 design 1 10 1
83
bend10 design 1 10 1
weld1 design 1 10 1
weld2 design 1 10 1
weld3 design 1 10 1
weld4 design 1 10 1
weld5 design 1 10 1
weld6 design 1 10 1
weld7 design 1 10 1
weld8 design 1 10 1
weld9 design 1 10 1
weld10 design 1 10 1
welder1 design 1 2 1
welder2 design 1 2 1
welder3 design 1 2 1
welder4 design 1 2 1
welder5 design 1 2 1
welder6 design 1 2 1
welder7 design 1 2 1
welder8 design 1 2 1
welder9 design 1 2 1
welder10 design 1 2 1
coat1 design 1 10 1
coat2 design 1 10 1
coat3 design 1 10 1
coat4 design 1 10 1
coat5 design 1 10 1
coat6 design 1 10 1
coat7 design 1 10 1
coat8 design 1 10 1
coat9 design 1 10 1
coat10 design 1 10 1
excv1 design 1 10 1
excv2 design 1 10 1
excv3 design 1 10 1
excv4 design 1 10 1
excv5 design 1 10 1
excv6 design 1 10 1
excv7 design 1 10 1
excv8 design 1 10 1
84
excv9 design 1 10 1
excv10 design 1 10 1
excvtr1 design 1 2 1
excvtr2 design 1 2 1
excvtr3 design 1 2 1
excvtr4 design 1 2 1
excvtr5 design 1 2 1
excvtr6 design 1 2 1
excvtr7 design 1 2 1
excvtr8 design 1 2 1
excvtr9 design 1 2 1
excvtr10 design 1 2 1
lwr1 design 1 10 1
lwr2 design 1 10 1
lwr3 design 1 10 1
lwr4 design 1 10 1
lwr5 design 1 10 1
lwr6 design 1 10 1
lwr7 design 1 10 1
lwr8 design 1 10 1
lwr9 design 1 10 1
lwr10 design 1 10 1
bckfl1 design 1 10 1
bckfl2 design 1 10 1
bckfl3 design 1 10 1
bckfl4 design 1 10 1
bckfl5 design 1 10 1
bckfl6 design 1 10 1
bckfl7 design 1 10 1
bckfl8 design 1 10 1
bckfl9 design 1 10 1
bckfl10 design 1 10 1
bldzr1 design 1 2 1
bldzr2 design 1 2 1
bldzr3 design 1 2 1
bldzr4 design 1 2 1
bldzr5 design 1 2 1
bldzr6 design 1 2 1
bldzr7 design 1 2 1
85
bldzr8 design 1 2 1
bldzr9 design 1 2 1
bldzr10 design 1 2 1
hdrtst1 design 1 10 1
hdrtst2 design 1 10 1
hdrtst3 design 1 10 1
hdrtst4 design 1 10 1
hdrtst5 design 1 10 1
hdrtst6 design 1 10 1
hdrtst7 design 1 10 1
hdrtst8 design 1 10 1
hdrtst9 design 1 10 1
hdrtst10 design 1 10 1
The next stage, after defining the optimization parameters, is defining the optimization
constraints. A constraint is a condition defined on the optimization parameters. It defines a
range for an optimization parameter. Each time the optimization engine generates a new set
of values for the optimization parameters, it creates a feasible solution that satisfies this
constraint; thus the space of searching is reduced, and the optimization is performed faster. A
constraint is a well-formed arithmetic expression describing a relationship between the
optimization parameters. It always defines a limitation by specifying a lower or an upper
bound e.g. parameter1 >= 10. The constraints needed for this model shall insure that no two
parameters of the same array have the same value. In that way, every station has a specific
priority for each activity that no other station has. There will be two constraints for the
parameters for each array. The first constraint insures that the total value for all ten
parameters equals 55 which are total of values from one to ten. The second constraint
insures that the value of multiplying all ten parameters equals 3,628,800 which is the factorial
of 10 (10!). The following steps to define the optimization constraints would be undertaken in
the same order for each array:
3.1) In Constraints page of the experiment’s properties go to the first row of the
constraints table. In the Expression field, the first constraint is typed in the form
“strng1+strng2+strng3+strng4+strng5+strng6+strng7+strng8+strng9+strng10”.
3.2) In the Type field, the “=” sign is selected from the dropdown menu.
3.3) In the Bound field, the value “55” is entered. The constraint is then enabled by
selecting the checkbox in Enabled field. The table shall be as follows:
86
5: Definition of 1st Consttraint for Stringing Optimization Pa
Table 6-5 arameters
Ena
abled Exp
pression Type Bo
ound
strng1+strn
ng2+strng3+
+strng4+strn
ng5+strng6+
+strng7+
= 5
55
strng8+ strng9+strng
s g10
3.4) In a new
w row of the constraints table, the se
econd constraint would be
b defined in
n the
sam
me way descrribed in stepss (3.1) to (3.3
3). it would be
b as follows:
Ena
abled Exp
pression T
Type Bound
strng1*strrng2*strng33*strng4*strn
ng5*strng6**strng7*
= 3628800
strng8* strng9*strng
s g10
Table 6-7
7: Constrain
nts for Optim
mization Parameters
Enable
ed Exp
pression Type Bound
be
end1+bend2+bend3+ben nd4+bend5++bend6+bennd7+bend8
= 55
+bend
d9+bend10
bend1*bend22*bend3*bennd4*bend5*bend6*bendd7*bend8*
= 3
3628800
bend9*bend10
w
weld1+weld22+weld3+weld4+weld5+wweld6+weldd7+weld8+
= 55
9+weld10
weld9
weld1*weld
d2*weld3*we
eld4*weld5*w
weld6*weld7
7*weld8*
= 3
3628800
weld9*weld10
co
oat1+coat2+c
coat3+coat4
4+coat5+coa
at6+coat7+c
coat8+coat = 55
87
9+
+coat10
coat1*coa
at2*coat3*co
oat4*coat5*ccoat6*coat7**coat8*
= 3
3628800
coatt9*coat10
ex
xcv1+excv22+excv3+exc cv4+excv5+excv6+excv v7+excv8+
= 55
excv9 9+excv10
excv1*excvv2*excv3*exc cv4*excv5*e
excv6*excv77*excv8*
= 3
3628800
excvv9*excv10
l
lwr1+lwr2+lw
wr3+lwr4+lw
wr5+lwr6+lw
wr7+lwr8+lw
wr9+lwr10 = 55
lwr1*lwr2*lwr3*lwr4*lw
wr5*lwr6*lwrr7*lwr8* lwr9
9*lwr10 = 3
3628800
bc
ckfl1+bckfl2
2+bckfl3+bckfl4+bckfl5+ +bckfl6+bck kfl7+bckfl8
= 55
+ bckffl9+bckfl10
b
bckfl1*bckfl2
2*bckfl3*bckkfl4*bckfl5*b
bckfl6*bckfll7*bckfl8*
= 3
3628800
bckfl9*bckfl10
hd
drtst1+hdrts
st2+hdrtst3+ +hdrtst4+hddrtst5+hdrtstt6+hdrtst7
= 55
+ hdrtst8+hhdrtst9+hdrttst10
h
hdrtst1*hdrts
st2*hdrtst3**hdrtst4*hdrrtst5*hdrtst6
6*hdrtst7*
= 3
3628800
hdrtst8* hd
drtst9*hdrts
st10
88
F
Figure 6-5: Graphical
G Presentation
P n for Optimizzation Mode
el
6.3
3. Case Sttudy Description
Phase 1: Dahsh
hour – El-Korraimat Gas Pipeline
P (90 km
k length, 36
6" diameter)
Phase 2: El-Korraimat – Ben
ni Suef Gas Pipeline
P (30 km
k length, 32
2" diameter)
Phase 3: from Beni
B Suef to Abu
A – Qorqa
as city in Men
nia (150 km length, 32" diameter)
d
Phase 4: from Abu
A – Qorqass to Assiut (1
147 km lengtth, 32" diame
eter)
Phase 5: from Assiut
A to Gerrga (121 km length, 32" diameter)
d
Phase 6: from Gerga
G to Asw
wan (390 km length, 30" diameter)
d
89
Figurre 6-6: Map of South Va
alley Gas Pip
peline
• 10 pipe trucks
• 1 pipe bending mach
hine
• 30 weldiing crews
• 1 weld in
nspection tea
am
• 5 Joint coating
c crewss
• 6 Excavvators
• 6 Side booms
b
• 4 Bulldo
ozers
• 1 hydro--testing crew
w
90
6.4. Application of Model
The resources defined in the model in chapter (5) matches the resources used in the case
study. However, In order to overcome the model limitations, some of the utilized resources’
numbers were represented differently. The ten trucks were represented by two trucks in the
model were each truck represents five trucks. The thirty welding crews were represented as
three welders in the model. Each one represents a group of ten crews. In addition, the five
joint coating crews are represented by one coating team in the model. The six excavators are
condensed in two groups represented by two excavators. Also, the four bulldozers are
represented by two in the model. On the other hand, the model simulates well the other
characteristics of the real project. The layout of the pipeline project as well as the location of
the base camp is represented in the model. In addition, the activities durations are
represented accurately in the model. However, the triangular distribution of the durations is
assumed to show the simulation model capabilities.
The process of evaluating the model and examining its results consists of three stages of
model runs. These stages aim to calibrate the model conditions and monitor its outputs. The
result of these stages would be a well-defined model that simulates the real construction
process, forecasts any problems or obstacles and obtains a better schedule by optimizing the
resource utilization to get less project duration than the actual schedule.
In the first stage, the simulation model was run without any alteration from the original
conditions and schedule of the case study. This is done through the model illustrated in
chapter (5) without introducing the optimization parameters defined in this chapter. The
results of these runs are to be compared to the actual duration of construction in the case
study. In the case study, the construction of 100-km segment took about 2,600 hours. After
running the simulation 50 times, the average resulting duration is 2,408 hours with standard
deviation of 70 hours. The maximum value was 2,579 hours and the minimum was 2,300
hours. The following graph shows the values obtained in the fifty runs. The results show that
the model gets a relatively close value to the real duration of the case study on which the
model was developed. However, the variation of results from the actual duration was due to
the triangular distribution of activities’ durations in the model against the deterministic values
calculated in the real schedule.
91
Duration (hr)
2,600
2,550
2,500
2,450
2,350
2,300
2,250
0 10 20 30 40 50 60
In the second stage of simulation model runs, a simplified version of the optimization module
developed in previous chapter is used. As opposed to finding a separate sequence of work for
each activity, the objective of this module would be to find an optimal sequence that is fixed
for all activities.
The objective of this stage is to test the optimization module using a smaller number of
optimization parameters in order to locate any bugs and fix them. In addition, the resulting
sequence of activities and the associated minimization of total duration of construction is
observed to verify the model and assure its effectiveness.
The simulation model as well as the optimization module that were defined in the
previous chapters has to be modified in order to match the proposed model. There are two
main steps to achieve that; the first is to assign a single array of priorities from the arrays
previously defined to be the array of priorities for all activities. The second step is to define the
optimization parameters as the elements of that array.
The first step is accomplished by modifying the Java code in NetworkEnter object that
was defined in step (3.6) in chapter (5). This modification shall assign the same value for
each entity’s priority in every activity. The array used would be “stationProps1” array. The
modification in the code entered in On enter field shall be as follows:
92
On enter: (The following code is executed as every entity enters the object)
int i=j;
strngProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).StrngPriority = strngProp1;
strngProp2=stationProps2[i];
if( entity instanceof Station ) ((Station)entity).TruckNo
= strngProp2;
//
bendProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).BendPriority = bendProp1;
bendProp2=stationProps4[i];
if( entity instanceof Station ) ((Station)entity).BendNo
= bendProp2;
//
weldProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).WeldPriority = weldProp1;
weldProp2=stationProps6[i];
if( entity instanceof Station )
((Station)entity).WelderNo = weldProp2;
//
coatProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).CoatPriority = coatProp1;
//
excvProp1=stationProps8[i];
if( entity instanceof Station )
((Station)entity).Excvdiff = excvProp1;
excvProp2=stationProps1[i];
if( entity instanceof Station )
((Station)entity).ExcvPriority = excvProp2;
excvProp3=stationProps10[i];
if( entity instanceof Station ) ((Station)entity).ExcvNo
= excvProp3;
//
lwrProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).LwrPriority = lwrProp1;
//
bckflProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).BckflPriority = bckflProp1;
bckflProp2=stationProps13[i];
if( entity instanceof Station ) ((Station)entity).BldzrNo
= bckflProp2;
//
hdrtstProp1=stationProps1[i];
if( entity instanceof Station )
((Station)entity).HdrtstPriority = hdrtstProp1;
j++;
The second step is to change the type of the rest of the parameters shown in the optimization
parameters table to “fixed”. This way the only parameters that would be adjusted in the
93
optim
mization pro
ocess shall be
b strng1 to strng10. As tho
ose two mod
difications to
o the
mod
del are done,, the optimiza
ation model is
i ready for running
r phasse.
Sta
ation
Firs
st Second Third Fou
urth Fifth Sixth Seventh Eighth
h Ninth T
Tenth
Order
Sta
ation
5 2 10 7 6 3 9 8 1 4
number
94
Figure 6-9: Exa
ample of Us
sed Sub-mod
dels
After running ea
ach of the sub-models
s f 5 times at least, the
for e resulting se
equence wa
as as
follo
ows where ea
ach station has its order in
i the sequence for each
h activity:
Station
Order First Second Thirdd Fourth Fifth Sixxth Seventh
h Eighth Ninth Teenth
Activity
Sttringing 5 3 8 7 6 4 1 9 10 2
Bending 5 3 8 1 4 2 10 9 7 6
Station number
W
Welding 5 3 8 1 4 2 10 9 7 6
Coating 5 3 8 1 4 2 10 9 7 6
Exxcavation 5 1 3 4 2 100 9 8 6 7
Loowering 5 1 3 4 2 100 9 8 6 7
Backfilling 5 1 3 4 2 100 9 8 6 7
H
Hydro-testing 5 1 3 4 2 100 9 8 6 7
95
6.5. Validation of Model
The final step is to validate the results of both the simulation and optimization models and
show how relative they are to actual schedules developed using traditional methods. The
method used for this purpose was presenting the bar charts for the original schedule for the
case study project as well as the optimized schedule, shown in appendix C, to five
professionals in the field of project management and planning for oil and gas construction
projection with years of experience that ranges from two to fifteen years. After illustrating
AnyLogic software to them and summarizing the work done in the simulation and optimization
models, they were required to answer a questionnaire with five questions by giving each a
question a degree from (1) to (5) where (1) stands for strongly disagree and (5) stands for
strongly agree. The five questions that were presented were as follows:
The results are presented in below figure and they were summarized to show the following
conclusions:
1. The actual and optimized schedules were accepted and found reasonable
3. The simulation model is highly effective in showing the work progress at any instant
of the project life time
4. The optimization model may present an effective tool in the future in the field of
planning and scheduling
96
Figure 6-10: Results of Questionnai
Q ire
6.6
6. Conclusion
97
CHAPTER 7
CONCLUSIONS
7.1. Summary of Research
This study presents a simulation model, designed to aid construction personnel in planning
and scheduling pipeline construction projects. The research tried to explore all issues that
arise when scheduling a project with many repetitive activities considering all repetitive project
characteristics. The development of the model was a means to solve any problems that might
arise when conducting repetitive project scheduling and not considering the important aspects
of repetitive project.
The first stage of this research was defining the research problem. A comprehensive
review of the domain literature has been conducted. This stage of the research found that the
current repetitive project scheduling techniques do not provide project planners and
management with the optimal sequence of work among the units of the project; Other
problems and limitations that were addressed can be summarized as follows:
Then, a thorough study of pipeline construction process was held to fully comprehend the
different activities, the needed resources for each activity and the various characteristics of
the project’s units; a process which would be well used in defining the different classes and
variables of the model in the next stage. Last, examples of utilizing deterministic models,
developed in the literature, for the present scheduling problem in order to present their
limitation in dealing with repetitive projects.
The second stage of development of the present simulation model, after defining the
problems and limitations, was the design stage. First, the typical form of the actual space of a
pipeline construction project was represented as a network that includes all the nodes and the
paths linking them. The length of the paths on the model represents the actual distances
covered by the equipment during the construction works. Next, different classes were defined
for the project’s units or stations as well as the utilized resources. These classes helped in
defining any needed characteristics to the different stations such as soil properties;
characteristics which would affect the schedule and the needed resources. After that, the
98
logical network connecting the project’s activities, the resource pools, the process variables
and the graphic network is created. In this network, the probabilistic durations, the required
resources and the order of work in stations for each activity is defined. Also, any outputs such
as the total duration are defined in this stage. Finally, a simulation experiment is created to
provide the visual overview of the construction process and the values of outputs.
The third stage is creating the optimization experiment. This experiment would be used to
find the optimal schedule and number of resources utilized in each station for each activity. In
this experiment, arrays of stations’ priority to seize the available resources and the number of
resources are defined as the “Optimization Parameters”. AnyLogic software has an
optimization engine that would automatically find the optimum values for these arrays to
achieve the objective of minimizing the total duration of the project while preserving the
defined constraints. The output of this experiment shall be the required schedule i.e. the main
objective of this research.
The primary purpose of this research study is to develop a new model to overcome some of
the most important shortcomings and limitations of the current scheduling methods in
scheduling projects with many repetitive activities. The development of this model
incorporates the following contributions:
4. The model allows the planners to evaluate the impact of using probabilistic activity
durations on project completion time using any type of statistical distributions.
5. The incorporation of the detailed geometric layout of the project such as the base
camp location, the length of linking roads as well as any physical obstructions.
99
7. The ability to define any attributes to different stations and resources such as different
quantities of bends in the pipeline, different soil types and different productivity rates
for equipment
8. The model allows the incorporation of non-repetitive activities along with repetitive
ones
9. The development of an optimization model for generating least duration schedules for
all types of repetitive construction projects.
10. The development of visual animation of execution of the project that could aid the
management, planners and construction superintendents in visualizing the project’s
activities. Later versions of AnyLogic software provide a 3D animation model.
The present simulation-based model for repetitive project scheduling is a promising trial that
can be utilized in future research efforts. The model is flexible and can be applied to schedule
and control any type of linear repetitive projects. However, in order to expand the potential
applications of this model, the following recommendations for future research can be made:
1. The model has a number of shortcomings that affect the output. The first is that
AnyLogic software has a fixed rule to utilize all available resources in the resource
pool in a fixed order even if a nearer resource unit is available. Future research can
find a way to avoid this rule. The second is that the triangular distribution for
probabilistic durations was assumed. The literature provides many methods that
could be used to determine the suitable distribution for activity durations. The last is
that the optimization model requires a high-end hardware that has high computational
capabilities in order to get credible results.
2. A GIS sub-module could be combined with the model to get many advantages. Such
module could be used to determine the suitable locations for base camps in relation
to populated areas and infrastructure. It can highlight any potential conflicts with any
existing utilities, such as power lines and roads and incorporate them in the schedule.
3. The model could incorporate the weather effect of activities durations, productivities
and unscheduled stops
4. A sub-module could be added to the model to optimize the number of crews and
equipment needed for the project to get the best result for crew work continuity
100
5. As project planners cannot be expected to be knowledgeable about simulation
techniques and the programming languages used in simulation, user-friendly software
could be developed to allow input entry from the user, builds a model and presents
the simulation results.
101
Appendix A
102
/**
* stati
*/
public class Station extends
com.xj.anylogic.libraries.enterprise.Entity implements
java.io.Serializable {
double PipeNo;
double StrngPriority;
double TruckNo;
double BendPriority;
double BendNo;
double WeldPriority;
double WelderNo;
double WeldPipeNo;
double CoatPriority;
double Excvdiff;
double ExcvPriority;
double ExcvNo;
double LwrPriority;
double BckflPriority;
double BldzrNo;
double HdrtstPriority;
/**
* Default constructor
*/
public Station(){
}
/**
* Constructor initializing the fields
103
*/
public Station(double PipeNo, double StrngPriority,
double TruckNo, double BendPriority, double BendNo,
double WeldPriority, double WelderNo, double
WeldPipeNo, double CoatPriority, double Excvdiff,
double ExcvPriority, double ExcvNo, double LwrPriority,
double BckflPriority, double BldzrNo, double
HdrtstPriority){
this.PipeNo = PipeNo;
this.StrngPriority = StrngPriority;
this.TruckNo = TruckNo;
this.BendPriority = BendPriority;
this.TruckNo = BendNo;
this.WeldPriority = WeldPriority;
this.WelderNo = WelderNo;
this.WeldPipeNo = WeldPipeNo;
this.CoatPriority = CoatPriority;
this.Excvdiff = Excvdiff;
this.ExcvPriority = ExcvPriority;
this.ExcvNo = ExcvNo;
this.LwrPriority = LwrPriority;
this.BckflPriority = BckflPriority;
this.BldzrNo = BldzrNo;
this.HdrtstPriority = HdrtstPriority;
}
@Override
public String toString() {
return
"PipeNo = " + PipeNo +" " +
"StrngPriority = " + StrngPriority +" "+
"TruckNo = " + TruckNo +" "+
"BendPriority = " + BendPriority +" "+
"BendNo = " + BendNo +" "+
"WeldPriority = " + WeldPriority +" "+
"WelderNo = " + WelderNo +" "+
"WeldPipeNo = " + WeldPipeNo +" "+
"CoatPriority = " + CoatPriority +" "+
"Excvdiff = " + Excvdiff +" "+
"ExcvPriority = " + ExcvPriority +" "+
"ExcvNo = " + ExcvNo +" "+
"LwrPriority = " + LwrPriority +" "+
"BckflPriority = " + BckflPriority +" "+
"BldzrNo = " + BldzrNo +" "+
"HdrtstPriority = " + HdrtstPriority +"
";
}
104
/**
* This number is here for model snapshot storing
purpose<br>
* It needs to be changed when this class gets
changed
*/
private static final long serialVersionUID = 1L;
105
Appendix B
106
Name: Pipe
Resource type: Portable
Capacity defined: Directly
Capacity: 100
Pipes Idle unit animation
PipeShape (Refer to table (5-1))
shape:
Busy unit animation
PipeShape
shape:
Home defined by: Single node
Home path: PipeYard
Name: Truck
Resource type: Moving
Capacity defined: Directly
Capacity: 2
Speed: 150
Trucks
Idle unit animation
TruckShape (Refer to table (5-1))
shape:
Busy unit animation
TruckShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: Sideboom
Resource type: Moving
Capacity defined: Directly
Capacity: 4
Speed: 25
Side booms
Idle unit animation
SideboomShape (Refer to table (5-1))
shape:
Busy unit animation
SideboomShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: Pipebender
Resource type: Moving
Capacity defined: Directly
Capacity: 1
Pipe benders
Speed: 25
Idle unit animation PipebenderShape (Refer to table (5-
shape: 1))
Busy unit animation
PipebenderShape
shape:
107
Home defined by: Single node
Home path: ResidenceCamp
Name: Welder
Resource type: Moving
Capacity defined: Directly
Capacity: 3
Speed: 150
Welders
Idle unit animation
WelderShape (Refer to table (5-1))
shape:
Busy unit animation
WelderShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: Excavator
Resource type: Moving
Capacity defined: Directly
Capacity: 2
Speed: 25
Excavators
Idle unit animation
ExcavShape (Refer to table (5-1))
shape:
Busy unit animation
ExcavShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: Inspector
Resource type: Moving
Capacity defined: Directly
Capacity: 1
Inspection Speed: 150
teams Idle unit animation InspectorShape (Refer to table (5-
shape: 1))
Busy unit animation
InspectorShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: CoatingTeam
Resource type: Moving
Coating
Capacity defined: Directly
teams
Capacity: 1
Speed: 150
108
Idle unit animation
CoatShape (Refer to table (5-1))
shape:
Busy unit animation
CoatShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: Bulldozer
Resource type: Moving
Capacity defined: Directly
Capacity: 2
Speed: 25
Bulldozers
Idle unit animation BulldozerShape (Refer to table (5-
shape: 1))
Busy unit animation
BulldozerShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
Name: HydTestTeam
Resource type: Moving
Capacity defined: Directly
Capacity: 1
Hydro-testing Speed: 150
teams Idle unit animation
HydTestShape (Refer to table (5-1))
shape:
Busy unit animation
HydTestShape
shape:
Home defined by: Single node
Home path: ResidenceCamp
109
Appendix C
110
Figure
e C-1: Bar ch
hart for actu
ual schedule
e
111
Figure C-2
2: Bar chart for optimize
ed schedule
e
112
REFERNCES
AI Sarraj, Z. M. (1990). Formal Development of Line-of-Balance Technique. Journal of
Construction Engineering and Management. 116(4), 689 – 704.
Ammar, M. A. (2013). LOB and CPM Integrated Method for Scheduling Repetitive
Projects. Journal Of Construction Engineering & Management, 139(1), 44-50.
Ashley, D.B. (1980). Simulation of Repetitive Unit Construction. Journal of the Construction
Division. 106(C02), 185-194.
Birrell, G. (1980). Construction Planning - Beyond the Critical Path. Journal of the
Construction Division. 106(C03), 389-407.
Carr, M.l. and Meyer, W.L. (1974). Planning Construction of Repetitive Building Units. Journal
of the Construction Division. 100(3), 403-412.
Eldin, N. and Senouci, A. (1994). Scheduling and Control of Linear Projects. Canadian
Journal of Civil Engineering, CSCE. 21, 219-230.
El-Rayes, K. (1997). Optimized scheduling for repetitive construction projects (Order No.
NQ40315). Available from ProQuest Dissertations & Theses Global. (304460117). Retrieved
from http://search.proquest.com/docview/304460117?accountid=8423
Handa, V. and Barcia, R. (1986). Linear Scheduling Using Optimal Control Theory. Journal of
Construction Engineering and Management. 112(3), 387-393.
113
Hassanein, A. (2003). Planning and scheduling highway construction using GIS and dynamic
programming (Order No. NQ77904). Available from ProQuest Dissertations & Theses Global.
(305303811).
Retrieved from http://search.proquest.com/docview/305303811?accountid=8423
Insa Wrede, S. (2014, August). Europe's approach to Russia's gas power. Deutsche Welle
Website. Retrieved from http://www.dw.de/europes-approach-to-russias-gas-power/a-
17887505
Johnson, S.M. (1954). Optimal Two and Three-Stage Production Schedules with Setup Times
Included. Naval Research Logistics Quarterly. 1, 61–67.
Johnston, D. (1981). Linear Scheduling Method for Highway Construction. Journal of the
Construction Division. 107(C02), 247-261.
Moradi, S., Nasirzadeh, F and Golkhoo, F (2015). A hybrid SD–DES simulation approach to
model construction projects. Construction Innovation. 15 (1), 66 – 83.
Moselhi, O. and El-Rayes, K. (1993 (a)). Scheduling of Repetitive Projects with Cost
Optimization. Journal of Construction Engineering and Management. 118(4), 681-697.
Moselhi, O. and El-Rayes, K.(1993 (b)). Least Cost Scheduling for Repetitive Projects.
Canadian Journal of Civil Engineering, CSCE. 20, 834-843.
Neale, R. H., and Raju, B. (1988). Line of Balance Planning by Spread Sheet. Building
Technology and Management. (January), 22-27.
O’Brien, J.J. (1975). VPM Scheduling for High-Rise Buildings. Journal of the Construction
Division. 101(4), 895-905.
O’Brien, J.J., Kreitzberg, F.C. and Mikes, W.F. (1985). Network Scheduling Variations for
Repetitive Work. Journal of Construction Engineering and Management. 111(2), 105-116.
Palmer, D.S. (1965). Sequencing Jobs Through a Multi-Stage Process in the Minimum Total
Time - A Quick Method of Obtaining a Near Optimum. Operational Research Quarterly. 16,
101–107.
114
Peña-Mora, F., Han, S., Lee, S., and Park, M. (2008). Strategic-Operational Construction
Management: Hybrid System Dynamics and Discrete Event Approach. Journal of
Construction Engineering and Management. 134(9), 701–710.
Pinedo, M.L. (2011). Scheduling: Theory, algorithms, and systems, Fourth Edition, New York:
Springer.
Reda, R.M. (1990). RPM: Repetitive Project Modeling. Journal of Construction Engineering
and Management. 116(2), 316-330.
Russell, A.D. and Caselton, W.F. (1988). Extensions to linear Scheduling Optimization.
Journal of Construction Engineering and Management. 114(1), 36-52.
Selinger, S. (1980). Construction Planning for Linear Projects. Journal of the Construction
Division. 106(C02),195-205.
Smith, C.E. (2013, Febuary). Worldwide Pipeline Construction: Crude, products plans push
2013 construction sharply higher. Oil & Gas Journal. Retrieved from
http://www.ogj.com/articles/print/volume-111/issue-02/special-report--worldwide-pipeline-
construction/worldwide-pipeline-construction-crude-products.html
Stradal, O. and Cacha, J. (1982). Time Space Scheduling Method. Journal of the
Construction Division. 108(C03), 445-457.
Tavakoli, A. and Riachi, R. (1990). CPM Use in ENR Top 400 Contractors. Journal of
Management in Engineering. 6(3), 282–295.
Thabet, W. Y., and Beliveau, Y. L. (1994). HVLS: Horizontal and Vertical Logic Scheduling for
Multistory Projects. Journal of Construction Engineering and Management. 120(4), 875-892.
Whiteman, W. E., and Irwing, H. G. (1988). Disturbance Scheduling Techniques for Managing
Renovation Work. Journal of Construction Engineering and Management. 114(2), 191-213.
Worldwide Onshore Pipeline Construction Market Appears Strong through 2015 (2010,
December). Pipeline News. Retrieved from http://pipeline-news.com/feature/worldwide-
onshore-pipeline-construction-market-appears-strong-through-2015
115
116