You are on page 1of 20

Sultan Qaboos University

College of Engineering
Department of Mechanical and Industrial Engineering

MEIE3271 –Methods of Operation Research


Spring 2021

TERM PROJECT

Financial Management and Time Exploiting

Done by:

Shahad Khalid Al Shariyani 126949


Rayyan Khalid Al Kharusi 127006
AlRayyan Saleh Al Rashdi 125756
Index:
Page:

Introduction……………………………………………………………………………2

Parameters……………………………………………………………………………...2

Decision Variables……………………………………………………………………..2

Objective 1 Formulation…………………………………………….………………….3

Objective 2 Formulation………………………………………………………………..3

Objective 3 Formulation………………………………………………………………..5

Objective 4 Formulation………………………………………………………………..6

Results of Task 1………………………………………………………………………..7

Discussion of Task 1…………………………………………………………………….11

Goal Programming Formulation…………………………………………………………14

Results of Task 2…………………………………………………………………………18

Discussion of Task 2……………………………………………………………………..18

Conclusion………………………………………………………………………………..19

1
Introduction:

An operation researcher in an oil company decides to hire drilling rigs to drill oil wells.
Knowing that drilling rigs have different capability, operation cost, moving cost and power
requirements. This report shows drilling operations schedule for rigs and wells in three different
data sizes (small, medium and large) to find the optimal solutions of four objectives using
CPLEX OPL program. Namely, minimizing total drilling time, minimizing total cost,
minimizing total distance travelled by all rigs and minimizing completion time of drilling all
wells. The parameters, decision variables and constraints for each objective and their
explanation are provided. Also, the optimal objective function values and the calculated values
of the remaining objectives as well as the discussion for each problem set and their CPU times,
%gap (within 10 minutes time limit) are provided. In addition, the route of rigs in each solution
for small and medium data size problems has been determined. Then, a goal programing
formulation was developed for the four objectives at the same time and solved for each test
problem. This report is concluded by summarizing all the obtained observations.

Task 1 of the project:

Parameters:

𝑁 = Number of drilling rigs ∀𝑖 = 1. . 𝑁


𝑀 = Number of new wells ∀𝑗 = 1. . 𝑀 , ∀𝑘 = 1. . 𝑀
max 𝐷𝑖 = Maximum depth of rig 𝑖 that can be drilled
𝐸𝑗 = Estimated depth of well 𝑗
𝑂𝑐 = Daily operating cost of rigs
𝑀𝑐 = Moving cost of rigs
𝑃𝑖𝑗 = Total time to drill well 𝑗 with rig 𝑖
𝑥𝑑𝑖 = X-coordinate of rig 𝑖
𝑦𝑑𝑖 = Y-coordinate of rig 𝑖
𝑥𝑤𝑗 = X-coordinate of well 𝑗
𝑦𝑤𝑗 = Y-coordinate of well 𝑗

𝑏𝑖𝑗 = √(𝑥𝑑𝑖 − 𝑥𝑤𝑗 )2 + (𝑦𝑑𝑖 − 𝑦𝑤𝑗 )2

𝑐𝑗𝑘 = √(𝑥𝑤𝑗 − 𝑥𝑤𝑘 )2 + (𝑦𝑤𝑗 − 𝑦𝑤𝑘 )2 j≠ 𝑘


