Konrad Królikowski

Transkrypt

Konrad Królikowski
WYŻSZA
SZKOŁA
INFORMATYKI
I ZARZĄDZANIA
STOSOWANEJ
pod auspicjami Polskiej Akademii Nauk
WYDZIAŁ INFORMATYKI
STUDIA
I
(INŻYNIERSKIE)
STOPNIA
Kierunek INFORMATYKA
PRACA DYPLOMOWA
Konrad Królikowski
IMPLEMENTACJA ALGORYTMU
OBLICZANIA REDUKTÓW METODĄ
UZUPEŁNIANIA FUNKCJI
BOOLOWSKICH
IMPLEMENTATION OF ALGORITHM
COMPUTING REDUCTS USING COMPLEMENT
OF UNATE BOOLEAN FUNCTIONS
Praca wykonana pod kierunkiem:
Prof. dr hab. inż. Tadeusza Łuby
WARSZAWA, 2012 r.
Autor: Konrad Królikowski
IMPLEMENTACJA ALGORYTMU OBLICZANIA REDUKTÓW
METODĄ UZUPEŁNIANIA FUNKCJI BOOLOWSKICH
Tytuł:
Rok akademicki:
2011/2012
Dziekan Wydziału:
dr inż. Jarosław Sikorski
Kierunek:
Informatyka
Specjalność:
Inżynieria oprogramowania
Opiekun pracy:
Prof. dr hab. inż. Tadeusz Łuba
Konsultant:
Prof. dr hab. inż. Tadeusz Łuba
Kwalifikuję do złożenia jako dyplomową pracę inżynierską
na Wydziale Informatyki WSISiZ.
Ocena pracy (słownie):
..................................................................................
(skala ocen: bardzo dobra, dobra i pół, dobra, dostateczna i pół, dostateczna)
.........................................
.......................................................................
(data)
(podpis opiekuna pracy)
Pracę złożono w .......... egzemplarzach dnia
............................................................
.......................................................................
(pieczątka wydziału)
(podpis kierownika dziekanatu)
Tytuł naukowy, imię i nazwisko recenzenta pracy:
....................................................................................................................
....................
Ocena pracy (słownie):
..................................................................................
(skala ocen: bardzo dobra, dobra i pół, dobra, dostateczna i pół, dostateczna)
.........................................
(data)
.......................................................................
Dopuszczam pracę do obrony.
.........................................
(data)
(podpis kierownika dziekanatu)
.......................................................................
(podpis dziekana )
OŚWIADCZENIE AUTORA PRACY DYPLOMOWEJ
Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została
napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny
z obowiązującymi przepisami prawa, w szczególności z ustawą z dnia 4 lutego 1994 r.
o prawie autorskim i prawach pokrewnych (Dz. U. z 1994 r. Nr 24, poz. 83 – tekst pierwotny
i Dz. U. z 2000 r. Nr 80, poz. 904 – tekst jednolity, z późniejszymi zmianami).
Oświadczam, że wszystkie narzędzia informatyczne zastosowane do wykonania niniejszej
pracy wykorzystałem zgodnie z obowiązującymi przepisami prawa w zakresie ochrony
własności intelektualnej i przemysłowej.
Oświadczam, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych
z uzyskaniem tytułu zawodowego w szkole wyższej.
Jednocześnie stwierdzam, że niniejszy tekst pracy dyplomowej jest identyczny z załączoną
wersją elektroniczną.
.........................
Data
.....................................................................
Podpis autora pracy
Wstęp ......................................................................................................................................... 4
1. Podstawy teoretyczne ........................................................................................................... 7
1.1. System informacyjny i tablica decyzyjna ........................................................................ 7
1.2. Zastosowania tablic decyzyjnych .................................................................................... 8
2. Obliczanie reduktów funkcji boolowskiej ........................................................................ 10
2.1. Metoda klasyczna .......................................................................................................... 10
2.2. Metoda uzupełniania funkcji boolowskiej .................................................................... 12
3. Program Błyskawica .......................................................................................................... 17
3.1. Wymagania sprzętowe .................................................................................................. 17
3.3. Format danych wejściowych ......................................................................................... 17
3.4. Instrukcja obsługi .......................................................................................................... 18
3.5. Współpraca z programem Rough Set Exploration System ........................................... 18
4. Wyniki eksperymentów ..................................................................................................... 20
Zakończenie ............................................................................................................................ 22
Wykaz literatury .................................................................................................................... 22
Dodatek ................................................................................................................................... 25
Wykaz rysunków i tabel ........................................................................................................ 33
Wykaz załączników ................................................................................................................ 33
Streszczenie ............................................................................................................................. 33
3
Wstęp
W wielu zagadnieniach maszynowego uczenia (machine learning), eksploracji danych
(data mining), ale również w syntezie logicznej układów cyfrowych często mamy do
czynienia z zależnościami funkcjonalnymi (wyrażanymi np. w formie tablic decyzyjnych),
w których nie wszystkie atrybuty są niezbędne do prawidłowego przedstawienia tych
zależności. Zagadnienie usuwania zbędnych (nadmiarowych) atrybutów jest istotnym
problemem w eksploracji danych. Zagadnieniu temu poświęcono wiele prac naukowych. Do
fundamentalnych prac w tej dziedzinie należą prace (Pawlak [21], Skowron et al., [23]).
Metody redukcji atrybutów okazały się bardzo użyteczne w wielu zastosowaniach. Na
przykład baza danych zawierająca dane o 122 pacjentach cierpiących na wrzody dwunastnicy,
poddanych selektywnej wagotonii, była analizowana w pracy Slowinski and Sharif [24]. Baza
ta
zawierała
dane
niezbędne
do
klasyfikowania
pacjentów
z
punktu
widzenia
długoterminowych rezultatów operacji. Redukcja atrybutów wykazała, że spośród 11
atrybutów opisujących stan zdrowia pacjentów potrzebnych do uzyskania satysfakcjonującej
jakości klasyfikacji wystarczy zaledwie 5. Z podobnym zjawiskiem mamy do czynienia w
syntezie logicznej [14], gdzie działanie układu jest reprezentowane tablicami prawdy, które w
rzeczywistości są tablicami decyzyjnymi z dwuwartościowymi atrybutami, przy czym
atrybuty warunkowe spełniają rolę zmiennych wejściowych, natomiast atrybuty decyzyjne
reprezentują zmienne wyjściowe układu logicznego. W typowych zastosowaniach algebry
Boole’a kluczowym
problemem
jest
reprezentacja funkcji
boolowskich możliwie
najprostszymi wyrażeniami boolowskimi. Jedną z możliwości takiego upraszczania jest
redukcja liczby zmiennych występujących w pierwotnej specyfikacji funkcji. W tej sytuacji
zredukowany zbiór zmiennych może być punktem wyjścia do obliczeń w innych algorytmach
optymalizacji układu, jak np. w procesie minimalizacji lub dekompozycji. Połączenie redukcji
argumentów z innymi metodami optymalizacji logicznej może mieć wielki wpływ na jakość
implementacji układu [15], [22].
W związku z powyższym opracowano już i zaproponowano w literaturze wiele metod
obliczania minimalnych zbiorów atrybutów/argumentów (tzw. reduktów) [5, 9, 10, 11, 13, 18,
19, 23, 25]. Do najbardziej znanych i najczęściej stosowanych należą algorytmy wchodzące w
skład ogólniejszej teorii tzw. Zbiorów Przybliżonych (Rough Set Reducts) wykorzystujących
w swych podstawach formalnych macierz wyrózniającą (discernibility matrix) [23]. Poza
metodami wykorzystującymi macierz i funkcję wyróżniającą wiele nowych metod obliczania
reduktów powstało w ramach ogólniejszej metodyki obliczeń inteligentnych jak np. metody
4
wykorzystujące algorytmy genetyczne lub symulowane wyrzażanie (simulated annealing)
[13].
Drugim, obiecującym obszarem zastosowań redukcji argumentów jest synteza układów
logicznych. W tym przypadku bezpośrednią przyczyną tych zastosowań są ograniczenia
konstrukcyjne produkowanych modułów PLD i FPGA. Idea redukcji argumentów została
wprowadzona i zastosowana do procedur tzw. dekompozycji równoległej [14], [25].
Dekompozycja równoległa w układzie opisanym przez:
(y1,..., ym ) = F(x1,..., xn )
to podział zbioru {y1,..., yn} na takie rozłączne podzbiory Y1 ,..., Yi ,..., Yk , z których każdy można
zrealizować w układzie kombinacyjnym o argumentach odpowiednio X1 ,..., Xi ,..., Xk , gdzie
Xi {x1,..., xn}.
Sens powyższej dekompozycji wynika z ograniczeń konstrukcyjnych produkowanych
modułów PLD i FPGA. Jeśli bowiem liczba wyjść, np. modułu PLD jest mniejsza od m,
to do realizacji układu opisanego przez można przeznaczyć (w zależności od m) kilka
mniejszych. W układzie tym wyjścia yi trzeba odpowiednio rozdzielić na poszczególne
moduły. Wskazane jest, aby zbiór {y1,..., ym} rozdzielić na takie podzbiory Yi , dla których
odwzorowanie Yi = hi (Xi ) wymagałoby możliwie najmniejszej liczby argumentów Xi, przy
czym Xi  {x1,..., xn}, Yi {y1,..., ym}. Pełną informację o rozdziale zbioru Y = {y1,..., ym} na
podzbiory Y1,..., Yk uzyskać można z minimalno-argumentowych realizacji poszczególnych
wyjść yi.
Całkiem odmienną metodę redukcji atrybutów w tablicach decyzyjnych lub argumentów
w układach logicznych zaproponowano w pracach Łuby i Borowika [6], [17]. Wyrózniającą
cechą tej metody jest zastosowanie do obliczania reduktów zaawansowanej teorii uzupełniania
jednorodnych funkcji boolowskich. Procedura uzupełniania polega na iteracyjnym rozkładzie
zbioru kostek reprezentującego funkcję boolowską f na kofaktory. Kofaktory te są obliczane
tak długo, aż odpowiadające im zbiory kostek staną się „łatwe” do obliczenia ich
uzupełnienia. Proces kończy „scalanie” wyników cząstkowych, którego wynikiem jest
funkcja boolowska reprezentująca wszystkie redukty.
Głównym celem niniejszej pracy było stworzenie programu, który będzie umożliwiał
obliczanie zarówno najmniejszych jak również minimalnych zbiorów argumentów/atrybutów
metodą uzupełniania jednorodnych funkcji boolowskich. Praca składa się z czterech
rozdziałów. W pierwszym rozdziale omówiono podstawy teoretyczne oraz zaprezentowano
przykłady praktycznych zastosowań tablic decyzyjnych. W rozdziale drugim przedstawiono
5
metody obliczania reduktów funkcji boolowskich. Trzeci rozdział opisuje stworzony w
ramach niniejszej pracy program Błyskawica. Czwarty rozdział prezentuje wyniki
eksperymentów i porównanie opracowanego programu z innymi.
6
1. Podstawy teoretyczne
1.1. System informacyjny i tablica decyzyjna
System informacyjny jest czwórką (U, A, V, f), gdzie: U jest niepustym i skończonym
zbiorem obiektów zwanym uniwersum, A jest niepustym i skończonym zbiorem atrybutów
V  U aAVa , gdzie Va jest dziedziną atrybutu a  A oraz
f : U  A  V jest funkcją
informacyjną taką, że a  A, x  U , f (a, x)  Va . Jeżeli w systemie informacyjnym
wyróżniamy rozłączne zbiory atrybutów warunkowych C i atrybutów decyzyjnych D, gdzie
A  C  D to system taki nazywamy tablicą decyzyjną [21]. Zaletą tablicy decyzyjnej jest
przejrzysty sposób prezentacji zależności między zbiorem warunków, a zbiorem
odpowiadającym im decyzji. Przykładową tablicę decyzyjną przedstawia tabela 1.1.
Tabela 1.1 Przykładowa tablica reguł decyzyjnych – opracowanie własne
a
0
1
1
1
0
b
0
1
1
0
0
c
1
0
1
0
0
d
1
1
1
0
0
e
0
0
1
1
1
W tabeli 1.1 każdy wiersz reprezentuje obiekt, który jest opisany za pomocą atrybutów
a, b, c, d oraz jest klasyfikowany w kolumnie e. Każdemu zbiorowi wartości atrybutów
odpowiada określona decyzja. Przykładowo, jeśli a=0, b=0, c=1, d=1 decyzja e = 0.
Tablice decyzyjne są stosowane w wielu dziedzinach nauki, między innymi w:
medycynie, ekonomii, kryptografii, sztucznej inteligencji, automatyce przemysłowej i innych.
Jedną z częściej omawianych w literaturze medycznych baz danych jest Breast
Cancer Database. Tablica danych tej bazy zawiera 699 instancji (obiektów), 10 atrybutów
oraz dwie klasy decyzyjne. W tablicy tej przy odpowiedniej dyskretyzacji danych opisane są
wyniki badan poszczególnych pacjentów. Atrybuty oznaczają:
1. ocena spoistości masy nowotworowej,
2. ocena jednolitości rozmiaru komórek,
3. ocena jednolitości kształtu komórek,
4. stopień brzeżnego przylegania nowotworu,
5. wielkość pojedynczych komórek nabłonkowych,
6. ocena jądra komórkowego,
7. ocena chromatyny,
7
8. stan prawidłowości jąder (nucleoli),
9. występowanie podziałów komórkowych (mitoza).
Fragment tablicy danych tej bazy podany jest w tabeli 1.2.
Tabela 1.2 Fragment bazy Breast Cancer1 –źródło [4]
X1
5
5
3
6
4
8
1
2
2
4
1
5
5
3
X2 X3 X4 X5 X6 X7 X8 X9 decyzja
1 1
4 4
1 1
8 8
1 1
10 10
1 1
1 2
1 1
2 1
1 1
1 1
4 4
1 1
1
5
1
1
3
8
1
1
1
1
1
1
5
1
2
7
2
3
2
7
2
2
2
2
1
2
7
2
1
10
2
4
1
10
10
1
1
1
1
1
10
2
3
3
3
3
3
9
3
3
1
2
3
3
3
3
1
2
1
7
1
7
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
2
2
2
2
2
4
2
2
2
2
2
2
2
2
1.2. Zastosowania tablic decyzyjnych
W celu wyjaśnienia wpływu redukcji atrybutów na sposób podejmowania decyzji
rozważmy prostszy przykład, opisujący wyniki badań 7 pacjentów. Tabela 1.3 przedstawia
wyniki pewnych badań i diagnozy dla siedmiu pacjentów.
Tabela 1.3 Przykładowa tablica reguł decyzyjnych – opracowanie własne
Badanie1
1
0
1
0
0
0
0
Badanie2
1
1
1
1
0
1
1
Badanie3
1
1
2
1
0
1
2
Badanie4
1
1
1
0
1
1
1
Badanie5
1
1
0
0
0
0
0
Badanie6
0
1
0
0
0
1
0
Badanie7
0
0
0
0
1
0
0
Badanie8
0
1
0
0
0
0
1
Diagnoza
D3
D3
D3
D1
D2
D3
D3
Wykorzystanie takich danych polega na generowaniu reguł decyzyjnych, na podstawie
których podejmuje się wstępną decyzje o stanie zdrowia pacjenta zgłaszającego się na
badania. Reguły decyzyjne wygenerowane programem Rough Set Exploration System [3] są
następujące:
(Bad_2=1)&(Bad_4=1)=>(Diagnoza=diag3)
(Bad_4=1)&(Bad_7=0)=>(Diagnoza=diag3)
1
Cała baza breast cancer znajduje się na załączonej płycie DVD
8
(Bad_3=1)&(Bad_4=1)=>(Diagnoza=diag3)
(Bad_1=1)=>(Diagnoza=diag3)
(Bad_5=1)=>(Diagnoza=diag3)
(Bad_6=1)=>(Diagnoza=diag3)
(Bad_8=1)=>(Diagnoza=diag3)
(Bad_3=2)=>(Diagnoza=diag3)
(Bad_4=0)=>(Diagnoza=diag1)
(Bad_1=0)&(Bad_3=1)&(Bad_6=0)=>(Diagnoza=diag1)
(Bad_1=0)&(Bad_2=1)&(Bad_6=0)&(Bad_8=0)=>(Diagnoza=diag1)
(Bad_1=0)&(Bad_6=0)&(Bad_7=0)&(Bad_8=0)=>(Diagnoza=diag1)
(Bad_3=1)&(Bad_5=0)&(Bad_6=0)=>(Diagnoza=diag1)
(Bad_2=0)=>(Diagnoza=diag2)
(Bad_3=0)=>(Diagnoza=diag2)
(Bad_7=1)=>(Diagnoza=diag2)
(Bad_1=0)&(Bad_4=1)&(Bad_6=0)&(Bad_8=0)=>(Diagnoza=diag2).
Na podstawie reguły (Bad_2=1)&(Bad_4=1)=>(Diagnoza=diag3) można stwierdzić,
że pacjent, którego wyniki wszystkich ośmiu badań są 1 powinien otrzymać diagnozę D3,
natomiast reguła (Bad_7=1)=>(Diagnoza=diag2) sugerowałaby diagnozę D2. Taka sytuacja
oznacza, że w celu postawienia prawidłowej diagnozy należy wykonać dalsze badania.
Może okazać się, że niektóre badania są kosztowne lub trudne do wykonania.
Redukcja atrybutów może umożliwić wyeliminowanie kłopotliwych badań. Przykładowo po
zredukowaniu atrybutów w omawianym przykładzie powstaną następujące minimalne zbiory
atrybutów:
{ Bad_1 Bad_4 Bad_6 Bad_8 }
{ Bad_1 Bad_6 Bad_7 Bad_8 }
{ Bad_3 Bad_4 }
{ Bad_3 Bad_5 Bad_6 }
{ Bad_4 Bad_7 }
{ Bad_2 Bad_4 }
{ Bad_1 Bad_3 Bad_6 }
{ Bad_1 Bad_2 Bad_6 Bad_8 }
Jeśli na przykład wykonanie badania 4 jest trudne można wybrać zbiór atrybutów,
który nie zawiera tego badania: { Bad_3 Bad_5 Bad_6 }. Warto podkreślić, że wybór
najmniejszego zbioru atrybutów nie zawsze jest dobrym rozwiązaniem, dlatego istotne jest
obliczenie wszystkich minimalnych zbiorów atrybutów. Wybór liczniejszego zbioru
atrybutów może składać się z elementów, których wartości jest łatwo wyznaczyć.
9
2. Obliczanie reduktów funkcji boolowskiej
2.1. Metoda klasyczna
Problem redukcji atrybutów jest opisywany w literaturze w róznych ujęciach.
Najwygodniejsza do interpretacji i obliczeń “ręcznych” jest reprezentacja zależności
funkcyjnych tablic decyzyjnych w rachunku podziałów[14].
Podziałem  zbioru S nazywamy rodzinę rozłącznych podzbiorów zbioru S, których
suma równa się S. Dla podziałów wprowadza się relację  oraz działanie iloczynu i sumy:
1   2  (Bi  1 )(B j   2 )( Bi  B j )
(2-1)
Podział  nazywamy iloczynem podziałów 1 i 2 ( = 1  2), jeżeli  jest
największym podziałem (tzn. podziałem mającym największe bloki) spełniającym warunki:
  1 oraz   2. Podział 1  2 można wyznaczyć bardzo prosto wyznaczając wszystkie
