## 4 Algorithm
```
1:\(d\) { dataset }, \(target\) { selector }, \(oe\) { optimistic estimate }, \(oe\_threshold\) { \(\mathbb{R}\) }, \(sort\_criterion\_in\_S1\) { criterion }, \(TP\) { \(\mathbb{N}\) }, \(FP\) { \(\mathbb{N}\) }
2:\(\mathcal{S}1\): list of subgroups whose descriptions have the size one. 3:\(\mathcal{S}1:=<>\)
4:\(\mathcal{S}2:=\) scan \(d\) (except the target attribute) to generate the selector list. 5:for each selector \(e\in\mathcal{E}\)do
6:\(s:=(<e>,target)\)
7:\(oe\_quality:=oe(tp(s,d),fp(s,d),TP,FP)\)
8:if\(oe\_quality\geq oe\_threshold\)then
9:\(\mathcal{S}1\_add(s)\)
10:endif
11:endfor
12:\(\mathcal{S}1:=sort(\mathcal{S}1,sort\_criterion\_in\_S1)\)
```
**Algorithm 3** SEARCH function. ```
1:\(d\) { dataset }, \(\mathcal{P}\) { subgroup list }, \(\mathcal{M}\) { matrix }, \(q\) { quality measure }, \(q\_threshold\) { \(\mathbb{R}\) }, \(oe\) { optimistic estimate of }, \(oe\_threshold\) { \(\mathbb{R}\) }, \(sort\_criterion\_in\_other\_sizes { criterion }, TP\) { \(\mathbb{N}\) }, \(FP\) { \(\mathbb{N}\) }
2:\(\mathcal{F}\): list of subgroups. 3:\(\mathcal{F}\): \(:=<>\)
4:while\(|\mathcal{P}|>1\)do
5:\(s_{x}:=pop\_first(\mathcal{P})\)
6:\(\mathcal{L}:=<>\) { List of subgroups }
7:for each subgroup \(s_{y}\in\mathcal{P}\)do
8:\(s_{M}:=get(\mathcal{M},\mathit{last}(s_{x}\_description),\mathit{last}(s_{y} \_description))\)
9:\(oe\_quality:=oe(tp(s_{M},d),fp(s_{M},d),TP,FP)\)
```
**Algorithm 4** SEARCH function. ==ERROR: No output for this page==
Additionally, Figures 6 and 7, which show the runtime and the max memory usage for each dataset and for each threshold value, also confirm the evidences about the VLSD algorithm described previously. +++

space is, therefore, always explored; and (3) although both algorithms have an exponential trend, VLSD runtime is, in general, less than SD-Map runtime. Finally, Figure 9 also confirms these statements. Figure 8: _Cont_. On the other hand, considering the runtime of the VLSD, BSD, CBSD, and CPBSD algorithms, Figure 8 shows that (1) there are significant differences when increasing the top-k parameter in the BSD algorithm, and (2) there are no significant differences when increasing the top-k parameter in the BSD algorithm. Figure 8: Runtime and max memory usage of all algorithms for each dataset. (**a**) balloons dataset. (**b**) car-evaluation dataset. (**c**) titanic dataset. (**d**) tic-tac-toe dataset. (**e**) heart-disease dataset. (**f**) income dataset. (**g**) vote dataset. (**h**) lymph dataset. (**i**) credit-g dataset. (**j**) mushroom dataset. Figure 9: Mean runtime of all datasets for each quality threshold. increasing top-k parameter in the CBSD and CPBSD algorithms. The BSD algorithm explores a larger search space than the CBSD and CPBSD algorithms, which include an additional pruning for closed and closed-on-the-positives subgroups. The search space, therefore, increases in a more moderate manner in the CBSD and CPBSD algorithms when increasing the value of the top-k parameter. It is for this reason that the runtime increment of the BSD algorithm when increasing the top-k parameter is more significant than that of the CBSD and CPBSD algorithms. It will also be observed that (1) when the VLSD algorithm explores all the search space, its runtime is significantly higher than the runtime of the BSD, CBSD, and CPBSD algorithms; and (2) when the VLSD algorithm does not explore all the search space, there are no significant differences among its runtimes.