1, if max 𝐷𝑖 ≥ 𝐸𝑗
𝑡𝑖𝑗 = {
0, otherwise

Decision Variables:

2
1,if rig 𝑖 drill well 𝑗
𝑎𝑖𝑗 = { ∀𝑖 , ∀𝑗
0, otherwise
1,if rig 𝑖 drill well 𝑗,well 𝑗 scheduled just before 𝑘
𝑠𝑖𝑗𝑘 = { ∀𝑖 , ∀𝑗, ∀𝑘
0, otherwise
1,if rig 𝑖 drill well 𝑗,well 𝑗 assigned to position 𝑛
𝑣𝑖𝑗𝑛 = { ∀𝑖 , ∀𝑗 , ∀𝑛 = 1. . 𝑀
0, otherwise

Objective Function 1: Total drilling time.


𝑁 𝑀

𝑀𝑖𝑛 𝑧 = ∑ ∑ 𝑃𝑖𝑗 𝑎𝑖𝑗


𝑖=1 𝑗=1

𝑆𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (1)

∑𝑁 ∀𝑗 (2)
𝑖=1 𝑎𝑖𝑗 = 1

𝑎𝑖𝑗 ∈ {0,1} ∀𝑖, ∀𝑗 (3)

Explanation of the Objective Function:

The objective is to minimize the total drilling time by summing the time spent to drill well 𝑗 by
rig 𝑖 multiplied by the binary decision variable 𝑎𝑖𝑗 that indicates if rig 𝑖 drills well 𝑗.

Explanation of the Constraints:

1) Rig 𝑖 can drill well 𝑗 when the maximum depth that can be drilled by the rig is higher
than the estimated depth of the well, otherwise the rig does not drill the well.
2) Each well can be drilled only by a rig (cannot be drilled by more than one rig).
3) 𝑎𝑖𝑗 is a binary decision variable (it can have a value only either 0 or 1).

Objective Function 2: Total cost.


𝑁 𝑀 𝑁 𝑀 𝑁 𝑀 𝑀

𝑀𝑖𝑛 𝑧 = ∑ ∑ 𝑂𝑐 ∙ 𝑃𝑖𝑗 ∙ 𝑎𝑖𝑗 + ∑ ∑ 𝑀𝑐 . 𝑏𝑖𝑗 . 𝑣𝑖𝑗1 + ∑ ∑ ∑ 𝑀𝑐 ∙ 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘


𝑖=1 𝑗=1 𝑖=1 𝑗=1 𝑖=1 𝑗=1 𝑘=1

𝑆𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

3
∑𝑁
𝑖=1 𝑎𝑖𝑗 = 1 ∀𝑗 (1)

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (2)

𝑠𝑖𝑗𝑘 ≥ 𝑣𝑖𝑗𝑛 + 𝑣𝑖𝑘(𝑛+1) − 1 ∀𝑖, ∀𝑗, ∀𝑘, 𝑗 ≠ 𝑘, 𝑛 < 𝑀 (3)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑘, 𝑗 ≠ 𝑘 (4)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑘 ∀𝑖, ∀𝑗, ∀𝑘, 𝑗 ≠ 𝑘 (5)

𝑣𝑖𝑗𝑛 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑛 (6)

∑𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≤ 1 ∀𝑖, ∀𝑛 (7)

∑𝑁 𝑀
𝑖=1 ∑𝑛=1 𝑣𝑖𝑗𝑛 = 1 ∀𝑗 (8)

(∑𝑀 𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≥ ∑𝑘=1 𝑣𝑖𝑘(𝑛+1) ) ∀𝑖, ∀𝑛, 𝑛 < 𝑀 (9)

𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 ∈ {0,1} , ∀𝑖, ∀𝑗 , ∀𝑘, ∀𝑛 (10)

Explanation of the Objective Function:

The objective is to minimize the total cost of drilling by summing the multiplication of drilling
time of rig 𝑖 to drill well 𝑗 by the operation cost of rig 𝑖 and multiplied by the binary decision
𝑚
variable 𝑎𝑖𝑗 that indicates if rig 𝑖 drills well 𝑗 (∑𝑁
𝑖=1 ∑𝑗=1 𝑂𝑐 ∙ 𝑃𝑖𝑗 ∙ 𝑎𝑖𝑗 ), plus the summation of
the movement distance between rig 𝑖 and well 𝑗 multiplied by movement cost of rig and by the
binary decision variable 𝑣𝑖𝑗1 that indicates if rig 𝑖 drill well 𝑗 and is assigned to the first position
(∑𝑁 𝑀
𝑖=1 ∑𝑗=1 𝑀𝑐 . 𝑏𝑖𝑗 . 𝑣𝑖𝑗1 ), plus the summation of movement distance between well 𝑗 and well 𝑘
which are in sequence, multiplied by movement cost of rig and by the binary decision variable
𝑠𝑖𝑗𝑘 that indicates if rig 𝑖 drill well 𝑗 and well 𝑘 is followed it (∑𝑁 𝑀 𝑀
𝑖=1 ∑𝑗=1 ∑𝑘=1 𝑀𝑐 ∙ 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘 ).

Explanation of the Constraints:

1) Each well can be drilled only by a rig (cannot be drilled by more than one rig).
2) Rig 𝑖 can drill well 𝑗 when the maximum depth that can be drilled by the rig is higher
than the estimated depth of the well, otherwise the rig does not drill the well.
3) When there is a position for the rig 𝑖 to drill well 𝑗 and there is another position for rig
𝑖 to drill well 𝑘 then 𝑠𝑖𝑗𝑘 will have a value higher than or equal the sum of the values
of 𝑣𝑖𝑗𝑛 and 𝑣𝑖𝑘(𝑛+1) (when the rig drill well 𝑗 and well 𝑘 respectively) minus 1 (because
𝑠𝑖𝑗𝑘 is a binary decision variable and cannot have a value more than 1).
4) Condition that if rig 𝑖 move to well k which is scheduled after well 𝑗 (𝑠𝑖𝑗𝑘 ), then for
sure rig 𝑖 moved to well 𝑗 first (𝑎𝑖𝑗 ).

4
5) Condition that if rig 𝑖 drills well 𝑘 (𝑎𝑖𝑘 ) then it is concluded that this operation drilling
well happened after drilling well 𝑗 .
6) Condition that if rig 𝑖 is assigned to well 𝑗 (𝑎𝑖𝑗 ) at a position (𝑣𝑖𝑗𝑛 ), if the position is
placed, then there is a rig drills well 𝑗.
7) In each position of each rig there can be at most one well.
8) Each well must be assigned to one of the positions of the rigs.
9) Well 𝑗 is drilled by rig 𝑖 which is in position 𝑛 prior to well 𝑘 which is in position (𝑛+1).
10) 𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 are a binary decision variable (they can have a value only either 0 or 1).

Objective Function 3: Total distance.

𝑁 𝑀 𝑁 𝑀 𝑀