możliwe iloczyny w sensie teorii mnogości każdego bloku 1, z każdym blokiem 2; zbiór
tak otrzymanych zbiorów jest poszukiwanym podziałem.
Wygodne w zastosowaniach jest również pojęcie ilorazu podziałów (podziału
ilorazowego). Niech 1 i 2 są podziałami na S oraz
1  2. Podział 1|2 jest podziałem ilorazowym 1 i 2 ,
Tabela 2.1 Tablica prawdy.
Źródło: wykład PUL
jeżeli jego elementy są blokami 2, a bloki są blokami 1.
Na przykład: dla S = {1,2,3,4,5,6}, 1 = {1,2,5; 3,4,6},
2 = {1,2; 3,6; 4; 5} podział ilorazowy będzie:
1|2 = {(1,2)(5);(3,6)(4)}
Zastosowanie
rachunku
podziałów
(2-2)
do
obliczania
reduktów tablic decyzyjnych omówię na przykładzie tablicy
danych binarnych podanych w tabeli 2.1. Poszczególne
obiekty (instancje) tej tablicy ponumerowano 1,...,9, czyli
x1 x2 x3 x4 x5 x6 x7 f
1
2
3
4
5
6
7
8
9
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
zbiór obiektów K = {1,...,9}. Mamy wtedy (przy oznaczeniach P(xi) = Pi) następujące podziały na K:
P1 = {5; 1,2,3,4,6,7,8,9}
(2-3)
P2 = {1,2,6,7,8; 3,4,5,9}
(2-4)
P3 = {1,3,5,6; 2,4,7,8,9}
(2-5)
P4 = {1,4,5,6,7,8,9; 2,3}
(2-6)
P5 = {7; 1,2,3,4,5,6,8,9}
(2-7)
10
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
P6 = {1,5,7,9; 2,3,4,6,8}
(2-8)
P7 = {2,3,6,7,8; 1,4,5,9}
(2-9)
Pf = {1,2,3,4; 5,6,7,8,9}
(2-10)
Zmiennymi niezbędnymi tej funkcji są x4, x6. Co łatwo sprawdzić, gdyż obiekty o numerach
2 i 8 różnią się wyłącznie na pozycji x4, natomiast obiekty 4 i 9 różnią się tylko na pozycji x6. Po
wyznaczeniu zmiennych niezbędnych obliczamy iloczyn podziałów:
P = P4 P6 .
(2-11)
P4P6 = {1,5,7,9; 4,6,8; 2,3}
(2-12)
Blokami iloczynu P = (B1, …, B3) są B1 = {1,5,7,9}, B2 = {4,6,8}, B3 = {2,3}.
W dalszych obliczeniach pomijamy blok B3, gdyż B3 jest zawarty w jednym bloku podziału
Pf. Kolejną czynnością jest obliczenie podziału ilorazowego P4 P6| Pf:
P4 P6| Pf = {(1)(5,7,9); (4)(6,8); (2,3)}
(2-13)
Obliczony podział ilorazowy pozwala wyznaczyć czynniki wyrażenia boolowskiego
RAf . Wyznaczane są one dla każdej pary mintermów p, q, takiej, że p i q należą do jednego
bloku iloczynu P4P6, ale do różnych bloków podziału Pf, co łatwo odczytać z podziału
ilorazowego biorąc pary p, q z różnych elementów tego podziału. Przez elementy rozumiemy
tu podzbiory ograniczone różnymi nawiasami. Dla każdej tak wyznaczonej pary p, q
sprawdzamy na jakich pozycjach, czyli dla jakich zmiennych różnią się odpowiadające im
wektory w tablicy prawdy. Na przykład, dla pary p = 1, q = 5 odpowiednie wektory w tablicy
prawdy funkcji f (tabela 2.1) różnią się na pozycjach x1, x2, a więc odpowiadający tej parze
zbiór „różnic” będzie C = {x1, x2}. Zestawienie zmiennych, dla których różnią się pary p, q
nazywać będziemy tablicą porównań. Odczytując z podziału ilorazowego (2-13) pary p, q
otrzymujemy następująca tablicę porównań:
1,5: x1, x2
1,7: x3, x5, x7
1,9: x2, x3
4,6: x2, x3, x7
4,8: x2, x7
Redukując w zbiorach C każde Ci , dla którego istnieje C j : C j  Ci , otrzymujemy
równanie RA = 1 o postaci:
11
(x1 + x2) (x3 + x5 + x7)(x2 + x3)(x2 + x7)
(2-14)
które przekształcamy do postaci sumo-iloczynowej:
(x2 +x1)(x2 + x3)(x2 + x7)(x3 + x5 + x7) = (x2 +x1x3x7)(x3 + x5 + x7) = x2x3 + x2x5 +x2x7 + x1x3x7
Na tej podstawie wyznaczamy wszystkie redukty: {x2, x3, x4, x6}, {x2, x4, x5, x6}, {x2, x4, x6,
x7}, { x1, x3, x4, x6, x7}.
Inne ujęcie tego problemu podane jest w pracy A. Skowrona [23]. W pracy tej główną
rolę w obliczeniach reduktów spełnia tzw. macierz rozróżnialności, tworzona dla systemu
decyzyjnego TD = (U, A, D), gdzie U = { u1, u2, ..., un} jest zbiorem obiektów, A jest zbiorem
atrybutów warunkowych, D jest decyzją. Dla danego systemu decyzyjnego TD = (U, A, D)
macierz rozróżnialności M(TD)=[cij]nxn definiuje się następująco:
(2-15)
Każdy element macierzy cij jest zbiorem atrybutów różniących i-ty i j-ty obiekt z U,
pod warunkiem, że decyzje dla obiektów ui oraz uj są różne. W przypadku, gdy dec(ui) =
dec(uj), zbiór cij jest zbiorem pustym.
Na podstawie macierzy rozróżnialności tworzona jest funkcja rozróżnialności.
Bezpośrednio z M(TD) tworzone jest wyrażenie boolowskie w postaci iloczynu sum (CNF),
gdzie sumowanie jest po elementach (atrybutach) niepustego zbioru cij. Wyrażenie to jest
następnie przekształcane do wyrażenia postaci „suma iloczynów” (DNF), którego składniki
(po odpowiednim uproszczeniu) reprezentują minimalne zbiory atrybutów.
Nietrudno zauważyć, że w obu przypadkach cały proces obliczeniowy reduktów
sprowadzić można do obliczania tzw. minimalnego pokrycia kolumnowego binarnej macierzy
porównań.
2.2. Metoda uzupełniania funkcji boolowskiej
Proces obliczania reduktów można sprowadzić do obliczania minimalnego pokrycia
kolumnowego binarnej macierzy porównań. Pokryciem kolumnowym macierzy porównań
(zwanej również macierzą pokryć) M = [mij], i  {1,..., w}, j  {1,..., n} jest zbiór L  {1,...,
n} taki, że dla każdego i  {1,..., w} istnieje  L, dla którego mij = 1. Pokrycie kolumnowe
nazywamy minimalnym, jeżeli nie istnieje L’  L, który jest pokryciem macierzy M.
Twierdzenie [7]: Każdy wiersz i macierzy M , stanowiącej uzupełnienie macierzy porównań
M reprezentuje pokrycie kolumnowe M, gdzie j  M wtedy i tylko wtedy, gdy M ij  1 .
12
Powyższe twierdzenie sprowadza proces obliczania reduktów do obliczania uzupełnienia
jednorodnej funkcji boolowskiej. Procedura ta została nazwana UNATE_COMPLEMENT.
Podstawą takiego postępowania jest spostrzeżenie, że uzupełnienie funkcji
reprezentowanej rozkładem Shannona:
f = x j fxj  x j fxj
można wyznaczyć obliczając najpierw kofaktory f x j oraz f x j , a następnie ich uzupełnienie,
czyli:
f = x j fxj  x j fxj
(2-16)
Uzupełnienie f powstaje w wyniku „sklejenia” wyników cząstkowych, tj. f x j oraz
f x j . Dla funkcji monotonicznych, uzupełnienie 2-16 upraszcza się do następujących
wzorów:
a) monotonicznie rosnącej w punkcie xj,
F = x j Fx j  Fx j
(2-16a)
b) monotonicznie malejącej w punkcie xj,
F = x j Fx j  Fx j
(2-16b)
Obliczanie reduktów rozpoczyna się od wyznaczenia zero-jedynkowej macierzy
porównań M. Przeliczenie funkcji F na macierz M przeprowadza się w następujący sposób:
jeżeli dwa wiersze funkcji F różnią się na pozycji j, w macierzy porównań zapisuje się w
pozycji j jedynkę albo zero w przeciwnym przypadku. Porównuje się tylko wiersze, którym
odpowiadają różne wartości funkcji F. Na przykład, zakładając funkcję F o postaci:
0101 0
1010 1
0110 1
1100 1
powstanie macierz:
1 1 1 1
M = 0 0 1 1
1 0 0 1
13
Otrzymaną macierz M należy rozkładać iteracyjnie (stosując rozkład Shannona), aż do
wystąpienia szczególnych postaci uzyskanych kofaktorów.
Obliczenie kofaktorów otrzymanej macierzy M rozpoczyna się od wyboru zmiennej
do rozkładu. Odpowiedni wybór zmiennej ma istotne znaczenie dla redukcji obliczeń. Wybór
zmiennej przeprowadza się według następującego algorytmu.
1) Wybierz kostkę (wiersz macierzy M) z największą liczbą zer.
2) W wybranej kostce wybierz zmienne, które mają jedynkę w tej kostce.
3) Spośród wybranych w punkcie 2) zmiennych wybierz tę, która ma najwięcej
jedynek w swojej kolumnie.
Kofaktory macierzy M oblicza się według następującego schematu: Kofaktor
jedynkowy macierzy M względem zmiennej xj otrzymuje się przez ustawienie wszystkich
pozycji j-tej kolumny macierzy M na zera. Kofaktor zerowy macierzy M względem zmiennej
xj powstaje przez wypisanie z M tych kostek (wierszy), w których zmienna xj przyjmuje
wartość zero. Na przykład dla macierzy M:
0 1 0 1 
M = 0 1 0 0
1 0 1 0
(2-17)
wybór zmiennej x2 prowadzi do kofaktorów:
0 0 0 1 
0 0 0 0 


