private void DetermineMaximal(Depth depth) { var couldBeMaximal = PatternsFrequent.GetPotentialMaximalAtDepth(depth + 1); foreach (var pt in couldBeMaximal) { pt.DetermineMaximal(depth + 1); if (pt.IsMaximal == YesNoUnknown.Yes) { PatternsFrequent.AddMaximal(pt); } } }
/// <summary> /// For closed and maximal property if required. /// </summary> private void EvaluateF1() { if (!MiningParams.MineClosed && !MiningParams.MineMaximal) { return; } var f1Set = PatternsFrequent.Frequent1Pts; var f2Set = PatternsFrequent.Frequent2Pts; foreach (OnePatternTree f1 in f1Set.Values) { foreach (var f2 in f2Set.Values) { if (!f1.IsSuperPattern(f2)) { continue; } f1.CheckMatch(f2); if (f1.HasOccurrenceMatch != YesNoUnknown.Unknown && f1.HasTransactionMatch != YesNoUnknown.Unknown) { break; } } if (MiningParams.MineClosed) { f1.DetermineClosed(); if (f1.IsClosed == YesNoUnknown.Yes) { PatternsFrequent.AddClosed(f1); } } if (MiningParams.MineMaximal) { f1.DetermineMaximal(); if (f1.IsMaximal == YesNoUnknown.Yes) { PatternsFrequent.AddMaximal(f1); } } } }