∑ ∑ 𝑏𝑖𝑗 ∙ 𝑣𝑖𝑗1 + ∑ ∑ ∑ 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘


𝑖=1 𝑗=1 𝑖=1 𝑗=1 𝑘=1

𝑆𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

∑𝑁
𝑖=1 𝑎𝑖𝑗 = 1 ∀𝑗 (1)

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (2)

𝑠𝑖𝑗𝑘 ≥ 𝑣𝑖𝑗𝑛 + 𝑣𝑖𝑘(𝑛+1) − 1 ∀𝑖, ∀𝑗, ∀𝑘, ∀𝑛, 𝑗 ≠ 𝑘, 𝑛 < 𝑀 (3)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑘 (4)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑘 ∀𝑖, ∀𝑗, ∀𝑘, 𝑗 ≠ 𝑘 (5)

𝑣𝑖𝑗𝑛 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑛 (6)

∑𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≤ 1 ∀𝑖, ∀𝑛 (7)

∑𝑁 𝑀
𝑖=1 ∑𝑛=1 𝑣𝑖𝑗𝑛 = 1 ∀𝑗 (8)

∑𝑀 𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≥ ∑𝑘=1 𝑣𝑖𝑘(𝑛+1) ∀𝑖, ∀𝑛, 𝑛 < 𝑀 (9)

𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 ∈ {0,1} , ∀𝑖, ∀𝑗 , ∀𝑘, ∀𝑛 (10)

Explanation of the Objective Function:

The objective is to minimize the total movement distance by summing distance travelled
between rig 𝑖 to well 𝑗 multiplied by the binary decision variable 𝑣𝑖𝑗1 that indicates if rig 𝑖 drill

5
well 𝑗 and is assigned to the first position (∑𝑁 𝑀
𝑖=1 ∑𝑗=1 𝑏𝑖𝑗 ∙ 𝑣𝑖𝑗1 ) and distance travelled by rig
𝑖 between well 𝑗 an well 𝑘 multiplied by the binary decision variable 𝑠𝑖𝑗𝑘 that indicates if rig 𝑖
drill well 𝑗 and well 𝑘 is followed it (∑𝑁 𝑀 𝑀
𝑖=1 ∑𝑗=1 ∑𝑘=1 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘 )

Explanation of the Constraints:

1) Each well can be drilled only by a rig (cannot be drilled by more than one rig).
2) Rig 𝑖 can drill well 𝑗 when the maximum depth that can be drilled by the rig is higher
than the estimated depth of the well, otherwise the rig does not drill the well.
3) When there is a position for the rig 𝑖 to drill well 𝑗 and there is another position for rig 𝑖
to drill well 𝑘 then 𝑠𝑖𝑗𝑘 will have a value higher than or equal the sum of the values of
𝑣𝑖𝑗𝑛 and 𝑣𝑖𝑘(𝑛+1) (when the rig drill well 𝑗 and well 𝑘 respectively) minus 1 (because
𝑠𝑖𝑗𝑘 is a binary decision variable and cannot have a value more than 1).
4) Condition that if rig 𝑖 move to well k which is scheduled after well 𝑗 (𝑠𝑖𝑗𝑘 ), then for
sure rig 𝑖 moved to well 𝑗 first (𝑎𝑖𝑗 ).
5) Condition that if rig 𝑖 drills well 𝑘 (𝑎𝑖𝑘 ) then it is concluded that this operation drilling
well happened after drilling well 𝑗 .
6) Condition that if rig 𝑖 is assigned to well 𝑗 (𝑎𝑖𝑗 ) at a position (𝑣𝑖𝑗𝑛 ), if the position is
placed, then there is a rig drills well 𝑗.
7) In each position of each rig there can be at most one well.
8) Each well must be assigned to one of the positions of the rigs.
9) Well 𝑗 is drilled by rig 𝑖 which is in position 𝑛 prior to well 𝑘 which is in position (𝑛+1).
10) 𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 are a binary decision variable (they can have a value only either 0 or 1).

Objective Function 4: The completion time

The non-linearized objective function:

𝑀𝑖𝑛 max ∑𝑀
𝑗=1 𝑃𝑖𝑗 𝑎𝑖𝑗

𝑆𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (1)

∑𝑁 ∀𝑗 (2)
𝑖=1 𝑎𝑖𝑗 = 1

𝑎𝑖𝑗 ∈ {0,1} ∀𝑖, ∀𝑗 (3)

The resones why the objective function is non-linear:

6
The above objective function is a nonlinear formula because it objective to minimize of the
maximum value of drilling time.
To convert the non-linear objective function to linear:

It been considered max ∑𝑀


𝑗=1 𝑃𝑖𝑗 𝑎𝑖𝑗 as one symbol for the maximum value of drilling time, such
as 𝑧 .

The final linear objective function was expressed in this form:

𝑀𝑖𝑛 𝑧

𝑆𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

𝑧 ≥ ∑𝑀
𝑗=1 𝑃𝑖𝑗 𝑎𝑖𝑗
∀𝑖 (1)

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (2)

