Ejemplo n.º 1
0
        /// <summary>
        /// Kiem tra tap muc thuoc tid
        /// </summary>
        /// <param name="tid">Transaction id cua F</param>
        /// <param name="muc">Mot muc cua L, Example: {1,2}</param>
        /// <returns></returns>
        public static bool ThuocTid(ItemSetsCollection tid, Itemsets muc)
        {
            Itemsets p = new Itemsets(muc);

            p.RemoveAt(muc.Count - 1);

            // p: c-c[k]
            List <int> q = new List <int>(muc);

            q.RemoveAt(muc.Count - 2);

            //q: c-c[k-1]
            int count = 0;

            foreach (Itemsets item in tid)
            {
                if (item.IsEqual(p))
                {
                    count += 1;
                }
                if (item.IsEqual(q))
                {
                    count += 1;
                }
            }
            return(count >= 2);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Thuat toan apriori_gen, sinh ra tap ung vien C tu tap L(k-1)
        /// </summary>
        /// <param name="lPrevious">L(k-1)</param>
        /// <returns></returns>
        public static ItemSetsCollection AprioriGen(ItemSetsCollection lPrevious)
        {
            ItemSetsCollection result = new ItemSetsCollection();

            if (lPrevious.Count <= 1)
            {
                return(result);
            }

            int k = lPrevious[0].Count;

            for (int i = 0; i < lPrevious.Count - 1; i++)
            {
                Itemsets p = new Itemsets(lPrevious[i]);
                p.RemoveAt(k - 1);

                for (int j = i + 1; j < lPrevious.Count; j++)
                {
                    Itemsets q = new Itemsets(lPrevious[j]);
                    q.RemoveAt(k - 1);

                    if (p.IsEqual(q))
                    {
                        q.Add(lPrevious[i][k - 1]);
                        q.Add(lPrevious[j][k - 1]);
                        result.Add(q);
                    }
                }
            }
            return(result);
        }