1 0 1 0
dla x2 = 1
1
dla x2 = 0.
oraz
0 1 0
Następnym etapem obliczeń jest próba uzupełnienia otrzymanych kofaktorów. Jeżeli
którykolwiek z kofaktorów zawiera wiersz samych zer, to należy go usunąć, gdyż
uzupełnienie takiego kofaktora jest zbiorem pustym.
Proces rozkładu na kofaktory prowadzi się iteracyjnie, aż do uzyskania kofaktorów,
które zawierają tylko jedną kostkę (wiersz). Jeżeli na którymś z etapów w kolumnie
14
odpowiadającej wybranej zmiennej są tylko jedynki, to kofaktor zerowy takiej macierzy jest
pusty.
Przykład 2.1
Dla funkcji F:
1000101 0
1011110 0
1101110 0
1110111 0
(2-18)
0100101 1
1000110 1
1010000 1
1010110 1
1110101 1
dla której macierz M, po usunięciu wierszy zawierających zmienne niezbędne, jest
następująca:
1 2 3 4 5 6 7
 1 1 0 0 0 0 0


0 0 1 0 1 0 1


0 1 1 0 0 0 0


0 1 0 0 0 0 1
(2-19)
Obliczanie uzupełnienia funkcji jednorodnej polega na rozkładzie macierzy M na
podzbiory kostek, których uzupełnienie można łatwo obliczyć. Taką postacią jest kofaktor o
jednym wierszu. Uzupełnienie takiego kofaktora oblicza się według następujących zasad:
1) Jeżeli kofaktor zawiera tylko jedną jedynkę, jego uzupełnienie jest identyczne jak kofaktor.
2) Jeżeli kofaktor zawiera więcej niż jedną jedynkę, jego uzupełnienie zawiera tyle kostek
(wierszy), ile jest jedynek w kofaktorze, przy czym wszystkie wiersze mają jedynkę na
pozycjach odpowiadających kolejnym jedynkom kofaktora.
Przykładowo, dla kofaktora [0 0 1 0 1 0 1] uzupełnieniem będzie macierz:
0 0 1 0 0 0 0 
0 0 0 0 1 0 0 


