2.3.1. The Shrink Method

From the basic principle of the BB algorithm, the search space *D* affects the amount of computation of the algorithm. If *D* can be shrunk, the subsequent BB algorithm can be significantly simplified. The range of *D* given by Equation (9) is derived from the range of latitude and longitude of the earth. Due to the limited coverage of the eLoran station, we can reduce *D* according to this feature.

The transmitting power of the eLoran transmitting station is usually fixed, and the eLoran receiver can receive signals from 800 km to 2500 km away from the transmitting station owing to the difference in the propagation path. When the receiver receives signals from multiple stations, it must be within the intersection of the coverage areas of these transmitters. Setting the range of this intersection as *Ds*, Figure 6 shows the basic schematic for determining *Ds*. The observable stations are TR1, TR2, TR3, and TR4. The prime vertical arc length between TR2 and TR4 is *W*, which can be estimated by Equation (18); the meridian arc length between TR1 and TR3 is *L*. It is estimated by Equation (19).

$$L = \mathcal{R}\_{\mathfrak{c}} (\mathfrak{q}\_{\text{max}} - \mathfrak{q}\_{\text{min}}),\tag{18}$$

$$\mathcal{W} = \mathcal{R}\_{\mathfrak{e}} \cos(\overline{\mathfrak{p}}) (\lambda\_{\max} - \lambda\_{\min}), \tag{19}$$

**Figure 6.** Shrinking diagram, (**a**) When *Q* > *W*, *Q* > *L*, the range of *Ds*. (**b**) When *Q* < *W*, *Q* < *L*, the range of *Ds*.

Assuming that the maximum working distance between the receiver and the transmitting station is *Q*, the range in the blue box of Figure 6 is *Ds*. Figure 6a,b show *Ds* under different conditions. The value of *Ds* can be calculated by Equation (20).

$$\begin{cases} \begin{array}{cc} \lambda \in \left[\lambda\_{I'}\lambda\_{\mathcal{U}}\right] = \left[ \begin{array}{cc} \min(\lambda\_{i}) - \frac{(Q-W)}{R\_{\text{c}}\cos\left(\frac{\mathcal{U}}{\mathcal{V}}\right)}, & \max\left(\lambda\_{i}\right) - \frac{(W-Q)}{R\_{\text{c}}\cos\left(\frac{\mathcal{V}}{\mathcal{V}}\right)} \end{array} \right] \\ \end{array} \\\begin{array}{cc} \begin{array}{cc} \varphi \in \left[\varphi\_{l'}\varphi\_{\mathcal{U}}\right] = \left[ \begin{array}{cc} \min(\varphi\_{i}) - \frac{(Q-L)}{R\_{\text{c}}}, & \max\left(\varphi\_{i}\right) - \frac{(L-Q)}{R\_{\text{c}}} \end{array} \right] \end{array} \end{cases} \end{cases} \end{cases}$$

where *Re* is the equivalent radius of the earth under the WGS-84 model. *ϕ* is the average latitude of the four stations. In practical applications, the setting of *Q* does not need to be precise but can be set as the maximum propagation distance according to the receiver performance and actual environment. In addition, Equation (20) is a general equation not limited to the two cases shown in Figure 6a,b. Therefore, once the receiver has identified the station information, Equation (20) can be used to calculate *Ds*.

#### 2.3.2. The Branch and Bound Method in SBB Algorithm

The proposed branch-and-bound algorithm is as follows: First, a feasible solution - **x** of *<sup>F</sup>* on *Ds* is obtained through a shrink algorithm, and - **x** is assumed to be the global optimal solution. Then, we divide *Ds* into *Ds*1and *Ds*<sup>2</sup> and calculate the lower bounds *F*1(**x**1) and *F*2(**x**2) of function *F* on feasible domains *Ds*<sup>1</sup> and *Ds*1. We compare *F*<sup>1</sup> and *F*<sup>2</sup> and retain the subset *Dsi* that has a lower bound *Fi*, where i = 1,2. Thereafter, we compare the order of *Fs* and *Fi*. If the order of *Fi* is smaller than *Fs*, we update the solution - **x** = **x**1, and divide *Dsi* again and repeat the above steps. If *Fs* and *Fi* are of the same order, or the order of *Fs* is less than *Fi*, then - **x** is the global optimal solution. The pseudocode of the SBB algorithm is shown in Algorithm 2.

Line 3 of the pseudocode is the branch strategy and we adopt the binary branch scheme as shown in Figure 7. The basic division principle is to make a vertical line at the midpoint of the broadest side of *Ds* to bisect *Ds*. Because the number of local minima on the *F* function is small, there is no need to divide *Ds* too much, and this binary branch strategy can effectively reduce the amount of calculation without losing the accuracy of the algorithm.

