0% found this document useful (0 votes)
120 views

Scheduling of Pipeline Construction Projects Using Simulation

for pipelines construction engineer

Uploaded by

Youssef Barsoum
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
120 views

Scheduling of Pipeline Construction Projects Using Simulation

for pipelines construction engineer

Uploaded by

Youssef Barsoum
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 125

American University in Cairo

AUC Knowledge Fountain

Theses and Dissertations

6-1-2016

Scheduling of pipeline construction projects using simulation


Hany Mohsen Zahran

Follow this and additional works at: https://fount.aucegypt.edu/etds

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

School of Sciences and Engineering

SCHEDULING OF PIPELINE CONSTRUCTION PROJECTS USING


SIMULATION

A Thesis Submitted to

Department of Construction Engineering

in partial fulfillment of the requirements for


the degree of Master of Science

by Hany Mohsen Zahran

(under the supervision of Dr. Khaled Nassar)


January/2015
ABSTRACT

Scheduling of Pipeline Construction Projects using Simulation


Hany Mohsen Zahran
American University in Cairo

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

1.2. Pipeline Construction scheduling.................................................................. 3

1.3. Considerations in the Planning and Control of Pipeline Construction .......... 4

1.4. Problem Statement ....................................................................................... 5

1.5. Research Objectives..................................................................................... 5

1.6. Thesis Organization ...................................................................................... 6

CHAPTER 2
LITERATURE REVIEW .............................................................................................. 7
2.1. Introduction ................................................................................................... 7

2.2. Traditional Scheduling Techniques............................................................... 7


2.2.1. Bar Chart Method .................................................................................. 7
2.2.2. Network Techniques .............................................................................. 8
2.3. Techniques for Scheduling Repetitive Activities ........................................... 9
2.3.1. Line of Balance (LOB) ......................................................................... 10
2.3.2. Linear Scheduling Method (LSM) ........................................................ 11
2.4. Optimized Scheduling ................................................................................. 11
2.4.1. Operations Research Models .............................................................. 12
2.4.2. Simulation Models ............................................................................... 13
2.5. Summary and Conclusion........................................................................... 14

CHAPTER 3
STAGES OF PIPELINE CONSTRUCTION .............................................................. 15
3.1 Introduction ................................................................................................. 15

3.2 Stages of Pipeline Construction.................................................................. 15

3.3 Summary and Conclusion........................................................................... 23

CHAPTER 4
DETERMINISTIC MODELS ...................................................................................... 24

iv
4.1 Introduction ................................................................................................. 24

4.2 Methodology ............................................................................................... 24


4.3 Proposed Models ........................................................................................ 25
4.3.1 Johnson’s Rule .................................................................................... 25
4.3.2 Mixed Integer Programming ................................................................ 27
4.3.3 Slope Heuristic .................................................................................... 31
4.4 Summary and Conclusion........................................................................... 33

CHAPTER 5
SIMULATION MODEL .............................................................................................. 34
5.1. Introduction ................................................................................................. 34

5.2. Simulation Software .................................................................................... 36

5.3. Model Development .................................................................................... 36

5.4. Summary and Conclusion........................................................................... 75

CHAPTER 6
OPTIMIZATION MODEL .......................................................................................... 77
6.1. Introduction ................................................................................................. 77

6.2. Optimization Experiment............................................................................. 82

6.3. Case Study Description .............................................................................. 89

6.4. Application of Model ................................................................................... 91

6.5. Validation of Model ..................................................................................... 96

6.6. Conclusion .................................................................................................. 97

CHAPTER 7
CONCLUSIONS........................................................................................................ 98
7.1. Summary of Research ................................................................................ 98
7.2. Research Contributions .............................................................................. 99
7.3. Recommendations for Future Research ................................................... 100

Appendix A ............................................................................................................ 102


Appendix B ............................................................................................................ 106
Appendix C ............................................................................................................ 110
REFERNCES .......................................................................................................... 113

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).

Pipeline networks are composed, other than


n the pipe itself, of se
everal piece
es of
equiipment that operate tog
gether to move
m produccts from loca
ation to location. The main
elem
ments of a pipeline system
m are:

Initial injection station


It is also known as supply orr inlet station, is the begin
nning of the system, whe
ere the produ
uct is
injeccted into the
e line. Storag
ge facilities, pumps or compressors are usually located at these
loca
ations.

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.

Parttial delivery station


It is also known as intermed
diate stations; these faciliities allow the pipeline op
perator to de
eliver
part of the produ
uct being tran
nsported.

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

1.2. Pipeline Consttruction schedulin


s ng

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.

1.3. Considerations in the Planning and Control of Pipeline


Construction

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.

The first challenge is to develop a resource-driven scheduling model that incorporates


utilization of different kinds of resources. Due to The linear shape of the construction site that
spread over hundreds of kilometers, all the resource work together in each station from one
end of the segment, served by the construction camp, to the other. If any resource is detained
in one station for any reason, it shall hold the rest of resources used in the following activities

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.

1.4. Problem Statement

Scheduling of repetitive construction projects is done by several techniques. These


techniques shall be shown in the literature review in the next chapter. These techniques have
limitations in accomplishing some or all of the following requirements:
 Finding the optimal number of units that should be utilized simultaneously within an
activity
 Visualizing the entire project
 Ensuring work continuity.
 Satisfying resource constraints
 Dealing with probabilistic durations.
 Maintaining logical interconnections between various activities
 Providing assistance for planners and the management in justifying their decisions.
 Answering "what-if” questions.

1.5. Research Objectives

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

3) To develop a simulation model that represents the process of pipeline construction


and considers the special characteristics and unique features of pipeline projects.

4) To develop an optimization module that produces a resource-driven schedule

5) To implement the model on a real case study and study the difference between the
real and proposed schedule.

1.6. Thesis Organization

Chapter 2 presents a literature review of available scheduling techniques for repetitive


construction projects.

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.

2.2. Traditional Scheduling Techniques

2.2.1. Bar Chart Method

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).

2.2.2. Network Techniques

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.

Another important shortcoming of traditional techniques is its inability to maintain crew


