2.1. Improved AOA with Halton Sequence
As described above, the AOA is superior to many metaheuristic algorithms. However, the AOA also faces many challenges. One of the important challenges is that the AOA easily traps into the local optimal solution because the initial objects are generated randomly in AOA, resulting in poor diversity. Therefore, the HS–AOA was proposed in this study to solve the aforementioned problem.
Figure 1 presents the flowchart of HS–AOA, in which the initial objects are generated by the Halton sequence, followed by further optimization in the framework of the AOA.
The following are the detailed steps for developing the HS–AOA.
(1) Initialize the objects by Halton sequence
An arbitrary decimal integer
t is converted into its corresponding numeral in base
b:
a1(
t),
a2(
t),
a3(
t), …,
am(
t), Subsequently, position the digits symmetrically to the right of the decimal point to obtain the number as illustrated in Equation (1):
Where is the value of t in the Van der Corput sequence expressed in base b; m is the number of decimal places in ; al(t) is the lth digit of the b expansion of t in base b.
For distinct bases
b and values of
t are substituted into Equation (1), the Van der Corput sequences are generated. These sequences are then arranged to form a Halton sequence.
where is the row of the Halton sequence,b1、b2…bn represent n mutually prime integers starting from 1.
Initialize the volumes, accelerations, densities, and positions of all objects using Equation (3):
Where vi(t), ai(t), di(t), and are the volume, acceleration, density, and position of the object i at the tth iteration, respectively; includes the parameters that need to be optimized, such as the placements and numbers of infill wells; l0 andare the lower limits of acceleration and position, respectively; u0 and are the upper limits of acceleration and position, respectively.
(2) Calculate the object’s fitness
The parameters in the
of each object are input into an established reservoir simulation model for polymer flooding, and the oil production data are obtained by the simulation calculations. Then, the objective function (NPV) for drilling infill wells is calculated based on the economic parameters, such as the injection costs, drilling costs, and oil prices. The negative value of the NPV is treated as the fitness value as follows:
where N is the total object number; fitnessi(t) and NPVi(t) are the fitness value and the net present value of the object i at the tth iteration, respectively.
(3) Update volumes and densities
Update the volume (
vi(
t+1)) and density (
di(
t+1)) of the object
i at the
t+1
th iteration by using Equation (5):
where db(t) and vb(t) are the object’s density and volume, respectively, which have the smallest fitness values at the tth iteration.
The collisions between objects often result in the objects attempting to reach a state of equilibrium over time. The aforementioned process is described by Equation (6).
where TO(t) is the transfer operator; tmax is the maximum iteration number.
(4) Exploration phase
When the
TO is equal to or less than 0.5, the collision does not occur between the objects. A random object is selected to update the acceleration as follows:
where ai(t+1) is the acceleration of the object i at the t+1th iteration; dmr(t), amr(t), and vmr(t) are a random object’s density, acceleration, and volume at the tth iteration, respectively.
The
is obtained as follows:
where
is the position of a random object at the
tth iteration; C
1 is a constant;
D(
t+1) is the density decreasing factor at the
t+1
th iteration;
ai-n(
t+1) is the normalized acceleration at the
t+1
th iteration, which is calculated according to the following equation.
where la and ua are the lower and upper limits of ai-n(t+1), respectively; The min(ai(t+1)) and max(ai(t+1)) are the minimum and maximum values of the object i’s acceleration at the t+1th iteration, respectively.
The
D(
t+1) is calculated by using Equation (10):
When
TO is greater than 0.5, the collision occurs between objects. The acceleration is updated with the optimal object.
The
is determined as follows:
where C
2 and C
3 are constants;
TO(
t+1) is the transfer operator at the
t+1
th iteration;
F is a flag to determine the motion direction, which is calculated by using Equation (13).
where C
4 is a constant.
(5) Update fitness
After updating the object’s position, recalculate the fitness values of each object by using Step (2).
(6) Convergence
Repeat steps 2 to 5, and record the relationship between the fitness values and t. If all the objects have the same fitness value at the tth iteration or t = tmax, the algorithm ends, and the is the best object’s position. The parameters in including the placements and numbers of infill wells are the optimal values.