For oilfield drilling operations, the rig scheduling problem concerns finding a schedule for a fleet of rigs given a list of potential wells to be drilled. Each rig has a capacity and time period of availability, while each well comprises a production value, a pad assignment and a time window in which it can be drilled. Operational constraints limit the number of rigs on a pad to one, and the moving and dismantling time is applicable each time a rig moves from one pad to another. There is a need for an improved method for optimizing resources.
Embodiments of the present disclosure are directed to a method including receiving a list of wells to be drilled and dividing the wells into ON wells which have a specific start date of availability, BY wells which have a fixed end date of availability but no start date of availability; and ADD wells which have no start or end data of availability. Availability in this context generally means that the well is available to be accessed and/or drilled. The method also includes receiving fleet data, wells data, and parameters, wherein the parameters include a time horizon for the drilling operation. The method also includes attempting to solve an integer problem according to the ON wells, and if the integer problem is solved, implementing a greedy method for BY wells and a weight scoring method for ADD wells. If the integer problem is not solved, the method continues by implementing the weight scoring method for all wells, and outputting a schedule for rigs and the wells.
The greedy method may include sorting wells according to the earliest day on which the wells are available and then by a value of the wells, and for each rig available to drill, identifying an earliest start date and assigning a rig to the start date for the well. The weight scoring method may include identifying urgent wells. An urgent well is a well in which the earliest time to start drilling the well is earlier than the earliest time a rig is available, when factoring in the cost of using the rig and a moving cost for the rig. The method also includes identifying non-urgent wells. A non-urgent well has a potential start date such that there is an available start date for at least one rig that is earlier than the earliest available date for the well. The method also includes randomly choosing weights, repeatedly calculating a solution using weights generated by the weights, and retaining a solution that maximizes an objective value of the solution. If there is no improvement of the objective value of the solution after a predetermined number of attempts, the method continues by ceasing calculating the solution and delivering the retained solution. Urgent wells are given higher priority than non-urgent wells.
Other embodiments are directed to a method for optimizing fleet scheduling, including identifying ON wells which have a beginning time of availability, BY wells which have an end time but no beginning time of availability, and ADD wells which have no beginning or end time of availability, according to ON, BY, and ADD constraints. The method also includes scheduling rigs to drill the wells with ON wells having higher priority than BY wells, and with BY wells having higher priority than ADD wells, and returning a schedule for rigs and wells, the schedule having a value corresponding to a number of ON, BY, and ADD constraints which are satisfied by the schedule.
Still further embodiments of the present disclosure are directed to a system for optimizing a rig schedule for drilling a plurality of wells. The system includes a scheduler configured to receive fleet data, wells data, and solving parameters. The scheduler is configured to identify according to time constraints in the wells data: wells that have a beginning date of availability as ON wells, wells that have an end date but no beginning date of availability as BY wells, and wells that have no beginning or end date of availability as ADD wells. The scheduler is further configured to solve an integer problem for ON wells, a greedy method for BY wells, and a weight scoring method for ADD wells, and to output a schedule having a score, wherein the score pertains to how many of the time constraints are satisfied by the schedule. If the integer problem is not solved in a predetermined time period the scheduler is configured to implement the weight scoring method for all wells. The system also includes an optimizer configured to iteratively pass the fleet data, wells data, and solving parameters to the scheduler and to optimize based on the score.
The rig scheduling problem concerns finding a schedule for a fleet of rigs given a list of potential wells to be drilled. Each rig has a capacity and time period of availability, while each well comprises a production value, a pad assignment and a time window in which it can be drilled. Operational constraints limit the number of rigs on a pad to one, and the moving and dismantling time is applicable each time a rig moves from one pad to another. Notably, a narrow or restricted time window identifies wells with strong conditions imposed by client needs. That is, wells that must be drilled on or by certain days, often in order to retain lease rights. For this reason, the critical assumption in the procedure is firstly, to meet the satisfiable stipulated conditions, and secondly, to maximize the production value of the selected wells. Significantly, the fleet-sizing procedure can be used to identify how many additional rigs are required by type and period of use to meet the outstanding conditions, or to provide the optimal fleet size to meet the satisfiable conditions from the outset when no fleet is given. The proposed decomposition-based scheme is presented in this report with several practical test cases.
Wells
Consider a well w∈{1, . . . , W}. First w is assigned a “production value” denoted by Vw. This value can be anything ranging from barrels of oil to net value generated by the well in $. This pre-computed fixed value should be defined with the purpose of being maximized.
In addition, w is part of a “pad” denoted by Pw. A “pad” is a location from which one or multiple wells are drilled. When installed on a pad, a rig can drill multiple wells without being dismantled. Most importantly, on any given day, there can only be a single rig on a given pad (a rig is considered to be on a pad from the first day of its installation to the last day of its dismantling). Finally there are P pads numbered from 1 to P, and Wp denotes the set of wells on pad P∈{1, . . . , P}.
A well w can have timing requirements where T refers to a time period of interest. TwS (resp. TwE) is the first (resp. last) day when w is available to be drilled. If TwS=1 and TwE<T then w is referred to as a “BY” well. If TwS=TwE then w is referred to as a “ON” well. If w is neither ON or BY, then it is assumed that TwS=1 and TwE=T and is referred to as an “ADD” well. We denote WON, WB, WADD the sets of ON, BY and ADD wells.
Finally, some wells can only be drilled by specific rigs so we denote the set of rigs that can drill w by Rw⊂{1, . . . , R}. Equivalently, wr is the set of wells that rig r can potentially drill.
No Transportation Assumption
As previously mentioned, each well w belongs to a pad p. In this paper, it is assumed that the maximum time between two pads is relatively small compared to 24 hours (1 day) and hence can be neglected. The reason for this is that a “day” is the unit of measure of the rig capacity, installation and dismantling times. By incorporating transportation times of the order of hours, the resulting schedule will be very sensitive to external factors (delays due to traffic, weather for instance) and will not be robust.
More formally, it is possible, though not mandatory, to provide a position for each pad p denoted by(xp, yp). If it is the case, one can easily compute the diameter of the field using Dmax=maxp,q{d(p,q)} where d(p,q) is the distance between two pads p and q (which can be d(p,q)=√{square root over ((xp−xq)2+(yp−yq)2)}). Furthermore, one can suppose a speed for the trucks transporting the rigs denoted by σ. The validity of the no transportation time assumption can be checked by the condition:
where Tmax denotes the maximum travel time.
The current model assumes no transportation time. Note that, if the transportation times are constant between any two pads and even multiple of days, then it can be incorporated as follows: add half of time in the installation and half in the dismantling time of each rig. If the transportation times are of the order of the day but differ between pads, then this model would have to be modified.
Data
In summary, the input data from the user is:
The notations are summarized in the following table:
number of days
truck speed
maximum travel time
capacity
start day
end day
installing time
dismantling time
value
pad
start day
end day
set of eligible rigs for w
Tr1 (resp. Tr2) is the first (resp. last) day when r is available to be used. Finally, Ir (resp. Dr) corresponds to the number of days required to install r on (resp. dismantle r from) a pad (see below for the definition of a pad) and Mr=Ir+Dr defines the moving time of r.
Objective Function
As the reason for time constraints imposed by the client are unclear to the operator, the first goal of the operator should be to maximize the number of time requirements that can be met given the aforementioned constraints. Given a schedule S, the number of constraints met is equal to the number of ON (NON(S)) and BY (NBY(S)) wells that are drilled in S and is denoted by N(S)=NON(S)+NBY(S). Secondly, a “good” schedule should aim to maximize the production value. The production value of a schedule S is the sum of the production values of all the selected wells in S and is denoted by V(S).
According to embodiments of the present disclosure, the objective function may be defined as:
and can be optimized lexicographically, i.e., firstly N(S) can be maximized and then V(S).
Note: this is equivalent to optimize the single objective function
Inconsistencies
If the rig fleet was large enough and conditions are satisfiable, the best schedule S should have N(S)=51 WON|+|WBBY|. However this may not be possible due to inconsistencies in the input data. Preferably, these inconsistencies should be corrected by the user before solving the problem. There are two types of inconsistencies.
Pad Inconsistencies
Consider a pad p∈{1, . . . , P} such that |WpWON|>1. Consider each pair (w≠v)∈WpWON of distinct wells in pad p such that TwS, TvS. If
then either w or v cannot be drilled due to a pad inconsistency. In other words, if w has to be drilled before v, but their drilling time is not separated by at least the best rig capacity (the smallest one) that can drill w.
Rig Inconsistencies
Consider a rig r∈{1, . . . , R} and each pair (w≠v)∈WON of distinct wells such that Rw=Rv={r} and TwS, TvS. If
T
v
S
<T
w
S
+C
r
+M
r×χ(Pw≠Pv)
where χ is the indicator function, then either w or v cannot be drilled due to a rig inconsistency.
Algorithms
In some embodiments the problem can be solved by formulating an integer program taking into account all types of wells (ON, BY and ADD) in conjunction with an appropriate solver (Cbc for open-source, Gurobi or CPlex if available). However, this solution appears to be intractable due to the curse of dimensionality, that is, the problem size becomes too large to solve for a high number of wells and rigs.
In order to bypass this issue, one can adopt one of two schemes detailed below:
1. An approximation scheme.
2. A decomposition scheme.
Approximation Algorithms
In this case, all wells are considered by a sub-optimal algorithm which gives the smallest optimality gap. Two such algorithms are considered:
Note that two other algorithms (called fastGreedy and Dual) that were studied are explained in the Appendix.
Weight Scoring (WS) Method
This method is a myopic method based on a scoring function computed with a set of weights. Note that in the following, tr, w defines a function that depends on r and w, so we can use ts, v to refer to the case s≠r and v≠w.
Scoring Function
Given a set of weights y such that y∈[01]4 with Σi=14yi=1, the scoring function fy is a function of w the potential well to drill, tr the earliest available day of rig r, tr,w . . . tr the earliest day to drill well w with rig r. It is denoted by fy(w,tr,tr,w).
For w∈{1, . . . , W} and tr,w ∈[1, . . . , T], we have:
f
y(w,tr, tr,w)=y1f1(w)+y2f2(w,tr)+y3f3(tr, tr,w)+y4f4(w) (1)
and the sub-functionals (fi)i∈{1, . . . , 4} are described as follows:
f1 is the normalized value of the well w. It gives a positive value to wells with high value:
f2 is the normalized difference between the earliest available day of r and the end date of w. It emphasizes wells that have time constraints:
f3 is the negative normalized idle time of rig r. It gives preference to wells that do not require the rig r to stand idle:
f4 is the normalized function of rig requirements. It gives emphasis to wells that are highly constrained by rig requirements:
Given a set of weights y, one approach according to embodiments of the present disclosure for WS works as follows:
Let tr∈{1, . . . , T} be the earliest time for which at least one rig is available. Let r be such a rig with highest capacity.
1. Urgent Wells: A well w is urgent at time tr for rig r if TwE<tr+Cr+Mr and urgentWells is the set of such wells. If urgentWells is not empty, consider the most urgent well w in this set. If w can be assigned to a different rig than r with less idle time than r or with same idle time but greater rig capacity, then do so and remove w from urgentWells. If not, assign w to the schedule of r and skip the next step. If all wells from urgentWells are assigned to other rigs than r, consider the next step.
2. Non-Urgent Wells : For all wells with a potential start date tr,w such that tr,w∈{tr, . . . , tr+Cr+Mr−1}, compute the scoring function fy(w,tr,tr,w). Insert in the rigSchedule, the well w such that fy(w,tr, tr,w) is maximized.
Weight Optimization
An astute reader will notice that the resulting schedule depends on the set of weights y used to compute the scoring function. However the optimal set of weights may not be known. Therefore the WS method considers a random search in the space of weights and retains the solution that maximizes the objective value. There is a convergence criteria on this search process: if there is no improvement of the best solution after a certain number of evaluations (κ∈N), then the search stops.
Note: a genetic algorithm approach was also implemented but the random weight procedure proved to be as effective with fewer evaluations.
Greedy (G) Method
According to embodiments of the present disclosure, the methods can include to rank the wells lexicographically first by end date, then by value, and then to check if the highest ranked well can be added to the schedule by finding the earliest start drilling day when the well is available ([TwS, TwE]). The process can be repeated until the list of wells is empty. The pseudo code of the method is given below. [H]
Note that this method was designed to work fine for “BY” wells. However, it can also be used on a different set of wells with varying performance.
Decomposition
In other embodiments another solution to the approximation scheme is to consider wells separately by type. That is, consider constrained wells (ON and BY) and then ADD wells. Among constrained wells, since ON wells are more constrained, it seems appropriate that they should be treated first. Hence, consider three phases, comprising the set of ON then BY and finally, ADD wells. In this scheme, one can use WS and G approximation schemes described above, or alternatively an integer program, such as the one detailed below. In summary, we list the possible algorithms in preference order for each phase as follows:
1. Phase ON: integer program for ON wells (IPON), WS, G.
2. Phase BY: G, WS.
3. Phase ADD: WS, G.
Note that an integer program tested for ADD wells is presented in the Appendix. However it did not prove as effective as the WS or G schemes.
Integer Program for ON Wells (IPON)
The goal is to find a combination of ON wells in order to maximize the number of ON wells drilled. Note there can exist several such combinations, hence we differentiate the solutions by selecting the one with highest production value.
Let us define an “artificial” value Vw as:
1. Rig incompatibilities (I1): this is the set of pairs of wells (w,v) that cannot be drilled by the same rig r, i.e. among the pairs in I1 only one element can be drilled by r. Mathematically, this requirement is defined by:
I
1={(w,v,r)∈WON×WON\{w}××Rw|TvS . . . TwS, TwS<TvS+CrR+Mr×χ(Pv≠Pw)}.
2. Pad incompatibilities (I2): this is the set of pairs of wells (w,v) that cannot be drilled by the two distinct rigs r≠q. If two wells are on the same pad and their dates are “too” close, they cannot be drilled by two different rigs. That is, if two ON wells are on the same pad and their dates differ by less than the minimum rig capacity, it will be impossible to drill both wells. This is defined as follows:
I
2={(w,v,r,q)∈WON×WONPw\{w}×Rw×Rv\{r}|TvS. . . TwS, TwS<TvS+CrR+Mr}.
The only variable is
xwr∈{0,1}:1 if well w is drilled by rig r∈Rw
We can formulate the IP as follows:
Solving this problem, we get the solution for the ON phase which gives an allocation of all possible ON wells to rigs that meet the given constraints (e.g. rig, pad, time windows, etc)
Scheduling Algorithm
Given all these algorithms, the proposed solution was chosen after testing the different methods on different test cases and is described below algorithmically.
Let Tsolve be the time in seconds specified by the user to solve the scheduling problem.
Rig Schedule
The processes and methods illustrated in
Accordingly, the scheduler 11 is configured to schedule wells in order of priority ON>BY>ADD, with other parameters such as production value having a lesser priority.
The following information was obtained using actual simulations and test data and is included to show certain features of the present disclosure and is not given in a limiting manner. Parameters and values are given here to show some test data but the scope of the present disclosure is not limited to the numerical values or relationships.
Data
The two data sets (representative of real test cases) are presented in Table 2.
Note that the wells have different rigs requirements. Moreover, the rigs do not have the same start and end dates. We consider both test cases with identical rig installing/dismantling times of 0/0 and 3/2, giving a total of 4 test cases.
2.4.2 Results
Note that Tsolve=60 s and the solver used was Cbc (expect for test case B with 3/2 where Tsolve=300 s). Results are summarized in Table 3.
Test Case A1
:Test Case A with 0/0. Firstly, 2 inconsistencies are identified (1 of type pad and 1 of type rig). The resulting schedule drills 259 wells with 37 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)=92. In terms of value, V(S)=1.81×106.
Test Case A2
:Test Case A with 3/2. Firstly, 2 inconsistencies are identified (1 of type pad and 1 of type rig). The resulting schedule drills 225 wells with 35 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)=90. In terms of value, V(S)=1.59×106.
Test Case B1
:Test Case B with 0/0. Firstly, 6 inconsistencies are identified (6 of type rig). The resulting schedule drills 585 wells with 42 out of 48 ON wells and 9 out of 9 BY wells met, giving N(S)=51 . In terms of value, V(S)=4.13×106.
Test Case B2
Test Case B with 3/2. Firstly, 7 inconsistencies are identified (7 of type rig). The resulting schedule drills 585 wells with 41 out of 48 ON wells and 9 out of 9 BY wells met, giving N(S)=50 3.69×106.
Note that, in test case B, inconsistencies and N(S) sum up to |WON|+|WBY| which indicates that the solution provided is the best given the data available (in terms of constraints).
In test case A, inconsistencies and N(S) do not sum to the total number of conditions. This state leads to the development of optimal fleet sizing in the next section.
Fleet Sizing
As shown in the previous section, some constraints may not be met due to the lack of rigs. Moreover, in the case where no rigs are owned, one may be interested in sizing a potential fleet to drill the given list of wells. This section aims to address these concerns.
Problem Description
New Data
As per to the original problem, there is a list of wells to drill and a fixed fleet of rigs which has a cost equal to 0. In addition, there are potential rigs to hire.
The first input is an upper bound on the number of additional rigs RAdd . . . 0. In addition, the list of hireable rigs is given by type of rigs. There are Δ types of rigs and each type of rig μ∈{1, . . . , Δ} is given with:
New Fleet
If RAdd=0, the problem is equivalent to the scheduling problem of the previous section and the scheduling algorithm solves the problem.
Given RAdd∈N, an additional fleet of RAdd rigs is defined as follows: for each additional rig r∈{1, . . ., RAdd}, the solution must specify:
This solution can be represented by an array of size RAdd×3. Now, we simplify the representation of the new fleet for the solver. First, the type of the RAdd additional rigs can be expressed in a vector of integers of length RAdd (e.g. (1, 2, 0) represents a new fleet of one) rig of type 1 and one rig of type 2 for RAdd=3). Given RAdd and Δ and (NμA)μ∈{1, . . . , Δ}, we can map each vector of types to a unique integer X (see a mapping example in Table 4).
In addition, (d1, d2) can be mapped uniquely to another vector (αr1, αr2(∈[0,1]2 such that:
d
r
1
=T
μ
A,1+αr1(Tμ
d
r
2
=d
r
1+αr2(Tμ
Therefore a new fleet is defined by a vector F=(X,α1, α2) of size 1+2RAdd. The main advantage of this representation is that the genetic algorithm (GA) described below can be implemented without constraints, while taking into account all the new fleet constraints such as number of new rigs, start/end dates and minimum hiring time. It also reduces the number of variables
Finally, note that given a fleet F, we can pre-compute its cost C(F).
New Objective
The objective is slightly different from different from the previous section. The objective according to embodiments of the present disclosure is to find a new fleet F=(X,α1, α2) and an associated schedule S(F) such that we maximize firstly the number of time constraints met denoted by N(S(F)), and then the net value defined by V(S(F))−C(F), mathematically that is:
Genetic Algorithm
Given a fixed fleet and a new fleet F, the inner maximization can be solved using the scheduling algorithm described in the previous section. In order to deal with the outer maximization on F, we use a genetic algorithm scheme. In order to use this scheme, the user specifies:
1. RAdd: number of additional rigs considered.
2. The population size.
3. The mutation probability.
4. A convergence criteria: if after a certain number of iterations, the best solution is not improved, the search stops.
5. The solving time permitted for the genetic algorithm.
6. The parameters of the scheduling algorithm, that is Tsolve, the MIP solver and the convergence criteria for WS.
We describe here the crossover and mutation operators.
Crossover
Given a population, we select the top half with the highest objective function values. The crossover operator selects randomly two distinct elements from this pool. In order to “crossover” F1=(X,α1, α2) and F2=(Y,β1, β2), the resulting fleet F3=(Z,γ1, γ2) is such that:
1. Draw λ uniformly at random in [¼,¾] and Z=nint(λX+(1−λ)Y).
2. For r∈{1, . . . ,RAdd},
(a) Draw λ uniformly at random in [¼,¾] and γr1=nint(λαr1+(1−λ)βr1).
(b) Draw λ uniformly at random in [¼,¾] and γr2=nint*(λαr2+(1−λ)βr2).
where nint(.) is the nearest integer function.
Mutation
Given the mutation probability, for each element of the population, draw a Bernoulli random variable with this probability. If it is true, then draw randomly a new element.
Note that X=1 in the new fleet F is equivalent of not adding any additional fleet. Hence, the result of the scheduling algorithm is the same as before and independent of (α1, α2). Therefore, the GA permits a new fleet with X=1 at most once in the initial population or after crossover and mutation.
Results
Recall that both cases Test B1 and Test B2 do not require any fleet sizing as the resulting schedule meets the maximum number of constraints (including the inconsistencies). Therefore, we focus here on Test A1 and Test A2.
We summarize the new rigs data as follows:
We run the two cases A1 and A2 with RAdd=1,2 which results in four cases:
Test Case A1/1
:Test Case A1 with RAdd=1. The resulting fleet consists of one rig of type 1 from 29 Apr. 2016 to 24 Oct. 2016. The resulting schedule drills 269 wells with 39 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)=94. In terms of value, the production value is 1.86×106, the cost incurred is 0.09×106 which results in a net value of 1.77×106.
Test Case A1/2
:Test Case A1 with RAdd=2. The resulting fleet consists of one rig of type 1 from 9 Apr. 2016 to 20 Nov. 2016. The resulting schedule drills 273 wells with 39 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)'94. In terms of value, the production value is 1.88×106, the cost incurred is 0.11×106 which results in a net value of 1.77×106.
Test Case A2/1
:Test Case A2 with RAdd=1. The resulting fleet consists of one rig of type 1 from 1 May 2016 to 19 Oc. 2016. The resulting schedule drills 233 wells with 38 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)=93. In terms of value, the production value is 1.60×106, the cost incurred is 0.09×106 which results in a net value of 1.51×106.
Test Case A2/2
Test Case A2 with RAdd=2. The resulting fleet consists of one rig of type 1 from 2 Apr. 2016 to 26 May 2017 and one rig of type 2 from 2 Apr. 2016 to 26 May 2017. The resulting schedule drills 250 wells with 39 out of 41 ON wells and 55 out of 55 BY wells met, giving N(S)=94. In terms of value, the production value is 1.73×106, the cost incurred is 0.38×106 which results in a net value of 1.35×106.
We find that in the case of 0/0 installing/dismantling times, one additional rig is sufficient to meet the total number of satisfiable constraints. That is, N(S(F)) and the inconsistencies sum to the total number of conditions. In the case of 3/2 installing/dismantling times, two rigs are required to meet all conditions, which reduces the net value significantly.
Three methods developed and tested, but not retained in the overall scheme, are presented in this section.
Method 1: Fast Greedy (FG) Method
This method is very similar to Greedy as it ranks wells based on their end dates (TwE) and their values (Vw) lexicographically. The main difference occurs in the process of incorporating wells into the rig Schedule. Instead of considering wells one at a time, Fast Greedy steps through time and for every day a rig is available, it tries to slot a well in the schedule of this rig (where potential wells are considered in the aforementioned ranked order).
Method 2: Dual (D) Method
This method has three steps. First we select wells for each rig using an integer program. Then these wells are inserted (ON then BY then ADD in a greedy manner) rig-by-rig. Finally it tries to insert additional wells in the idle times that were not selected in the first step.
1: Well Selection
In order to select a subset of potential “good” wells for each rig, D solves the following integer program. For clarity, we define
We denote (X,Y), the optimal solution of this problem.
2: Preassigned Wells Insertion
For each rig r, we get from the previous step a list of wells pre-assigned to r, that is {w∈{1, . . . , W}|Xwr=1}. Given all these wells and rig r, we use the greedy method using
For each rig r:
3: Unassigned Wells Insertion
Given the schedule obtained in Step 2, we have a set of unassigned wells U. We use a modified greedy algorithm to try to slot the wells from the set U. First, we rank the wells in U by value. For each well w∈U, we check if it can be inserted in the schedule of rig r by sliding the pre-assigned wells if possible. If w cannot be assigned it is removed from U. This operation is repeated until U is empty.
Method 3: Integer Program for ADD Wells (IPADD)
We define PADD as the set of pads with at least one ADD well. Given the resulting schedule from the BY phase, we can identify “slots” in which wells can be drilled. A slot s corresponding to rig r has 4 attributes:
1. TrsC: a start date, i.e. the day after the rig stopped drilling the previous well.
2. TrsF: an end date, i.e. the day before the rig starts drilling another well
3. PrsC: the pad on which the previous well was drilled (0 if TrsC==1)
4. PrsF: the pad on which the next well is drilled (0 if TrsF==H)
Given a rig r, a slot is eligible depending on the following rules:
Given a rig r, let Sr be the set of eligible slots for this rig with its 4 features.
We define I3, to be the incompatible set of slots. Given two distinct rigs r≠q and two slots s∈Sr,t∈S4 such that they “overlap”, we only allow a pad to be drilled within one of these time slots but not both in order to avoid pad conflicts. Mathematically, we state:
I
3={(r,q,s,t)∈{1, . . . , R}×{1,. . . ,R}\{r}×Sr×Sq|[TrC, TrsF][TqtC,TqtF]≠Ø}
The two types of variables are
xwrs∈{0,1}:1 if well w∈WADD is drilled by rig r∈Rw in slots ∈Sr
yprsÅ{0,1}:1 if p ad p∈PADD is drilled by rig r∈R in slots ∈Sr
We formulate the IP as follows:
where yP
This problem provides the allocation of wells to slots. Note that if a well from pad rsC or PrsF is selected for slot s of rig r, then it should be placed continuously with the pad (i.e.
at the beginning or the end of the slot). Subsequently, the order of the other pads within a given slot does not affect the quality of the solution in this setting, as well as the order of wells within a pad.
The systems and methods of the present disclosure are directed to new approaches to the rig scheduling problem based on a number of decomposition and approximation schemes. Many algorithms were described and combined into a composite procedure with the aim of addressing the satisfiable conditions while maximizing the production value of the selected wells. In some applications there are conditions that cannot be met which is due to inconsistencies in the data or due to the lack of rig capacity. For the latter, the method also provides the means to establish the optimal fleet size required to satisfy the outstanding requirements and increase the overall production value. Future considerations include improving the mutation operator of the genetic algorithm for sizing and considering the possibility of using generic time windows for all wells.