work continuity. Its application during scheduling is to schedule work in repetitive units in an
order that enables well-timed movement of crews from one unit to the next, avoiding crew idle
time. This is known as the `crew work continuity constraint’. Crew work continuity makes
maximum use of the learning curve effect for each crew, maintains a constant workforce by
reducing the number of hires and fires, minimizes the crew and equipment idle time, retains
skilled labor and last but not least it has proven to be an effective resource utilization strategy
for repetitive construction (Birrell, 1980; ElRayes and Moselhi, 1993 (a)).

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.

2.3. Techniques for Scheduling Repetitive Activities

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).

2.3.1. Line of Balance (LOB)

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)).

2.3.2. Linear Scheduling Method (LSM)

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.

2.4. Optimized Scheduling

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).

2.4.1. Operations Research Models

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.

El Rayes and Moselhi (1998) developed an algorithm that considers precedence


relationships, crew availability and crew work continuity constraints. In addition, it considers
the impact of the following practical factors: (i) type of repetitive activity (i.e. typical or
atypical); (ii) multiple crews assigned to work simultaneously on an activity; (iii) crew
availability period on site; (iv) activity interruption; and (v) order of executing repetitive units.
The model has the ability to generate interruption vectors that would minimize total
construction cost by itself, unlike the model presented by Eldin and Senouci (1994) where it
was necessary to input predefined interruptions.

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

2.4.2. Simulation Models

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

Kavanagh (1985) presented SIREN (SImulation of REpetitive Networks), a repetitive


construction model coded in the GPSS language. The model would first carry out a
deterministic analysis and then it employs Monte-Carlo simulation to account for the
probability distributions for values of activity durations and weather conditions. The presented

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.

Hajdasz (2014) utilized MoCCAS (MOnolithic Construction Computer Aided System), a


comprehensive decision support tool for flexible construction site management in repetitive
projects. MoCCAS supports the construction site manager in developing optimal execution
scenarios by providing different construction strategies.

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.

2.5. Summary and Conclusion

This chapter presented a review of recent literature on scheduling of construction projects


with repetitive activities. Traditional scheduling techniques and their shortcomings in respect
to repetitive construction were also discussed. The emergence of linear scheduling methods,
the pros and cons of each of the developed techniques, their considerations and limitations
were also reviewed. All the proposed models disregarded the linear nature of many repetitive
projects such as pipelines, roads and railway projects; a main factor which would highly affect
the crew movement and its continuity of work. Another is that these models didn’t consider
the possibility to change the sequence of work in the project units from one activity to the
other. These findings have been effectively used in the development of the proposed model
for scheduling, tracking and control of pipeline projects, which is described in the following
Chapters.

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.

3.2 Stages of Pipeline Construction

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):

1. Preparing Work Area

2. Layout Pipe and Weld above Ground

3. Excavate Trench and Installation of Pipe

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

Figure 3-1: Flowchart of Spread Method Activities

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)

Figure 0-2 : Pipe String


ging Activity
y

The third acctivity is form


ming field be
ends (cold be
ending). Oncce the pipe has been sttrung
alon
ng the easem
ment, engine
eers will follo
ow to determ
mine the loca
ation of all bends
b require
ed in
orde
er that the piipeline can ffollow the co
ontours of the
e land and the required line and leve
el as
deta
ailed on the drawings.
d Th
here are two
o types of be
ends normallyy used i.e. hot
h pre-forme
ed or
forged bends wh
hich are man
nufactured off site in a fa
actory and are to a radiu
us of 5 or 3 times
t
the pipe diamete
er and cold bends
b which are to a radius of 40 times the pipe diameter
d and
d are
form
med in the fie
eld. A typical cold bendin
ng crew con
nsists of a four-man team
m together w
with a
bend
ding machine and a side
e boom tracttor. The bend
ding machine
e is towed along
a the pipeline
route by the sid
de boom and
d includes “fformers” con
nsisting of 20 – 150 ton
n hydraulic rrams,
whicch bend the pipe to the required
r radiius and angle. The side boom acts as
a a lifting de
evice
and has a fixed jib attached
d to a tracked
d dozer with
h a capabilityy of lifting be
etween 15 to
o 120
tonss, dependentt upon the size
s of the machine use
ed. The num
mber of cold
d bends requ
uired
depe
ends on the route and co
ontours of the
e pipeline. Typically, theyy can range from 1 pipe in 10
in developed
d re
egions to 1 pipe in 50 in open cou
untry. The cold bend an
ngle that can be
achiieved rangess from maxim
mum angles of
o 12 degree
es (42” pipe) to 40 degree
es (12” pipe).

The fourth activity


a is We
elding of the pipeline.
p The
e welding of the pipeline will commen
nce a
few days after the cold bend
ding crew. The
T welding crew will we
eld the pipeline in continuous
leng
gths between
n features su
uch as roadss, watercourrses, tracks, railways, se
ervices and other
o
unde
erground ob
bstacles that prevent the
e pipeline be
eing continuo
ously installe
ed in the tre
ench.
There are prima
arily two metthods of wellding which are manual or automatic. As the na
ames

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).

Figure 0-3 : Pipe Welding Activity


y

The fifth acttivity is Non Destructive Tests


T (NDT)) inspection. All welds on
n the pipeline
e are
gene
erally subjeccted to inspection by radiography. This is achieve
ed on the ma
ain pipeline by
b an
interrnal x-ray tub
be travelling along the in
nside of the pipe carrying
g out x-rays at each welld for
apprroximately 2 minutes perr weld. On co
ompletion of the x-ray the
e film is take
en to a dark room
r
and processed in
i time for th
he results to
o be available for inspecttion at the end
e of the da
ay or
earlyy the next day.
d Welds, which do no
ot meet the required ac
cceptance crriteria, are e
either
repa
aired or cut out
o and re-w
welded. Expe
erienced and
d qualified x-ray specialissts undertake
e the
radio
ography und
der controlle
ed condition
ns. Before the operation
n is started, the sectio
on of
pipe
eline is cord
doned off by
b marker tape to sto
op entry byy non x-rayy personnel and
audiio/flashing warning
w alarm
ms are activa
ated during all times when
n the x-ray tu
ube is energized.
The x-ray personnel are on constant surrveillance to ensure that the workforcce and mem
mbers
of th
he public are
e aware of th
he x-ray activvities and on
nly authorized
d access is permitted. Welds
W

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.

The sixth acctivity is Weld


d repairs. A weld
w repair crew
c follows immediately
y behind the NDT
insp
pection activitties to eitherr carry out re
epairs to or cut
c out any defective weld
d. On completion
of a
all repairs a further x-ra
ay is carried
d out on the
e weld to en
nsure that th
he finished weld
confforms to the standard re
equired. The x-ray of rep
pair welds is usually carrried out from
m the
outsside of the weld
w by a two
o-man crew. The last acttivity is Field joint coating
g. The coatin
ng of
the pipeline field
d joints to pre
event corrosiion starts a ffew days afte
er the weldin
ng. This exten
nded
perio
od is to allow
w for any repairs or cut--outs to be completed
c wiithout prejud
dicing the coating
crew
w’s operation
ns.

The third grroup of activities is excavvation of tre


enches and installation of
o pipes. The
e first
activvity is Trench excavation
n. In areas other
o than ro
ock, trench excavation
e co
ommences a few
dayss after the fie
eld joint coating operatio
on. A typical trench exca
avation crew consists of 5 - 8
exca
avators work
king in line. This opera
ation only exxcavates the
e length of open cut trrench
suffiicient to insta
all the main line welded pipe;
p it does not excavate
e any roads, ditches, servvices
or o
obstacles. Th
he number of
o excavatorrs employed will be suc
ch that the amount
a of trrench
exca
avated in a single
s day matches
m the rate of progress of the welding
w crew
w. The spoil from
the trench will be
b stored ad
djacent to the
e trench on the opposite
e side of the
e ROW from
m the
topssoil stack. The finished trench will be to the correct depth
h and width to suit the pipe
diam
meter, plus any
a bedding and
a pipe covver. As far ass possible, th
he trench sh
hould also be
e in a
straiight line so that the pipe can lay centtral in the tre
ench without touching the
e trench sidess. All
loosse and jagged outcropss, which cou
uld come in
nto contact with the pip
pe during la
aying
operrations, will be
b removed. See figure (3-4).

gure 0-4 : Trench Excav


Fig vation Activ
vity

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

The last acttivity is Backkfilling of the


e pipeline trrench. Trenc
ch backfill sttarts immediately
follo
owing the pla
acement of the
t pipeline in the trench
h and the un
ndertaking off a survey of
o the
pipe
e levels by th
he engineers to confirm th
hat the required pipe cov
ver has been achieved. T
There
is a requirementt that the inittial backfill around the pipe and to 30
00mm above
e the crown be
b of
loosse and relativvely fine parrticles, which
h can be rea
adily compac
cted and do not damage
e the
pipe
e coating. In areas of rockk it will be ne
ecessary to p
place the pip
pe on a 150m
mm bed of similar
mate
erial. In orde
er to provide
e this materiial it may be
e necessary to import sand/soft matterial
offsiite, sieve the
e excavated material or crush
c the exxcavated matterial. The sieve and cru
usher
equiipment will be
b portable machines,
m wh
hich will be transported
t along
a the pip
peline ROW. The
pipe
e is backfilled
d over the en
ntire length except
e for, sa
ay, 30 meterrs at each en
nd of the pipeline
workk section, wh
hich is left fre
ee to facilitatte the tie -in to the crossing/line brea
ak pipe work.. The
who
ole operation can be summarized in figure (3-6).

22
Figurre 3-6 : Pipe
eline Constrruction Operration

3.3
3 Summa
ary and Conclusio
C on

Thiss chapter prresented a review


r of th
he pipeline construction
c method known as “Sp
pread
Tech
hnique”. The
e different sta
ages were shown to sho
ow the seque
ence of workk usually follo
owed
i.e. tthe activitiess precedence
e, and the re
esources utilized in each
h activity. Un
nderstanding
g this
sequ
uence is a main
m step in identifying th
he schedulin
ng problem and
a developiing the proposed
simu
ulation mode
el presented in this research.

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.

4.3 Proposed Models

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.

4.3.1 Johnson’s Rule

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:

Table 4-1: 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
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:

Table 4-2: 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)

Next, the makespan is minimized by applying Johnson’s rule. The five jobs are divided to two
sets (SPT) and (LPT) as follows:

Table 4-3: Dividing jobs into two sets

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).

4.3.2 Mixed Integer Programming

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)

With the following constraints:

=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:

Table 4-5: 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:

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

Table 4-7: Decision Variable Matrix (xjk)

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

Table 4-8: Idle Time Matrix


M (Iik)

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

The target cell, for


f which the
e objective is to be minimized, would contain
c the equation:
e

min( + , )

Orriginal Sche
edule

Decision Variable
V
Matrix (xjk)
Target Ce
ell

Op
ptimum Sche
edule

(Eq. 3-8) Constraints


C Idle Time Matrix (IIik) Wa
aiting Time Matrix
M (Wik))

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:

Table 4-9: Completion times for jobs in man-hours

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.

4.3.3 Slope Heuristic:

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)

Where, m = total no. of machines


i = machine number
pij = processing time of job (j) in machine (i)

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:

Table 4-11: 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 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):

= −(3 − ((2 × 1) − 1) × 62 − (3 − ((2 × 2) − 1) × 60 − (3 − ((2 × 3) − 1)


× 78
= 32

The following table presents values of (Aj) for jobs j1 to j5:

Table 4-12: Slope Index for jobs

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).

4.4 Summary and Conclusion

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.

5.2. Simulation Software

The simulation software used is called “AnyLogic”. It is a general-purpose modeling and


simulation tool for discrete, continuous and hybrid systems. It supports all three well-known
modeling approaches: System dynamics, Discrete event simulation, Agent-based modeling in
addition to any combination of these approaches within a single model. AnyLogic includes a
graphical modeling language i.e. the model is built in a graphical editor that allows the user to
edit the diagram of the model graphically. It also allows the user to extend simulation models
using Java code.

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”.

Network-based or layout-based modeling is used to model processes that take place in a


certain physical space, referred to as a Network, with moving entities and resources. To use
the "Network” set of objects, the network topology needs to be defined. A network is a set of
nodes interconnected with segments. It may have parts that are not connected to each other.
The entities and resources are automatically animated moving along the network segments or
staying at nodes. Movement always is done along the shortest path between the origin and
the destination nodes. Entities and resource units may have individual speeds; moreover,
those speeds may change dynamically. For example, you can set different speed for loaded
and unloaded trucks. It is assumed that segments have unlimited capacity, so entities moving
along a segment do not interfere.

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.

The corresponding class used in models is ResourceUnit. ResourceUnit is a base class


for all types of resources. Each resource type belongs to either a ResourcePool object or
NetworkResourcePool object. Like the Entity class, ResourceUnit 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. NetworkResourcePool is a resource pool that is
used in Network-based Modeling. Its resource units are similar to the "regular" ones, those
that are defined with ResourcePool object, but have additional properties that help in
managing them within the network. Each resource unit has its home node in the network
which could be, for instance, a storage yard for equipment or a base camp for labor. The
resource units can be static, moving, or portable. Static resources are bound to a particular
location, i.e. a node, within the network and cannot move or be moved. An example of a static
resource would be tower crane or workshop machinery. Moving resources can move on their
own; they can represent workers or vehicles. Portable resources can be moved by entities or
by moving resources. Portable devices or construction materials would be an example of

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.

5.3. Model Development

As mentioned previously, AnyLogic depends on a graphical interface; it allows the user to


build the model using the libraries of active objects by “Drag & Drop”. The interface [figure (5-
1)] consists of a number of views as follows:

• 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

e costume classes for en


2- Creating the ntities and re
esources as needed i.e. adding
a addittional
characteristics to entitiess’ and resourrces’ classess

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.

4- Creating the “Simulatio


on” experim
ment which runs modell simulation with animation
displayed and
a model debugging enabled. Th periment in each mode
he first exp el is
automatically created.

e “Optimizatiion” experiment which iss used to find


5- Creating the d the optima
al combinatio
on of
conditions resulting
r in the best po
ossible soluttion by mak ns about system
king decision
parameters and/or structture.

37
5.3.1. Stage
e (1): Creating of Mo
odel Animation

The first stage iss to draw the


e elements required
r for the animatio
on of the mo
odel components.
Thesse compone
ents include 1)
1 the netwo odes and paths between them and 2
ork i.e. the no 2) the

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.

Figure 5-2: Palette Vie


ew Window

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

1.1) ngle is draw


A rectan wn using the angle either in “Drag & Drop” mode by
e tool Recta
gging the too
drag ol from the Presentation
P palette to th
he graphical editor and modifying
m its size
usin
ng the handle
es on the sh
hape’s borde
er or in Draw
wing mode by clicking on
n tool next to
o the
Recctangle and drawing
d the shape
s with th
he required size
s in the gra
aphical edito
or.
1.2) Modify the
t name of the rectanglle from the properties
p view after sele
ecting it from
m the
phical editor into Reside
grap enceCamp and modify its colors ass needed.
1.3) Repeat steps (1.1) & (1.2) to draw the re
ectangles wiith the name
es PipeYa
ard,
ent
titySourc e1 through Pline10. Rectangle
ce, Pline es Reside
enceCamp and
peYard wo
Pip ould be used as home no
odes for the resources
r ass explained la
ater. Rectan
ngles
ine1 throug
Pli gh Pline1
10 represen
nt the ten sttations that compose th
he stretch off the
pipe
eline served by this camp. The pointt of entry of the entities to the netwo
ork would be
e the
ent ce rectangle.. The arrange
titySourc ement of recctangles is sh
hown in figurre (5-3).
1.4) Three lin
nes are draw
wn using the tool Line either in “Drag
g & Drop” orr Drawing modes
as illustrated in
n step (1.1). One line nnect entitySource and Pli
e is to con ine1
angles.
recta The second co
onnects ResidenceCa
amp and PipeYard
P rectangles. The
third
d line, calle
ed Connec d, is used to connecct ResidenceCamp with
ctingRoad
Pli
ine6.
1.5) Two pollylines are drawn
d using the tool Polyline in drrawing mode
e as illustrate
ed in
p (1.1). The two polyline
step es are used to connect rectangles
r P
Pline1 thrrough Plin
ne10
by p
placing one point of the polyline in each recttangle. One
e polyline would
w be na
amed
Pli ion. It would be set as a home path for a type of resource ass explained later.
ineLocati l

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

Inspecttion Team Ins


spectorShape

5.3.2. Stage
e (2): Creating of Co
ostume Cla
asses

The second sta


age is creatiing costume
e classes for entities an
nd resources
s. Some mo
odels
uire adding additional
requ a cha
aracteristics to entities’ and
a resource
es’ classes in
n order to ha
ave a
bette
er model off the proble
em. This pro
ocess resultts in a sub
bclass of cla
ass Entity
y or
Res it. A subcla
sourceUni ass inherits the properties of its su
uper class in
n addition to
o the

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:

2.1) In the Project view, right-click


r the
e model item
m Main which
h is the main object where
e the
del is built, an
mod nd choose New | Java Cllass from the
e popup men
nu
2.2) The New
w Java Clas
ss wizard is displayed.
d On
n the first pa
age of the wizzard, the nam
me of
the new Java class Station is specified in the Name
e field and th
he superclasss name Enttity is
chossen in the Su
uperclass edit box as in figure
f (5-4)

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

Name Type Access I


Initial Valu
ue Description
Counteer of the num
mber of pipees
PipeeNo double Public 0
sent to a station
The staation’s priorrity in
StrnngPriority double Public 0 entering “Pipe Striinging”
y
activity
Numbeer of trucks assigned to a
TruckNo double Public 0
station
The staation’s priorrity in
BenndPriority double Public 0 entering “Pipe Bennding”
activityy
Factor to representt the numbeer
of bendds needed foor the pipes of
BenndNo double Public 0
a statioon. It dependds on the
station’’s topology.
The staation’s priorrity in
WelldPriority double Public 0
entering “Weldingg” activity
Numbeer of welderr teams
WellderNo double Public 0
assigneed to a statio
on

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

5.3.3. Stage (3): Creating of Model Diagram

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.

Sub-stage (1): Definition of Resource Pools

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

3.3) Repeat step (3.2) to


o create ressource poolss for the ressources: Pipes, Trucks, Side
ms, Pipe ben
boom nders, Welde
ers, Excavato
ors, Inspectio
on teams, Coating teamss, Bulldozerss and
Hydro-testing tea
ams. The pro
operties of each
e resource
e pool are sh
hown in appe
endix-B.

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

Thiss sub-stage contains the


e steps of creating
c the entities tha
at represent the stationss, as
disccussed before
e, and placin
ng these entitties in the ne
etwork.

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.

Name: source (The default name)


Entity class: Station (The name of the subclass
created in second stage)

Arrivals defined by: Rate

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:

Name: networkEnter (The default name)


Entity class: Entity (The name of the subclass created in second stage)

Network: network (The network defined in step (3.1))


Entry node: entitySource (Part of the graphical network. Refer to step (1.3))
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=stationProps3[i];
if( entity instanceof Station ) ((Station)entity).BendPriority =
bendProp1;
bendProp2=stationProps4[i];
if( entity instanceof Station ) ((Station)entity).BendNo =
bendProp2;

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:

Table 5-3: Arrays Properties

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

Entity class: Entity


List of Resources: (The name for the resource pool of pipeline
{Pline} stations’ location)

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

Entity class: Entity


Destination is: Seized resource unit

Resource: Pline (The name for the resource pool of


pipeline stations’ location)

On exit: count1++; (a code that counts the number of


entities that pass through the current
object)
4.6) The next object to be implemented in the model is Queue. It is drawn from the
Enterprise palette next to NetworkMoveTo object and a connector is drawn between the
latter’s right port and the left port of Queue object. A Queue is a buffer for entities waiting to
be accepted by the next object in the process flow, or a general-purpose storage for the
entities. As in the NetworkSeize object, entities inside the Queue are either arranged
according to (FIFO) rule or based on their priority. The priority may be explicitly stored in the

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).

Figure 5-9: Sub--stage (2) – Creating En


ntities

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

Entity class: Entity


List of {Sideboom,Pipe,Pipe,Pipe,Pipe, (The name for the
Resources: Pipe,Pipe,Pipe,Pipe,Pipe,Pipe} resource pool of pipes and
side booms)
Enable Checked (An option that specifies
Preemption:
the queue as priority
based)

Entity ((Station)entity).StrngPriority (The entity’s property on


priority:
which the priority of
queue is based)
5.2) The next object is also a NetworkSeize object. It is called “SeizeTrk”. This object
allows entities to seize trucks to use them in transporting pipes from the pipe yard to the
pipeline construction site. The queue of entities is arranged based on their priority
StrngPriority. In addition, the object allows each entity to seize either 1 or 2 trucks
based on a property called TruckNo. Each entity is assigned with a number, either 1 or 2,
in step (3.6). Therefore, as each entity enters the “SeizeTrk” object, it takes its place in the
queue based on its priority and when its turn comes, the entity seizes either 1 or 2 trucks
based on the number assigned to its property TruckNo. In addition, the variable time1
stores the time at which the entity with the highest priority i.e. (10) enters the “SeizeTrk”
object. This variable will be used to calculate the total time of the construction process.
Another action done by this object is to distribute the seized pipes on the trucks according to
number of the latter. “SeizeTrk” object’s properties are modified as follows:

51
Name: SeizeTrk

Entity class: Entity


List of Resources: (The following code is used to decide whether to seize one or
two trucks for the entity)
((Station)entity).TruckNo == 1 ? new NetworkResourcePool[] {
Truck } : new NetworkResourcePool[] { Truck, Truck }
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 10 enters the “SeizeTrk” object)
if (((Station)entity).StrngPriority == 10)
time1=time();
On exit (The following code is executed as every entity exits the
object. it is used to distribute the number of seized pipes on
the number of trucks used)
if (((Station)entity).TruckNo == 1)
((Station)entity).PipeNo = 1;
else
((Station)entity).PipeNo = 2
(An option that specifies the
Enable Preemption: Checked
queue as priority based)
(The entity’s property on
((Station)entity).Strng which the priority of queue is
Entity priority:
Priority
based)
5.3) The next object NetworkSendTo is drawn from the Enterprise palette next to
“SeizeTrk” object. This object is used to send network resources from their current location(s)
to a new location in the network. It can only move moving resources such as trucks or
portable resources such as pipes but they have to be escorted by moving resources. The
resource units sent by this object may be at different locations. The entity will exit this object
once the last unit arrives at the destination location, therefore the time spent by the entity in
this object equals the longest travel time of the unit being sent. The speed of each group of
units sent together equals the speed of the slowest moving resource in that group. The
resource units will be animated moving along the shortest path from their origin to the
destination. The current object, called “SendToPipeYard”, is used to send the trucks from the
base camp to the pipe yard where the pipes would be loaded on it. “SendToPipeYard”
object’s properties are modified as follows:

Name: SendToPipeYard

Entity class: Entity


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

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

Entity class: Entity


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,Sideboom } : new
NetworkResourcePool[] { Truck,Truck,Pipe,Pipe,Sideboom
}
Destination is Entity (The option selected to identify the destination as the
current location of the entity that seizes the
resources)

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

Entity class: Entity

Delay time is Specified explicitly

triangular( 10, 12.5, (The duration of the activity in


Delay time: hours takes a triangular
15 )
distribution function)

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:

Name: SelectOutput (The default name)


Select (The option selected to specify
True If the condition is true
the condition used)
output:
Condition: ((Station)entity).PipeNo>=10
On exit (false): (The following code is used to count the number of pipes
delivered to the entity and adds them to the entity’s
PipeNo)

((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)

5.9) Following “SendToPipeYard1” object, another NetworkSendTo object is added and


named “SendToSite1”. Its properties and function are similar to those of “SendToSite” object
added in step (3.14). This object is used to send both the trucks and pipes from the pipe yard
to the construction site. The output port of the object is connected with the input port of the
Delay object “PipeStringing” added instep (3.15) in order to repeat the Pipe Stringing activity
once more. its properties are as follows:

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 }

Destination is: Entity (The option selected to identify the destination as


the current location of the entity that seizes the
resources)

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)

Moving Stayy where theyy are (The option sele


ected to spe
ecify where the
resourc
ces: relea
ased moving
g resources,, if any, should
go)

The objects that constitute th


he “Pipe Strin
nging” activitty are shown
n in figure (5--9).

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)

On exit: hold1.setBlocked(true) (a code that closes hold1 after the


entity exits)
Enable exit on Checked
timeout: (It allows the entity to exit through
OutTimeout port)
Timeout: 1 (The maximum waiting time
before the entity exits from
OutTimeout port)
Enable Checked (An option that specifies the
Preemption: queue as priority based)
Entity Priority: ((Station)entity).Be (The entity’s property on which
ndPriority the priority of queue is based)

The properties of the Hold object are to be as follows:


Name: Hold1
(The value of “hold1Limit” is decreased
On enter: hold1Limit--;
by 1 as an entity enters)
Initially blocked: checked

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)

Entity ((Station)entity).Bend (The entity’s property on which the


priority: Priority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

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

Delay time is: Specified explicitly

triangular( 115, 125,


(The duration of the activity
140 ) *
Delay time: in hours takes a triangular
((Station)entity).BendNo
distribution function)
/3
6.4) The last object of “Pipe Bending” activity is “ReleaseBndr” NetworkRelease object. It
releases both the side boom and the pipe bending machine. Its properties are modified as
follows:

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)

On at exit: if (a code that opens


(((Station)entity).WeldPriorit “hold2” object when the
y == hold2Limit) entity with priority equals
hold2.setBlocked(false) “hold2Limit”)
On exit: hold2.setBlocked(true) (a code that closes “hold1” after
the entity exits)
Enable exit on Checked (It allows the entity to exit through
timeout: OutTimeout port)
Timeout: 1 (The maximum waiting time before
the entity exits from OutTimeout
port)
Enable Checked (An option that specifies the queue
Preemption: as priority based)

58
Entity Priority: ((Station)entity).We (The entity’s property on which the
ldPriority priority of queue is based)

The properties of the Hold object are to be as follows:

Name: hold2
(The value of “hold2Limit” is decreased
On enter: Hold2Limit--;
by 1 as an entity enters)
Initially blocked: checked

The properties of “SeizeWldr” object are to be as follows:

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 }

Enable Checked (An option that specifies the queue as


Preemption: priority based)

Entity ((Station)entity). (The entity’s property on which the


priority: WeldPriority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

Destination is: Entity

The properties of “SeizeSdboom1”object are to be as follows:

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

Enable Checked (An option that specifies the queue as


Preemption: priority based)

Entity ((Station)entity). (The entity’s property on which the priority


priority: WeldPriority of queue is based)

Send seized Checked (An option that sends the seized resources
resources: to a given destination)

Destination is: Entity


As for the Delay object “PipeWelding”, the delay time is a function of number of welders i.e.
the number of welded pipes. The properties of “PipeWelding” object are as follows:

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)

For the Network


kRelease ob
bject “Release
eWldr”, the properties
p arre modified as
a follows:

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 }

Moving Return to home location (The option


n selected to
o specify wheere
ces:
resourc the release
ed moving reesources, if any,
a
should go)

And the last ob


bject in the sequence,
s NetworkRele
N ease object “ReleaseSdboom2”, hass the
me properties as “Release
sam eSdboom1” in step (3.21)) as follows:

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:

Moving Stayy where theyy are (Th


he option sellected to spe
ecify where th
he released
resourc
ces mooving resourc
ces, if any, should go)

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)

Entity ((Station)entity).Weld (The entity’s property on which


priority: Priority the priority of queue is based)

Send seized Checked (An option that sends the


resources: seized resources to a given
destination)
Destination Entity
is:

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

triangular(75, 83.3, (The duration of the activity in


Delay time: hours takes a triangular
90 )
distribution function)

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

7.4) The OutTrue port of “SelectOutput1” object is connected to a NetworkRelease


object named “ReleaseInspctr”. Entities exiting through OutTrue port are the entities that
passed the inspection; hence, the inspectors shall be released. “ReleaseInspctr” have the
following properties:

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)

Entity ((Station)entity). (The entity’s property on which the


priority: WeldPriority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

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

triangular( 42, 50, (The duration of the activity in hours


Delay time:
60 ) takes a triangular distribution function)
7.7) After finishing the weld repair, the entity releases both the side boom and the welder.
This shall be done through two NetworkRelease objects “ReleaseWldr1” and
“ReleaseSdboom3”. “ReleaseWldr1” object has the following properties:

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:

Moving Return to home (The option selected to specify where the


resources released moving resources, if any, should
location
go)

While “ReleaseSdboom3” has the following properties:

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

Delay time: triangular( 7.5, 8.33, (The duration of the activity in


9 ) hours takes a triangular
distribution function)

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

Thiss sub-stage contains


c the sequence off objects thatt simulate thrree activities
s. These activvities
are Coating of Welded
W Join
nts, Pipeline Trench Exccavation and
d Lowering of
o Pipes into
o the
Tren
nch. The seq
quence of obj ee activities iss the same. The entities shall
bjects for eacch of the thre
passs through a Queue
Q objecct, followed by
b a Hold ob
bject and a NetworkSeiz
N ze object, the
en, a
Dela
ay object and
d finally a Ne
etworkRelea
ase object.

8.1) For the first activityy, Joints Coa


ating, the en
ntities (statio
ons) will be held
h in a prriority
ed Queue “queue3”
base “ bassed on theirr CoatPrio
ority valu
ue. The Holld object “ho
old3”
remains closed until the entity with Coat y value equal to 10 arrivves to the qu
tPriority ueue.
Onlyy then, the Hold
H t pass and closes agaiin waiting for the
object will open forr this entity to
entitty with Coat y value equ
tPriority ual to 9 to arrive
a to the queue and so on (see step
(3.22
2)). The enttity, which pa
asses throug
gh the “hold3
3”, enters “S
SeizeCoating
g” NetworkS
Seize
obje
ect and seize
es a “Coatin
ngTeam” Re
esource, if avvailable, and
d sends the resource to
o the
statiion’s location
n. Once the
e resource arrives
a to itss station, the
e entity exitss “SeizeCoa
ating”
obje
ect and enters the Delay
y object “Coating” to spe
end the time
e of executio
on of the acttivity.
Fina
ally, the e
entity relea
ases the “CoatingTea
am” Resou
urce at “ReleaseCoa
“ ating”
Netw
workRelease object and
d sends it to its home loccation or a new station. The
T propertie
es of
thesse objects are
e as follows:

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)

Enable Checked (An option that specifies the


Preemption: queue as priority based)

Entity ((Station)entity).Coat (The entity’s property on which


priority: Priority the priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

Destination Entity
is:

Name: Coating
Specified explicitly
Delay time is

Delay time: triangular( 22, 25, 28 ) (The duration of the activity


in hours takes a triangular
distribution function)
Name: ReleaseCoating
Release: Specified resources (The option selected to specify that only the
selected resources would be released)
List of {CoatingTeam} (The following code is used to release the
Resources: seized pipes whether they are one or two)

Moving Return to home (The option selected to specify where the


resources released moving resources, if any, should
location
go)

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”)

On exit: hold4.setBlocked(true) (a code that closes “hold4”


after the entity exits)
Enable exit on Checked (It allows the entity to exit
timeout: through OutTimeout port)
Timeout: 1 (The maximum waiting time before
the entity exits from OutTimeout
port)
Enable Checked (An option that specifies the queue
Preemption: as priority based)
Entity Priority: ((Station)entity). (The entity’s property on which the
ExcvPriority priority of queue is based)

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)

((Station)entity).ExcvNo == 1 ? new NetworkResourcePool[]


{ Excavator } : new NetworkResourcePool[] { Excavator,
Excavator }

Enable Checked (An option that specifies the


Preemption: queue as priority based)

Entity ((Station)entity).Excv (The entity’s property on which


priority: Priority the priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

66
Destination Entity
is:

Name: Excavation
Specified explicitly
Delay time is

Delay time: ((Station)entity).Excvdiff/2 (The duration of the


*triangular( 250, 300, 330 activity in hours takes
)/((Station)entity).ExcvNo a triangular distribution
function)
Name: ReleaseExcvtr
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 excavators)

((Station)entity).ExcvNo == 1 ? new NetworkResourcePool[]


{ Excavator } : new NetworkResourcePool[] { Excavator,
Excavator }

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”)

On exit: hold5.setBlocked(true) (a code that closes “hold5” after the


entity exits)
Enable exit on Checked (It allows the entity to exit through
timeout: OutTimeout port)
Timeout: 1 (The maximum waiting time before
the entity exits from OutTimeout port)

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)

Enable Checked (An option that specifies the


Preemption: queue as priority based)

Entity ((Station)entity).LwrPr (The entity’s property on which


priority: iority the priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

Destination Entity
is:

Name: PipeLowering
Specified explicitly
Delay time is

Delay time: triangular( 13, 15, 18 ) (The duration of the activity in


hours takes a triangular
distribution function)
Name: ReleaseSdboom4
Release: Specified resources (The option selected to specify
that only the selected resources
would be released)
List of {Sideboom,Sideboom,Side (The name for the resource pool
Resources: boom,Sideboom,Sideboom} of side booms)

Moving Stay where they are (The option selected to specify


resources where the released moving
resources, if any, should go)

The sequence of objects in this sub-stage is shown in figure (5.12).

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

Thiss sub-stage contains


c the sequence of
o objects tha
at simulate tw
wo activities. These activvities
are Joints welding and Weld
d inspection.. Both activitties have the
e same sequ
uence of objects.
Entitties seize th esources thrrough a NettworkSeize object, then, they spend
he needed re d the
dura
ation of the activity in a Delay obje
ect. Finally, they
t release
e the seized resources vvia a
Netw
workRelease object.

For “Joints Weld


ding” activity,, entities seizze a welder and
a a side boom
b in “SeizzeWldrSdboo
om1”
ect. Similar to
obje o “Joint Inspecting” activ
vity in step (3
3.27), any sta
ation, where
e lowering acctivity
is fin
nished and regardless
r of its WeldPriority, shall seize “Welder” resource first i.e. it
will be “First In, First Out” (FIFO) base
ed. Howeverr, if two enttities requestted the “We
elder”
ource in the same time, WeldPriority of bo
reso oth entities will
w decide which
w one ge
ets it.
Thiss method will also be app
plied for “We
eld Inspectio
on” activity in
n the next ste
ep. Next, en
ntities
ente
er Delay object “PipeWe
elding1” for the duration
n of the activvity which ta
akes a triang
gular
distrribution. Fina
ally, entities release the
e seized resource “Weld
der” and sen
nd it to its h
home
loca
ation by “Re
eleaseWldr” object whiile “Release
eSdboom5” object is used
u to release
“Sideboom” reso
ource and keeps
k it where it is waiting for the next
n seize. The
T propertie
es of
thesse objects are
e as follows:

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

Delay time: triangular( 8, 10, (The duration of the activity in hours


12) takes a triangular distribution function)

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)

Enable Checked (An option that specifies the queue as


Preemption: priority based)

Entity ((Station)entity). (The entity’s property on which the


priority: WeldPriority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

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)

Moving Return to home location (The optiion selected to specify where


w
ces
resourc the relea
ased moving resources, iff any,
should go)

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

Thiss is the last sub-stage


s of the
t stage of creating the model diagrram. It contains the sequence
of objects
o that simulate
s the last two acctivities in th
he pipeline construction
c project; theyy are
eline Trench Backfilling and
Pipe a Hydro te
esting of Pipeline. Both activities
a havve a sequencce of
obje
ects similar to ub-stage (6) activities. The
t that of su T entities shall
s pass th
hrough a Qu
ueue
ect, followed by a Hold object and a NetworkSeiz
obje N ze object, the
en, a Delay object and fiinally
a Ne
etworkRelea
ase object.

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)

On at exit: if (a code that opens


(((Station)entity).BckflPrior “hold6” object when the
ity == hold6Limit) entity with priority equals
hold6.setBlocked(false) “hold6Limit”)

On exit: hold6.setBlocked(true) (a code that closes “hold6”


after the entity exits)
Enable exit on Checked (It allows the entity to exit through
timeout: OutTimeout port)
Timeout: 1 (The maximum waiting time
before the entity exits from
OutTimeout port)
Enable Checked (An option that specifies the
Preemption: queue as priority based)
Entity Priority: ((Station)entity).Bc (The entity’s property on which
kflPriority the priority of queue is based)

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)

Entity ((Station)entity). (The entity’s property on which the


priority: BckflPriority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

Destination Entity
is:

Name: Backfilling
Specified explicitly
Delay time is

Delay time: triangular(160, 180, 200 (The duration of the activity


)/((Station)entity).Bldz in hours takes a triangular
rNo distribution function)
Name: ReleaseBulldzr

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)

On at exit: if (a code that opens hold7


(((Station)entity).HdrtstPri object when the entity with
ority == hold7Limit) priority equals hold7Limit)
hold7.setBlocked(false)

On exit: hold7.setBlocked(true) (a code that closes hold7 after the


entity exits)
Enable exit on Checked (It allows the entity to exit through
timeout: OutTimeout port)
Timeout: 1 (The maximum waiting time before the
entity exits from OutTimeout port)
Enable Checked (An option that specifies the queue as
Preemption: priority based)
Entity Priority: ((Station)entity). (The entity’s property on which the
HdrtstPriority priority of queue is based)

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)

Enable Checked (An option that specifies the queue


Preemption: as priority based)

Entity ((Station)entity).Hdrt (The entity’s property on which the


priority: stPriority priority of queue is based)

Send seized Checked (An option that sends the seized


resources: resources to a given destination)

Destination Entity
is:

Name: HydroTesting
Specified explicitly
Delay time is

Delay time: triangular( 45, 50, 55 ) (The duration of the activity in


hours takes a triangular
distribution function)
Name: ReleaseHydtest
Release: Specified resources (The option selected to specify that only the
selected resources would be released)
List of {HydTestTeam} (The following code is used to release the
Resources: seized pipes whether they are one or two)

Moving Return to home (The option selected to specify where the


resources location released moving resources, if any, should go)

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)

Moving Stayy where theyy (The option selecte


ed to specify where the
resourc
ces are release
ed moving reesources, if any,
a should go)
g

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.

Figure 5--15: Sub-sta


age (8) - Tren
nch Backfillling and Hyd
dro-testing Activities

The final step to


o finish the model
m is to co
onnect all sta
ages togethe
er to get the layout of ob
bjects
wn in figure (5-7).
show (

5.3.4. Stage
e (4): Creating the “S
Simulation” experim
ment

The fourth main


n stage is crreating the “S
Simulation” e
experiment which
w runs model
m simulation
with animation displayed
d and
d model debu
ugging enabled. The firstt experimentt in each mod
del is
auto
omatically cre
eated. There
efore, no ste
eps would be
e presented to its develo
opment. The
e fifth
main
n stage whic
ch is creating
g “Optimization” experiment will be demonstrated
d d in detail in next
chap
pter.

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.

6.2. Optimization Experiment

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.

The first stage after


a adding a new optimization experiment, since
e it is not added to each new
mod
del by defaultt as in the ca
ase of simula
ation experim
ment, is to de
efine the obje
ective functio
on. It
is de
efined in the
e first page of
o propertiess view which is General page. The objective
o function
whicch is to minim
mize the tota
al time of co
onstruction process
p shalll be defined according to
o the
follo
owing steps:

1.1) A new functtion is create


ed in the ma
ain model. Th
he function object is drawn
from the
e General pa
alette into th
he graphical editor. Thiss function is used to get the

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.

During the optimization process, th


he paramete
er's value is changed within
w an inte
erval,
whicch is defined by lower an
nd upper bou
unds, according to its type. An optimization param
meter
type
e could be on
ne of the follo
owing:
• Continuo
ous parametter
• Discrete
e parameter
• Design parameter
p

Continuous parameter can


c take an
ny value from
m the intervval. The para
ameter preccision
dete
ermines the minimum
m value that contiinuous param
meters can change.
c Discrete parametter is
reprresented by a finite set of decisions with
w essentia
al direction i.e
e. it can take
e values from
m the
speccified set only. It begins a
at a lower bo
ound and inccrements by a specified step
s size up to
t an
uppe
er bound. On
O the other side, Desig
gn paramete
er is also represented by
b a finite set of
deciisions but the
ere is no cle
ear sense of direction. It begins at a lower bound
d and increm
ments
by a step size up to an up
pper bound. However, Values
V orderr is non-sequential. As each
optim
mization parrameter is de
efined, its typ
pe is chosen
n according to
t its nature and influencce on
the objective fu
unction. for example, any
a type of rate or rattio should be
b a continuous
para
ameter, while
e, number of a specific re
esource shou
uld be discrete or design..

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)

2.2) The previous step is repeated to create strng2, strng3, strng4………


strng9 & strng10.
2.3) All ten parameters strng1 to strng10 are placed in “stationProps1” array. Its
properties would be modified as follows:

Table 6-1: Properties of “stationProps1”

Name: stationProps1

Type: Other: int[]


Array for
new StrngPriority
Initial int[]{strng1,strng2,strng3,strng4,st
Value: rng5,strng6,strng7,strng8,strng9,str
ng10}

2.4) Returning to optimization window, in General page of the experiment’s properties go


to the row of the Parameters table containing the parameter strng1. In the Type field, the

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:

Table 6-2: Values of


o Optimization Parameter “Strng1”

Valu
ue
ameter
Para Type
Min Ma
ax Step
Sttrng1 design 1 100 1

The same values are entered


d for strng
g2 to strn
ng10 to be as
a shown in figure (6-3).

Figurre 6-3: Defining Optimizzation Param


meters

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:

Table 6-4: Values of Optimization Parameters

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:

Table 6-6: Definition of 2nd Cons


straint for Sttringing Opttimization Parameters

Ena
abled Exp
pression T
Type Bound
strng1*strrng2*strng33*strng4*strn
ng5*strng6**strng7*
= 3628800
strng8* strng9*strng
s g10

The constraints table would be as shown


n in the figure
e below

Figure 6-4: Constrraints Table in Propertie


es View

3.5) g the rest of the


Defining t constrain
nts by repeatting steps (3..1) to (3.4) would
w result in
n the
owing table:
follo

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

The fourth and last


l stage is forming the graphical prresentation for
f the experriment. Howe
ever,
as the outline off the graphiccal presentattion does no
ot affect the optimization experiment.. It is
just a way to sh
how the ongo
oing optimiza
ation processs and the fin
nal results in
n any convenient
wayy of the mode
eler’s choice
e. Therefore, the graphica
al presentatio
on used in th
he current model
m
wou
uld be briefly shown witho
out illustrating
g the specificc steps to pu
ut it together.

The graphical presentatiion consists of three partts. The butto


on used to ru
un the simula
ation,
a table to show the current and
a best iterration valuess for the optimization parrameters and
d the
obje
ective functio
on and a grap
ph to show th
he different values
v of obje
ective functio
on and its pa
attern
of declining
d witth iterationss. The figure
e below sh
hows the three parts fo
or one arra
ay of
optim
mization para
ameters.

88
F
Figure 6-5: Graphical
G Presentation
P n for Optimizzation Mode
el

6.3
3. Case Sttudy Description

The South Valle


ey Gas Pipeline is 930-kkm pipeline extending
e fro
om Dahshou
ur in the norrth to
Asw
wan in the so
outh with a 30"-32" diam
meter and to
otal investm
ment cost of about 5.7 billion
b
Egyptian poundss. The gas pipeline
p cross
ses the Nile at
a three sitess using Horizzontal Directtional
Drilling technology. It is conssidered the largest gas pipeline
p in Eg
gypt as its ca
apacity is aro
ound
12 billion
b cubic meters
m per annum.

The project wass a result of the efforts of


o a number of Egyptian petroleum sector
s compa
anies
such
h as The Egyptian Gas
G Holding Company, Ganoub Holding
H Com
mpany, GAS
SCO,
PET
TROJET and
d ENPPI. It consisted of
o six phase
es in addition to Dahsho
our compresssion
statiion to keep up
u with the exxpected grow
wing demand
d of gas. The
e phases were:

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

The phases of the South Valley Gas Pipeline we


ere complete
ed in Novem
mber 2009 as it
reacched Aswan and started to feed east and west the city. The average con
nstruction ra
ate of
the pipeline wass 360 m/ da
ay. The simulation model representts a 100-km segment of the
pipe
eline. It is div
vided into 10 stations with
h a length of 10 km each
h. The 100-km
m segment in
n the
case
e study took
k about 260 workdays orr 2,600 hourrs. The cons
struction team
m that worke
ed in
this segment is as
a follows:

• 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,400 Duration (hr)

2,350

2,300

2,250
0 10 20 30 40 50 60

Figure 6-7: Results of 50 Simulation Runs

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:

Name: networkEnter (The default name)


Entity class: Entity (The name of the subclass created in
second stage)
Network: network (The network defined in step (3.1))
Entry node: entitySource (Part of the graphical network. Refer to step
(1.3))

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.

Figurre 6-8: Secon


nd Stage Op
ptimization Model

After running the


e optimizatio
on model forr ten times, the
t result shown in the figure
f above was
reacched in all ru
uns. Instead of the original sequencce, an alternative sequen
nce was devvised
through the mod
del. The resulting sequen
nce is as follo
ows:

Table 6-8:: Second Sttage’s Resullting Sequence of Work


k for Pipelin
ne Stations

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

The result of opttimization sh


hows a reduc
ction of total duration from 2,408 hou
urs in the original
sche
edule to 2,24
47 hours i.e. 161 working
g hours were
e saved with
h a reduction ratio of 6.6%
%. In
addiition, no bugs were encountered runn
ning the optim
mization mod
del.

As the second stage of runs was co


ompleted succcessfully, the optimizatio
on model deffined
in th
he previous chapter
c coulld be used to complete the objective
e of the rese
earch by deffining
the optimum
o sch
hedule in the
e third stage of
o runs. As the model will not need any
a modificattions,
the results of this
t stage would
w be pre
esented stra
aight away. However, due
d to hardw
ware
limittations of the
e computer used
u to run th
he optimizatiion model, th
he model could not be ru
un as
a whole.
w Thereffore, a num
mber of optim
mization sub
b-models we
ere develope
ed to reduce
e the
num
mber of variab
bles in each sub-model to
o match the computation
nal abilities off the computter.

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:

Table 6-9: Final Seque


ence of Worrk for Pipelin
ne Stations

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

The result of optimization sh


hows a total duration of 2,238
2 hours.. This sequence has reduced
170 working hou
urs in compa
arison to the original seq
quence with a reduction ratio
r of 7.1%
%. No
bugss were encountered runn
ning the optim
mization mod
del.

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:

1. Is the actual schedule reasonable?

2. Is the optimized schedule reasonable?

3. Is using the simulation model easy?

4. Is changing any parameters in the model easy?

5. Would you use it in scheduling a real project?

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

2. The model needs to be more user-friendly as it is hard to modify any parameter or


any part of the model to fit another project

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

As the simulation model wass finished in the previouss chapter, the


e next stage was to consstruct
the o
optimization model. It wo
ould be used to find an op
ptimal solutio
on for the sch
heduling problem
in ha
and. The sta
ages of consstruction of this model we
ere shown in
n this chapte
er. The first stage
s
was defining the
e objective fu
unction whicch is the con
nstruction tim
me. The seco
ond stage wa
as to
defin
ne the optim
mization para
ameters whicch would be used to rea
ach the optim
mal solution. The
third
d stage was defining the constraints that control the values assigned
a forr the optimization
para
ameters. The
e final stage
e would resu
ult in a graph
hical represe
entation of th
he iterationss and
finall result of the
e optimizatio
on process. In
I the last pa
art of the chapter, a real case studyy was
pressented to evvaluate the re
esults’ accurracy againstt the real figures and itss effectivenesss in
redu
ucing the total duration of
o the projec
ct. The valida
ation of the model using
g a questionn
naire
that was presentted to five prrofessionals in project ma
anagement field
f has sho
own that altho
ough
the model still ne
eeds to be e
easier to use
e, it significan
ntly improvess the schedu
uling processs and
wou
uld be a very useful tool in
n the future.

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:

1. Difficulty of Visualizing the entire project.


2. Continuity of work for crews is not ensured.
3. Dealing with resources constraints is very difficult.
4. Difficulty of incorporating the probabilistic nature of durations
5. Logical interconnections are extremely difficult to comprehend.
6. Inability to give justifications for management for their decisions
7. Difficulty of predicting needed corrective actions.
8. Dealing with space related constraints

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.

7.2. Research Contributions

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:

1. The primary contribution of this research is the development of a scheduling


simulation model for scheduling repetitive linear construction projects in general, and
pipeline construction projects in particular. Both typical and atypical activities could be
modeled easily in same model.

2. Identifying the activities required in pipeline construction projects and their


interrelationships by means of studying the literature, reviewing industry references
and performing an in-depth analysis of a solid case study.

3. The development of a method that aids the management in running multiple


scenarios for any needed corrective action plan.

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.

6. The model allows utilization of multiple crews at different locations simultaneously

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.

7.3. Recommendations for Future Research

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

Java Code for Costume Class “Station”

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

Resource Pools Properties

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

Bar Charts for Actual and Optimized Schedules

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.

Arditi, D. and Albulak, Z. (1986). Line-of-Balance Scheduling in Pavement Construction.


Journal of Construction Engineering and Management. 112(3), 411-424.

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.

Chrzanowski, E. and Johnston, D. (1986), Application of Linear Scheduling. Journal of


Construction Engineering and Management. 112(4), 476-491.

Dressler, J. (1980). Construction Management in West Germany. Journal of the Construction


Division. 106(C04), 447-487.

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

El-Rayes, K. and Moselhi, O. (1998). Resource-Driven Scheduling of Repetitive Activities.


Construction Management and Economics. 16, 433-446.

Hajdasz, M (2014). Flexible management of repetitive construction processes by an


intelligent support system. Expert Systems with Applications. 41 (2014), 962–973.

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.

Kavanagh, D.P. (1985). SIREN: A Repetitive Construction Simulation Model. Journal of


Construction Engineering and Management. 111(3), 308-323.

Kim, K. and de la Garza, J. M. (2003). Phantom Float. Journal of Construction Engineering


and Management. 129(5), 507 - 517.

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.

Moselhi, O. and Hassanein, A. (2003). Optimized Scheduling of Linear Projects. Journal of


Construction Engineering and Management. 129(6), 664 - 673.

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.

Wagner, H.M. (1959). An Integer ProgrammingModel for Machine Scheduling. Naval


Research Logistics Quarterly. 6, 131–140.

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

You might also like