∑𝑁 ∀𝑗 (3)
𝑖=1 𝑎𝑖𝑗 = 1

𝑎𝑖𝑗 ∈ {0,1} , 𝑧 ≥ 0 ∀𝑖, ∀𝑗 (4)

Explanation of the Objective Function:

The objective is to minimize the maximum completion time taken by a rig 𝑖 to drill all wells 𝑗.

Explanation of the Constraints:

1) The total completion time of drilling all wells is the largest value from the total time to
drill all wells by rigs.
2) Rig 𝑖 can drill well 𝑗 when the maximum depth that can be drilled by the rig is higher
than the estimated depth of the well, otherwise the rig does not drill the well.
3) Each well can be drilled only by a rig (cannot be drilled by more than one rig).
4) 𝑎𝑖𝑗 is a binary decision variable (can have a value only either 0 or 1).

Results:

• Assumption

1) All results have been rounded to 3 significant figure.


2) Z1 represent total drilling time for all three set problem.

7
3) Z2 represent total cost for all three set problem.
4) Z3 represent total distance for all three set problem.
5) Z4 represent total completion time for all three set problem.
Table 1:The objective functions values for all set problem.

Data size Objective function Z values


Small Z1 116 days
Z2 $ 3419386414.35
Z3 1662.133 km
Z4 43 days
Medium Z1 372 days
Z2 $ 7908688390.37
Z3 2623.56 km
Z4 128 days
Large Z1 1143 days
Z2 $ 27362614073.946
Z3 19372.21km
Z4 143 days

Set problem small

Objective Function 1: Total drilling time.


Table 2:The rigs and the wells drilled by them in objective function 1 for small data

RIG Well drilled


1 5
2 1
3 2,3,4

Objective Function 2: Total cost.

RIG 2 Nothings

8
WELL WELL
RIG 1 4 5

WELL WELL WELL


RIG 3 1 2
3
Figure 1:The route of rigs in objective function 2 in small data

Objective Function 3: Total moving distances.

RIG WELL WELL


1 4 5

RIG
Nothings
2

WELL WELL WELL


RIG 3 1 3 2

Figure 2:The route of rigs in objective function 3 in small data

Objective Function 4: Total completion time.


Table 3: The rigs and the wells drilled by them in objective function 4 for small data

RIG Well drilled


1 1,5
2 4
3 2,3

9
Set problem medium

Objective Function 1: Total drilling time.


Table 4: The rigs and the wells drilled by them in objective function 1 for medium data

RIG Well drilled


1 1,2,4,7,8,10
2 3,6
3 Nothings
4 5,9

Objective Function 2: Total cost.

WELL WELL WELL WELL WELL WELL WELL WELL


RIG 1 2 7
4 3 10 1 8 6

RIG 2 Nothings

RIG 3 WELL 9
3

RIG 4 WELL 5

Figure 3: The route of rigs in objective function 2 in medium data

Objective Function 3: Total moving distances.

10
RIG WELL WELL WELL WELL WELL WELL WELL WELL
1 4 5 2 7 8 1 10 3

RIG 2 Nothings

RIG 3 WELL 9

RIG 4 WELL 6

IG Figure 4: The route of rigs in objective function 3 in medium data

Objective Function 4: Total completion time.


Table 5: The rigs and the wells drilled by them in objective function 4 for medium data

RIG Well drilled


1 1,7,8
2 4,6,10
3 5,9
4 2,3

Table 6:The CPU and GAP for all objectives functions and for all three set problems

Data size Objective CPU (sec) (%) Gap within 10


function min
Small Z1 0 0
Z2 0.13 0
Z3 0.08 0
Z4 0.02 0
Medium Z1 0 0
Z2 25.52 6.45
Z3 52.94 21.44
Z4 0.05 0
Large Z1 0 0

11
Z2 600.84 48.36
Z3 601 99.70
Z4 0.28 1.40

Discussions:

All previous results were obtained using the CPLX OPL software. Table 1 shows the optimal
values of the four objectives for each of the small, medium, and large set problems. In the small
data, the value of the optimal objective 1 which is the total drilling time is 116 days, meaning
that rig 1 will drill the 5 wells in 23 days as attached in the data given in Excel, and well 1 will
be drilled in 15 days by rig 2 and it will not be able to drill well 3 because of its maximum depth
is 1550 meters and the depth of the well is greater than it, which is 1600 meter. Rig 3 will drill
well 2 in 27 days, well 3 in 11 days, and well 4 in 40 days (Table1 and Table 2). Therefore, the
total drilling time is 116 days. While this value in the medium data will be 372 days due to the
increase in the number of rigs and wells and the difference in their location and in the large set
data will have a value of 1143 days.

If the objective is to minimize the total cost, which is the sum of rig movement cost and the
operation drilling cost, then the optimal value will be $ 3419386414.35 (Table1) for small data.
For example, rig 1 will go first to well 4, it will move with a distance of its amount 147.87 km,
which is the distance calculated by the distance law between X and Y coordinates of the rigs
and the wells attached in the parameters section, it was obtained by CPLEX. Then, rig 1 will
move to well 5 with a distance between the two wells is 120.62 km. The sum of two distances
in the moving cost of rig 1 is 1,092,200 dollars, as well as the cost of the drilling operation of
rig 1 is $10,922,000 in the total time to drill well 4 in 45 days and well 5 in 23 days, as well
considering the total costs of the other drilling rigs will achieve this value. However, in large
data, it will be $27362614073.946 (Table1). Notice that with the increase in the number of data,
the values of the optimal objectives increase.

