Synteza logiczna w eksploracji danych
description
Transcript of Synteza logiczna w eksploracji danych
ZPT1
Funkcja KAZ.type fr.i 21.o 1.p 31100110010110011111101 1111011111011110111100 1001010101000111100000 1001001101100110110001 1100110010011011001101 1100101100100110110011 1001100100111010011011 1001101100011011011001 1110110010011001001101 1100110110011010010011 1110011011011010001100 1010001010000001100111 0100110101011111110100 0111001111011110011000 0101101011100010111100 0110110000001010100000 0110110110111100010111 0110000100011110010001 0001001000101111101101 0100100011111100110110 0100011000110011011110 0110101000110101100001 0110110001101101100111 0010000111001000000001 0001001100101111110000 0100100111111001110010 0000010001110001101101 0101000010100001110000 0101000110101010011111 0101010000001100011001 0011100111110111101111 0.end
Czas obliczeń RSES ok. 1godz
Czas obliczeń metody z zastosowanym algorytmem uzupełnienia = 234 ms.
Kilkanaście tysięcy razy szybciej!
Algorytm uzupełnienia (Complement)
ZPT
databaseattr.
inst.
RSES/ROSETTAcompl. method
reducts
house 17 232 1s 187ms 4breast-cancer
-wisconsin10 699 2s 823ms 27
KAZ 22 31 70min 234ms 5574
trains 33 10out of memory
(5h 38min)6ms 689
agaricus-lepiota-mushroom
238124
29min 4m 47s 507
urology 36 500out of memory
(12h)42s
741ms23437
audiology 71 200out of memory
(1h 17min)14s
508ms37367
dermatology 35 366out of memory
(3h 27min)3m 32s 143093
lung-cancer 57 32out of memory
(5h 20min)111h 57m
3604887
2
Zastosowanie algorytmu Complement
Niesamowita skuteczność algorytmu uzupełnienia…
ZPT
Co oblicza algorytm uzupełnienia
F = {(1*1**), (1***1), (*11**), (*1**1), (**11*)}.
Uzupełnienie funkcji F można obliczyć
zakreślając pętelki wokół kratek nie
wypełnionych 1.
Uzupełnienie funkcji F jest reprezentowane
kostkami: {(00*0*), (000**),(**0*0)}.
3
x4x5
x1x2x300 01 11 10
000
001 1 1
011 1 1 1 1
010 1 1
110 1 1
111 1 1 1 1
101 1 1 1 1
100 1 1
Obliczanie uzupełnienia na tablicy Karnaugha nie ma sensu…
ZPT
Algorytm uzupełnienia (Complement)
Expand
Essentia l prim es
Irredundant-C over
Reduce
Last-gasp
F,D
FM
Com plem ent
…dla funkcji o dużej liczbie zmiennych po raz pierwszy został zaproponowany w Espresso,
Ale w Espresso Complement
spełnia wyłącznie pomocniczą rolę
ZPT
f = x f x fj x j j x j
f x f x fj x j j x j
5
Algorytm uzupełnienia (Complement)
Sprytna procedura uzupełniania polega na iteracyjnym rozkładzie zbioru kostek reprezentującego funkcję 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.
ZPT
Complement funkcji jednorodnej
Szczególnie prosto oblicza się uzupełnienie funkcji jednorodnej.
10
1
010
=F
Kostki funkcji jednorodnej reprezentuje się binarnie.
M=
1 1
0 0
1 0
0 1
1 0
1 0
Uzupełnienie oblicza się dla macierzy M.6
F x F Fj x j x j F = xj F0 + F1
ZPT
Rozkład macierzy M
Wybór zmiennej:
1)Wybieramy kostkę (wiersz macierzy M) z największą liczbą zer.
2) W wybranej kostce wybieramy zmienne, które mają jedynkę w tej kostce.
3) Spośród wybranych w punkcie 2) zmiennych wybieramy tę, która ma najwięcej jedynek w swojej kolumnie.
7
ZPT
Kofaktory macierzy M oblicza się według następującego schematu:
Kofaktor jedynkowy macierzy M względem zmiennej xj otrzymujemy przez ustawienie wszystkich pozycji j-tej kolumny macierzy M na zera.
Kofaktor zerowy macierzy M względem zmiennej xj otrzymujemy przez wypisanie z M tych kostek (wierszy), w których zmienna xj przyjmuje wartość zero.
Rozkład macierzy M
8
Obliczanie kofaktorów:
ZPT
Podstawą uzupełnienia funkcji jednorodnej jest rozszczepianie macierzy M na podzbiory kostek, których uzupełnienie łatwo można obliczyć.
1)Jeżeli kofaktor zawiera tylko jedną kostkę, jego uzupełnienie oblicza się wg prawa De Morgana.
2) Jeżeli kofaktor zawiera kostkę (wiersz) samych 0, jego uzupełnienie jest zbiorem pustym.
3) Jeżeli kofaktor jest zbiorem pustym, jego uzupełnienie jest Tautologią.
Complement kofaktorów
9
ZPT
F = xj F0 + F1 Znaczy to, że jeżeli otrzymany kofaktor był zerowy (ozn. F0), to jego Complement mnożymy przez odpowiednie xj i dodajemy do Complementu kofaktora jedynkowego.
Scalanie uzupełnionych kofaktorów
10
ZPT 11
Przykład EXTL
(x1 + x2)
= (x2 +x1)(x2 + x3)(x2 + x7)(x3 + x5 + x7) =
{x2,x3,x4,x6} {x2,x4,x5,x6} {x2,x4,x6,x7}
{x4,x6}
(x3 + x5 + x7) (x2 + x3) (x2 + x7) =
=(x2 +x1x3x7) (x3 + x5 + x7) =
= x2x3 + x2x5 +x2x7 + x1x3x7
{x1,x3,x4,x6,x7}
.type fr
.i 7
.o 1
.p 91000101 01011110 01101110 01110111 00100101 11000110 11010000 11010110 11110101 1.e
1100000 0010101 0110000 0100001
Zredukowana macierz porównań
ZPT
ROZKŁAD
1000010
0000110
1010100
0000011 7 6 5 4 3 2 1
1000101
1000010
0010010
0000110
C
7 6 5 4 3 2 1
1000100C
1000101C
1000000
0000100
1010100
00000001x
1010100
2x
1000000
0000100
10101001x
0000000
0000100
00101007x
00001007xC
1000000
0000100
1010100
0000001
2x
1000000
0010000
0000100
C
12
CC
ZPT
SCALANIE
C(x7) = x7 [0010000]+ = [0010001]
C(x1) = x1 [0010001]+ = [1010001]
C(x2) = x2 + [1010001] =
1000000
0010000
0000100
1000101
1000010
0010010
0000110 7 6 5 4 3 2 1
Minimalne pokrycia:x2, x3, x2, x5, x2, x7, x1, x3, x7
Redukty:
+ x4, x6
13
Dokładnie tak samo jak w metodzie klasycznej!
ZPT
.type fr
.i 7
.o 1
.p 91000101 01011110 01101110 01110111 00100101 11000110 11010000 11010110 11110101 1.e
.i 7
.o 1
.p 611----- 1--1-1-1 1-11---- 1-1----1 1---1--- 1-----1- 1.end
Interpretacja dla funkcji boolowskiej
14
reprezentuje funkcję boolowską
1100000 0010101 0110000 0100001
Zredukowana macierz porównań
ZPT 15
Do obliczenia uzupełnienia zastosujmy…
Expand
Essentia l prim es
Irredundant-C over
Reduce
Last-gasp
F,D
FM
Com plem ent
ESPRESSO
.i 7
.o 1
.p 611----- 1--1-1-1 1-11---- 1-1----1 1---1--- 1-----1- 1.end
.i 7
.o 1
.p 40-00-00 0-000-0- 0-0-000- 0-0-0-00 0.end
Espresso {x1,x3,x4,x6,x7}
{x2,x3,x4,x6}
{x2,x4,x5,x6}
{x2,x4,x6,x7}
ZPT
Wnioski
Metoda jest skuteczna Daje rewelacyjne wyniki Prosta do implementacji
16
Jest źródłem ciekawych prac dyplomowych
ZPT
Konkurs
KOMPUTEROWE NARZĘDZIA SYNTEZY LOGICZNEJPrace dyplomowe Błyskawica (ZIP - 364 kB) Espresso Pandor Proton (ZIP - 2 947 kB) Espresso 64 (ZIP - 159 kB) instantRS (ZIP - 5 097 kB) Hummingbird (EXE - 131 kB) Rough Set Exploration System (ZIP - 3 260 kB) Downloading Rough Set Exploration System GENERATOR (EXE - 62 kB) kazmin1.tab kazmin2.tab