1. Reguły minimalne (optymalne) Podstawowe twierdzenia i definicje Definicja 1 Funkcję postaci f n :{ 0, 1} { 0, 1} nazwiemy n-argumentową funkcją boolowską. Definicja 2 1 2 Term g = x 1 x x ( ϕ ) ( ϕ ) ( ϕr ) i i2 i r ( 0) L, gdzie ϕk {0,1}, x x ik ( ) =, x x ik ik 1 =, ik {1,2,,n}, k = 1,,r nazwiemy implikantem funkcji boolowskiej f(x1,,xn), jeżeli jest prawdziwa dla każdego wartościowania V nierówność g(v) f(v). Implikant g nazwiemy implikantem pierwszym, jeżeli nie można z niego usunąć żadnej zmiennej tak, aby powyższa nierówność była nadal prawdziwa. ik Definicja 3 Funkcja rozróżnialności fa dla systemu informacyjnego A jest a funkcją boolowską m boolowskich wartości a 1,...,a m, i odpowiadających im atrybutów a1,..., am, którą definiujemy następująco: f ( a1,..., a m ) { c ij :1 j < i n, c } A gdzie : c = { a : a c ij} ij = ij fmg(a) oznacza funkcję boolowską zbudowaną z MG(A) w analogiczny sposób jak fa z M(A). PRIME_MG(A) oznacza zbiór wszystkich implikantów pierwszych.
Definicja 4 Dokładna reguła α β jest optymalna, jeżeli: 1. Każdy element sumy w α ma minimalną liczbę deskryptorów, tzn. jeżeli β otrzymaliśmy z α przez eliminację któregoś deskryptora, to β α nie jest prawdziwe w A 2. Jeśli reguła αu β (gdzie u jest informacją o pewnym obiekcie w A) jest prawdziwa, to istnieje podzbiór u u u taki, że reguła αu β jest prawdziwa i β jest sumą w α. Twierdzenie 1.1 { α U : ( δ ( x) R x, t, u A k & t Pr ime _ MG k ( A,, x) & u = INF( t, A*, x))} { δ A = θ : θr gdzie INF( t, A*, x) = {( a, a( x)) : a A( t)} jest optymalną regułą decyzyjną. k }
2. Przykład generowania reguł minimalnych Sposób wyliczania reguł minimalnych przedstawiono dla tablicy decyzyjnej A=(U,A {d}) umieszczonej poniżej, gdzie U={x1,...x8}, C={a,b,c}- atrybuty warunkowe, d jest atrybutem decyzjnym. U C a b c d x1 0 0 0 0 x2 0 1 0 1 x3 0 0 1 0 x4 1 1 0 1 x5 1 1 1 1 x6 1 1 1 0 x7 0 0 1 2 x8 1 0 1 2 Tablica decyzyjna
1. Tworzymy uogólniony atrybut decyzyjny Α, którego wartości dodajemy do tablicy decyzyjnej, co przedstawia tabela 3.2. U C a b c Α x1 0 0 0 {0} x2 0 1 0 {1} x3 0 0 1 {0,2 x4 1 1 0 {1} x5 1 1 1 {0,1} x6 1 1 1 {0,1} x7 0 0 1 {0,2 x8 1 0 1 {2} Tablica decyzyjna z uogólnionym atrybutem decyzyjnym
Uwaga! Dla uproszczenia dalszych obliczeń usuwamy powielone (identyczne) obiekty. Zatem usunięty zostaje obiekt x6 i x7, a tablica 3.2 przyjmuje następującą postać: U C a b c Α x1 0 0 0 {0} x2 0 1 0 {1} x3 0 0 1 {0,2} x4 1 1 0 {1} x5 1 1 1 {0,1} X8 1 0 1 {2} Tablica decyzyjna po usunięciu obiektów powielonych
2. Tworzymy macierz nierozróżnialności M(C), która została przedstawiona poniżej: x1 x2 x3 x4 x5 x8 x1 b c ab abc ac x2 b bc a ac abc x3 c bc abc ab a x4 ab a abc c bc x5 abc ac ab c b x8 ac abc a bc b Macierz nierozróżnialności dla tablicy decyzyjnej 3.3. Zbiór α = {{0}, {1},{2},{0,1},{0,2}}. 3. Wyliczamy reguły minimalne dla δa ={0} czyli reguły postaci α δa ={0} Aby utworzyć te reguły należy utworzyć uogólnioną macierz rozróżnialności dla obiektu x1. MG(A,{0},x1) to pierwsza kolumna w tabeli 3.4. Niepuste elementy tej macierzy to b, c, ab, abc, ac. Funkcja rozróżnialności odpowiadająca tej macierzy ma postać: f MG(A,{0},x1) (a, b, c) = b*c*(a+b)*(a+b+c)*(a+c).
Uwaga! 1. Obliczenia odbywają się na zmiennych boolowskich tzn: X*X=X oraz X+X=X 2. Dla zmiennych boolowskich (1+X) = 1 (gdzie 1 to True). 3. W dalszych obliczeniach dla ułatwienia symbol * będzie opuszczany. f MG(A,{0},x1) (a, b, c) = (abc +bbc) * (aa + ac + ab + bc + ac + cc)= aaabc + aabcc+ aabbc + abbcc + aabcc + abccc + aabbc + abbcc + abbbc + bbbcc + abbcc + bbccc) Po dokonaniu minimalizacji funkcji boolowskich otrzymaliśmy: f MG(A,{0},x1) (a, b, c) =abc +bc =bc(a +1) = bc Zatem funkcja pierwszych implikantów Prime_MG(A,{0},x1}={bc}. Podstawiając do tab. 3.4 wiersz 1 otrzymujemy następującą regułę minimalną: b0c0 δa ={0}. 4. Wyliczamy reguły minimalne dla δa ={1} czyli reguły postaci β δa ={1}. MG(A,{1},x2) oraz MG(A,{1},x4). f MG(A,{1}, x2) (a, b, c) = b*(b+c)* (a+c) * (a+b+c) = (bb+bc)*(aa + ab + ac + ac+ bc + cc) = (aabb + abbb + abbc + abbc+ bbbc + bbcc + aabc + abbc + abcc + abcc+ bbcc + bccc) = ab + abc + bc = ab(c + 1) + bc = ab + bc Prime_MG(A,{1},x2}={ab, bc}. Zatem otrzymujemy dwie reguły minimalne : a0b1,, a1c0
f MG(A,{1}, x4) (a, b, c) = ( a+b)*(a+b+c) * c*( b+c)= (aa+ ab+ ac+ ab+ bb+ bc)*( bc + cc) = (aabc+ abbc+ abcc+ abbc+ bbbc+ bbcc + aacc+ abcc+ accc+ abcc+ bbcc+ bccc) = abc + bc +ac = bc(a+1) + ac= bc +ac Prime_MG(A,{1},x4}={ ac, bc}. Zatem otrzymujemy dwie reguły minimalne: a1c0, b1c0 Ostatecznie otrzymujemy A- optymalną regułę decyzyjną: a0b1, + a1c0 + b1c0 δa ={1}. 5. Wyliczamy reguły minimalne dla δa ={2} czyli reguły postaci χ δa ={2}. MG(A,{2},x8) f MG(A,{2}, x8) (a, b, c) = (a+c)*(a+b+c) * a* (b+c)* b = (aa + ab + ac + ac + bc + cc) *(abb+abc) = (aaabb + aabbb + aabbc + aabbc + abbbc + abbcc + aaabc + aabbc + aabcc + aabcc + abbcc + abccc) = ab + abc = ab(1+c) = ab Prime_MG(A,{2},x8}={ab}. Zatem otrzymujemy: a1b0 δa ={2}. 6. Wyliczamy reguły minimalne dla δa ={0,1} czyli reguły postaci δ δa ={0,1}. MG(A,{0,1},x5) f MG(A,{0,1}, x5) (a, b, c) = (a+b+c) * (a+c)*(a+b) * c* b = (aa+ ba+ ca + ac +bc +cc) * (abc + bbc) = (aabc+ aabbc+ abcc + aabcc +abbcc +abccc + aabbc+ bbbca+ bbacc + bbacc +bbbcc +bbccc) = abc+bc= bc(1+a) = bc Prime_MG(A,{0,1},x5}={bc}.
Zatem otrzymujemy: b1c1 δa ={0,1}. 7. Wyliczamy reguły minimalne dla δa ={0,2} czyli reguły postaci ε δa ={0,2}. MG(A,{0,2},x3) f MG(A,{0,2}, x3) (a, b, c) = c* (b+c)* (a+b+c) *(a+b)* a = (bc+cc) * (aaa + aab + aac+ aab + abb + abc) = (aaabc + aabbc + aabcc+ aabbc + abbbc + abbcc + aaacc + aabcc + aaccc+ aabcc + abbcc + abccc) = abc + ac = ac(b+1) = ac Prime_MG(A,{0,1},x5}={ac}. Otrzymujemy: a0c1 δa ={0,2}. Ostatecznie otrzymane zostały następujące reguły minimalne pierwszego typu: b0c0 δa ={0} a0b1,+ a1c0+ b1c0 δa ={1} a1b0 δa ={2} b1c1 δa ={0,1} a0c1 δa ={0,2}