Exemplo n.º 1
0
 internal PatternTree GetPatternAtDepth(string ptPreorderString, Depth depth)
 {
     if (DepthBasedFrequentPts.ContainsKey(depth) && DepthBasedFrequentPts[depth].ContainsKey(ptPreorderString))
     {
         return(DepthBasedFrequentPts[depth][ptPreorderString]);
     }
     return(null);
 }
Exemplo n.º 2
0
 internal void SetDepth(Depth maxDepth)
 {
     MaxDepth = maxDepth;
     for (var i = 0; i < MaxDepth; i++)
     {
         DepthBasedFrequentPts.Add(i, new Dictionary <string, PatternTree>());
     }
 }
Exemplo n.º 3
0
        internal PatternTree[] GetPotentialMaximalAtDepth(Depth depth)
        {
            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                return(DepthBasedFrequentPts[depth].Values.Where(pt => pt.HasSuperFrequentPattern == YesNoUnknown.Unknown).ToArray());
            }

            return(new PatternTree[] { });
        }
Exemplo n.º 4
0
        internal PatternTree[] GetCombinableAtDepth(Depth depth)
        {
            var rDi = new List <PatternTree>();

            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                rDi.AddRange(DepthBasedFrequentPts[depth].Values.Where(pt => pt.AbleToCombine && pt.SingleChild));
            }

            return(rDi.ToArray());
        }
Exemplo n.º 5
0
        internal PatternTree[] GetClosedAndMaximalUnknownAtDepth(Depth depth)
        {
            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                return(DepthBasedFrequentPts[depth].Values.Where(
                           pt => pt.IsClosed == YesNoUnknown.Unknown ||
                           pt.IsMaximal == YesNoUnknown.Unknown).ToArray());
            }

            return(new PatternTree[] { });
        }
Exemplo n.º 6
0
        /// <summary>
        /// Get the set of frequent patterns, in which, everyone has at least one
        /// occurrence at the specified depth.
        /// </summary>
        /// <param name="depth">Specified depth.</param>
        /// <returns></returns>
        internal List <PatternTree> GetToBeConnectedAtDepth(Depth depth)
        {
            var cDi = new List <PatternTree>();

            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                cDi.AddRange(from v in DepthBasedFrequentPts[depth] where v.Value.AbleToBeConnected select v.Value);
            }

            return(cDi);
        }
Exemplo n.º 7
0
        internal PatternTree[] GetToBeConnectableAtDepth(Depth depth)
        {
            var fDi = new List <PatternTree>();

            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                fDi.AddRange(DepthBasedFrequentPts[depth].Values.Where(pt => pt.AbleToBeConnected));
            }

            return(fDi.ToArray());
        }
Exemplo n.º 8
0
        /// <summary>
        /// Get the set of frequent patterns, in which, everyone has at least one
        /// occurrence at the specified depth.
        /// </summary>
        /// <param name="depth">Specified depth.</param>
        /// <returns></returns>
        internal List <PatternTree> GetFrequentsAtDepth(Depth depth)
        {
            var fDi = new List <PatternTree>();

            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                fDi.AddRange(from fpt in DepthBasedFrequentPts[depth] select fpt.Value);
            }

            return(fDi);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Get the set of frequent patterns, in which, everyone has at least one
        /// occurrence at the specified depth and has fanout of 1.
        /// </summary>
        /// <param name="depth">Specified depth.</param>
        /// <returns></returns>
        internal List <PatternTree> GetFanout1FrequentsAtDepth(Depth depth)
        {
            var rDi = new List <PatternTree>();

            if (DepthBasedFrequentPts.ContainsKey(depth))
            {
                rDi.AddRange(from fpt in DepthBasedFrequentPts[depth] where fpt.Value.SingleChild select fpt.Value);
            }

            return(rDi);
        }