Beispiel #1
0
        private void показатьПримерМинимальногоДоминирующегоПодмножестваToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Program.FORM.listBoxMatrix.Items.Clear();

            AMatrix = new int[V.Count, V.Count];
            G.fillAdjacencyMatrix(V.Count, E, AMatrix);
            selectButton.Enabled     = true;
            drawVertexButton.Enabled = true;
            drawEdgeButton.Enabled   = true;
            deleteButton.Enabled     = true;
            V.Clear();
            E.Clear();
            G.clearSheet();
            sheet.Image = G.GetBitmap();

            this.E = new List <Edge>(Etmp);
            this.V = new List <Vertex>(Vtmp); for (int i = 0; i < V.Count; i++)
            {
                V[i].color = 0;
            }

            SqMatrix M = new SqMatrix(AMatrix);

            g = new Graphs(M);

            FileStream   fs  = new FileStream("Информация о графе.txt", FileMode.Create);
            TextWriter   tmp = Console.Out;
            StreamWriter sw  = new StreamWriter(fs);

            Console.SetOut(sw);

            g.DominSub();
            Console.WriteLine("Доминирующие (внешне устойчивые) множества (записано каждое третье):"); g.ShowDominSub(3);
            Console.WriteLine("Минимальные (не содержащие в себе других) доминирующие множества:"); g.ShowMinDominSub();
            Console.WriteLine("Наименьшие (по мощности) доминирующие  множества:"); g.ShowSmallestDominSub();
            Console.WriteLine("-----------> Число доминирования равно {0}", g.DominationNumber);
            Vectors v = new Vectors(g.MinimalDominSubsets[0]);

            for (int i = 0; i < v.Deg; i++)
            {
                V[(int)v[i] - 1].color = 1;
            }
            G.drawALLGraph(V, E);

            sw.Close();
            Console.SetOut(tmp);
            Console.WriteLine("Запись завершена!");

            StreamReader sr = new StreamReader("Информация о графе.txt");
            string       s  = "";

            while (s != null)
            {
                listBoxMatrix.Items.Add(s);
                s = sr.ReadLine();
            }
            sr.Close();
        }