# Performance Evaluation of Sequential Rule Mining Algorithms
## 3 Methods of Applying Comparative Algorithms
### The Fundamental Operations of the TRuleGrowth Algorithm  
The TRuleGrowth algorithm is a type of POSR that does not need to arrange its items. It is an extension of the RuleGrowth algorithm that proves its efficiency compared to the last one. It is similar to RuleGrowth based on an approach called pattern growth. It performs incrementally, begins with two elements, and grows one item at a time by expanding the right and the left side of the rule. The TRuleGrowth utilizes an extra constraint called window size to control the number of rules generated. It helps in producing more accurate results and saving more space by generating much fewer sequential rules. The value of a window size constraint can be an obstacle when its value increases. The best solution, in this case, is using the RuleGrowth algorithm instead of TRuleGrowth to eliminate the high computations due to emerging large number of rules.  
The construction of the TRuleGrowth algorithm is formed by three stages. The primary stage is transforming the database to the sequential list, and then setting the support value. The moment stage is creating a rule size \(1*1\) and executing two procedures to extend the rule on the right and the left sides. The final stage is determining the window size and the confidence value, and after that, testing the legitimacy of the rules to produce the non-redundant sequential rules, as shown in Figure 1.  
The TRuleGrowth Application Algorithm  
This algorithm begins with scanning the dataset once to discover each item on each side. At that point, it distinguishes every item achieving the support value threshold to produce all accurate rules with size \(1*1\). To computing sides (x\(\rightarrow\)z) and sides (z\(\rightarrow\)x), it filters the dataset to generate the first sequence and calculate each duo of items individually. Then we compute the support value by partitioning \(|\) sides (x\(\rightarrow\)z) \(|\) / \(|\)s\(|\). If the support values of the item are not lower than the minSup, then the two strategies have been executed to grow each side of the rule [14]. We have guaranteed that the value of the sliding window has applied for all the rules. It saves all events of each item and shows their position by including that item. For the events of c in the sequence {a,c}, {b,c}, {c}, and {a,b,e} are 1, 2, and 3. At that point, utilize the hash table for searching each item found before item z and items found before x in a sequence dataset. It can be done inside a window size parameter, as appeared in Appendix A Algorithm A1 [22].  
The operation of the two procedures is accomplished in the following steps: begin by establishing a hash table and assign the null value. Then, check the item-set to dispose of all items that do not accomplish the sliding window predetermined value. If the measure of 'hash x' = size 'x', then include each item z \(\in\) y \(\cap\) n in the hash table. In case 'hash table' < 'x' at the point, contain each item with the position of n as DB \(\in\) x \(\cap\) n. At last, if 'hash y' = size 'y' and size 'hash x' = size 'x', include side to accessible side (y U {z}\(\rightarrow\)x) for each item z \(\
otin\) y U x that contains ID, to begin with an item of 'x' inside window size.  
An extra parameter called sliding window can be included which has the following characteristics:  
1. Controlling the number of produced rules, so less space and time is required to search the desired sequential rules.
2. Reducing the amount of memory space required to store the generated rules by developing fewer rules. Therefore, it gives the facility to analyze the output to the user.  
Figure 1: The RuleGrowth algorithm framework based on [31].  
3. Favoring its significance in practical for temporal transactions like analyses data for shares market.