By considering only objective 3 which is to minimize the total distance of rigs movement. The
value of this objective is to 1662.133 km in small data (Table1), as a result of rig 3 the
movement to first drill well 1 with a distance 376.98 km, then it will move to the well 3 with a
distance between the two wells 458.77km , then finally to well 2 with a distance 557.9 km. In
addition to the sum of these distances, the distance of the movement of the first and second rigs.
Also, the optimum value for Z3 in medium data is 2623.56 km and for large data is 19372.21
km (Table1).

The fourth objective is to minimize the maximum value of completion time of drilling all wells
considering the small data as the easiest example, will obtain this value as 43 days. Rig1 will
drill well 1 in 20 days and the well 5 in 23 for a total of 43 days, while rig 2 will drill the well
4 in 42 days and rig 3 will drill well 2 and 3 in a total of 38 days. 43 days is the maximum time
to complete drilling all wells (Table1 and Table 3). With the same approach, this value for
medium and large data will be 128 days and 143 days.

12
Figure 1 and Figure 2 illustrate the routes of the excavators in the small data. These routes were
based on distances and costs, as well as the maximum depth of the drilling rigs and wells and
the time, as explained earlier. To minimize objective 2 which is the total cost in the small data,
the paths will be as follows: Rig 1 will dig the well 4, then well 5 followed it, while the drilling
rig 2 will not drill any well, and rig 3 will drill well 1, then well 3 and 2 (Figure 1). In addition,
to achieve the third objective which is minimize the total traveled distance of the excavators in
the medium data, as attached in Figure 4, rig 1 will dig the well 4 then 5, 2, 7, 8, 1, 10,
respectively, and finally well 3. While rig 2 will not dig any well. Rig 3 will dig well 9.
Moreover, rig 3 cannot drill wells 1, 4, 6, and well 8, since its maximum depth is 1475 meters
and it is smaller than the depth of wells 1825meter, 1600, 1500 and 1750 meter in respective
order. Also, rig 4 will drill well 6. Therefore, the total distance Z3 of medium data will be
2623.56 km as it is mentioned in Table 1 above.

Table 6 shows the CPU and Gap % values for the four objectives for each data set. All solutions
for this project were found by running the CPLX in a time limit of 10 min. When the numbers
of rigs were 3 and wells were 5, the CPU values were very small and the maximum of them
was for objective 2 which is 0.13sec, and the gap values were zero % for all objectives which
mean that CPLEX could find the optimal solutions for each of them in less than the limit time.
While, when the data increased, the number of excavators was 4 and the number of wells 10,
the CPU values increased to find the solution, and the highest values were for objective 2, which
was 25.52sec and objective 3 was 52.94 sec. Furthermore, the Gap values for objective 2, 3 was
6.45% and 21.44% respectively. Indeed, the CPLEX didn’t find the optimal solution for both
of them but it found the best integer solution. In the large data, the CPU and gap values
increased very significantly, and the CPU values for objective 2 were 600.84 sec and objective
3 was 601 sec. Moreover, the highest GAP value was for objective 3 by 99.70% i.e. nearly
100%, which means that the optimal solution was not found entirely.

One of the advantages of operation and optimization research is that more than one objective
can be achieved, and this is what is required in most real-life problems. This is can be considered
by two methods. The first method is to consider one objective and the other goals as a constraint
and this one is less effective compared to the second method which is to consider all the
objectives simultaneously and arrange them according to the importance and weight of each of
them through goal programming and using different methods.

Results of Method 1: Consideration of Singular Objective


Table7 .1: The objective function values having only a singular objective for small data size

Objective 1 Objective2 Objective3 Objective4


Z1 116 days 136 days 136 days 123 days
Z2 $5.1449e+9 $3419366414.35 $3.4194e+9 $4.5578e+9
Z3 3341.7 km 1662.1km 1662.133km 2814.5 km
Z4 78 days 68 days 68 days 43 days

13
Table 7.2: The objective function values having only a singular objective for medium data size

Objective1 Objective2 Objective3 Objective4


Z1 372 days 445 days 479 days 476 days
Z2 $1.4591e+10 $7908688390.366 $8.3102e+9 $1.4099e+10
Z3 8961.3 km 2647.2 km 2623.558 km 7468.5 km
Z4 212 days 327 days 355 days 128 days

Table 7.3: The objective function values having only a singular objective for large data size

Objective1 Objective2 Objective3 Objective4


