# Numerical Association Rule Mining from a Defined Schema Using the VMO Algorithm
## 2 Preliminaries
### VMO Algorithm
\begin{array}{ll}\frac{range(a_{i},b_{i})}{a}&\text{if }c<15 \%\text{ C}\\ \frac{range(a_{i},b_{i})}{g}&\text{if }15\%\leq c<30\%\text{ C}\\ \frac{range(a_{i},b_{i})}{16}&\text{if }30\%\leq c<60\%\text{ C}\\ \frac{range(a_{i},b_{i})}{50}&\text{if }60\%\leq c<80\%\text{ C}\\ \frac{range(a_{i},b_{i})}{100}&\text{if }c\geq 80\%\text{ C}\end{array} \right. \tag{5}\]  
where \(C\) denotes the maximum value of evaluations of the objective function and \(c\) denotes the current evaluation. Depending on the percentage of the total that the current assessment represents, distance values that represent parts of the allowed range are defined. In addition, \(range(a_{i},b_{i})\) is defined as the domain amplitude \((a_{i},b_{i})\) of each component. 1. Lines 11-13 correspond to this stage, which aims to accelerate convergence. The node with the best quality in the current mesh is found; in this way, the global extreme \(n_{g}\) is defined, and then new nodes are created with the function \(n_{new}(i)=g(n_{i},n_{g},Pr(n_{i},n_{g}))\)--one for each \(n_{i}\) in the direction of \(n_{g}\). For this, the value of \(P_{r}\) calculated by Equation (1) is used, substituting \(n_{i}^{*}\) for \(n_{g}\). Then, the generation function \(g\) is defined in Equation (6). \[n_{new}(i)=\left\{ \begin{array}{ll}vm_{i}&\text{if }\mathcal{U}[0,1]\leq P_{r}(n_{i},n_{g})\\ \mathcal{U}[vm_{i},n_{g}^{i}]&\text{otherwise}\end{array} \right.\] (6) where the mean value \(vm\) between the current node and the global extreme is calculated using Equation (1). 2. Lines 14 and 15 define this step. The total number of nodes that the mesh must have is completed, starting from the border nodes. For this case study, to detect these types of nodes, the value of the norm of each one is used, as defined in Equation (7). New nodes are created by using the function \(n_{new}=h(n_{i},w)\), thus completing the expansion process. The number of nodes created in each of the cases does not have an exact value. However, it is controlled by a parameter that represents the number of nodes specified for expansion. \[\|n\|=\sqrt{\sum_{i=1}^{n}(n_{i})^{2}} \tag{7}\]  
The nodes with the highest norms are located on the boundary of the initial mesh, and those with the lowest norms are closest to the origin (innermost points). The function \(h\) allows the generation of new nodes in the direction of the boundaries by using Equation (8) for the most external nodes and using Equation (9) for the internal nodes. \[n_{new}(i)=\left\{ \begin{array}{ll}n_{i}^{*}+w&\text{if }n_{i}^{*}>0\\ n_{i}^{*}-w&\text{if }n_{i}^{*}<0\end{array} \right. \tag{8}\]  
\[n_{new}(i)=\left\{ \begin{array}{ll}|n_{i}^{*}+w|&\text{if }n_{i}^{*}>0\\ |n_{i}^{*}-w|&\text{if }n_{i}^{*}<0\end{array} \right. \tag{9}\]Equation (10) is used in the third form of exploration. It starts from the boundary nodes and calculates a controlled decreasing movement; thus, \(w_{j}^{0}\) and \(w_{j}^{1}\) are the initial and final displacements, respectively, such that \(w_{j}^{0}>w_{j}^{1}\). The parameters \(C\) and \(c\) are used in the calculation and represent the maximum number of iterations and the current iteration value, respectively. \[w_{j}=(w_{j}^{0}-w_{j}^{1})\cdot\frac{C-c}{C}+w_{j}^{1} \tag{10}\]  
The contraction process is described in lines 16-18; it selects the mesh nodes that will be part of the next iteration. Three primary tasks make up this process. 1. Sort the nodes of the total mesh according to quality. The nodes with better quality have a higher probability of being part of the new population. 2. Apply the adaptive cleaning operator. This operator is a strategy for guiding the process towards more general explorations and reducing the frequency to focus on smaller areas. 3. Build a new initial mesh in an elitist way.