# Development of Digital Training Twins in the Aircraft Maintenance Ecosystem
## 2 Materials and Methods
### Algorithmic Orchestration Workflow  
The orchestration engine operates as the central decision-making unit within the DTT ecosystem. Its primary function is to analyze each learner's evolving competence state, classify existing skill gaps, and assign personalized training resources through a mathematically optimized multi-criteria selection process. The orchestration cycle continuously monitors learner progression and dynamically adapts content allocation to ensure that each learner receives efficient, regulation-compliant instruction fully aligned with their current capabilities. The learner's competence profile is mathematically modeled as a normalized vector:  
\[\mathbf{C}_{learner}=[c_{1},c_{2},\dots,c_{n}]\in[0,1]^{n}\]  
where each element \(c_{i}\) reflects the learner's mastery of skill domain \(i\). The regulatory training standards are encoded in a target competence vector:  
\[\mathbf{C}_{target}=[c_{1}^{*},c_{2}^{*},\dots,c_{n}^{*}]\in[0,1]^{n}\]  
The competence gap vector is computed as follows:  
\[\mathbf{G}=\mathbf{C}_{target}-\mathbf{C}_{learner}=[g_{1},g_{2},\dots,g_{n}]\]  
For each skill \(i\), the orchestration engine classifies gap severity by applying predefined thresholds \(\theta_{H}\) (high) and \(\theta_{M}\) (medium). This severity level influences both the fidelity and complexity of the instructional content selected for the learner. Each training resource \(R_{j}\in\mathcal{R}\) is described by a structured metadata vector, including the following:  
\(s_{j}\)--the skill focus vector;  
\(f_{j}\)--fidelity tier (low, medium, high);  
\(d_{j}\)--expected duration (minutes);  
\(b_{j}\)--Bloom's Taxonomy cognitive level (1 to 6) [37];  
\(\phi\)--instructional effectiveness coefficient;  
\(\rho_{j}\)--regulatory compliance tag for module alignment. To assign the most appropriate training asset for each identified gap \(g_{i}\), the system employs a multi-objective optimization function that balances skill alignment, instructional cost, cognitive load, and time efficiency. The resource selection function is defined as follows:  
\[\mathcal{S}(G_{i})=\arg\min_{R_{j}\in\mathcal{R}}\left[\alpha\cdot\left\| \mathbf{s}_{j}-\mathbf{e}_{i}\right\|^{2}+\beta\cdot\text{cost}(f_{j})+\gamma \cdot d_{j}+\delta\cdot\psi(b_{j})\right]\]  
where  
\(\mathbf{e}_{i}\) is the unit vector isolating skill domain \(i\);  
\(\text{cost}(f_{j})\) reflects fidelity assignment penalties, defined as follows:  
\[\text{cost}(f_{j})=\left\{ \begin{array}{ll}1&\text{for low $-$ fidelity CBT modules},\\ 2&\text{for medium $-$ fidelity tablet simulations},\\ 3&\text{for high $-$ fidelity XR simulations}.\end{array} \right.\]  
\(\psi(b_{j})\) is the normalized Bloom complexity factor, expressed as follows:  
\[\psi(b_{j})=\frac{b_{j}-1}{5}\in[0,1]\]\(\alpha,\beta,\gamma,\delta\in[0,1]\) are tunable hyperparameters controlling the weighting of skill relevance, fidelity cost, session duration, and cognitive demand, respectively. This selection function ensures that training assignments remain skill-targeted while minimizing instructional redundancy, cognitive overload, and unnecessary use of high-cost simulation resources. Following each training session, the learner's competence vector is incrementally updated to reflect newly acquired skills:  
\[c_{i}^{(t+1)}=c_{i}^{(t)}+\lambda_{i}\cdot\phi_{j}\cdot\hat{g}_{i}^{(t)}\]  
where \(\lambda_{i}\in[0,1]\) represents the learner-specific responsiveness coefficient capturing variability in individual learning rates, and \(\phi_{j}\) denotes the training effectiveness factor associated with the assigned resource. Let the learner's competence at iteration \(t\) be represented by the vector \(\mathbf{C}_{t}\in\mathbb{R}^{n}\), which means that the learner's competence profile is represented by a vector with \(n\) skills, and each skill score is a real number (typically normalized between 0 and 1). Each element \(C_{t}^{(k)}\in[0,1]\) indicates skill mastery in domain \(k\).