Z1 1143 days 1389 days 2378 days 1959 days
Z2 $ 3.969e+10 $32235179193.662 $ 5.0892e+10 $4.5661e+10
Z3 23431km 14843 km 17477.810 km 20410 km
Z4 316 days 406 days 2345 days 269 days
In Table 7 it becomes clear that in the small data when the objective is to reduce the total time,
its value was 116 days, and the other unconsidered objectives were the value of the total costs
and $5.1449e+9 the value of the total movement distance was 3341.7 km. Also, the time of
completion of drilling all wells, it was 78 days. In addition, in medium data, when considering
the objective is to reduce the total cost, the value was $7908688390.366, while the other
objectives were the total drilling time value of 445 days, the total move distance 2647.2 km,
and the total completion time of drilling wells 327 days.

On the other hand, in large data, when the objective was to reduce the time to complete drilling
all wells was 269 days, the value of objective 1 was 1959 days, objective 2 was $4.5661e+10
and objective 3 was 20410 km. Other objectives can be calculated in the same way for all small,
medium, and large data.

Task 2 of the project:

Method 2: Goal programming formulation

Parameters:

𝑁 = Number of drilling rigs ∀𝑖 = 1. . 𝑁


𝑀 = Number of new wells ∀𝑗 = 1. . 𝑀 , ∀𝑘 = 1. . 𝑀
max 𝐷𝑖 = Maximum depth of rig 𝑖 that can be drilled
𝐸𝑗 = Estimated depth of well 𝑗
𝑂𝑐 = Daily operating cost of rigs
𝑀𝑐 = Moving cost of rigs
𝑃𝑖𝑗 = Total time to drill well 𝑗 with rig 𝑖
𝑥𝑑𝑖 = X-coordinate of rig 𝑖

14
𝑦𝑑𝑖 = Y-coordinate of rig 𝑖
𝑥𝑤𝑗 = X-coordinate of well 𝑗
𝑦𝑤𝑗 = Y-coordinate of well 𝑗

𝑏𝑖𝑗 = √(𝑥𝑑𝑖 − 𝑥𝑤𝑗 )2 + (𝑦𝑑𝑖 − 𝑦𝑤𝑗 )2

𝑐𝑗𝑘 = √(𝑥𝑤𝑗 − 𝑥𝑤𝑘 )2 + (𝑦𝑤𝑗 − 𝑦𝑤𝑘 )2 j≠ 𝑘


