## 2 DQL Method
### Pseudocode for DQL Method  
The input of the DQL method requires the objective function \(f\), the initial point \(x_{0}\), the initial search step length \(\delta^{0}\), and the update parameter \(\gamma\). In addition, a maximum iteration threshold for the exploration stage, max_search is required for the convergence of the method. The method implements a sufficient decrease rule for the search candidates  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Label** & **Search Direction** & **Search Step** \\ \hline Strategy 1 & \(-\
abla_{c}f(x_{0}^{k};\delta^{k}D^{k})\) & \(\{\delta^{k}\}\) \\ Strategy 2 & \(-\
abla_{c}f(x_{0}^{k};\delta^{k}D^{k})\) & \(\{0,1/2\delta^{k},\delta^{k}\}\cup A_{\text{Bracket\_Search}}\) \\ Strategy 3 & \(x_{\text{best}}^{k}-x_{\text{best}}^{k}\) & \(\{\delta^{k}\}\) \\ Strategy 4 & \(x_{\text{best}}^{k}-x_{\text{best}}^{k}\) & \(\{-\delta^{k},0,\delta^{k}\}\cup A_{\text{Bracket\_Search}}\) \\ \hline \hline \end{tabular}
\end{table}
Table 1: Linear Search Strategiesand stops searching in the quadratic and direct step after the maximum iteration threshold max_search. The necessity of this threshold is discussed in the next section.  
The stopping condition(s) need to be designed for specific applications. For example, the method can be stopped when it reaches a certain maximum number of iterations, maximum number of function calls, or maximum run-time. In addition, a threshold for the search step length and the norm of the approximate gradient can be set to stop the method. The pseudocode for the DQL method is shown in Algorithm 6.  
```
1:ifDirect_flag\(==\)truethen
2: set\(\delta^{k+1}=\gamma^{-1}\delta^{k}\)
3:else
4:ifQuadratic_flag\(==\)falseAND
5:Linear_flag\(==\)falsethen
6: set\(\delta^{k+1}=\gamma\delta^{k}\)
7:else
8: set\(\delta^{k+1}=\delta^{k}\)
9:endif
10:endif
11:Set\(k\gets k+1\)
```  
**Algorithm 6** DQL(\(f\), \(x_{0}\), \(\delta_{0}\), \(0<\gamma<1\), \(\beta>1\), max_search)  
```
1:Initiate \(k\gets 1\), \(\delta^{1}\leftarrow\delta_{0}\), Stop_Flag\(\leftarrow\)False
2:whileStop_flag\(==\)falsedo
3: Initiate Direct/Quadratic/Linear_Flags\(\leftarrow\)False;
4: Initiate \(x_{0}^{k}\leftarrow\)\(x_{best}^{k}\) (\(x_{0}^{k}\gets x_{0}\))
5: Direct_Step(\(x_{0}^{k}\), \(\delta^{k}\))
6:ifan improvement is found in the direct step then
7: Direct_Flag\(\leftarrow\)true
8:else
9: Direct_Flag\(\leftarrow\)false
10:endif
11:ifstopping conditions are met then
12: Stop_flag\(\leftarrow\)true
13: Program terminates
14:endif
15:if\(k\leq\)max_search then
16:ifDirect_Flag\(==\)falsethen
17: Quadratic_Step(\(x_{0}^{k}\), \(\beta\), \(\delta^{k}\), \(\{x_{i}\}\))
18:ifan improvement is found in the quadratic step then
19: Quadratic_Flag\(\leftarrow\)true
20:else
21: Quadratic_FLAG\(\leftarrow\)false
22: Linear_Step(\(x_{0}^{k}\), \(\delta^{k}\))
23:ifan improvement is found in the direct step then
24: Linear_flag\(\leftarrow\)true
25:else
26: Linear_FLAG\(\leftarrow\)false
27:endif
28:endif
29:endif
30:endif
31:Parameter_Update(\(\delta^{k}\), \(\gamma\), Direct_Flag,...
32:Quadratic_Flag, Linear_Flag)
33:endwhile
```  
**Algorithm 7** DQL(\(f\), \(x_{0}\), \(\delta_{0}\), \(0<\gamma<1\), \(\beta>1\), max_search)