public Deskryptor fmax(Dictionary <string, int> czestosc, int nrAtr) { Deskryptor desk = new Deskryptor(); desk.nrAtrybutu = nrAtr; desk.wartosc = czestosc.First().Key; desk.czestosc = czestosc.First().Value; foreach (var cz in czestosc) { if (desk.czestosc < cz.Value) { desk.czestosc = cz.Value; desk.wartosc = cz.Key; } } return(desk); }
public Deskryptor fMaxCalosc(string[][] tab, List <Deskryptor> deskP) { Dictionary <string, int> slownik = new Dictionary <string, int>(); Deskryptor desk = new Deskryptor(); desk.czestosc = 0; int nrAtr = 0; List <int> pom = new List <int>(); foreach (var t in deskP) { pom.Add(t.nrAtrybutu); } for (int i = 0; i < tab[0].Length; i++) { nrAtr = i; slownik = fCzestosc(fKolumna(tab, i)); if (desk.czestosc < fmax(slownik, nrAtr).czestosc) { if (deskP.Count != 0) { if (!pom.Contains(fmax(slownik, nrAtr).nrAtrybutu)) { desk.czestosc = fmax(slownik, nrAtr).czestosc; desk.wartosc = fmax(slownik, nrAtr).wartosc; desk.nrAtrybutu = fmax(slownik, nrAtr).nrAtrybutu; } } else { desk.czestosc = fmax(slownik, nrAtr).czestosc; desk.wartosc = fmax(slownik, nrAtr).wartosc; desk.nrAtrybutu = fmax(slownik, nrAtr).nrAtrybutu; } } } return(desk); }
private void button2_Click(object sender, EventArgs e) { Deskryptor desk = new Deskryptor(); Dictionary <string, int> slownik = new Dictionary <string, int>(); List <Regula3> reguly = new List <Regula3>(); 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); } Regula3 r = new Regula3(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(); } }
public Regula3 dodajDeskryptor(Regula3 regula, Deskryptor desk) { regula.deskryptor.Add(desk); return(regula); }
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 ********************************/ }