1, if max 𝐷𝑖 ≥ 𝐸𝑗
𝑡𝑖𝑗 = {
0, otherwise
Z1, Z2, Z3 and Z4 values are founded in Table 1 for all three set of problem

Decision Variables:

1,if rig 𝑖 drill well 𝑗


𝑎𝑖𝑗 = { ∀𝑖 , ∀𝑗
0, otherwise
1,if rig 𝑖 drill well 𝑗,well 𝑗 scheduled just before 𝑘
𝑠𝑖𝑗𝑘 = { ∀𝑖 , ∀𝑗, ∀𝑘
0, otherwise
1,if rig 𝑖 drill well 𝑗,well 𝑗 assigned to position 𝑛
𝑣𝑖𝑗𝑛 = { ∀𝑖 , ∀𝑗 , ∀𝑛 = 1. . 𝑀
0, otherwise

𝐺1 = goal objective function 1

𝐺2 = goal objective function 2

𝐺3 = goal objective function 3

𝐺4 = goal objective function 4

𝑓 = negative deviational variable for objective function 1

𝑔 = positive deviational variable for objective function 1

𝑑 = negative deviational variable for objective function 2

𝑟 = positive deviational variable for objective function 2

𝑙 = negative deviational variable for objective function 3

𝑚 = positive deviational variable for objective function 3

𝑛 = negative deviational variable for objective function 4

𝑢 = positive deviational variable for objective function 4

Goal Programming Formulation:


15
Minimize 𝑔 + 4.5 ∙ 𝑟 + 1.5 ∙ 𝑚 + 𝑢

Subject to

𝐺1 = ∑𝑁 𝑀
𝑖=1 ∑𝑗=1 𝑃𝑖𝑗 ∙ 𝑎𝑖𝑗 (1)

𝐺2 = ∑𝑁 𝑀 𝑁 𝑀 𝑁 𝑀 𝑀
𝑖=1 ∑𝑗=1 𝑂𝑐 ∙ 𝑃𝑖𝑗 ∙ 𝑎𝑖𝑗 + ∑𝑖=1 ∑𝑗=1 𝑀𝑐 ∙ 𝑏𝑖𝑗 ∙ 𝑣𝑖𝑗1 + ∑𝑖=1 ∑𝑗=1 ∑𝑘=1 𝑀𝑐 ∙ 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘 (2)

𝐺3 = ∑𝑁 𝑀 𝑁 𝑀 𝑀
𝑖=1 ∑𝑗=1 𝑏𝑖𝑗 ∙ 𝑣𝑖𝑗1 + ∑𝑖=1 ∑𝑗=1 ∑𝑘=1 𝑐𝑗𝑘 ∙ 𝑠𝑖𝑗𝑘 (3)

𝐺4 = 𝐺4 (4)

𝐺4 ≥ ∑𝑀
𝑗=1 𝑃𝑖𝑗 ∙ 𝑎𝑖𝑗 ∀𝑖 (5)

𝐺1 + 𝑓 − 𝑔 = 𝑍1 (6)

𝐺2 + 𝑑 − 𝑟 = 𝑍2 (7)

𝐺3 + 𝑙 − 𝑚 = 𝑍3 (8)

𝐺4 + 𝑛 − 𝑢 = 𝑍4 (9)

∑𝑁
𝑖=1 𝑎𝑖𝑗 = 1 ∀𝑗 (10)

𝑎𝑖𝑗 ≤ 𝑡𝑖𝑗 ∀𝑖, ∀𝑗 (11)

𝑠𝑖𝑗𝑘 ≥ 𝑣𝑖𝑗𝑛 + 𝑣𝑖𝑘(𝑛+1) − 1 ∀𝑖, ∀𝑗, ∀𝑘, ∀𝑛, 𝑗 ≠ 𝑘, 𝑛 < 𝑀 (12)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑘 (13)

𝑠𝑖𝑗𝑘 ≤ 𝑎𝑖𝑘 ∀𝑖, ∀𝑗, ∀𝑘, 𝑗 ≠ 𝑘 (14)

𝑣𝑖𝑗𝑛 ≤ 𝑎𝑖𝑗 ∀𝑖, ∀𝑗, ∀𝑛 (15)

∑𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≤ 1 ∀𝑖, ∀𝑛 (16)

∑𝑁 𝑀
𝑖=1 ∑𝑛=1 𝑣𝑖𝑗𝑛 = 1 ∀𝑗 (17)

∑𝑀 𝑀
𝑗=1 𝑣𝑖𝑗𝑛 ≥ ∑𝑘=1 𝑣𝑖𝑘(𝑛+1) ∀𝑖, ∀𝑛, 𝑛 < 𝑀 (18)

∑𝑀
𝑘=1 𝑠𝑖𝑗𝑘 ≤ 1 ∀𝑖, ∀𝑗, 𝑗 ≠ 𝑘 (19)

∑𝑀
𝑗=1 𝑠𝑖𝑗𝑘 ≤ 1 ∀𝑖, ∀𝑘 (20)

𝐺1, 𝐺2, 𝐺3, 𝐺4, 𝑓, 𝑔, 𝑑, 𝑟, 𝑙, 𝑚, 𝑛, 𝑢 ≥ 0 (21)

𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 ∈ {0,1} , ∀𝑖, ∀𝑗 , ∀𝑘, ∀𝑛 (22)

16
Explanation of the Objective Function:
The objective is to solve for the four objectives at the same time by minimizing the positive
deviational variables of each one of the four goals considering the assigned weight of them.
The total cost goal (𝑟) is three times more important than the third objective of total distance
(𝑚) and the third objective is 1.5 more important than goals 1 and 4.

Explanation of the Constraints:


1) The first goal of total drilling time spent by rig 𝑖 to drill well 𝑗.
2) The second goal of total cost of drilling and movement between wells and between rigs and
wells.
3) The third goal of total movement between wells and between rigs and wells.
4) The fourth goal of maximum completion time to drill all wells.
5) The total completion time of drilling all wells is the largest value from the total time to drill
all wells by rigs.
6) The first goal added to its negative deviational variable (𝑓) minus its positive deviational
variable (𝑔) equals to its singular objective function value.
7) The second goal added to its negative deviational variable (𝑑) minus its positive deviational
variable (𝑟) equals to its singular objective function value.
8) The third goal added to its negative deviational variable ( 𝑙 ) minus its positive deviational
variable (𝑚 ) equals to its singular objective function value.
9) The fourth goal added to its negative deviational variable (𝑛) minus its positive deviational
variable (𝑢) equals to its singular objective function value.
10) Each well can be drilled only by a rig (cannot be drilled by more than one rig).
11) Rig 𝑖 can drill well 𝑗 when the maximum depth that can be drilled by the rig is higher than
the estimated depth of the well, otherwise the rig does not drill the well.
12) When there is a position for the rig 𝑖 to drill well 𝑗 and there is another position for rig 𝑖 to
drill well 𝑘 then 𝑠𝑖𝑗𝑘 will have a value higher than or equal the sum of the values of 𝑣𝑖𝑗𝑛 and
𝑣𝑖𝑘(𝑛+1) (when the rig drill well 𝑗 and well 𝑘 respectively) minus 1 (because 𝑠𝑖𝑗𝑘 is a binary
decision variable and cannot have a value more than 1).
13) Condition that if rig 𝑖 move to well 𝑘 which is scheduled after well 𝑗 (𝑠𝑖𝑗𝑘 ), then for sure
rig 𝑖 moved to well 𝑗 first (𝑎𝑖𝑗 ).

14) Condition that if rig 𝑖 drills well 𝑗 (𝑎𝑖𝑘 ) then it is concluded that this operation drilling well
happened after drilling well 𝑗 .

