## 3 Application  
### Implementation  
The implementation of the presented method takes place in the programming language Python. The framework Tensorflow with the Keras programming interface (API) is used. Tensorflow is developed by Google and is an open-source platform for the development of machine-learning applications [28]. In Tensorflow, the gradients necessary for the predictor learning are calculated using automatic differentiation (AD), which requires the use of differentiable functions available in Tensorflow [33]. The configuration of the software and hardware used for the training is shown in Table 1.  
The predictor's topology, with all layers and all hyperparameters, is shown in Figure 10. The chosen hyperparameters were found to be the best after a grid search of all parameters in which the deviations of the predictions from the ones obtained by conventional TO were evaluated. The hyperparameters are displayed by the shape (numerical expression over the arrow pointing outside the block) of the output matrix of a block or by the comment near the convolutional block. The label of the output arrow describes the dimensions of the output \begin{table}
\begin{tabular}{l l} \hline \hline
**Software or Hardware** & **Details** \\ \hline GPU & Nvidia Titan RTX \\ GDDR & 24 GB \\ CPU & AMD Ryzen Threadripper 2950X 16-Core \\ RAM & 128 GB \\ Tensorflow & Version 2.5.0 \\ Python & 3.7.3 64-bit \\ OS & Windows 10 Version 1909 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Configuration. Figure 9: Training process of the predictor-evaluator network (PEN). vector or matrix. The names of the elements in Figure 10, e.g., \"Conv2D\", correspond to the Keras layer names. The input data points (top left) are processed by four fully connected (here termed \"dense\") layers, then reshaped into a three-dimensional matrix with the shape \(8\times 8\times 64\) and passed on to two sequential convolutional layers. Subsequently, the data are reshaped into a vector and passed through a sigmoid activation layer. As a result, the geometry at the first level is available. The following levels build on the previous levels. So the data from the last hidden block and the data prior to the sigmoid activation of the previous level are used by for the next layer by transforming the outputs to the same shape and adding them together. Afterwards, the data are reshaped into a vector and, again, passed through a sigmoid activation layer. As a result, the geometry at the next level is available. As already mentioned, the training of the predictor is based on randomly generated input data points. All randomly chosen input data are uniformly distributed in the corresponding interval. They are generated according to the following features:  
* Fixed degrees of freedom along the left side in x and y directions. * Position randomly chosen from all \((d_{\mathrm{inp}}+1)^{2}=81\) nodes (except the nodes, which have a fixed degree of freedom) of level one. - Randomly chosen direction in the interval \([0^{\mathrm{o}},360^{\mathrm{o}}]\). - Fixed magnitude \(r_{\mathrm{s,F}}\). * Uniform random \(M_{\mathrm{tar}}~{}=~{}\{0.2,0.21,\ldots,0.8\}\). Algorithms 1-3 show the training, the trainable parameter's update and the convergence criterion, respectively. The flow of data from the input \((\mathbf{r}_{\mathrm{k}},\mathbf{r}_{\mathrm{s}},M_{\mathrm{tar}})\) of the ANN to the output \(\mathbf{x}\) and the objective function \(J(\mathbf{x})\) is called forward propagation. With computation and updating of the objective function's gradient with respect to the trainable parameters, the information flows backward through the ANN. This backward flow of information is called back-propagation [7]. Once the gradient is calculated, a trainable parameter's update is done using the learning rate \(\eta\), which defines the length of the gradient step, and the Adam optimizer (see Algorithm 2), according to [32]. Figure 10: Predictor’s artificial neural network (ANN) topology.