예제 #1
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            // Tablica z wczytanymi danymi dostępna poniżej
            // this.systemDecyzyjny;

            //
            // Przykład konwersji string to double
            string sLiczbaDouble  = "1.5";
            double dsLiczbaDouble = StringToDouble(sLiczbaDouble);

            // Przykład konwersji string to int
            string sLiczbaInt = "1";
            int    iLiczbaInt = StringToInt(sLiczbaInt);

            /****************** Miejsce na rozwiązanie *********************************/
            List <Regula> reguly = new List <Regula>();
            List <int>    maska1 = new List <int>();

            foreach (var m in maska(systemDecyzyjny))
            {
                maska1.Add(m);
            }
            //int tmp = 0;
            if (maska1.Count() != 0)
            {
                for (int rzad = 1; rzad < systemDecyzyjny[0].Length - 1; rzad++)
                {
                    int tmp = 0;
                    int t   = 0;
                    foreach (var obiekt in systemDecyzyjny)
                    {
                        foreach (Combination combo in new Combination(systemDecyzyjny[0].Length - 1, rzad).GetRows())
                        {
                            Regula regula = new Regula(obiekt, combo.ToArray());
                            if (maska1.Contains(tmp))
                            {
                                if (regula.czyRegulaSprzeczna(systemDecyzyjny))
                                {
                                    reguly.Add(regula);
                                    regula.SupportReguly(systemDecyzyjny);
                                    maska1 = regula.generujPokjrycie(systemDecyzyjny, maska1);
                                    break;
                                }
                            }
                        }
                        tmp++;
                    }
                }
            }

            foreach (var reg in reguly)
            {
                wynik.Text += reg.ToString() + Environment.NewLine;
            }

            /****************** Koniec miejsca na rozwiązanie ********************************/
        }
        private void btnStart_Click(object sender, EventArgs e)
        {
            // Tablica z wczytanymi danymi dostępna poniżej
            // this.systemDecyzyjny;

            //
            // Przykład konwersji string to double
            string sLiczbaDouble  = "1.5";
            double dsLiczbaDouble = StringToDouble(sLiczbaDouble);

            // Przykład konwersji string to int
            string sLiczbaInt = "1";
            int    iLiczbaInt = StringToInt(sLiczbaInt);

            /****************** Miejsce na rozwiązanie *********************************/



            //string wynik = String.Join(",", koceptFinal(koncept(systemDecyzyjny, "1"), systemDecyzyjny));



            Deskryptor desk = new Deskryptor();
            Dictionary <string, int> slownik      = new Dictionary <string, int>();
            List <Regula>            reguly       = new List <Regula>();
            List <Deskryptor>        pDeskryptory = new List <Deskryptor>();

            string[][] test;
            foreach (var decyzje in fUnkialnosc(fKolumna(systemDecyzyjny, ostatni)))
            {
                List <int> maska1 = new List <int>();
                List <int> maska2 = new List <int>();
                foreach (var m in maska(konceptFinall(decyzje)))
                {
                    maska1.Add(m);
                }

                string[][] tb;
                do
                {
                    pDeskryptory.Clear();
                    if (maska1.Count() != konceptFinall(decyzje).Count())
                    {
                        tb   = konceptBezPok(konceptFinall(decyzje), maska1);
                        desk = fMaxCalosc(konceptBezPok(konceptFinall(decyzje), maska1), pDeskryptory);
                    }
                    else
                    {
                        desk = fMaxCalosc(konceptFinall(decyzje), pDeskryptory);
                    }
                    Regula r = new Regula(decyzje, desk);


                    do
                    {
                        if (!r.czyRegulaSprzeczna(systemDecyzyjny))
                        {
                            pDeskryptory.Add(desk);
                            desk = fMaxCalosc(konceptPoPokryciu(konceptFinall(decyzje), maska2), pDeskryptory);
                            r    = dodajDeskryptor(r, desk);
                            maska2.Clear();
                            foreach (var m in maska(konceptFinall(decyzje)))
                            {
                                maska2.Add(m);
                            }
                            maska2 = r.generujPokjrycie(konceptFinall(decyzje), maska2);
                            if (r.czyRegulaSprzeczna(systemDecyzyjny))
                            {
                                r.SupportReguly(systemDecyzyjny);
                                reguly.Add(r);
                                maska1 = r.generujPokjrycie(konceptFinall(decyzje), maska1);
                            }
                        }
                        else
                        {
                            r.SupportReguly(systemDecyzyjny);
                            reguly.Add(r);
                            maska1 = r.generujPokjrycie(konceptFinall(decyzje), maska1);
                        }
                    } while (!r.czyRegulaSprzeczna(systemDecyzyjny));
                } while (maska1.Count() != 0);
            }
            foreach (var reg in reguly)
            {
                wynik.Text += reg.ToString();
            }

            /****************** Koniec miejsca na rozwiązanie ********************************/
        }