2.2.2. Hooke-Jeeves Direct Search Algorithm (HJDSA)
To solve the multi-objective optimisation problem in different furnace operations as shown in
Table 1 by HJDSA, this part stage constructs an objective function step by step. The objective function then works like a bridge to build a connection between the zone model unit and the HJDSA unit. Throughout the optimisation process, parameters are passed continually between the units, ensuring the success of HJDSA in obtaining the desired set-point temperatures.
● The objective functions
In order to reveal the relationship of the three parameters affecting the economic operation of the furnace and the supply of products at a consistent quality, and to explore how set-point temperatures impact on them, an objective function is first built, and then solved by HJDSA [
21] in different optimisation scenarios.
For several continuous drop-out blooms during a steady-state operation with the difference between the desired and the realistic discharge temperature Δ
Tdis and maximum temperature difference Δ
Tmax in bloom cross section, there is an objective function:
where
n is the total number of blooms, Δ
Tidis is the difference between the desired and the real discharge temperature of bloom
i, Δ
Timax is maximum temperature difference in bloom
i and
SFCi is the specific fuel consumption at the moment of bloom
i discharged,
M and
N are weighted factors.In this study, four adjacent drop-out blooms are taken into consideration after the furnace model running 5000 s, and the target discharge temperature is 1230 °C. Weighted factors
M and
N are taken from
Table 1 in accordance with the different optimisation scenarios.
● Finding optimal set-point temperatures by HJDSA
In this study, the core algorithm used in the multi-objective optimisation is HJDSA, which searches for the minimizing point of a function
f(
x) of several variables by exploring desired values near initial set-point values. A gradient-based method may be more efficient, however many real-world optimisation problems require using computationally expensive simulation packages to get the result of the objective function, thus it is difficult to calculate the derivative of the objective function [
27]. For the multi-objective optimisation problem in this paper, the objective function takes into consideration the discharge temperature and maximum temperature difference in bloom cross section. Since these two parameters relate to different discharge blooms, the objective function is not continuous and therefore not differentiable, which means the gradient information of the function is not available. Hence, direct search techniques must be used instead. The HJDSA algorithm does not require the function
f(
x) to be differentiable nor even to be continuous, as it only examines function values and remembers the location of the best value encountered, seeking to improve this value by a pattern search. This pattern search consists of a sequence of exploratory moves about a base point, with and pattern moves being followed if the exploratory moves fail to improve the objective function.
An exploratory move is made to get information about the function f(x) near the current base point ak (ak = (x1, x2, …, xi)). Each variable xi is firstly set an increment εi in the positive direction of xi and then in the negative direction, and after each move there is a check for the new function value. If a move results in a smaller function value, then the new value of that variable will be remained. After all the variables have been taken into consideration, a new base point ak+1 will be reached. If ak+1 = ak, the function f(x) has no reduction, and the increment εi is reduced, repeating the above process. If ak+1 ≠ ak, a pattern move from ak is made.
A pattern move, using information already obtained about
f(
x), is made to determine the best search direction in an attempt to hasten the search. A move from
ak+1 is made in this direction
ak+1 −
ak, as a move in the direction has led to reduce the function value. Hence the next pattern point is given by following equation [
27]:
The search then continues with a new series of exploratory moves about bk, and if the minimum function value achieved is less than f(ak), then a new base point ak+2 has been achieved. If not, the pattern from ak+1 is abandoned and the search continues with a new set of exploratory moves about ak+1. The minimum is assumed to be achieved if the step length s has been decreased to a specified small value εs.
Overall, a direct search for the minimizing point of a function by Hooke-Jeeves algorithm employs variables not directly referred to in Equation (1). Therefore, Equation (1) is rewritten as follows:
where
Tsp1,
Tsp3,
Tsp5 and
Tsp6 are the set-point temperatures of control zone 1, 3, 5 and 6 respectively.
While being equivalent to Equation (1), Equation (3) has the advantage that it can be minimized by HJDSA by setting set-point temperature values near their initial values; hence why Equation (3) can be regarded as a set-point temperatures generator. This generator and the zone model are two separate units, written in FORTRAN for this paper, which pass parameters to each other.
Figure 4 illustrates the overall program flow chart of HJDSA for determining the desired set-point temperatures.
Parameters should be set first. Initial set-point temperatures Tsp1, Tsp3, Tsp5 and Tsp6 were chosen to be 1150 °C, 1250 °C, 1200 °C and 1200 °C respectively, and an initial increment of 25 was used for all variables. In order to terminate the algorithm, the termination value εs and step length s were introduced which set to 1.0 × 10−6 and 25, respectively. The final parameter is ρ (ρ = 0.5) which was used to reduce increments εi (i = 1, ..., 4, for the 4 different variables) and step length at each iteration. After reading initial set-point temperatures as base point, an exploratory move begins. If the exploratory move and a pattern move following this both succeed, the increments and step length will reduce, and the next iteration commences. The iteration continues until the step length is less than the termination value.