generateSubsets function
- List<
FPNode> nodes
Generates all non-empty subsets for a given list of FPNodes.
This is used in the single-path optimization to efficiently generate all frequent itemsets from a linear tree structure.
Implementation
List<List<FPNode>> generateSubsets(List<FPNode> nodes) {
final subsets = <List<FPNode>>[];
final n = nodes.length;
// Iterate from 1 to 2^n - 1 to get all non-empty subsets
for (int i = 1; i < (1 << n); i++) {
final subset = <FPNode>[];
for (int j = 0; j < n; j++) {
if ((i >> j) & 1 == 1) {
subset.add(nodes[j]);
}
}
subsets.add(subset);
}
return subsets;
}