0 0 0 0 0 0 1
(2-20)
Po obliczeniu uzupełnień na poszczególnych poziomach rozkładu należy scalić wyniki
cząstkowe zgodnie ze wzorem (2-16):
15
F = xj  F0 + F1 .
Jeżeli otrzymany kofaktor był zerowy (ozn. F0), to mnożymy go przez odpowiednie xj
i dodajemy, a jeżeli był jedynkowy (ozn. F1), to tylko dodajemy. Na przykład:
X7  0 0 1 0 0 0 0 = 0 0 1 0 0 0 1 (2-21)
Wynik uzupełnienia funkcji F powstaje w wyniku dodania kofaktorów x2 i x 2 :
0
0 0 1 0 0 0 0 
0


[1 0 1 0 0 0 1] + X2  0 0 0 0 1 0 0 = 
0
0 0 0 0 0 0 1

1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1

1
(2-22)
Obliczone uzupełnienie należy interpretować w następujący sposób: jedynka w j-tej kolumnie
oznacza, że w minimalnym redukcie jest zmienna x j. Do uzupełnienia należy dodać zmienne
niezbędne: x4 i x6. Minimalne redukty funkcji F są następujące:
x2 x3 x4 x6
x2 x4 x5 x6
x2 x4 x6 x7
x1 x3 x4 x6 x7.
Rysunek 2.1. Przykład obliczania uzupełnienia funkcji jednorodnej – opracowanie własne
16
3. Program Błyskawica
3.1. Wymagania sprzętowe
Program Błyskawica wymaga systemu operacyjnego Windows oraz platformy Java w
wersji 1.6 lub wyższej.
3.2. Interfejs graficzny
Interfejs graficzny programu Błyskawica przedstawia rysunek 3.1.
Rysunek 3.1 - GUI programu Błyskawica – opracowanie własne
Objaśnienia do rysunku 3.1:
1) nazwa pliku z danymi wejściowymi
2) tablica prawdy funkcji wejściowej wraz z nazwami zmiennych (w pierwszym wierszu)
3) czas ostatnich obliczeń podany w milisekundach
4) liczba obliczonych zbiorów argumentów
5) obliczone zmienne niezbędne oraz zbiory argumentów
3.3. Format danych wejściowych
Program obsługuje dwa formaty danych wejściowych: pla [7] i tab (format danych
programu Rough Set Exploration System [3]).
17
3.4. Instrukcja obsługi
Na początku pracy z programem należy wybrać format danych wejściowych (z menu
Format danych). Następnie należy wczytać dane wejściowe wybierając z menu Plik opcję
wczytaj dane (albo nacisnąć klawisz „w”). W celu rozpoczęcia obliczeń należy z menu
Obliczenia wybrać opcję oblicz (albo nacisnąć klawisz „o”). Menu Obliczenia zawiera
również opcje pozwalające użytkownikowi zdecydować czy program znajdzie wszystkie
minimalne zbiory argumentów czy tylko najmniejsze zbiory argumentów. Wyniki są
automatycznie zapisywane do pliku tekstowego w katalogu z programem.
3.5. Współpraca z programem Rough Set Exploration System
Współpraca programu Błyskawica z Rough Set Exploration System zostanie
przedstawiona na przykładzie funkcji house (funkcję house przedstawiono w Dodatku).
Wymieniona funkcja składa się z 232 reguł decyzyjnych, każda reguła ma 16 argumentów i
dwie możliwe decyzje 1 lub 0. Dla funkcji house program Rough Set Exploration System
generuje 9 reguł decyzyjnych:
(x13=0)&(x1=1)&(x5=0)&(x14=1)=>(x17=1)
(x13=1)&(x3=1)&(x12=1)&(x1=1)&(x6=0)=>(x17=0)
(x13=1)&(x3=1)&(x12=1)&(x11=1)&(x8=0)&(x9=0)&(x14=0)&(x2=0)&(x5=1)&(x4=1)&
(x10=0)&(x16=0)&(x6=0)=>(x17=0)
(x13=1)&(x3=1)&(x12=1)&(x11=1)&(x8=0)&(x9=0)&(x14=0)&(x2=0)&(x5=1)&(x4=1)&
(x15=1)=>(x17=0)
(x1=1)&(x13=0)&(x10=1)&(x11=1)=>(x17=1)
(x13=1)&(x3=1)&(x15=0)&(x5=1)&(x8=0)&(x12=1)&(x9=0)&(x10=0)&(x14=0)&(x1=0)&
(x4=1)&(x6=0)=> (x17=0)
(x13=1)&(x3=1)&(x1=1)&(x6=1)&(x8=0)&(x11=1)&(x12=1)&(x5=1)&(x15=0)=>(x17=0)
(x11=1)&(x3=1)&(x6=1)&(x12=1)&(x2=0)&(x8=0)&(x9=0)&(x10=0)&(x4=1)&(x16=0)&
(x7=1)&(x13=0)=>(x17=1)
(x11=1)&(x3=1)&(x6=1)&(x12=1)&(x2=0)&(x8=0)&(x9=0)&(x5=1)&(x7=0)&(x10=0)&
(x13=1)&(x1=0)&(x14=0)&(x16=0)&(x4=0)=>(x17=1)
Program Błyskawica oblicza 4 minimalne zbiory argumentów:
18
x1 x3 x4 x6 x11 x13 x14 x15 x16
x1 x2 x3 x4 x5 x6 x7 x8 x10 x14 x15 x16
x1 x2 x3 x4 x5 x6 x7 x10 x12 x14 x15 x16
x1 x2 x4 x6 x13 x14 x15 x16
Wybór najmniejszego zbioru argumentów: x1 x2 x4 x6 x13 x14 x15 x16 oznacza, że
wyjście funkcji house może obliczyć uwzględniając tylko 8 zamiast 16 argumentów
(zredukowaną funkcję house przedstawiono w Dodatku). Po usunięciu zbędnych kolumn i
obliczeniu reguł decyzyjnych dla zredukowanej funkcji house otrzymamy:
(x13=0)&(x1=1)&(x14=1)=>(x17=1)
(x13=1)&(x2=0)&(x4=1)&(x14=0)&(x6=0)=>(x17=0)
(x13=1)&(x1=1)&(x6=0)=>(x17=0)
(x14=0)&(x13=0)&(x2=1)=>(x17=1)
(x13=1)&(x6=1)&(x2=0)&(x4=1)&(x14=0)&(x15=1)=>(x17=0)
(x13=1)&(x1=1)&(x2=0)&(x16=0)&(x4=1)&(x15=1)&(x6=1)&(x14=0)=>(x17=0)
(x14=0)&(x13=0)&(x1=1)&(x15=0)&(x4=0)&(x16=1)&(x2=0)&(x6=1)=>(x17=1)
Po redukcji argumentów nie tylko zmniejszyła się liczba reguł decyzyjnych z 9 do 7,
ale również zmniejszyła się ich liczność.
19
4. Wyniki eksperymentów
Podane w tym rozdziale czasy obliczeń zostały uzyskane na komputerze z procesorem
Intel Core i3 M370.
Jednym z najlepszych na świecie systemów służących do redukcji argumentów funkcji
jest program Rough Set Exploration System (RSES). Z tego powodu postanowiłem porównać
czasy obliczeń wszystkich minimalnych zbiorów argumentów dla różnych funkcji za pomocą
wspomnianego systemu z opracowanym przeze mnie programem Błyskawica. Wyniki
przedstawia tabela 4.1.
Tabela 4.1 Porównanie programów Błyskawica i RSES – opracowanie własne1
Audiology
Liczba
argumentów
70
Liczba
obiektów
200
Czas obliczeń
programu Błyskawica
48 sek.
Czas obliczeń
programu RSES
nie można obliczyć
Mashroom
21
8124
12 sek.
21 min.
Lsd256
35
256
2,1 sek.
>30 min.
Urazy
22
80
0,2 sek.
165 sek.
Urolog
34
500
2,2 sek.
>30 min.
Trains
32
10
0,1 sek.
nie można obliczyć
Kaz_sym
21
31
2,2 sek.
70 min.
Shuttle_tst
9
14500
19,5 sek.
163 sek.
Meta
43
528
0,6 sek.
>20 min.
Cars
43
159
0,05 sek.
21 sek.
Nazwa funkcji
Z tabeli 4.1 wynika, że czasy obliczeń programu Błyskawica są co najmniej o rząd
wielkości krótsze niż znanego i cenionego na świecie Rough Set Exploration System, a dla
wielu funkcji różnica w szybkości obliczeń wynosi kilka rzędów wielkości. Co więcej,
program Błyskawica pozwala obliczać minimalne zbiory argumentów dla szerszego zakresu
funkcji. Przykładowo Rough Set Exploration System nie jest w stanie obliczyć wszystkich
689 minimalnych zbiorów argumentów dla funkcji trains, natomiast program Błyskawica
znajduje je w ciągu 0,1 sekundy.
1
Wymienione w tabeli 4.1 funkcje, jak również wyniki obliczeń znajdują się na załączonej płycie DVD
20
Warto podkreślić, że program Błyskawica pozwala, w przeciwieństwie do Rough Set
Exploration System, obliczać nie tylko minimalne, ale również najmniejsze zbiory
argumentów, co ma ogromne znaczenie w syntezie logicznej układów cyfrowych. Ze względu
na mniejszą złożoność czasową obliczanie najmniejszych zbiorów argumentów jest
najczęściej wielokrotnie szybsze niż obliczenie minimalnych zbiorów argumentów.
Przykładowo, obliczenie najmniejszych zbiorów argumentów dla funkcji audiology zajmuje
2,2 sekundy, natomiast znalezienie wszystkich minimalnych zbiorów argumentów trwa 48
sekund.
Innym znanym narzędziem do redukcji argumentów funkcji jest program Rose2
opracowany w Zakładzie Inteligentnych Systemów Wspomagania Decyzji Politechniki
Poznańskiej [2], [20]. Tabela 4.2 przedstawia czasy obliczeń wszystkich minimalnych
zbiorów argumentów wybranych funkcji przy użyciu programów Błyskawica i Rose2. Z
danych przedstawionych w tabeli 4.2 wynika, że czas obliczeń programu Rose2 jest co
najmniej dziesięciokrotnie dłuższy niż programu Błyskawica, a dla wielu funkcji różnica w
szybkości obliczeń wynosi kilka rzędów wielkości.
Tabela 4.2 Porównanie programów Błyskawica i Rose2 – opracowanie własne
Nazwa funkcji
Mashroom
Lsd256
Urazy
Urolog
Cars
Vowel
1
Liczba
argumentów
21
35
22
34
43
10
Liczba
obiektów
8124
256
80
500
159
990
Czas obliczeń
programu Błyskawica
12 s
2,1 s
0,2 s
2,2 s
0,05 s
0,2 s
1
Czas obliczeń
programu Rose2
8 min. 10 s
>35 min.
>35 min.
>35 min.
24 s
2s
Wymienione w tabeli 4.2 funkcje jak również wyniki obliczeń znajdują się na załączonej płycie DVD
21
Zakończenie
Problem redukcji atrybutów/argumentów nie został dotychczas rozwiązany w
satysfakcjonujący sposób, dlatego celem pracy było opracowanie oprogramowania, które
pozwoliłoby na znacznie efektywniejszą redukcję atrybutów/argumentów, niż aplikacje
stosowane do tej pory. Realizacja wyżej wymienionego celu była możliwa dzięki
spostrzeżeniu, że redukcja argumentów/atrybutów metodą uzupełniania jednorodnej funkcji
boolowskiej jest o wiele skuteczniejsza niż dotychczas stosowana metoda klasyczna.
Opracowany w ramach niniejszej pracy program Błyskawica umożliwia skrócenie
czasu redukcji atrybutów/argumentów od jednego do kilku rzędów wielkości w porównaniu
do jednego z najlepszych systemów do takich obliczeń – Rough Set Exploration System.
Ponadto wykazano, że program Błyskawica pozwala na redukcję szerszego zakresu funkcji
niż wspomniany system. Przykładem może być, wspomniana w rozdziale 4, funkcja
audiology1, dla której Rough Set Exploration System nie jest wstanie znaleźć żadnego
minimalnego zbioru argumentów, natomiast program Błyskawica oblicza wszystkie
minimalne zbiory argumentów w mniej niż minutę. Pozwala to stwierdzić, że niniejsza praca
jest znaczącym postępem w omawianej dziedzinie.
Wykaz literatury
1
[1]
ROSETTA – A Rough Set Toolkit for Analysis of Data, http://www.lcb.uu.se/
tools/rosetta/
[2]
ROSE2 – Rough Sets Data Explorer, http://idss.cs.put.poznan.pl/site/ rose.html
[3]
RSES – Rough Set Exploration System, http://logic.mimuw.edu.pl/~rses/
[4]
www.ics.uci.edu/~mlearn/
[5]
Bazan, J., Nguyen, H.S., Nguyen, S.H., Synak, P., Wr´oblewski, J.: Rough set
algorithms in classification problem. In: Rough Set Methods and Applications: New
Developments in Knowledge Discovery in Information Systems, vol. 56, pp. 49–88.
Physica-Verlag, Heidelberg (2000)
[6]
Borowik, G., Luba, T., Zydek, D.: Features Reduction using logic minimization
techniques. In: Intl. Journal of Electronics and Telecommunications, vol. 58, No.1, pp.
71-76, (2012)
[7]
Brayton, R.K., Hachtel, G.D., McMullen, C.T., Sangiovanni-Vincentelli, A.: Logic
Minimization Algorithms for VLSI Synthesis. Kluwer Academic Publishers (1984)
[8]
Brzozowski, J.A., Luba, T.: Decomposition of boolean functions specified by cubes.
Journal of Multi-Valued Logic & Soft Computing 9, 377–417 (2003)
Funkcja audiology jak również wyniki redukcji argumentów znajdują się na załączonej płycie DVD
22
[9]
Jensen R., Shen Q. Semantics-preserving dimensionality reduction: Rough and fuzzy
rough-based approaches. IEEE Transactions on Knowledge and Data Engineering,
vol. 16, pp. 1457–1471, (2004)
[10] Kryszkiewicz, M., Cicho´n, K.: Towards scalable algorithms for discovering rough set
reducts. In: Peters, J., Skowron, A., Grzyma la-Busse, J., Kostek, B., ´Swiniarski, R.,
Szczuka, M. (eds.) Transactions on Rough Sets I, Lecture Notes in Computer Science,
vol. 3100, pp. 120–143. Springer Berlin / Heidelberg, Berlin (2004), DOI:
10.1007/978-3-540-27794-1 5
[11] Kryszkiewicz, M., Lasek, P.: FUN: Fast discovery of minimal sets of attributes
functionally determining a decision attribute. In: Peters, J., Skowron, A., Rybi´nski, H.
(eds.) Transactions on Rough Sets IX, Lecture Notes in Computer Science, vol. 5390,
pp. 76–95. Springer Berlin / Heidelberg (2008), DOI: 10.1007/978-3-540-89876-4 5
[12] Lewandowski J., Rawski M., Rybiński H.: Application of Parallel Decomposition for
Creation of Reduced Feed-Forward Neural Networks, Proceedings of the International
Conference, Rough Sets and Intelligent Systems Paradigms, RSEJSP 2007, pp. 564573, Lecture Notes in Artificial Intelligence, Subseries of Lecture Notes in Computer
Science, Springer 2007.
[13] Lin T.Y., Yao Y.Y., Zadeh L.A. Data Mining, Rough Sets and Granular Computing.
Springer-Verlag, Berlin (2002)
[14] Łuba T.: Synteza układów logicznych. Oficyna Wydawnicza Politechniki
Warszawskiej, Warszawa, 2005.
[15] Łuba T.(red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Programowalne
Układy Przetwarzania Sygnałów i Informacji, Wydawnictwa Komunikacji i
Łączności, Warszawa 2008.
[16] Łuba, T., Lasocki, R., Rybnik, J.: An implementation of decomposition algorithm and
its application in information systems analysis and logic synthesis. In: Ziarko, W. (ed.)
Rough Sets, Fuzzy Sets and Knowledge Discovery. pp. 458–465. Springer Verlag
(1994), Workshops in Computing Series
[17] Łuba, T., Rybnik, J.: Rough sets and some aspects in logic synthesis. In: S lowiński,
R. (ed.) Intelligent Decision Support – Handbook of Application and Advances of the
Rough Sets Theory. Kluwer Academic Publishers (1992)
[18] Nguyen, D., Nguyen, X.: A new method to attribute reduction of decision systems
with covering rough sets. Georgian Electronic Scientific Journal: Computer Science
and Telecommunications 1(24), 24–31 (2010)
[19] B.Predki, R.Slowinski, J.Stefanowski, R.Susmaga, Sz.Wilk: ROSE - Software
Implementation of the Rough Set Theory. In: L.Polkowski, A.Skowron, eds. Rough Sets
and Current Trends in Computing, Lecture Notes in Artificial Intelligence, vol.
1424. Springer-Verlag, Berlin (1998), 605-608.
[20] B.Predki, Sz.Wilk: Rough Set Based Data Exploration Using ROSE System. In:
Z.W.Ras, A.Skowron, eds.Foundations of Intelligent Systems, Lecture Notes in Artificial
Intelligence, vol. 1609. Springer-Verlag, Berlin (1999), 172-180
[21] Pawlak, Z.: Rough Sets. Theoretical Aspects of Reasoning about Data. Kluwer
Academic Publishers (1991)
[22] Selvaraj, H., Sapiecha, P., Rawski, M., Luba, T.: Functional decomposition – the
value and implication for both neural networks and digital designing. International
23
Journal of Computational Intelligence and Applications 6(1), 123–138 (March 2006),
DOI: 10.1142/S1469026806001782
[23] Skowron, A., Rauszer, C.: The discernibility matrices and functions in information
systems. In: Słowiński, R. (ed.) Intelligent Decision Support – Handbook of
Application and Advances of the Rough Sets Theory. Kluwer Academic Publishers
(1992)
[24] Słowiński, K., Sharif, E.: Rough Sets Analysis of Experience in Surgical Practice.
International Workshop: Rough Sets: State of The Art and Perspectives, PoznanKiekrz (1992)
[25] Yao, Y., Zhao, Y.: Attribute reduction in decision-theoretic rough set models.
Information Sciences 178(17), 3356–3373 (2008), DOI: 10.1016/j.ins.2008.05.010
24
Dodatek
Funkcja house w formacie programu RSES:
TABLE House
ATTRIBUTES 17
x1 numeric 0
x2 numeric 0
x3 numeric 0
x4 numeric 0
x5 numeric 0
x6 numeric 0
x7 numeric 0
x8 numeric 0
x9 numeric 0
x10 numeric 0
x11 numeric 0
x12 numeric 0
x13 numeric 0
x14 numeric 0
x15 numeric 0
x16 numeric 0
x17 numeric 0
OBJECTS 232
11110000001101101
10111000001110100
11000101110001111
11000001110001111
11000011110001011
11000101110001011
11000101110001111
10111001110110010
11000101110001111
00111000001110100
11010011110001111
10111000001110100
11000001110001111
00111000001110100
10110000001110110
00111010001110100
11010111110001011
10000001110001011
11000001110001011
10000001110001111
10100000110001111
11000101110001111
00111010001110110
00111110001110100
10111110001110100
10111010001110100
10111010001110100
00111000001110100
10000101110001111
10111000011110110
10111100011110100
00111010001110100
11000001110001111
10100111110011110
10110011010111010
11100111111001011
25
00110110001111101
10111111101111101
10110110001101111
00111010000110000
10111010001110000
00111000001110000
10111110001101001
00111010001110000
00111000001110000
10110111011101101
11000011110001011
11000111110001011
11000111010001011
10000000001101011
10100110011100011
10000011111001111
10101100001100011
10100100011101011
11000101100001111
10111000001110100
11000011110001001
11000101110001011
10111000010111110
11000111100001101
00111000001110000
10101010001110000
10100011101001001
10111010001110000
00111010001110000
10011110001110100
10100011111001001
11000001111001011
10110011110010000
10111011111110000
10111000001110100
11111011110000001
10111110001110100
11010011110001001
10111010001110110
11010111101001101
10110111111001001
00111000001110100
00111000011110110
00111010001110100
11111000001100101
10111000011100001
10111100011101101
10111000011110100
11101010111111010
11101110111111010
10100111110001011
10111110001100001
11000011110001101
11100011110011000
11000011110001011
11000111110001001
11000111110001001
11000111110001101
11000001110001011
11100101111000001
26
11000001110001001
11100001110001001
11000001110001111
11000111111001011
11000011110001011
10111000011111000
10001011111001001
10101010001110000
10000111110001111
11000001111001001
10111010001110100
11000101110001001
11010101101001101
10111010001110110
00111010001110100
11100101100001101
10111000000110000
11100101111001001
10111011011111100
10111000001110100
10111011001110100
10111010001110100
10101010001110000
11000001110001001
10011000111001011
11100010011110000
11100111110001011
11000011100001011
11000111110001011
00111000001110100
00111000001110100
11000001111001111
10111000001110100
10000011110001011
11100011110001011
00101000000110000
11000101110001001
10000001110001011
10000011110001011
10000011110001011
10101010001110000
10100011110000010
10000001110001011
11000001110001111
11100010010110010
01111000001110000
10100010111111000
10111000001110000
00111010001110000
10100011110001001
10111000001110000
11000111111001001
11110110101101111
11110110111001011
11110111111001111
11111010001111000
11000111110000101
11110011111001101
10111011110110000
10111010011110000
27
00111000001110000
00111010001110000
00111000001110000
00111010001110000
11100011111000011
01111010001110000
10010011111001001
11000011110001111
10111010001111100
11111100111110100
01111101101000001
11000011110000011
10110011101001101
10010011110001111
00111100001110100
10100101110010111
10111000001110100
10000101110001111
00111010001110100
11000001110001001
11000001110001011
11100011110001011
00111100001110010
10101110001110000
10100011010110000
11000111110001001
11101010011110000
10111010001110000
00111010001110010
10111001111111100
11000101011000101
11111011111111000
10111110011111000
11100011100011010
00111000001110000
00111000001110000
10010011111001011
10011111111001111
00010110001110110
10110100001110110
00110110001100101
11000010111001101
10110000001110100
10111000001110100
00101100001110101
10111000001110000
10111000001110000
10000111101101111
10111100001111111
01111100001100111
01000101100000111
10111100001110110
11010100101101111
10000000101101101
00111110001110100
10111010001110110
10111000001110000
10110011001101011
00111100001110001
00111000001110000
28
10111100001110000
10000111111001011
10111010001110000
10000001110001111
10110010001110110
10010111110001111
10000010110001111
10000001110001111
10110010111111110
11010100111101101
11000101111001001
11100101111001101
11000011110001011
10111010111110000
10111011001111000
10000011110001001
Zredukowana funkcja house w formacie programu RSES:
TABLE House
ATTRIBUTES 9
x1 numeric 0
x2 numeric 0
x4 numeric 0
x6 numeric 0
x13 numeric 0
x14 numeric 0
x15 numeric 0
x16 numeric 0
x17 numeric 0
OBJECTS 232
111001101
101010100
110101111
110001111
110001011
110101011
110101111
101010010
110101111
001010100
111001111
101010100
110001111
001010100
101010110
001010100
111101011
100001011
110001011
100001111
100001111
110101111
001010110
001110100
101110100
101010100
101010100
001010100
100101111
101010110
29
101110100
001010100
110001111
100111110
101011010
110101011
001111101
101111101
101101111
001010000
101010000
001010000
101101001
001010000
001010000
101101101
110001011
110101011
110101011
100001011
100100011
100001111
100100011
100101011
110101111
101010100
110001001
110101011
101011110
110101101
001010000
100010000
100001001
101010000
001010000
101110100
100001001
110001011
101010000
101010000
101010100
111000001
101110100
111001001
101010110
111101101
101101001
001010100
001010110
001010100
111000101
101000001
101101101
101010100
110011010
110111010
100101011
101100001
110001101
110011000
30
110001011
110101001
110101001
110101101
110001011
110100001
110001001
110001001
110001111
110101011
110001011
101011000
100001001
100010000
100101111
110001001
101010100
110101001
111101101
101010110
001010100
110101101
101010000
110101001
101011100
101010100
101010100
101010100
100010000
110001001
101001011
110010000
110101011
110001011
110101011
001010100
001010100
110001111
101010100
100001011
110001011
000010000
110101001
100001011
100001011
100001011
100010000
100000010
100001011
110001111
110010010
011010000
100011000
101010000
001010000
100001001
101010000
110101001
111101111
111101011
31
111101111
111011000
110100101
111001101
101010000
101010000
001010000
001010000
001010000
001010000
110000011
011010000
101001001
110001111
101011100
111110100
011100001
110000011
101001101
101001111
001110100
100110111
101010100
100101111
001010100
110001001
110001011
110001011
001110010
100110000
100010000
110101001
110010000
101010000
001010010
101011100
110100101
111011000
101111000
110011010
001010000
001010000
101001011
101101111
001110110
101110110
001100101
110001101
101010100
101010100
000110101
101010000
101010000
100101111
101111111
011100111
010100111
101110110
111101111
100001101
32
001110100
101010110
101010000
101001011
001110001
001010000
101110000
100101011
101010000
100001111
101010110
101101111
100001111
100001111
101011110
111101101
110101001
110101101
110001011
101010000
101011000
100001001
Wykaz rysunków i tabel
Tabela 1.1 Przykładowa tablica reguł decyzyjnych - strona 7
Tabela 1.2 Fragment bazy Breast Cancer – strona 8
Tabela 1.3 Przykładowa tablica reguł decyzyjnych – strona 8
Tabela 2.1 Tablica prawdy – strona 10
Rysunek 2.1 Przykład obliczania uzupełnienia funkcji jednorodnej – strona 16
Rysunek 3.1 GUI programu Błyskawica – strona 17
Tabela 4.1 Porównanie programów Błyskawica i RSES – strona 20
Tabela 4.2 Porównanie programów Błyskawica i Rose2 – strona 21
Wykaz załączników
Do pracy dołączono płytę DVD zawierającą omawiany program Błyskawica wraz z
kodami źródłowymi oraz wymienione w pracy funkcje i wyniki obliczeń.
Streszczenie
Niniejsza praca prezentuje program Błyskawica, który służy do redukcji argumentów
funkcji. Umożliwia on obliczanie zarówno minimalnych jak i najmniejszych zbiorów
argumentów. Zastosowanie algorytmu redukcji polegającego na obliczaniu uzupełnienia
funkcji jednorodnej pozwoliło na bardzo znaczące skrócenie czasu obliczeń w porównaniu do
najlepszych dotychczas stosowanych programów. W pracy omówiono także praktyczne
zastosowania redukcji argumentów.
33
Abstract
This thesis presents program Lightning which is used to reduce arguments of
functions. It allows to compute minimal and the smallest sets of arguments. Application of
algorithm which is based on computing of complement of unate boolean functions allowed
substantial reduction of computing time comared to the best currently used programs. This
thesis also presents practical applications of reduction of arguments.
34