Example #1
0
        private void buttonTest_Click(object sender, EventArgs e)//测试
        {
            #region

            /*
             * string str = "a.1(2.5,4.3)";
             * stringinstance o=new stringinstance();
             * o.splitinstance(".","(",",",")",str);
             * string m = "";
             * for (int i = 0; i < o.splitinstance(".", "(", ",", ")", str).count; i++)
             * {
             *
             *   m=o.splitinstance(".", "(", ",", ")", str)[i]; //----这就是你要的结果
             *  messagebox.show(m);
             * }
             */
            #endregion//测试字符串分割实例

            //StringInstance s = new StringInstance();
            //string str = "12,13,15,16";
            //string[] ti = { "," };

            //for (int i = 0; i < s.SplitString1(str, ',').Count; i++)
            //{
            //    MessageBox.Show(s.SplitString1(str, ',')[i]);
            //}

            List <SortedSet <int> > list   = new List <SortedSet <int> >(); //装实例表
            List <SortedSet <int> > listPA = new List <SortedSet <int> >(); //装PA包括的实例
            //List<SortedSet<int>> listline = new List<SortedSet<int>>();
            List <int> listline = new List <int>();                         //装每个PA包括的行号

            SortedSet <int> ssin1 = new SortedSet <int>()
            {
                1, 4, 7
            };
            SortedSet <int> ssin2 = new SortedSet <int>()
            {
                1, 4, 8
            };
            SortedSet <int> ssin3 = new SortedSet <int>()
            {
                2, 5, 9
            };
            SortedSet <int> ssin4 = new SortedSet <int>()
            {
                3, 6, 9
            };
            SortedSet <int> ssin5 = new SortedSet <int>()
            {
            };
            list.Add(ssin1); list.Add(ssin2); list.Add(ssin3); list.Add(ssin4); list.Add(ssin5);

            //首先赋值第一行初始化
            //listPA.Add(list[0]);//PA初始化
            // listline.Add(0);//行号初始化
            //for (int i = 1; i < list.Count(); i++)//讲实例表分到不同的PA中
            //{
            //    int j = listPA.Count - 1;
            //    SortedSet<int> tmpset = new SortedSet<int>();
            //    if (listPA[j].Overlaps(list[i]))
            //    {
            //        listPA[j].UnionWith(list[i]);
            //    }
            //    else
            //    {
            //        listline.Add(i);
            //        listPA.Add(list[i]);
            //    }
            //}

            Occupation oc = new Occupation();
            //oc.PA(list);
            //for (int i = 0; i < oc.PA(list).Count(); i++)//讲实例表分到不同的PA中
            //{
            //    StringBuilder m = new StringBuilder();
            //    foreach (var item in oc.PA(list)[i])
            //    {
            //        m.Append(item.ToString()); m.Append(",");
            //    }
            //    MessageBox.Show(m.ToString());
            //}
            //=========================================================================公共邻域

            List <SortedSet <int> > listcn = new List <SortedSet <int> >(); //装实例邻居表
            List <SortedSet <int> > listCA = new List <SortedSet <int> >(); //装CA包括的实例

            SortedSet <int> csin1 = new SortedSet <int>()
            {
                1, 4, 7, 10, 11, 14
            };
            SortedSet <int> csin2 = new SortedSet <int>()
            {
                1, 4, 8, 10, 14
            };
            SortedSet <int> csin3 = new SortedSet <int>()
            {
                2, 5, 9, 12, 15
            };
            SortedSet <int> csin4 = new SortedSet <int>()
            {
                3, 6, 9, 13, 16
            };
            listcn.Add(csin1); listcn.Add(csin2); listcn.Add(csin3); listcn.Add(csin4);

            //List<int> line = new List<int>();

            //foreach (var item in oc.PA(list)[oc.PA(list).Count() - 1])//取出listline
            //{
            //    line.Add(item);
            //}
            //for (int i = 0; i < line.Count()-1; i++)
            //{
            //    SortedSet<int> tmpset = new SortedSet<int>();
            //    tmpset = listcn[line[i]];
            //    for (int j = line[i]+1; j < line[i + 1]; j++)
            //    {
            //        tmpset.UnionWith(listcn[j]);
            //    }
            //    listCA.Add(tmpset);
            //}
            //listPA = oc.PA(list);
            //listCA = oc.CA(oc.PA(list)[oc.PA(list).Count() - 1], listcn);
            //for (int i = 0; i < listCA.Count(); i++)//讲实例表分到不同的PA中
            //{
            //    StringBuilder m1 = new StringBuilder();
            //    foreach (var item in listCA[i])
            //    {
            //        m1.Append(item);
            //        m1.Append(",");
            //    }
            //    MessageBox.Show(m1.ToString());
            //}
            double index = oc.OccupationIndex(oc.CA(oc.PA(list)[oc.PA(list).Count() - 1], listcn), oc.PA(list));
            MessageBox.Show(index.ToString());

            //for (int i = 0; i < listline.Count(); i++)//讲实例表分到不同的PA中
            //{

            //    MessageBox.Show(listline[i].ToString());
            //}
        }