9cm Algebra Boola Jest to struktura algebraiczna \definition
spełniająca następujące aksjomaty
- Przemienność:
![]()
- Rozdzielność:
![]()
- Elementy neutralne:
![]()
- Istnienie elementu komplementarnego:
![]()
*) Czasem negacja jest dodana do sygnatury algebry Boola.
<+-> Algebra zbiorów:
;
<+-> Rachunek zdań
<+-> Binarna algebra Boola
to jest najmniejsza, ale najważniejsza algebra Boola w zastosowaniu.
![]() |
Przykłady zastosowań:
projektowanie układów scalonych;
rachunek zdań.
![]()
![]()
![]()
![]()
![]()
Każda algebraiczna równość pozostaje prawdziwa jeśli zamieniamy
operatory
na
,
na
, 0 na 1 oraz 1 na 0.
<+-> Każde odwzorowanie
nazywamy (zupełną) funkcją Boolowską.
<+-> Funkcje Boolowskie
formuły Boolowskie:
Stałe, zmienne, operatory
,
oraz ![]()
Literały, mintermy (jednomiany), maxtermy, …
Kanoniczna postać dyzjunkcyjna (DNF), np.
;
Kanoniczna postać koniunkcyjna (CNF), np.
![]()
<+-> Term
nazywamy implikantem funkcji
jeśli
![]()
<+-> Implikant pierwszy: jest to implikant, który przestaje nim być po usunięciu dowolnego literału.
<+-> Kanoniczna postać Blake'a: każdą funkcję Boolowską można przedstawić jako sumę wszystkich jej imlikantów pierwszych:
![]()
Wiele formuł reprezentuje tę samą funkcję;
![]()
![]()
![]()
jest implikantem
jest implikantem pierwszym
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
<+-> Niech
oznacza relację częściowego porządku w ![]()
<+-> Funkcja
jest monotoniczna (niemalejąca) wtw, gdy dla każdych
jeśli
to ![]()
<+-> monotoniczne funkcje Boolowskie można zapisać bez użycia negacji.
<+-> term
nazywamy
implikantem pierwszym funkcji monotonicznej
jeśli
dla każdego wektora
(jest implikantem)
każda funkcja większa od
nie jest implikantem
<+-> Np. funkcja
posiada 2 implikanty pierwsze:
i ![]()
Modelowanie: Kodowanie problemu za pomocą układu równań Boolowskich;
Redukcja: Sprowadzenie układu równań do pojedynczego równania
postaci
![]()
Konstrukcja: Znalezienie wszystkich implikantów pierwszych funkcji
(konstrukcja kanonicznej postaci Blake'a);
Dedukcja: Zastosowanie pewnej sekwencji wnioskowań transformujących implikanty pierwsze do rozwiązań problemu.
6cm <1-> \onslide
Problem:
are considering going to a party. Social constrains:
If A goes than B won't go and C will;
If B and D go, then either A or C (but not both) will go
If C goes and B does not, then D will go but A will not.
<2-> Problem modeling:
6cm
<3-> After reduction:
![]()
<4-> Blake Canonical form:
![]()
<5-> Facts:
<6-> Reasoning: (theorem proving)
e.g., show that
”nobody can go alone.”
7cm
<+-> Problem SAT: czy równanie
![]()
posiada rozwiązanie?
<+-> SAT odgrywa ważną rolę w teorii złożoności (twierdzenie Cooka, dowodzenie NP-zupełności …)
<+-> Każdy SAT-solver może być używany do rozwiązywania problemu planowania.
<+-> Blocks world problem: Po redukcji formuła boolowska nadal zawiera
zmiennych i
klauzuli (
- liczby bloków i kroków).
<+-> Np. Dla
,
, mamy 3016 zmiennych i 50457 klausuli
5cm<4->\only
<3->
<+-> Konstrukcja funkcji odróżnialności:
Zmienne boolowskie: atrybuty
;
Klauzula:
Funkcja rozróżnialności:
![]() |
<+-> przekształcenie funkcji rozróżnialności do postaci DNF
<+-> każdy implikant pierwszy odpowiada jednemu reduktowi;
| Hurt. | Jakość obsługi | Jakość towaru | Obok autostrady? | Centrum? | decyzja |
|---|---|---|---|---|---|
| ID | |||||
| 1 | dobra | dobra | nie | nie | strata |
| 2 | dobra | dobra | nie | tak | strata |
| 3 | bdb | dobra | nie | nie | zysk |
| 4 | slaba | super | nie | nie | zysk |
| 5 | slaba | niska | tak | nie | zysk |
| 6 | slaba | niska | tak | tak | strata |
| 7 | bdb | niska | tak | tak | zysk |
| 8 | dobra | super | nie | nie | strata |
| 9 | dobra | niska | tak | nie | zysk |
| 10 | slaba | super | tak | nie | zysk |
| 11 | dobra | super | tak | tak | zysk |
| 12 | bdb | super | nie | tak | zysk |
| 13 | bdb | dobra | tak | nie | ? |
| 14 | slaba | super | nie | tak | ? |
| 1 | 2 | 6 | 8 | |
|---|---|---|---|---|
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 7 | ||||
| 9 | ||||
| 10 | ||||
| 11 | ||||
| 12 |
<+-> usuwanie alternatyw regułą pochłaniania (t.j.
):
<+-> sprowadzanie funkcji
z postaci CNF (koniunkcja alternatyw) do postaci
DNF (alternatywa koniunkcji)
<+-> Każdy składnik jest reduktem! Zatem mamy 2 redukty:
i ![]()
<+-> Atrybut jest ważniejszy jeśli częściej występuje w klauzulach;
<+-> Selekcja: W każdym kroku wybierzmy atrybut, który najczęściej występuje w funkcji rozróżnialności;
<+-> Usuwanie: Usuwamy z tej funkcji te klauzule, które zawierają wybrany atrybut;
<+-> Powtarzamy Selekcja i Usuwanie dopóty, póki funkcja rozróżnialności zawiera jeszcze jakąś klazulę.
Heurystyka Johnsona
Znaleźć atrybut, który występuje najczęściej w macierzy rozróżnialności;
Usuwnąć wszystkie pola zawierające wybrany atrybut;
Powtarzamy kroki 1 i 2 dopóki wszystkie pola macierzy są puste.
| 1 | 2 | 6 | 8 | |
|---|---|---|---|---|
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 7 | ||||
| 9 | ||||
| 10 | ||||
| 11 | ||||
| 12 |
W macierzy nierozróznialności z poprzedniego przykładu
![]()
- występuje 23 razy
- występuje 23 razy
![]()
- występuje 18 razy
- występuje 16 razy
Jeśli wybieramy
, to po usunięciu pól zawierających
zostało 9
niepustych pól macierzy nierozróżnialności. Wśród nich:
- występuje 7 razy
- występuje 7 razy
- występuje 6 razy
Jeśli wybieramy tym razem
to zostały 2 niepuste pola i wśród nich
jest zdecydowanym faworytem.
Możemy dostać w ten sposób redukt:
.
Niech
;
Niech
;
Niech
będzie minimalnym reduktem, lecz
będzie reduktem znalezionym przez heurystykę
Johnsona;
Załóżmy, że heurystyka Johnsona musi płacić 1zł za każdym razem, gdy dodała
do
.
Rozłóżmy ten koszt tym elementom, które
zostały po raz pierwszy pokryte przez zbiór ![]()
Niech
= koszt ponoszony przez
. Jeśli
jest
pokryty po raz pierwszy przez
, to
Heurystyka Johnsona ponosi łączny koszt
. Mamy
Gdybyśmy pokazali, że dla dowolnego altrybutu ![]()
gdzie
, wówczas możemy oszacować
dalej:
Lemat:
Dla dowolnego altrybutu ![]()
Dowód:
Niech
, mamy:
gdzie
jest najmniejszym indeksem t., że ![]()
Zatem
![]() |
|||
![]() |
ILP (Integer Linear Program)
Symulowane wyżarzanie (simulated annealing)
Algorytmy genetyczne
SAT solver
???
Dana jest funkcja
zapisana w postaci CNF za pomocą zmiennych ![]()
Utwórz nowe zmienne
odpowiadające
literałom
;
Dla każdej zmiennej
, utwórzmy nierówność ![]()
Zamień każdą klausulę
na
nierówność
;
Utwórzmy układ nierówności z poprzednich punktów:
Zagadnienie programowania liniowego liczb całkowitych (ILP) jest definiowane jako problem szukania
![]() |
Dla danego zbioru atrybutów
definiujemy język deskryptorów jako trójkę
gdzie
jest zbiorem deskryptorów
jest zbiorem standardowych operatorów logicznych;
jest zbiorem formuł logicznych zbudowanych na deskryptorach z
.
Dla każdego zbioru atrybutów
oznaczamy:
, czyli zbiór deskryptorów obciętych do
.
zbiór formuł zbudowanych na
.
Semantyka:
Niech
będzie tablicą informacyjną. Każda formuła
, jest (semantycznie) skojarzona ze zbiorem
zawierającym obiekty spełniające
.
Formalnie możemy indukcyjnie definiować semantykę jak następująco:
| (5.1) | ||||
| (5.2) | ||||
| (5.3) | ||||
| (5.4) |
Każda formuła
może być charakteryzowana przez:
liczba deskryptorów w
;
liczba obiektów spełniających formułę
Definicja reguł decyzyjnych
Niech
będzie tablicą decyzyjną. Regułą decyzyjną dla
nazywamy formuły postaci:
gdzie
i
.
Formułę
nazywamy poprzednikiem (lub założeniem) reguły
, a
nazywamy następnikiem (lub tezą) reguły
.
Oznaczamy poprzednik i następnik reguły
przez
oraz
.
Reguły atomowa: Są to reguły postaci:
| (5.5) |
Każda reguła decyzyjna
postaci (5.5) może być charakteryzowana następującymi cechami:
|
|
liczba deskryptorów występujących w założeniu reguły |
|---|---|
|
|
nośnik reguły |
|
|
liczba obiektów z |
|
|
wiarygodność reguły |
Mówimy, że reguła
jest niesprzeczna z
jeśli
Minimalne niesprzeczne reguły:
Niech
będzie daną tablicą decyzyjną. Niesprzeczną regułę
nazywamy minimalną niesprzeczną regułą decyzyjną jeśli usunięcie któregokolwiek z deskryptorów spowoduje, że
reguła przestaje być niesprzezcna z
.
Klasyfikatory regułowe dzialają w trzech fazach:
Faza treningu: Generuje pewien zbiór reguł
z danej tablicy decyzyjnej
.
Faza selekcji reguł: Szuka w
tych reguł, które są wspierane przez obiekt
. Oznaczamy zbiór tych reguł
przez
.
Faza klasyfikacji: wyznacza klasędecyzyjną dla
za pomocą reguł z
według następującego schematu:
Jeśli
jest pusty: odpowiedź dla
jest
,
tzn. nie mamy podstaw, aby klasyfikować obiekt
do którejkolwiek z klas;
Jeśli
zawiera tylko obiekty z
-tej klasy: wówczas
;
Jeśli
zawiera reguły dla różnych klas decyzyjnych:
wówczas decyzja dla
określimy za pomocą pewnego, ustalonego schematu głosowania
między regułami z
.
Każda reguła powstaje poprzez skracanie opisu jakiegoś obiektu.
Redukty lokalne
Te same heurystyki dla reduktów decyzyjnych.
| Hurt. | Jakość obsługi | Jakość towaru | Obok autostrady? | Centrum? | decyzja |
|---|---|---|---|---|---|
| ID | |||||
| 1 | dobra | dobra | nie | nie | strata |
| 2 | dobra | dobra | nie | tak | strata |
| 3 | bdb | dobra | nie | nie | zysk |
| 4 | slaba | super | nie | nie | zysk |
| 5 | slaba | niska | tak | nie | zysk |
| 6 | slaba | niska | tak | tak | strata |
| 7 | bdb | niska | tak | tak | zysk |
| 8 | dobra | super | nie | nie | strata |
| 9 | dobra | niska | tak | nie | zysk |
| 10 | slaba | super | tak | nie | zysk |
| 11 | dobra | super | tak | tak | zysk |
| 12 | bdb | super | nie | tak | zysk |
| 13 | bdb | dobra | tak | nie | ? |
| 14 | slaba | super | nie | tak | ? |
| 1 | 2 | 6 | 8 | |
|---|---|---|---|---|
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 7 | ||||
| 9 | ||||
| 10 | ||||
| 11 | ||||
| 12 |
Reguły:
| 1 | 2 | 6 | 8 | |
|---|---|---|---|---|
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 7 | ||||
| 9 | ||||
| 10 | ||||
| 11 | ||||
| 12 |
Reguły:
![]()
![]()
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i
Mechaniki UW, 2009-2010.
Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach
Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.