Journal of Petroleum Science and Engineering, 2 (1989) 45-61
45
Elsevier Science Publishers B.V., Amsterdam-- Printed in The Netherlands
COMPUTER PROGRAM FOR THE MINIMIZATION OF DEVELOPMENT COSTS FOR OFFSHORE OIL AND GAS FIELDS R O B E R T W . L E N Z E N and R I C H A R D A. S T A R T Z M A N Department of Petroleum Engineering, Texas A &M University, College Station, TX 77843-3116 (U.S.A.)
(ReceivedJuly 25, 1988; revised and accepted August28, 1988)
Abstract Lenzen, R.W. and Startzman, R.A., 1989. Computerprogram for the minimizationof developmentcosts for offshore oil and gas fields.J. Pet. Sci. Eng., 2: 45-61. This paper presents a computer program which can be used to determine the minimum developmentcost for an offshoreoil or gas field.The program guaranteesthe optimality of the solution for a givenproblemby the use of zeroone integer programming.Previous attempts to solvethis minimizationproblem have been unable to provide such a guarantee of optimality. In addition, the example problem discussedin the text provedto be one of the largest optimization problems ever to be solvedby zero-one integer programming. The program allows for the definition of reservoir structure, sea-floorconditions, and available surface facilities. The factors thus specifiedcombineto create a realistic description of the problem, leadingto a meaningfulsolution.
Introduction In recent years, the collapse of oil prices has resulted in, among other things, a heightened economic consciousness throughout the petroleum industry. The potential economic impact of cost containment, streamlining, and general economic optimization has received a greater share of attention. Nowhere is the potential for such economic optimization greater t h a n in the development of offshore oil and gas fields. The development of an offshore field is often a long, complex, and extremely expensive undertaking. Once a field has been discovered by the drilling of wildcat wells, additional wells must be drilled to delineate the field. Data from these wells (reservoir data, drilling-cost functions, etc. ) are t h e n analyzed and a general development plan is formulated to fully realize the potential of the field.
0920-4105/89/$03.50
Once such decisions concerning the production process have been made, the next step is to determine the best approach to use in drilling these development wells. It is at this point t h a t economic considerations begin to have the greatest impact. A wide variety of factors (available facilities, surface conditions, etc. ) are involved in the development drilling process. In extreme cases such as the North Sea (large fields far from shore, frequently adverse weather conditions, deep water, etc.) facilities and drilling costs can easily extend well into the range of hundreds of millions of dollars. W i t h total investments of this magnitude, a savings of only several percent can become quite significant. This paper presents a FORTRAN computer program which utilizes zero-one integer programming to minimize the investment costs for facilities and drilling during the development
© 1989 Elsevier Science Publishers B.V.
46 stage. This minimization is the result of optimally locating facilities and allocating wells to these facilities (referred to as the platform location-allocation problem). The optimal allocation of wells consists of determining which bottom-hole targets should be drilled from which facilities to minimize the total drilling costs. The program takes into consideration such elements as the bathymetry of the sea floor, the structure of the target reservoir, the preferred hole geometry (directional drilling pattern) for the region (a factor which determines the maximum horizontal deviation for each well), and the number, sizes and types of production facilities available. The program presented represents a major improvement over past solution techniques used for the platform location-allocation problem. It was previously believed that the significant size and complexity of the problem made the use of zero-one integer programming computationally infeasible. However, this program indicates that zero-one integer programming is not only computationally efficient for a problem of this size, but also guarantees the optimality of the final solution, based on the input data supplied. Previous attempts to solve the platform location-allocation problem have not been able to guarantee optimality, at least not global optimality. In addition, many of the constraining elements mentioned in the previous paragraph were ignored in these previous works, resulting in reduced-problem definition. Review of literature
The solution of the platform location-allocation problem has been attempted on a number of occasions over the past twenty years. In general, the problem has been compared to the warehouse location-allocation problem, a classic operations research and linear programming problem. The first significant discussion of the problem was published by Devine and Lesso (1969). The heuristic solution routine employed by De-
vine and Lesso was referred to as the alternate location and allocation algorithm. This routine consisted of what was essentially an iterative process containing the following steps: (1) Targets are assigned to each platform arbitrarily (usually geographically). ( 2 ) T h e location of each platform is determined to minimize drilling costs. (3) The targets are re-allocated to the platforms based on the new platform locations to further minimize drilling costs. (4) Steps 2 and 3 are repeated until no further changes occur between steps. Step 2 was referred to as the location subproblem while step 3 was termed the allocation sub-problem. Devine and Lesso found that this process would always converge, but that the solution would not necessarily be the global optimum since the solution was dependent upon the initial starting points. Since the final solution was, in general, only a local minimum, it was recommended that the problem should be solved several times using different starting points, with the best solution being selected. Frair and Devine (1973) later attempted to expand the problem to include both the scheduling of platform placement and well drilling, and the forecasted production rate of each oil reservoir for each time period. The objective function became the maximization of the total discounted after-tax cash flow. This problem was originally conceived as a mixed-integer programming problem. However, at the time the limited capacity of linear programming and the excessive computing time involved made the solution of the entire problem infeasible. As a result, the problem was broken down into four sub-problems, each to be solved separately: ( 1 ) platform location problem; (2) well assignment problem; (3) platform placement schedule problem; (4) well drilling schedule problem. The solution method for the first two subproblems was the same as that outlined by Devine and Lesso ( 1969 ), hence global optimality could not be guaranteed. Costa ( 1975 ) studied three related problems:
47 (1) the platform location problem; (2) the dual completion problem; and (3) the scheduling problem in the drilling operation. In general, Costa dealt only with various approaches to the formulation of the platform location problem. Apparently, no attempt was made to actually apply a solution technique. In addition, virtually all of his approaches were based to some degree on the assumption that platform cost is independent of location. Although such may be the case in some instances, the potential economic effect of locational differences is often significant. Dogru (1975) expanded the platform location-allocation problem to include pipeline network design and production policy. Dogru approached the platform location sub-problem with three different methods: (1) random destination method; (2) alternate location-allocation method; and (3) restricted random destination method. Each method has several points in common. A fixed number of wells are assigned bottom-hole locations. These wells are then allocated to a fixed number of platforms allowed to assume varying locations. The choice of platform size is allowed to vary continuously. The location of platforms is achieved using the same location sub-problem method introduced by Devine and Lesso (1969). Random destination methods have the advantage of considering drilling costs when calculating possible solutions. These methods also tend to converge, although convergence to an optimal solution is not guaranteed. However, random destination methods generally do not result in optimization that is better than the alternate location-allocation method. Odell and Rosing (1977) also dealt with the problem of optimal placement of platforms and allocation of wells to these platforms. However, their purpose was to optimize in such a way as to maximize oil recovery. In this instance, investments were viewed as constraints rather than optimization objectives. The most important aspect of the work of Odell and Rosing was
their successful use of zero-one programming.
integer
Statement of problem The platform location-allocation problem consists of minimizing the development cost of an offshore oil or gas field subject to a number of constraining factors. These factors can range from physical characteristics of the reservoir and surface to the state of drilling technology in a region to the availability of facilities. Enough of these factors must be taken into account to result in a meaningful solution. The combination of these factors results in a problem of significantly large proportions with correspondingly significant complexity. To explore all of the possible solutions by hand would be prohibitively impossible for all but the smallest problems. Yet all possible solutions must be examined to guarantee that the configuration that is ultimately chosen is optimal. The use of zero-one integer programming guarantees this optimality. It was once believed that the platform location-allocation problem was too large and complex for this solution process. However, the example problem to be discussed later was not only solved efficiently, but also represented one of the largest problems ever to be solved by zero-one integer programming.
Definition of individual problems The first step in the solution process is to define productive limits of the reservoir and the structural contour of the top of the reservoir. Once the reservoir has been areally defined, it is segmented by a rectangular grid. The overall grid-size and individual grid-cell dimensions will be input by the program user. The gridded reservoir structure map will be used to locate bottom-hole targets. A bathymetric (water depth) map of the sea floor within the grid area is then constructed. The gridded map of the contour of the sea floor will be used in the specification of potential surface facility locations.
48
Once the physical characteristics of the reservoir and the surface have been described, the number and target locations of the wells to be drilled can be specified. This distribution of targets could be determined by such methods as: (1) running a reservoir simulator to select the number and location of targets which would optimize recovery; or (2) "eyeballing" a fairly uniform distribution based on the desired spacing. Next, a surface grid is created by selecting cells whose seafloor conditions can best support drilling and production facilities. Care should be taken in the selection of potential surface locations as errors will generally prove to be much more costly than errors in targeting wells. The next step is to define the type of well to be drilled. This is accomplished by specifying four factors: (1) the type of directional hole pattern to use (see Figs. 1, 2, and 3); (2) the depth from the surface to the kick-off point (start of hole deviation ); ( 3 ) the maximum rate of build-up or "dog-leg", expressed in degrees/ 100 ft; and (4) the maximum angle of deviation
0'
i
II
~-
DEV
m
Fig. 2. Type 2 directional drilling-hole buildup curve.
B~---U R - -
;7
R
Fig. 3. Type 3 directional drilling-hole buildup curve.
DEU
B
Fig. 1. Type 1 directional drilling-hole buildup curve.
from vertical. These factors are combined with the water depth at each surface cell and the depth to the top of the reservoir at each target cell to determine the maximum horizontal de-
49 viation which could be tolerated between any surface cell and any target depth. The remainder of the factors to be considered in the problem deals with the specification of facilities to be considered. The program is designed to handle three types of production facilities: ( 1 ) platforms; (2) drilling templates; and (3) subsea manifolds. The manifolds would generally be used to connect individual, vertically-drilled subsea completions (wellheads on the sea floor). The program user has the ability to define several key characteristics of the facilities to be considered in a given problem. The first step is to specify how many different designs of each facility type to evaluate. These designs are differentiated by the size (well capacity) of the facility and its maximum rated water depth. The maximum and minimum number of each design of each facility type to use can also be specified. Finally, the maximum and minimum number of wells to consider for each design of each facility type can be input. This allows for the inclusion of overdesign, a feature which may prove useful in areas where there is a high risk of losing a hole, necessitating redrilling.
Mathematical p r o g r a m m i n g formulation of the problem
checked, they are said to be implicitly enumerated. The primary advantage of zero-one implicit enumeration is that it guarantees the determination of the optimum solution through a computationally efficient process. Such a guarantee of optimality has been absent from previous attempts to solve the platform location-allocation problem.
General model formulation The first step in formulating a mathematical programming model is to develop an equation known as an objective function which describes the objective desired for the solution of a problem. Next, a solution routine is used to optimize (maximize or minimize) the objective function. However, solution of a mathematical model is also affected by restrictions represented as constraint equations. The development of these constraint equations is the second step in formulating a mathematical programming model. The general form of the zero-one integer programming model as used in the minimization process of the location-allocation problem is as follows. The objective function is: minimize Z = ~ CiXj
(1)
j=l
The mathematical programming method selected to solve the platform location-allocation problem was zero-one integer programming. Zero-one integer programming is a specialized case of linear programming which allows the solution variables to only take on values of zero (variable not included) or one (variable included). The solution process for zero-one integer programming is often referred to as zeroone implicit enumeration. This name is derived from the process of performing tests which can eliminate many possible solutions at once on the basis of infeasibility or non-optimality, thereby greatly reducing computing time. Since the eliminated solutions are not individually
Subject to constraints are:
Ai,jXj
(2)
J=l
Where:
Xj = 0 or 1; decision variable i j Z
-- 1,2,...,m = 1,2,...,n =value to be optimized Cj = cost coefficient Ai.j =constraint coefficient Bi = constraining value The location-allocation problem is set up along the lines of these generalities. Only by considering all possible combinations of X/'s
50 can the optimum value of Z be guaranteed. For each evaluation of Z, the contributing combinations of Xj's must not violate any of the set of constraint equations. If any constraint equation is violated, then the solution consisting of that combination of Xj's is not feasible.
Objective function
minimize Z: NP
NJUSE
Z= E
E
k=l
+
E
j=l
E
k=l
+
i=1
NK
NJUSE
E
E
NIUSE
E Cmwh,Wh,
j=l
i=1
NIUSE
E Cph..P,,,~ i=l NK--NM
X h=NP+I NK
+
E Cwth.j,iWh,l,i
j=l
h=NP+NT+I
+E
N1USE
E
k=NP+t
+
Cwpk.j,iWkj,i
i=1
NK-NM N J U S E
NP
The objective function for the platform location-allocation problem is an equation with the same form as Eq. 1. The coefficients for these variables represent the cost of the facilities being considered and the drilling costs of all possible wells (all facility design, surface location, target location combinations ). The variables in the problem are analogous to the X / t e r m in Eq. 1. The variables used are represented by the t e r m s Wk,j,i, Pk,i, Tk,i, and Mk,i, signifying the possible wells, platforms, templates, and manifolds, respectively. The subscripts k, i, and j are indicators for the type of production facility, surface grid-cell number (surface location of facility), and target gridcell number (bottom-hole location of a well), respectively. The variable Wk,j,i takes on a value of one if a well is drilled from production facility k located at surface cell i to target cell j, and a value of zero otherwise. The variables Pk,i, Tk,i, and Mk,i take on a value of one if a platform k, template k, or manifold k, respectively, is located at surface cell i, and a value of zero otherwise. The cost coefficients used in the objective function are analogous to the term Cj in Eq. 1. The coefficients CWpk,j,i, Cwtk.j,i, and CWmk,j,i are the costs of drilling a well from platform k, template k, and manifold k, respectively, located at surface cell i, to target cellj. The coefficients Cpk,i, Ctk,i and Cmh,~ are the costs of platform k, template k, and manifold k, respectively, located at surface cell i. Using the terminology defined above, the objective function for the location-allocation problem can be expressed as follows:
NIUSE
~ k=NP+NT+I
NIUSE
X Ctk,iTh., /:1 N1USE
~
Cmk,iMk.i
(3)
i=1
In this function, the minimization of Z is the minimization of the total development investment. See Appendix B for definition of terms.
Determination of cost coefficients After the selection of the proper variables, the determination of meaningful cost coefficients for the variables is the most critical aspect in the construction of the objective function. The accuracy of the problem solution can be no better than the accuracy fo the cost coefficient estimation. This program is structured so that facility and drilling costs are represented by cost functions. Obviously, a single set of cost functions will not be universally applicable. The functions will tend to vary with such factors as location (North Sea, Gulf of Mexico, etc.), changes in the economic climate (time dependent), and even individual company policy. Due to this uncertainty, the cost functions will be the only portion of the program itself (as opposed to the input data set) that will require customization to fit the needs of the individual user. In general, the investment cost of a facility (platforms, templates and manifolds ) will usually be best represented as a function of the water depth in which the facility will be placed, and the size (well capacity) of the facility. A
51 drilling template will usually require an accompanying manifold to handle production. The cost of such a manifold is added to the template cost function. The cost to drill a well will generally be a function of the true vertical depth (TVD) of the well and the amount of horizontal deviation. In addition, different drilling cost functions should be used for each type of facility (drilling platform, drill ship, etc. ). A vertically-drilled subsea completion will have no horizontal deviation factor to affect its cost. However, such a completion will require a flowline to connect it to a nearby manifold, and the cost of the flowline can replace the horizontal deviation component in the cost function. Probably the best way to create facility cost functions is to consult equipment manufacturers. Experience with similar facilities in nearby fields can also prove quite useful. In fact, experience is usually preferable in the case of drilling cost functions. Generally, enough data concerning drilling costs will be collected from the field's wildcat and delineation wells to develop a set of reasonably accurate, field-specific drilling cost functions. Constraints In a minimization case such as the locationallocation problem, the m i n i m u m value of the objective function would immediately appear to be zero. Common sense makes it obvious, however, that this result would be incorrect. In order for the mathematical programming model to recognize this fact, it is necessary to create a set of limitations known as constraints. Constraints define various combinations of variable values which cannot (or must) exist. The set of all constraint equations for a given problem make up that problem's constraint matrix. The coefficients of any constraint equation constitute one row of the constraint matrix. The coefficients are placed in the matrix column corresponding to the variables with which they are associated. In general, it is desirable to include enough
constraints in a mathematical programming model to adequately describe the problem. Increasing the number of constraints will tend to narrow the number of feasible solutions, at least up to a point. Decreasing the number of feasible solutions would decrease the number of solutions which must be checked for optimality, thereby reducing computing time. However, at some point most of the additional constraints will begin to be redundant, resulting in unnecessarily increased problem size, increased computing time, and overall program inefficiency. Thus, care should be taken in the selection of constraints for any particular problem. A description of the constraints used in the modeling of the platform location-allocation problem is included in Appendix A.
Computer program The computer programming package which has been created to solve the platform locationallocation problem consists of three basic segments: (1) input and data processing; (2) matrix generation; and (3) the solution process. The combination of these segments allows for the formulation and solution of a model of the platform location-allocation problem. By way of careful and representative data input, the program performed efficiently while producing meaningful solutions. The input and data-processing segment and the matrix-generation segment were first developed by Grimmett (1986). The work which led to the paper presented here consisted primarily of a number of refinements of Grimmett's efforts. First, the problem size which the program could handle was increased significantly. Several constraints were eliminated after further investigation found t h e m to be redundant. Finally, several constraints were added which improved problem definition. The combination of these improvements resulted in a more flexible, efficient program.
52
Input and data processing As is the case with any computer program, the data input stage of the platform locationallocation problem solver is critical. The careful input of proper data not only helps to ensure an accurate solution, but it also will have a significant impact on the efficiency of the program. Once the model data has been input, some degree of data processing takes place. This includes the renumbering of the cells in the surface and target grids, the calculation of distances between all cells in the master grid, and the calculation of the maximum horizontal deviation for wells between surface cells i and all potential target depths. These calculated values will be used in the determination of the objective function cost coefficients and in the construction of constraint equations.
up to use a sparse matrix, or MPS, format. This format stores only non-zero coefficients by use of a pointer system consisting of naming the rows and columns of non-zero coefficients by assignment of character strings. The first step in MPS formatting is to specify the type of inequality for each row {this program uses only the less-than-or-equal-to inequality). The next step is to file one-line records containing: (1) the column name; (2) the row name; and (3) the corresponding coefficient value. Obviously, each non-zero coefficient which is retained will be associated with a unique column-row pair. The coefficients are grouped sequentially by columns. The third step is to file one-line records containing two entries: ( 1 ) the row name; and (2) the right-hand side value of the row.
Solution process
Matrix generation After the problem data has been input and processed, it is ready to be used in the generation of the constraint matrix. The matrix is defined by columns corresponding to the decisional variables and rows corresponding to the objective function and the various constraint equations, as discussed in the sections concerning the mathematical formulation of the problem. Even a relatively small problem can result in a rather large matrix requiring a great deal of storage. Also, only a small percentage of the coefficients in the matrix will take on a nonzero value. In the case of the example problem to be discussed later, the matrix consisted of 320 columns and 770 rows for a total of 246,400 coefficients. Only 3235 (1.3%) of these coefficients took on non-zero values. Hence, almost 99% of the matrix storage space was "wasted", representing a high level of inefficiency. Furthermore, the storage requirements for even a moderate-sized problem would exceed the capacity of almost all existing computers. To deal with this problem, the program is set
Once the matrix of integer variables and constraint equations has been generated, a mixedinteger programming solution routine is invoked. The solution routine is an adaptation of the MIPZ1 mixed-integer programming package developed by Schrage et al. (1973). The integer variables used must be either zero or one. The code itself is an adaptation of the code developed by Bravo (1970). The algorithm represented by this code is basically a modification of the Additive Algorithm of Balas (1965). Any zero-one integer problem with N variables will have 2 g possible solutions. Thus, the number of possible solutions grows exponentially with the number of variables. As a result, the time required to solve all but the smallest problems becomes prohibitive if every possible solution is checked. This leads to the use of an approach referred to as zero-one implicit enumeration. This approach consists of performing tests during the solution process to determine whether the investigation of solutions along any given branch (all solutions in which a particular variable has the same value) of the enumeration tree will yield a feasible solution,
53 and if so, if the anticipated solutions will possibly yield an improvement over previously determined solutions. By performing these tests, a number of solution checks can be performed implicitly, greatly reducing computing time. The first step in the solution routine is to determine whether a feasible linear programming (LP) solution exists (continuous variables between zero and one). Then the optimum LP solution is determined. This solution represents the lowest possible objective function value. If all variables in the optimum LP solution take on integer values, then the optimum integer solution has been found and the program terminates. If any of the solution variables take on a continuous value between zero and one, then one of the variables is fixed to the nearest integer value. Again, an optimum LP solution is found. Another variable is then fixed to the nearest integer value and the process is repeated until a zero-one integer solution is found, or it is determined that no feasible zero-one integer solution exists containing the variable values which have been fixed. Once a feasible integer solution has been found, the solution value is retained for purposes of comparison to subsequent solutions. The next step is to switch the last integer value that was fixed to its complement (zero to one or one to zero), and perform two checks. The first check is whether a feasible LP solution exists. If not, exploration of this branch of the enumeration tree is abandoned and the backtracking process continues by switching the value of the next latest integer variable that was fixed. If a feasible LP solution exists, then the optimum solution containing this set of fixed values is determined. If the optimum LP solution does not improve the best previous integer solution by more than some designated minimum improvement factor (MIF), then the branch is terminated and the backtracking process continues. The justification for the use of a MIF is based on three factors: {1) in most cases the optimal integer solution along a branch will be somewhat higher than the LP
optimum, resulting in either an improvement of less than the MIF, or a value greater than the previous optimum solution; {2) there will generally be some degree of estimation and uncertainty in the cost coefficients, and a carefully selected MIF can be applied without affecting the actual accuracy of the solution; and (3) by eliminating branches of the enumeration tree which can at best provide only minor improvement of the solution, the number of solutions tested and hence the overall computing time can be significantly reduced while maintaining a highly satisfactory level of accuracy.
Program efficiency The nature of zero-one integer programming in general and the platform location-allocation problem in particular makes it very difficult to formulate generalized conclusions about the computational efficiency (primarily run-time) of the solution routine. There is not necessarily a direct relationship between problem matrix size and computer run-time. For example, a relatively small problem could be structured in such a way that a large percentage of the possible solutions would have to be checked explicitly, resulting in extended run-times. However, a very large problem could have almost all of the branches of its enumeration tree "trimmed off" by infeasibility and objectivefunction improvement tests, resulting in fairly short run-times. One point which should be made with regard to the platform location-allocation problem is that the number of cells in the master grid effects the size of the constraint matrix only if it limits the number of cells in the surface and/ or target grids to less than the desired level. It will have an effect on storage requirements for the input data, but the influence on total computing time should be minimal. With this in mind, it is recommended that the user grids the reservoir as finely as he or she feels necessary to accurately describe the field. Fine gridding
54
will allow for more precise targeting of wells and placement of facilities. The input values which affect the size of the constraint matrix are the number of cells in the surface and target grids, and the number of different facility designs to consider. Due to the multiplicative interaction of these variables, small changes in the magnitude of any of them can have a significant effect on the size of the matrix. Therefore, the user should take care to select for input only those cells and facility designs he or she feels are of greatest importance to the accuracy of the model. Another characteristic of the program which can influence run-time is the minimum improvement factor (MIF). The general relationship between the MIF and run-time is illustrated in Fig. 4. As the value of the MIF is increased, branches of the enumeration tree will be periodically eliminated, reducing run-time in a "stair-step" fashion. In many cases, the first integer solution found proves to be the optimal integer solution. However, if such is not the case, then as the value of the M I F is increased there will be points where even though the runtime is reduced, this reduction is offset by a loss of solution accuracy. Regardless of the number of integer solutions, there will always be some value of the MIF beyond which there will be no further reduction in run-time.
E
E o u
0
Minimum Improvement Factor (Percent or Optimal Solution)
100
Fig. 4. Effect of minimum improvement factor on computing time.
Example problem A hypothetical platform location-allocation problem was created to demonstrate the performance of the computing package. The input data used in this problem is given in Table 1. The study area for the problem was defined with a 10-cell by 30-cell rectangular master grid. This grid was superimposed over an oil reservoir whose productive limits are shown in Fig. 5. Each grid cell was a square with 1000 ft sides, resulting in a total study area of 6887 acres, and a productive area of approximately 2150 acres. The reservoir was represented as an anticlinal structure as indicated in Fig. 6. It was decided to develop the reservoir with 15 wells. The target grid-cells were chosen by attempting to achieve an even distribution across the reservoir (see Fig. 7). A bathymetric map of the sea floor (see Fig. 8) was constructed to provide the basis for the selection of the surface grid. To keep the problem at a moderate size, only 5 cells were selected for inclusion in the surface grid (see Fig. 9). The directional drilling pattern used was Type 1 as illustrated in Fig. 1. The wells were specified to be kicked-off at a depth of 1000 ft below the surface. The hole deviation would build up at a rate of 1.5°/100 ft to a maximum angle of 45 ° from vertical. The following facility designs were investigated: (1) a 12-slot platform rated to 500 ft of water, with a maximum well-limitation of 10; (2) a 24-slot platform rated to 500 ft of water, with a maximum well-limitation of 20; (3) 2 6slot templates rated to 700 ft of water, with a maximum well-limitation of 5 and (4) 2 6-well manifolds rated to 700 ft of water, with a maximum well-limitation of 5 and a maximum distance from associated wells of 6000 ft. The cost of each facility/surface cell and facility/surface cell/target cell (well) combination was determined by using the cost functions specified in Table 2. These cost functions
55 TABLE 1 Example problem input data Variable name
Input value
Variable name
300 cells 30 cells 10 cells 1000 ft 5 cells 15 cells See Fig. 9 See Fig. 6 See Fig. 10 See Fig. 7
Maximum number of template designs to consider Maximum number of templates allowed Maximum number of template design 1 allowed Minimum number of template design 1 allowed Number of slots available in template design 1 Maximum number of slots to use in template design 1 Minimum number of slots to use in template design 1 Maximum water depth for template design 1
Template variables
Physical variables Number of cells in master grid Width of master grid in terms of cells Length of master grid in terms of cells Length of each side of a grid cell Number of cells in surface grid Number of cells in target grid Water depth at each cell Reservoir depth at each grid cell Cells included in surface grid Cells included in target grid
General model variables Number of wells to drill Type of directional drilling-hole pattern Depth to kick-off point Maximum rate of build-up, or "dogleg" Maximum angle of hole deviation from vertical Maximum number of facility designs to consider
15 wells See Fig. 1 1000 ft 1.5 °/100 ft 45 °
Platform variables Maximum number of platform designs to consider Maximum number of platforms allowed Maximum number of platform design 1 allowed Minimum number of platform design 1 allowed Number of slots available in platform design 1 Maximum number of slots to use in platform design 1 Minimum number of slots to use in platform design 1 Maximum water depth for platform design 1 Maximum number of platform design 2 allowed Minimum number of platform design 2 allowed Number of slots available in platform design 2 Maximum number of slots to use in platform design 2 Minimum number of slots to use in platform design 2 Maximum water depth for platform design 2
Input value
2 1 1 1 12
1 2 2 0 6 5 1 700 ft
Manifold variables Maximum number of manifold designs to 1 consider Maximum number of manifolds allowed 2 Maximum number of manifold design 1 2 allowed Minimum number of manifold design 1 0 allowed Number of slots available in manifold 6 design 1 Maximum number of slots to use in 5 manifold design 1 Minimum number of slots to use in manifold 1 design 1 Maximum water depth for manifold design 1 700 ft Maximum distance between manifold and 6000 ft well
10 1 500 ft 1 0 24
II|
II
f/ rj
II
iiii
"¢--~a, -
iib
I~V.
Fig. 5. Areal limits of reservoir - example problem. 20 1 500 ft
are roughly r e p r e s e n t a t i v e of d e v e l o p m e n t costs for f i e l d s i n t h e G u l f o f M e x i c o . B a s e d o n t h e i n p u t d a t a d e s c r i b e d a b o v e , 320 different decision variables were defined, along
56
liillillllll *++ ll [ /i"¢ai'~l'-l4"J"r'i~ilili~]>'J~l
TABLE 2
I J ~,A"-b-l~4O.~i~wxl
Cost functions ($MM) (Gulf of Mexico)
illiil
~ I I I I'l-q,F-l'-r-I-t'~l I I I I LJ--'F L~,-4 I i tlk~k~ 1 lYY~T'-I-4-4"T_J-.'I'T I N'%,.r"l-'P-l--~l I I I I I I~F.4._~LI.-4-.T-I I I I I I I Ifl/~XI II!~ lrl
' ~
I } .ltlll/I ~ t IA.W.JI~XXI ; ; i ; ~ X I 1 ~ 1 1 111111 I 11 I I I I I I I I I I I I I I I I I I I I I
I I
Welt drilled from surface cell i to target cell j:
I I
Platform: C = 0.0003341"Z (i,j) + 0.0001114*D (i,j)
Fig. 6. Reservoir structure map - example problem.
Template: C = 0.00040*Z ( i,j ) + 0.0001114*D (i,j)
l l l l l I.,-I.-H..d-AI I I I I I I I I I I I ' ~ I I I I I l,,n~l I I I I]'-I'--I-~LI I I I ~ I I ~ I I~I I I~1 I I I ~ I I I 1 ~ t t I I ~ 1 11 I I I tll IJl I ~ I I I I I I I 111 I I I I I i I I I ~ ISl Ifll I I I IIII ~ 11 I I~ II1~ IIIIX III ~ I I ~ II li III III I IIIII liXI
Manifold:
nl
Facility."
I I
I I
I 11
I I I I ~
I I i I ~
ItC...i-ll
I
I\11 I ~ I I ~ I I I I I I I I N I I I I I I I_,l,-'f-I I I I I I I I I I I I I I I I i i i~l-,g_[I L J-.4-'f-I I I I I I I I I I I I I I I I I I I X
+ 0.0001114*D ( i,j )
C = 0.00045"Z (i,j)
Platform (if waterdepth less than 300 ft): C = (2375 + 0.02088"WD ( i ) * ' 2 + 118.8*KPSLOT (k) + 0.4924"WD (i) * K P S L O T (k) ) / 1000
- Target Cell
Fig. 7. Tar~tgrid-exampleproblem. Platform (if water depth greater than 300 ft): I I I I I I l~rl
I I I I I I I I I I I I I ~ I
I I I I
I I I I ko#'g I I I I I I I I I t LA---T-'¢~I I I I I I I I I L-t~l I I I I I I I I I I I~l'd I I I I
I I I 11 I I~--'t'~l I I I I I I I 11 Lb@g I 11 I I I I I I I 1.4~11 I I I I I ILJ-4-'f"l-1 ~ I I I I I I I~'11 I I I I I I I I I I I_J--'rl I I I I I I I I I I I I J-dl I I I I IJ~.-4-f'-T-I I I I L.'KI I I I J.Ad~l I I I I
I I I I I I I I I I I I I I ~T*I I I I I I I
I I I I I I I~.J lJ-b-4 I I I I I I I 11 I I 11 I I
I I I I I
C = ( 1379 + 0.04269"WD ( i ) * ' 2 + 6 1 . 7 1 K P S L O T (k) +0.6402"WD (i)*KPLSLOT(k))/1000
Template: C = 5 + 0 . 5 * K T S L O T (k)
Manifold: C=1.3
Fig. 8. B a t h y m e t r ~ m ~ ( w a t e r d e p ~ ) - e x a m p l e p r o b ~ m . I I I I I L.b-+-J~L~I I I I I I l_.J-l--J~_Jl I I I l.-~C~l I I,,KI I
I/rl I[I HI I~I IM I N i i
I I I l l I I I I I 13~i._i
I I I I I I
I I ~ I I I El I I I I [J-I
I I I I I I I_ I El I I I I i 13_-p-i~i
I I I I I I I I I I I I I I I l.~u~r-i i i
I I I I
I I I I
I I I I
I I I I
I I I IJ~F-I-H-~I
~ I I I I I 13kl I I I El I I I I I I~I
I I I I I I I I []
I
III
I I I I I I I I I IX I I I I I I I I IXl
I I I I I I I~Pll I I I I I I i i i i I I I I I I I I I I I i i I i i i i i i i i i i i i i
- P o t e n t i a l Surface Cell
Fig. 9. Surface
grid - example
I
I I I I I I I I I I IJ.~-'H--i-~l '
. " : '
=t I I I ~ : 1
IX I I I B~."r~l,~ll~l~ I I/I 1 I I IJ,'~[Jl/llXl"'ll~'l I ~ III ~ I ¥~Ii1 i I~1 J I I I1,11 I I I YI I I I~11~r--I~ I~11 11 ~II I I I IXl I I I N I I I 11 I I I L.P'FI I I ] I [~-UdL~I~[ ] [ t I I X
- Target Cell
O
I I I I I IP"kl I
IA I [ t I III
I I I I 1~
~
t I I I I/t
lJl
~ I I I I:X I 1 I I 1 I1t"1 I
I I J...,P'1 I I I I I 11 I I I I I I I I 11 I I I I I I I I
I I I I
I I I I
I I I I
- Potential Surface Cell
Fig. 10. Platform location-allocation solution - example problem.
with 770 constraint equations. Thus, this particular problem, although moderate in size, had 2320 possible solutions, all of which had to be checked either explicitly or implicitly. The solution obtained from the computer package indicated that the optimum development of the field would require drilling 10 wells from a 12-slot platform, and connecting 5 vertically-drilled wells to a 6-well manifold at a total investment of $87,341MM. The platform
problem.
and manifold locations and well allocation are indicated in Fig. 10. The running of the program itself required a total of 45 min of CPU time on a PRIME 9755 mini-computer. The first integer solution was found after only three variables had been fixed at integer values. This also proved to be the optimum integer solution as the backtracking process eliminated each of the three possible alternate main branches on the first check (the
57
switching in sequence of the three fixed variables to their complements, zeros to ones and ones to zeros). Two of the branches were terminated due to infeasibility and the third was terminated due to an inability to improve on the previous solution.
NK NJUSE NIUSE
Z
h=l
~
Z
j=l
i=1
-W4,J,i~-NwELLs
(A-lb)
One well per target cell Each target cell will be allowed only one wellpenetration, which leads to NJUSE equations. NK NIUSE
Conclusions
~. h=l
1. The computer program presented in this paper represents an advance over past attempts to solve the platform location-allocation problem. 2. The use of the sparse matrix format tremendously reduces the required computer storage. Without it, all but the smallest problems would be computationally infeasible. 3. The program guarantees that, based on the input data, a global optimum will be found. 4. The zero-one implicit enumeration solution technique greatly reduces the number of solutions which must be checked explicitly. 5. The use of a minimum improvement factor can reduce the computer run-time of the program with little or no loss of accuracy. 6. In general, larger problems should require longer computer run-times. However, such a direct relationship is not guaranteed to be the case for all problems.
W4,j,~<-1.0
(A-2)
i=1
j-- 1,NJUSE
One facility per surface cell This constraint allows placement of no more than one production facility in any surface grid cell; NIUSE equations. NK
P4,i < 1.0
(A-3)
k=l
i = 1,NIUSE
Corresponding well and facility This requires facility to be located in any surface cell from which a well is drilled (or, in the case of manifolds, to which a well is connected). This also requires a k-type well to be associated with a k-type facility; N K * N I U S E * N J U S E equations.
Wk,j,i-- P4,i ~-0
(A-4)
k = i, N K j = I, NJUSE i= I, NIUSE
Appendix A
Constraint equations
Horizontal deviation
The constraint equations included in the formulation of the platform location-allocation problem are described below. See Appendix B for definition of terms.
The constraint which specifies the maximum horizontal deviation of a directionally drilled well; NK*NIUSE*NJUSEequations.
D(i,j) W4,j,i _
(A-5)
k-- 1, NK
Total number of wells
j=
The specification of the number of wells to be drilled are: NK NJUSE NIUSE
Z
4=1
Z
j=l
Z
i=1
W4,J,i~-NwELLS
(A-la)
1, N J U S E
i = 1, N I U S E
The variable D(i,j) represents the horizontal distance between the center points of surface cell i and target cell j. This distance is calculated in the program using simple two-dimen-
58
sional geometric relationships. The variable represents the maximum horizontal deviation for a well drilled from surface cell i to target cell j. This distance is also calculated in the program by taking into account the following factors: (1) water depth at surface cell i (WD(i)) in ft; (2) depth to top of reservoir at target cell j, (TD ( J ) ) , in ft; (3) depth from surface to kick-offpoint (ZKOV) in ft; ( 4 ) m a x i mum rate of build-up or "dog leg" (BU) in °/ 100 ft; and (5) maximum angle of hole deviation from vertical ( A N G M A X ) in degrees. All five factors are input by the user. Factors 1 and 2 are taken from the reservoir structure and seafloor bathymetry maps to determine the true vertical depth of each possible well [z (i,j) = TD ( j ) -- WD (i) ]. Factors 3, 4, and 5 relate to the directional drilling hole build-up curves found in Figs. 1, 2, and 3. The user also selects from these curves the hole-deviation pattern to be used in drilling the wells. Depending on the curve chosen, one of the following equations is used to calculate the maximum horizontal deviation: Type 1 {Fig. 1) DEV(i,j)
must not exceed the maximum horizontal deviation for a well between the same two cells.
Maximum number of facility types This specifies the maximum number of platforms, templates and manifolds to consider in design. Platforms (one equation if NP > 0 ): NP NIUSE ~ Pk.i --~ KPTOT k=l i=l
(A-6a)
Templates (one equation if NT > 0): N K - N M NIUSE
~ k=NP+I
Tk,i
(A-6b)
i=1
Manifolds (one equation ifNM> 0): NK
NIUSE 2 Mh,i -~ KMTOT k = N P + N T + I i=1
(A-6c)
Water depth This item specifies the maximum water depth in which each facility design may be placed. Platforms ( NP*NIUSE equations ): (A-7a)
WD(1) _~ WDPK(K)
k = 1, NP i = 1, NIUSE Templates (NT*NIUSEequations):
D E V ( I , J ) - R D I S * ( 1 . - C O S ( A N G L E ) ) + (Z(I,J) Z K O P - (RDIS*SIN (ANGLE)) )*TAN (ANGLE)
(A-5a)
(A-7b)
WD(I) _~ WDTK(K) k----NP+ 1,NK-NM
Type 2 (Fig. 2)
i ----1,NIUSE DEV (I,J) = 2.*RDIS* ( 1 . - COS(ANGLE) ) + (Z (I,J) -
Manifolds (NM*NIUSEequations):
Z K O P - (2.*RDIS*SIN {ANGLE) ) )*TAN (ANGLE)
(A-5b)
k-- NP+NT+
1,NK
i --~ 1,NIUSE
Type 3 (Fig. 3) DEV ( I,J ) ~- RD IS* ( 1. - COS (ANGLE) )
(A-7c)
WD(I) --~WDMK(K)
( A - 5c )
where ANGLE = PI*ANGMAX/180
(A-5d)
RDIS = A N G M A X / B U / S I N (ANGLE)
( A - 5e
)
This constraint assures that for a well to be included in a feasible solution, the horizontal distance between surface cell i and target cell j
Number o[ [acility designs It specifies the minimum and maximum number of each facility design to consider. Platforms (2*NP equations): NIUSE
KPMIN_< Z
Pk,i--
i=1
k = l , NP Templates
(2*NT
equations):
(A-Sa)
59 NIUSE KTMIN _~ E Th,i -~ KTMAX i=1
line length). NM*NIUSE*NJUSEequations. (A-8b)
D (i,j) * Wk,j,i < DISMAN
k=NP+I, NK-NM
k----N P + N T + I , N K
Manifolds (2*NM equations):
j = 1,NJUSE
i = 1,NIUSE
NIUSE KMMIN _~ k=NP+
E Mh,i ~- KMMAX i=1
(A-8c)
Attachment 1
NT+ 1,NK
Excess slots
Constraint matrix dimensions
This constraint specifies the maximum and minimum number of slots to allow for each facility design; permits planned overdesign. Platforms ( 2*NP*NIUSE equations ): NJUSE
E j=l
Wk,j, i -- KPSLMX ( k )
_<0
(A-9a)
KPSLMN(k)+ Wh,j,i <_O
(A-9b)
NUSE =
# of constraint matrix columns used for actual integer variables (NK*NIUSE*NJUSE)-{-(NK*NIUSE) MUSE = # of constraint matrix rows used for actual constraint coefficients. Includes one row for objective function cost coefficients.
NJUSE
~,
# of rows
j=l
Objective function Total # of wells 1 TD per target cell 1 facility per surface cell (NK*NIUSE*NJUSE) Maximum horizontal deviation + (NK*NIUSE*NJUSE) Facility if well at surface cell i Also, k-type facility must be at surface celt i if k-type well at surface cell i
Templates (2*NT*NIUSEequations): NJUSE
E
Wk,j, i -- KTSLMX ( k )
NJUSE ~-~ K T S L M N ( k ) - j=l
-<0
Wh,j,i ~---0
(A-9c)
(A-9d)
k = N P + 1,NK-NM i = 1,NIUSE
If NP.NE.0:
Manifolds (2*NM*NIUNEequations):
+1
NJUSE
.~
Wk,j,i-
Constraint
=1 +2 + NJUSE + NIUSE
k = 1, NP i = 1, NIUSE
j=l
(A-II)
KMSLMX ( k ) - - 0
+ (NP*NIUSE)
(A-9e)
3=1
+ (2*NP)
NJUSE KMSLMN ( k ) -j=l
Wk,j, i ~---0.
(A-9f) - -
(2*NP*NIUSE)
k = N P + N T + 1,NK
i = 1,NIUSE
Distance of wellsfrom manifold This specifies the maximum distance which
a vertically drilled subsea completion can be from its connecting manifold (maximum flow-
Maximum # of platforms Water depth (platform) Bounds on # of each platform design to use Maximum and minimum # of slots to use, each platform design
If NT.NE.0: +1 + (NT*NIUSE)
Maximum # of templates Water depth (template }
60 + (2*NT)
+ (2*NT*NIUSE)
Bounds on # of each template design to use Maximum and minimum # of slots to use, each template design
If NM.NE.0: +1
Maximum # of manifolds + (NM*NIUSE) Water depth (manifold) +(2*NM) Bounds on # of each manifold design to use + (NM*NIUSE*NJUSE) Distance of wells from manifold (2*NM*NIUSE) Maximum and minimum # of wells to allow, each manifold design
Appendix B
Notation ANGMAX
= m a x . angle of hole d e v i a t i o n f r o m vertical, degrees BU = m a x . r a t e of build-up, or "dogleg", ° / 100 ft D(i,j) -- h o r i z o n t a l d i s t a n c e b e t w e e n surface grid cell i a n d t a r g e t grid cell j, ft DEV(i,j) = max. horizontal deviation possible b e t w e e n s u r f a c e grid cell i a n d d e p t h of t a r g e t grid cell j, ft DISMAN = m a x . d i s t a n c e allowed bet w e e n w e l l h e a d of a s u b s e a c o m p l e t i o n a n d m a n i f o l d to w h i c h it is c o n n e c t e d , ft KMMAX(n) = m a x . n u m b e r of m a n i f o l d design n allowed KMMIN (n) = m i n . n u m b e r of m a n i f o l d design n allowed KMSLMN ( n ) = min. n u m b e r of wells to conn e c t to e a c h m a n i f o l d design n
KMSLMX(n) ---- m a x . n u m b e r of wells to conn e c t to e a c h m a n i f o l d design n KMSLOT(n) = t o t a l n u m b e r of well c o n n e c t i o n s a v a i l a b l e for e a c h m a n i fold design n KMTOT --max. n u m b e r of m a n i f o l d s allowed KPMAX(n) = m a x . n u m b e r of p l a t f o r m design n allowed KPMIN(n) -- min. n u m b e r of p l a t f o r m design n allowed KPSLMN(n) = m i n . n u m b e r of slots to use for e a c h p l a t f o r m design n KPSLMX(n) = m a x . n u m b e r of slots to use for e a c h p l a t f o r m design n KPSLOT ( n ) -- t o t a l n u m b e r of slots in e a c h p l a t f o r m design n KPTOT --max. n u m b e r of p l a t f o r m s allowed KTMAX ( n ) = m a x . n u m b e r of t e m p l a t e design n allowed KTMIN ( n ) -- min. n u m b e r of t e m p l a t e design n allowed KTSLMN ( n ) -- min. n u m b e r of slots to use for e a c h t e m p l a t e design n KTSLMX(n) -- max. n u m b e r of slots to use for e a c h t e m p l a t e design n KTSLOT ( n ) -- t o t a l n u m b e r of slots in e a c h t e m p l a t e design n KTTOT = m a x . n u m b e r of t e m p l a t e s allowed -- m a n i f o l d design k located a t Mk,i s u r f a c e cell i MUSE -- n u m b e r of c o n s t r a i n t m a t r i x rows. I n c l u d e s o n e row for t h e objective f u n c t i o n NIUSE = n u m b e r of cells in surface grid NJUSE = n u m b e r of cells in t a r g e t grid NK = m a x . n u m b e r of d i f f e r e n t facility designs (defined b y well capacity and max. water d e p t h ) to c o n s i d e r NM = m a x . n u m b e r of d i f f e r e n t m a n i f o l d designs to c o n s i d e r NP = m a x . n u m b e r of d i f f e r e n t p l a t f o r m designs to c o n s i d e r
61 NT
NUSE NWELLS
Pk.i
Tk.i TD(/)
Wk.j.i
max. n u m b e r o f d i f f e r e n t t e m p l a t e designs to c o n s i d e r = number of constraint matrix columns = n u m b e r of wells to drill = p l a t f o r m design k located at surface cell i = t e m p l a t e design k located at surface cell i ----- t r u e vertical d e p t h to reservoir top u n d e r each cell l in m a s t e r grid, ft = well drilled f r o m surface facility k, located at surface cell i, to t a r g e t cell j ----
References Balas, E., 1965. An additive algorithm for solving linear programs with zero-one variables. Oper. Res., 13: 517546. Bravo, A., 1970. A mixed integer programming code. Univ. Chicago Rep. 7043. Costa, L.R.R., 1975. Optimization models for offshore oil field development, Ph.D. dissertation, Case Western Reserve Univ., Cleveland, Ohio. Devine, M.D. and Lesso, W.G., 1969. Optimization studies in the development of offshore oil fields. Pap. 69-PET5 presented at the 1969 ASME Pet. Mech. Eng. Conf., Tulsa, Okla., Sep. 21-25. Dogru, S.A., 1975. The optimization of profitability of off-
WD(/) WDMK(n) WDPK(n) WDTK (n) z(i,j)
ZKOP
= w a t e r d e p t h u n d e r e a c h cell l in m a s t e r grid, ft = max. w a t e r d e p t h for use o f each m a n i f o l d design n, ft = max. w a t e r d e p t h for use of each p l a t f o r m design n, ft = max. w a t e r d e p t h for use o f each t e m p l a t e design n, ft = t r u e vertical d e p t h b e t w e e n surface grid cell i a n d t a r g e t grid cell j, ft = d e p t h to k i c k - o f f p o i n t ( s t a r t of drilling d e v i a t i o n ) , ft
shore oil field operations. Ph.D. dissertation, Univ. Texas, Austin, Tex. Frair, L. and Devine, M.D., 1973. Optimal offshore oil field development. Presented at 1973 ORSA Meeting, Milwaukee, Wis., May 9-11. Grimmett, T.T., 1986. Optimization of offshore oil and gas field development using mathematical programming. M.S. thesis, Texas A&M University, College Station, Wex. Odell, P.R. and Rosing, K.E., 1977. Optimal development of North Sea oil fields. Nichols, pp. 59-64. Schrage, L., McCarl, B. and Barton, D., 1973. MIPZl Documentation on a zero-one mixed integer programming code. Purdue Univ., West Lafayette, Ind.