Пример #1
0
        /* Glowna funkcja programu. Wszystkie operacje zaczynaja sie od tego miejsca */
        private void btnUruchom_Click(object sender, EventArgs e)
        {
            if (!Int32.TryParse(tbNrInstancji.Text, out nrInstancji))
            {
                MessageBox.Show("Złe dane w polu instancji!");
            }
            else
            {
                Algorytmy    algorytmy = new Algorytmy();
                KolejkaZadan kz        = new KolejkaZadan(sciezkaPlikDane, nrInstancji);
                //Wyliczanie odpowiednich sekwencji algorytmami
                if (cbAlgorytm.SelectedIndex == 0)
                {
                    //Przeglad zupelny
                    PrzegladZupelny przegladZupelny = new PrzegladZupelny();
                    int[]           sekwencja       = przegladZupelny.Przeglad(kz);
                    int             Cmax            = algorytmy.calculateTotalspan(kz, sekwencja);
                    kz.WypiszRezultaty(Cmax, sekwencja);
                }
                else
                {
                    //Johnson
                    int[] sekwencja = algorytmy.AlgorytmJohnsona(kz);
                    int   Cmax      = algorytmy.calculateTotalspan(kz, sekwencja);
                    kz.WypiszRezultaty(Cmax, sekwencja);
                }

                //Wizualizacja
                var proces = new Process();
                proces.StartInfo.FileName    = sciezkaPython;
                proces.StartInfo.Arguments   = @"w_gantt.py";
                proces.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                proces.Start();
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            Stopwatch sw        = new Stopwatch();
            Algorytmy algorytmy = new Algorytmy();

            for (int i = 0; i < 60; i++)
            {
                KolejkaZadan kz             = new KolejkaZadan("neh_data.txt", i + 1);
                var          kolejnoscZadan = new int[kz.zadania.Length];
                for (int x = 0; x < kz.zadania.Length; x++)
                {
                    kolejnoscZadan[x] = x + 1;
                }
                int[,] macierzZadan = Algorytmy.pasreMacierzZadan(kz, kolejnoscZadan);
                sw.Start();
                int[] sekwencja = algorytmy.AlgorytmJohnsona(kz);
                sw.Stop();
                int Cmax = Algorytmy.calculateTotalspan(kz, macierzZadan, sekwencja);
                Parser.ZapiszWynik(sw, Cmax, kz, "Johnson", i + 1);
                sw.Reset();
                var posortowane = Algorytmy.ZwrocPosortowanePriorytety(kz);
                sw.Start();
                int[] sekwencja2 = Neh.NehBasic(kz, posortowane).ToArray();
                sw.Stop();
                int Cmax2 = Algorytmy.calculateTotalspan(kz, macierzZadan, sekwencja2);
                Parser.ZapiszWynik(sw, Cmax2, kz, "NEH", i + 1);
                sw.Reset();
            }
        }
Пример #3
0
        /* Glowna funkcja programu. Wszystkie operacje zaczynaja sie od tego miejsca */
        private void btnUruchom_Click(object sender, EventArgs e)
        {
            if (!Int32.TryParse(tbNrInstancji.Text, out nrInstancji))
            {
                MessageBox.Show("Złe dane w polu instancji!");
            }
            else
            {
                Algorytmy    algorytmy      = new Algorytmy();
                KolejkaZadan kz             = new KolejkaZadan(sciezkaPlikDane, nrInstancji);
                var          kolejnoscZadan = new int[kz.zadania.Length];
                for (int x = 0; x < kz.zadania.Length; x++)
                {
                    kolejnoscZadan[x] = x + 1;
                }
                int[,] macierzZadan = Algorytmy.pasreMacierzZadan(kz, kolejnoscZadan);
                if (cbAlgorytm.SelectedIndex == 0)
                {
                    //Przeglad zupelny
                    PrzegladZupelny przegladZupelny = new PrzegladZupelny();
                    int[]           sekwencja       = przegladZupelny.Przeglad(kz);
                    int             Cmax            = Algorytmy.calculateTotalspan(kz, macierzZadan, sekwencja);
                    kz.WypiszRezultaty(Cmax, sekwencja);
                }
                else if (cbAlgorytm.SelectedIndex == 1)
                {
                    //Johnson
                    int[] sekwencja = algorytmy.AlgorytmJohnsona(kz);
                    int   Cmax      = Algorytmy.calculateTotalspan(kz, macierzZadan, sekwencja);
                    kz.WypiszRezultaty(Cmax, sekwencja);
                }
                else
                {
                    //Neh
                    List <Tuple <int, int> > posortowane = Algorytmy.ZwrocPosortowanePriorytety(kz);
                    List <int> sekwencja = Neh.NehBasic(kz, posortowane);
                    int        Cmax      = Algorytmy.calculateTotalspan(kz, macierzZadan, sekwencja.ToArray());
                    kz.WypiszRezultaty(Cmax, sekwencja.ToArray());
                }

                //Wizualizacja
                if (rbVisualize.Checked)
                {
                    var proces = new Process();
                    proces.StartInfo.FileName    = sciezkaPython;
                    proces.StartInfo.Arguments   = @"w_gantt.py";
                    proces.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                    proces.Start();
                }
            }
        }
Пример #4
0
        public void calculateTotalspanTest()
        {
            KolejkaZadan kolejka = new KolejkaZadan();

            kolejka.zadania[0].czasyOperacji[0] = 1;
            kolejka.zadania[0].czasyOperacji[1] = 3;
            kolejka.zadania[0].czasyOperacji[2] = 17;
            kolejka.zadania[1].czasyOperacji[0] = 5;
            kolejka.zadania[1].czasyOperacji[1] = 1;
            kolejka.zadania[1].czasyOperacji[2] = 1;
            kolejka.zadania[2].czasyOperacji[0] = 1;
            kolejka.zadania[2].czasyOperacji[1] = 1;
            kolejka.zadania[2].czasyOperacji[2] = 1;
            int[]     kolejnoscZadan = { 1, 2, 3 };
            Algorytmy test           = new Algorytmy();
            int       cmax           = test.calculateTotalspan(kolejka, kolejnoscZadan);

            Assert.Equals(cmax, 23);
        }