## 4 Results
### Assessment-Test Generation (TG)  
#### 4.3.1 TG Using Arborescent Structures  
Related to test generation using arborescent structures, we have determined two simulations related to a specific topic and run several trials for the model presented in previous sections. The purpose of the implementation was the determination of the algorithm workflow and its behavior in a simulation environment.  
In the first implementation, based on the Python 3.12 programming language, a number of nodes and their characteristics was randomly generated. In the technical setup, a tree with 100 nodes is generated, each with a random set of keywords and a difficulty between 1 and 10. Nodes are randomly connected with a probability of 30%, but only if the difficulty of the child node is higher than that of the parent. The selected keyword set is (\"array\", \"path\", \"loop\", \"prime\", \"query\", \"bfs\"). The structure of the tree and the resulted subtree, with the selected items shown in green, are presented in Figure 6.  
The results show a subtree selected based on the desired keywords, with a maximum number of intersections (nine keywords) and eight valid edges from the original tree. Table 6 displays, for each node the level, ID, keywords, and number of intersections with the desired words.  
The algorithm is efficient due to the selection of nodes by difficulty levels and the use of a score based on the intersection of keywords. With nine intersections and eight valid edges for the given example, it shows how it minimizes the computational time by quickly evaluating relevant nodes and existing connections.  
\begin{table}
\begin{tabular}{l c c c c} \hline \hline
**B** & **N  
In the second implementation, a database closer to real items were made. The item topics are related to IT and computer concepts. The input variables are as follows:  
1. the number of nodes (the total number of items) equal to 35;
2. the initial graph in form of a tree, given by the parent array \(t\) = (0, 1, 1, 2, 15, 15, 3, 3, 4, 4, 4, 4, 4, 9, 25, 2, 10, 11, 12, 7, 7, 8, 8, 8, 5, 5, 6, 6, 20, 20, 21, 22, 23, 24);
3. the keywords given by the user \(kw\) = (hardware, PC, hard disk, memory, unit, external, reading, peripheral, software, application, browser, Internet).  
The tree that can be built with the data presented above and all the keywords related to the nodes is shown in Figure 7.  
\begin{table}
\begin{tabular}{l l l l} \hline
**Level** & **ID** & **Keywords** & **NCK * \\ \hline
1 & 35 & block, path, cloud, data & 1 \\
2 & 87 & array, process, sync, bit, concat & 1 \\
3 & 9 & bfs, stack, object & 1 \\
4 & 18 & loop, merge & 1 \\
5 & 1 & logic, sync, bfs, security & 1 \\
6 & 16 & write, lock, bool, array & 1 \\
7 & 19 & queue, char, graph & 0 \\
8 & 22 & process, path, modulo & 1 \\
9 & 12 & node, array, write, sort & 1 \\ \hline \end{tabular}  
* Note: NCK = Number of common keywords with the user keywords.  
\end{table}
Table 6: The chosen items and their characteristics.  
Figure 6: The visual representation of the arborescent structures for the implementation.  
Figure 7: The visual representation of the arborescent structure for the implementation.  
After the run, several outcomes were determined related to potential tests. In order to determine the optimal ones, the model functionality was implemented. After the implementation was run, the next outcome was obtained (L contains the final output and the first element of the array is the array dimension):  
* L = (5,1,2,4,11,18)-hardware 1 times; PC 1 times; harddisk 1 times; memory 1 times; unit 1 times;
* L = (5,1,2,15,5,27)-hardware 1 times; PC 1 times; external 1 times; reading 1 times; peripheral 1 times;
* L = (5,1,2,15,6,29)-hardware 1 times; PC 1 times; external 1 times; reading 1 times; peripheral 1 times;
* L = (5,1,3,8,25,36)-PC 1 times; software 1 times; application 1 times; browser 1 times; Internet 1 times.