15) Condition that if rig 𝑖 is assigned to well 𝑗 (𝑎𝑖𝑗 ) at a position (𝑣𝑖𝑗𝑛 ), if the position is placed,
then there is a rig drills well 𝑗.
16) In each position of each rig there can be at most one well.
17) Each well must be assigned to one of the positions of the rigs.
18) Well 𝑗 is drilled by rig 𝑖 which is in position 𝑛 prior to well 𝑘 which is in position (n+1).
19) In each well of each rig there can be at most one well following the current well.
20) In each well of each rig there can be at most one well preceding the current well.
21) Sign restrictions.
22) 𝑎𝑖𝑗 , 𝑠𝑖𝑗𝑘 , 𝑣𝑖𝑗𝑛 are a binary decision variable (they can have a value only either 0 or 1).

17
Results:

Table 8: The objective function values obtained by goal programming for small, medium and large data

Data size Optimal objective G values Deviational variables values


function value
Small Z=45 G1=136 g=20 f=0
G2=3.4194e+9 r=0 d=0
G3=1662.1 m=0 l=2.2737e-12
G4=68 u=25 n=0
Medium Z=12711099624.089 G1=485 g=113 f=0
G2=1.0733e+10 r=2.8247e+9 d=0
G3=4362.8 m=1739.3 l=9.0949e-13
G4=198 u=70 n=0
Large Z=0 G1=2135 g=992 f=0
G2=4.8817e+10 r=2.1455e+10 d=0.035744
G3=21818 m=2446 l=0.1096
G4=1281 u=25 n=0

Discussion:

The goal programming is a method developed to achieve multiple objectives at the same time
considering the order of relative importance (weight) of each goal. The second objective
(minimizing total cost) was the most important one over the other objectives by 4.5 times. Then,
objective 3 (minimizing the total distance) was the second important goal. Which was 1.5 times
more weight than the others. Thirdly objective 1 and 4 have the same importance. Table 8 shows
the objective function values obtained by goal programming for small, medium and large data.
As an approximate comparison, G2 value in large size data ($ 4.8817e+10) was significantly
greater than Z2 value in the second objective of large size data in Table 1 ($ 2.736e+10). While
the value of G3 of large data (Table 8) increased by 2445.79 compared to Z3 in the third
objective of large data (Table 1). However, G1 and G4 obtain the least change in their values
compared to Z1 and Z4 in the first and forth objectives respectively of large data (Table 8), G1
increases by 992 days while G4 increases by 1138 days. These increases indicate the positive
deviation which the objective function tries to minimize as the order of importance required.
As a result of that, G2 values marked the largest change than all other goals. Since Z in large
data size (Table 8) equaled to zero, all of the goals are satisfied. On the other hand, Z had a
large value in the medium data size in table 8. That denoted that at least one of the goals was
not satisfied. G1, G2, G3 and G4 values increased compared to their Z values in Table 1, the
amount of increasement was corresponding to the relative importance weights. Moreover, the
G values for small data size (Table 8) were exactly the same as Z values of the small data size
in Table 1, where the Z value of the goal programming for small data size was 45. Which
indicated that not all goals were met. It is observed from Table 8 that the positive deviations
(𝑔, 𝑟, 𝑚 and 𝑢)for small, medium and large data size obtain values greater than or equal to zero
while all negative deviations (𝑓, 𝑑, 𝑙 and 𝑛) obtain zero values. Except the negative deviation 𝑙
obtain a very small values in all data size problems which were 2.2737e-12, 9.0949e-13 and
18
0.1096 for small, medium and large data size respectively. Furthermore, the negative deviation
𝑑 obtained a value of 0.035744 in large data size in Table 8. The negative deviations indicate
the shortage to achieve the target whereas the positive deviations indicate the amount of
increment from reaching the target.

Conclusion:

Four objectives in this project were formulated and solved by the CPLEX OPL program for
three different data sizes (small, medium and large). The aim of the first objective was to
minimize the total drilling time of all the wells. The optimal values of this in the small, medium
and large datas are 116 days ,372 days and 1143 days respectively. The aim of the second
objective was to minimize the total cost for drilling all wells. The optimal values of this
objective in the small, medium and large data are $ 3419386414.35, $7908688390.37 and
$27362614073.946 respectively.While, the third objective aimed to minimize the total moving
distance of all the rigs. The optimal values of this objective in the small, medium and large
datas are 1662.133 km, 2623.56 km and 19372.21km respectively. Furthermore,the aim of the
fourth objective was to minimize the completion time of drilling all wells. The optimal values
of this objective in the small, medium and large data are 43days, 128days and 143days. All
solutions were obtained by RUN CPLEX 10 minutes as time limit for all models. The CPU
times of the four objectives for the small data were 0s, 0,13s, 0.08s and 0.02s respectively.
While the CPU times of the four objectives for the medium data are 0s, 25.52s, 52.94s and
0.05s. In addition, CPU times of the four objectives for the large data are 0s, 600.84s, 601s and
0.28s. As shown that the CPU times of the small data are less than the CPU times of the medium
data which are less than the CPU times of the large data. The change in the CPU times is due
to the difference in the number of rigs and wells in each data. Finally, there are two methods to
achieve more than one objective simultaneously. First one is to consider one objective the other
goals as constraint. The second method is to consider all the objectives simultaneously and
arrange them according to the importance and weight of each of them through goal
programming and by weight method or others . It is worth to say that the second method is more
effective than the first method.

19

You might also like