#### **Algorithm 2** SBB Algorithm

	- 7. If *Fs Fk* > *μ*,
		- Then *Fs* = *Fk*, *Ds* = *Dsk*, - **x** = **x**k, and repeat steps 3–5.

**Figure 7.** Diagram of the binary branching strategy.

In lines 2 and 4 of the pseudocode, it is necessary to calculate the lower bound of the objective function *F* in the specified feasible region, that is, to solve the following mathematical equation:

$$\{\mathbf{x}\_{\mathfrak{k}} | F(\mathbf{x}\_{\mathfrak{k}}) = F\_{\min}, \mathbf{x} \in D\_{\mathfrak{k}}\} \tag{21}$$

*Ds* is determined by Equation (20). Equation (21) is a nonlinear least-squares problem with box constraints, which can be solved by the trust region reflective (TRR) algorithm. Based on the trust region algorithm, the trust region reflective method transforms the boundary-constrained optimization problem into an unconstrained optimization problem through reflection transformation so that each iteration result satisfies the boundary constraints [27]. The TRR algorithm uses the function *q*(*s*) to fully approximate the behavior of the function *F*(**x**) in the neighborhood *N* of **x***k*, and find the tentative step *s* in this neighborhood. The pseudocode of the TRR algorithm is shown in Algorithm 3. In lines 3 and 4 of the pseudocode of Algorithm 3, the trust region model to be solved is as follows:

$$\min \{ \: \: q(s) = \frac{1}{2} s^T H s + s^T \mathcal{g}\_{\prime} \: \: \: \: \|s\| \le N \: \: \} , \tag{22}$$

where *g* is the gradient of the current *F*(*xk*), *H* is the Hessian matrix or the approximation of the Hessian matrix of *F*(*xk*), *N* is the trust region, and is the 2-norm. For the solution of Equation (22), please refer to the literature [46,47]. Details of the reflection transformation method in line 5 can be found in the literature [27]. The approximation factor *ρ<sup>k</sup>* of *q*(*sk*) to *F*(*sk*) in line 6 can be given by Equation (23):

$$\rho\_k = \frac{F(\mathbf{x}\_k) - F(\mathbf{x}\_k + s\_k)}{F(\mathbf{x}\_k) - q(s\_k)},\tag{23}$$

When *ρ<sup>k</sup>* is greater than the set value *μ*, it means that the current approximation effect of *q*(*sk*) to *F*(**x***k*) is good and the update step is **x***k*+<sup>1</sup> = **x***<sup>k</sup>* + *Nk*. Otherwise, the trust region radius *Nk* needs to be adjusted, the trust region sub-problem solved again, and the above process repeated.

#### **Algorithm 3** TRR Algorithm

1. Initial **x**0, *N*<sup>0</sup> and *μ*

2. While *g*(*xk*) > *μ*

3. Build a trust region model *q*(*s*)

4. Solve the trust region subproblem, and get *sk*

5. If *sk* ∈/ *Ds*

6. Perform a reflection transform on *sk*

7. Calculate the approximation *ρ<sup>k</sup>* of *q*(*sk*) to *F*(*sk*) and update *sk* or **x***<sup>k</sup>*

8. Return - **x**

The TRR algorithm can make full use of the feature that the BB algorithm divides the feasible region. When the feasible region is divided, the box constraints will continue to shrink, and the probability of the trust region algorithm converging to the global optimal value will continue to increase. Using the TRR algorithm to obtain the lower bound of *F* under different feasible regions, the following inequalities must be satisfied.

$$\left\{ \begin{array}{c} F\_1 \le F\_s \\ F\_2 \le F\_s \end{array} \right. \tag{24}$$

where

$$F\_{\mathbb{R}} = \{ F\_{\min} | \mathbf{x} \in D\_{\mathbb{S}}, \mathbf{x}\_0 \}, \tag{25}$$

$$F\_1 = \{ F\_{\min} | \mathbf{x} \in D\_{s1}, \mathbf{x}\_0 \},\tag{26}$$

$$F\_2 = \{ F\_{\min} | \mathbf{x} \in D\_{s2}, \mathbf{x}\_0 \},\tag{27}$$

Lines 5 and 6 of Algorithm 2 are the verification phase. We use *μ* to verify the convergence process, and *μ* can be a constant less than 5. When *Fs*/*Fk* < *μ*, it means that *Fs* and *Fk* are of the same order, and the current iteration value is close to converging to the global optimal value, and the iteration ends. Otherwise, the above branch and bound process needs to be repeated.
