Transcript Wykład 2. - zapis wiedzy cz. 1.
Metody zapisu wiedzy
Logika • • • • • Logika jest formalnym językiem reprezentacji informacji takim, w którym mogą być wyciągane wnioski • Syntaktyka definiuje zdania w języku • Semantyka definiuje "znaczenie" zdań; tzn. definiuje prawdziwość zdań w opisywanym świecie • Np. język arytmetyki
x + 2 > y
jest zdaniem;
x2
+
y >
nie jest zdaniem
x
+ 2 >= liczba
y y
jest prawdziwe wtw
x
+ 2 jest nie mniejsze niż
x
+ 2 >
y
jest prawdziwe w świecie, gdzie
x = 7, y = 1 x
+ 2 >
y
jest nieprawdziwe w świecie, gdzie
x
= 0,
y
= 6
Logiczna konsekwencja • Logiczna konsekwencja oznacza, że jeden fakt
wynika
z innego: • •
KB |= α
jest logiczną konsekwencją bazy wiedzy
KB
wtedy i tylko wtedy gdy jest prawdziwe we wszystkich światach, w których
KB
jest prawdziwe • Np. logiczną konsekwencją bazy wiedzy studentem” • Np. 4 = x +
y
jest logiczną konsekwencją
KB x
zawierającej „Pies jest studentem" i „Kot jest studentem" jest zdanie „Kot jest studentem i Pies jest studentem„ natomiast nie jest konsekwencją fakt „Słoń jest + y = 4 • Logiczna konsekwencja jest relacją pomiędzy zdaniami (
syntaktyka)
która opiera się na
semantyce
• Uwaga: umysł analizuje
syntaktykę
(pewnego rodzaju)
Modele • • Logicy myślą zazwyczaj w terminach modeli, które formalnie są ustrukturalnionymi światami względem których można wyznaczać prawdziwość • Mówimy, ze
m
jest modelem zdania
α
jeśli
α
jest prawdziwe w
m M(
)
jest zbiorem wszystkich modeli • • Wtedy
KB
|=
α
wtw
M(KB) zawiera się w M(α)
• Np.
KB
= Pies jest studentem i Kot jest studentem
α
= Pies jest studentem
Wnioskowanie •
KB
|=
i α
zdanie
α
procedurą
i
może być wyprowadzone z
KB
• Poprawność:
i
jest poprawne, jeśli • zawsze kiedy
KB
|=
i α ,
to też
KB
|=
α
• Pełność:
i
jest pełne jeśli • zawsze kiedy
KB
|=
α ,
to też pełna procedura dowodzenia.
KB
|=
i α
• Cel: zdefiniować logikę, w której można wyrazić możliwie jak najwięcej i dla której istnieje poprawna i • Tzn. ta procedura odpowie na każde pytanie, które wynika z tego, co wiadomo w bazie wiedzy
KB.
Cechy charakteryzujące system logiczny • poprawność • zupełność • niesprzeczność • rozstrzygalność
Poprawność • Pojęcie poprawności odnosi się do relacji pomiędzy składnią a semantyką systemu logicznego • System jest poprawny jeśli każda konkluzja posiadająca dowód w sensie składniowym jest prawdziwa w sensie semantycznym • W systemie poprawnym każda formuła, którą potrafimy dowieść manipulując na symbolach i wykorzystując aksjomaty teorii jest prawdą w sensie semantycznym, tj. nie można wskazać takiej interpretacji, że formuła jest fałszywa
System niepoprawny • Załóżmy, że w pewnym systemie logicznym przyjmiemy aksjomat: (
p
q
) (
p
q
) • • Wówczas za poprawne musielibyśmy uznać sformułowanie:
Ponieważ nieprawdą jest to, że Jan jest mężczyzną i jest studentem to prawdą jest, że nie jest mężczyzną lub jest studentem
Zupełność • Pojęcie zupełności również odnosi się do relacji pomiędzy składnią a semantyką • System logiczny jest zupełny, jeśli każda konkluzja prawdziwa w sensie semantycznym może być dowiedziona na gruncie składniowym • W systemie zupełnym nie może istnieć formuła prawdziwa w sensie semantycznym i nie posiadająca dowodu w sensie składniowym
System niezupełny • Załóżmy, że usuwamy z pewnego systemu prawo podwójnego przeczenia
p
(
p
) • Wówczas niemoglibyśmy dowieś stwierdzenia: • Jeżeli Jan jest studentem to nieprawdą jest, że nie jest studentem
Niesprzeczność • Pojęcie niesprzeczności dotyczy już wyłącznie syntaktyki i zbioru aksjomatów • System jest niesprzeczny jeśli nie istnieje taka formuła, że w sensie składniowym można dowieść, iż jest ona zarówno prawdziwa jak i fałszywa
Rozstrzygalność • Pojęcie rozstrzygalności dotyczy również tylko syntaktyki i zbioru aksjomatów • System jest rozstrzygalny, jeśli dla każdej formuły można dowieść w sensie składniowym, czy jest prawdziwa czy fałszywa
Kryteria doboru języka • Efektywność, której miarą może być liczba symboli potrzebnych do reprezentacji wiedzy • Siła ekspresji wyrażana w bogactwie operatorów logicznych oraz w poziomie szczegółowości • Adekwatność rozumiana jako dopasowanie środków wyrazu, czyli siły ekspresji do poziomu złożoności wiedzy
Metody zapisu wiedzy • Klasyczna logika zdań • Logika predykatów pierwszego rzędu • Logika atrybutowa • Logika opisowa • Język Rebit
• reguły • pakiet wiedzy • pakiet funkcji • zbiory reguł • siatki decyzyjne • tabele decyzyjne • przesłanki • konkluzje • termy • funkcje • zmienne • stałe • typy danych Język Rebit
Rebit - Organizacja bazy wiedzy
Definicja typów danych, stałych, zmiennych oraz funkcji Baza wiedzy w systemie REBIT zawiera elementy, które przechowują lub przetwarzają dane: • jednowartościowe (
single
) • wielowartościowe ( • uporządkowane ( • nieuporządkowane (
multiple
określenie relacji porządku:
ordered
) ) Do pełnej charakterystyki danych wielowartościowych konieczne jest
unordered
) Dane wielowartościowe nieuporządkowane posiadają wszelkie cechy by nazywać je zbiorami. Dane wielowartościowe uporządkowane są zbliżone w sensie matematycznym do pojęcia ciągu, a w ujęciu programistycznym odpowiadają koncepcji listy lub tablicy.
Typy danych Pojęcie typu (lub dziedziny) odnosi sie do elementów bazy wiedzy, które przechowują lub przetwarzają dane. Do tego rodzaju elementów należą stałe, zmienne oraz funkcje. Typ określa przestrzeń możliwych wartości, jakie może przyjmować element. W systemie REBIT istnieją dwie główne kategorie typów: • typy podstawowe (
basic types
) • typy okrojone ( • tekstowy ( • logiczny (
string constrained types
• liczby całkowite ( )
boolean integer
• liczby rzeczywiste ( )
real
) ) ) W obecnej wersji dopuszczalne są następujące typy podstawowe:
Typy danych • • System REBIT dopuszcza dwie kategorie typów okrojonych: • typy wyliczeniowe (
enum type
) • typy interwałowe (
range type
)
Typy wyliczeniowe
definiuje się ekstensjonalnie poprzez specyfikację wszystkich możliwych elementów. Elementy typu wyliczeniowego mogą przyjmować wartości należące do jednego z trzech typów podstawowych: rzeczywisty, całkowity i tekstowy.
Typy interwałowe
definiuje się poprzez podanie lewego i prawego końca przedziału oraz opcjonalne dodatniego kroku ( interwałowy bez kroku reprezentuje wszystkie liczby rzeczywiste leżące w zadanym przedziale. Typ interwałowy z ustalonym krokiem reprezentuje wybrane liczby rzeczywiste (a w szczególnych przypadkach całkowite) z podanego przedziału.
step
> 0). Typ
Zmienne • Zmienne służą do przechowywania danych, które w trakcie procesu wnioskowania mogą podlegać zmianom. Zmienne są elementami języka, które wymagają definicji. Definicja musi zawierać nazwę zmiennej oraz typ (dziedzinę) danych przechowywanych przez zmienną. Nazwa zmiennej musi być unikalna w obrębie całej bazy wiedzy. Typem danych przechowywanych przez zmienną może być jeden z typów podstawowych albo jeden z typów okrojonych. • Jako że zmienne są elementami, który przechowują dane, definicja zmiennej wymaga podania krotności (
multiplicity
) oraz porządku (
ordering
).
Funkcje • Funkcje służą do specyfikacji operacji na danych. Każda funkcja musi zwracać pewne dane. Funkcje, podobnie jak zmienne, są elementami języka, które muszą być definiowane. Definicja funkcji wymaga podania nazwy funkcji, typu (dziedziny) danych zwracanych przez funkcję oraz typu parametrów funkcji • Definicja funkcji wymaga podania krotności (
multiplicity
) oraz porządku (
ordering
) dla wszystkich parametrów funkcji oraz dla danych zwracanych przez funkcje • Definicja funkcji zawiera jedynie informacje o danych wejściowych i wyjściowych, i w żaden sposób nie precyzuje wewnętrznych szczegółów algorytmu realizowanego przez funkcje
Stałe • Stałe są najprostszym elementem języka, przeznaczonym do przechowywania danych, które nie podlegają zmianom. W odróżnieniu od zmiennych i funkcji stałe nie wymagają odrębnej sekcji definiującej. Są definiowane doraźnie w momencie pojawienia się w regule.
Termy • Term reprezentuje każdorazowe wystąpienie stałej, zmiennej lub funkcji w przesłance lub konkluzji reguły. Termy będące wystąpieniami stałych noszą nazwę
termów stałych
, termy będące wystąpieniami zmiennych nazywa się
termami zmiennymi
analogie na termy reprezentujące wystąpienie funkcji używa się określenia
termy funkcyjne
.
i przez • O ile termy stałe i zmienne są stosunkowo prostymi konstrukcjami, o tyle termy funkcyjne, ze względu na obecność argumentów, już takimi konstrukcjami nie są. Argumentem termu funkcyjnego może term stały lub zmienny. Dopuszcza się również, by argumentem termu funkcyjnego mogła być inny term funkcyjny, co w efekcie prowadzi do struktury o charakterze drzewa. Nie nakłada się ograniczeń na liczbę poziomów zagnieżdżania w strukturze termów.
Termy • Mając na uwadze stopień złożoności termów, wynikający z możliwości zagnieżdżania, rozróżnia się: termy proste • termy złożone Do termów prostych zalicza się termy stałe oraz zmienne. Termy złożone to termy składające się z innych termów. Jedynym przedstawicielem termu złożonego jest term funkcyjny.
Ponieważ term jest elementem przechowującym dane, stosują się do niego wszystkie atrybuty dla tego rodzaju elementów, a w szczególności typ, czyli dziedzina wartości oraz krotność i porządek. W przypadku termów zmiennych i funkcyjnych wartość tych atrybutów jest określona poprzez zmienną i funkcję, której są wystąpieniami. Term stały w odróżnieniu od pozostałych jest jednocześnie definicją stałej. W związku z tym wymagana jest specyfikacja typu, krotność oraz porządku. Funkcja jest specyfikacją operacji możliwej do wykonania. Używając terminologii programistycznej, funkcja jest w istocie deklaracją pewnej operacji. Dopiero term funkcyjny wyraża fakt użycia zadeklarowanej wcześniej funkcji. Związek o identycznym charakterze występuje pomiędzy zmienną a termem zmiennym.
Termy - przykłady • • • •
Przykład 2.1.
• 2 – term prosty reprezentujący stałą jednowartościową • {„
angielski
”, „ Termy stałe
niemiecki
stałą wielowartościową nieuporządkowaną • [3, 6, 1, 2]– term prosty reprezentujący stałą wielowartościową uporządkowaną ”, ”
francuski
”} – term prosty reprezentujący
Przykład 2.2.
Podatek
Termy zmienne – term prosty reprezentujący zmienną o nazwie
Podatek
We wszystkich poniższych przykładach wykorzystano nawiasy kwadratowe „[” i „]”do oznaczenia danych wielowartościowych uporządkowanych oraz nawiasy klamrowe „{” i „}”do oznaczenia danych wielowartościowych nieuporządkowanych.
Termy - przykłady • • • • •
Przykład 2.3.
Termy funkcyjne.
add
(
X
, 2)– term złożony reprezentujący funkcję dodawania; argumentami są term zmienny X i term stały 2
ln
(
Y
) – term złożony reprezentujący funkcję do obliczania logarytmu naturalnego; argumentem jest term zmienny Y
max
([3, 7, 1, 10]) – term złożony reprezentujący funkcję do znajdowania maksimum; argumentem termu funkcyjnego jest term stały, wielowartościowy, uporządkowany
multiply
(
ln
(
Y
), 3)– term złożony, zagnieżdżony reprezentujący funkcję mnożenia (term nadrzędny) oraz funkcję do obliczania logarytmu naturalnego (term podrzędny)
Formuły atomowe • • • • są elementarnymi wyrażeniami logicznymi, przyjmującymi wartości prawdy lub fałszu. Na formułę atomową składa się term lewostronny, term prawostronny oraz operator relacyjny. W notacji Backusa-Naura formułę atomową zapisuje się następująco: • < • gdzie:
LHTerm
> <
operator
> <
RHTerm
> < < <
LHTerm RHTerm operator
> – term lewostronny > – term prawostronny > – operator relacji
Dostępność operatorów w zależności od rodzaju termu
Formuły atomowe z termami stałymi
MultipleUnordered MultipleUnordered
.
• {1, 2, 3} {1, 2, 3, 4} • {1, 2, 3, 4} {1, 2, 3} • {1, 2, 3} • {1, 2, 3} {2, 3, 4} {0, 3} – prawda – prawda – fałsz – prawda
Formuły atomowe z termami stałymi MultipleOrdered-
• [1, 5, 3] • [1, 2, 3] • [1, 2, 3] • [1, 2, 3]
MultipleOrdered
[1, 5, 3, 0] [1, 2, 3, 4] [2, 3, 4, 5] [3, 2, 1] • [1, 2, 3] • [1, 2, 3] [1, 2, 3] [4, 5, 6] • [1, 2, 3] • [1, 2, 3] [1, 2, 4] [3, 2, 1] – prawda – prawda – fałsz – fałsz – fałsz – prawda – prawda – prawda
Formuły atomowe ze zmiennymi, stałymi i funkcjami
• • • •
X
= 2
Przychód
>
Koszty Stawka
[20, 30, 40]
add
(
X
, 2)
ln
(
Y
)
Reguły • • • • • RULE r gdzie: < :
premise
THEN IF
< >
conclusion
>
r
< <
premise
>
conclusion
> – identyfikator reguły – przesłanka reguły – konkluzja reguły
Przesłanki • Przesłanki reguły mają postać koniunkcji formuł atomowych: • <
atom
_#1>
and
<
atom
_#2>
and
...
and
<
atom
_#
n
> • • gdzie : • <
atom
_#
i
>
and
–
i
-ta formuła atomowa – operator koniunkcji
Konkluzje • Konkluzja reguły zawiera jedną formułę atomową z dodatkowymi ograniczeniami. Ograniczenia odnoszą się do termu występującego po lewej stronie formuły oraz dopuszczalnych operatorów. Term lewostronny musi być termem zmiennym, a jedynym dopuszczalnym operatorem jest operator „=”, interpretowany w tym przypadku jako podstawienie wartości termu z prawej strony pod zmienną występującą po lewej stronie.
• <
Variable
> = <
RHTerm
> • gdzie: • <
Variable
> – zmienna • <
RHTerm
> – term
Reguły - przykłady • •
RULE IF
1: (
X
THEN
Z
> 2)
and
= „
dobry
” (
Y
= 2)
RULE IF
2:
THEN
GatunekStali
= „
St32 ZamiennikGatunku
” = {„St32”, „S235”, „DC01”}
Dialekty Dialekty języka REBIT związane są z poziomem ekspresji wynikającym z rodzaju dopuszczalnych termów. Ze względu na rodzaj termu rozróżnia się dwa dialekty: • •
Basic Complex
W dialekcie o nazwie jedynie termy stałe i zmienne. Reguły w dialekcie
Complex Basic
dopuszczalne są mogą zawierać wszystkie rodzaje termów.
Tabele decyzyjne
Siatki decyzyjne
Przykład – cennik blach stalowych • Producent blach stalowych w kręgach uzależnia cenę produktów od następujących parametrów: – wymiary blachy (grubość, szerokość), – gatunek stali – masa kręgów, – wartość zamówienia, – dodatkowe wymagania, – ocena klienta itp.
Kręgi stali
Cena bazowa (zł/tonę)
grubość/ szerokość
0,40- 0,49 0,50-0,59 0,60-0,69 0,70-0,74 0,75-2,50
700-999
3000 2900 2800 2780 2700
1000-1149 1150-1299 1300-1449 1450-1550
0 2850 2750 2720 2670 0 0 2700 2680 2650 0 0 0 2600 2600 0 0 0 0 2580
Dopłaty za gatunek stali (zł/tonę)
Gatunek stali
DC01, DC02 DC03, DC04 St37-2G, St37-3G H260LA, H300LA H340LA DC01 EK
Dopłata
0 100 50 200 250 220
Dopłata za masę kręgów i dodatkowe wymagania (zł/tonę) • Dopłata za masę kręgu poniżej 15 ton – 50 zł • Dopłata za masę kręgu poniżej 7,5 tony – 100 zł • Dopłata za dodatkowe zabezpieczenie powierzchni – 100 zł • Dopłata z specjalne opakowanie kręgów – 150 zł
Ocena handlowa
Wartość zamówienia
< 50 000 < 50 000 < 50 000 > 50 000 > 50 000 > 50 000
Ocena klienta
nieznany trudny premium nieznany trudny premium
Upust
0 0 5% 2% 3% 8%
Przykład zamówienia • Wymiar blachy gr. 0,65 mm szerokość 1050 mm • Gatunek DC03 • Kręgi 12 ton • Wymagane specjalne zabezpieczenie • Masa zamówienia 24 tony • Klient premium
Kalkulacja • Cena bazowa: 2 750 zł/tonę • Dopłata za gatunek : 100 zł/tonę, cena: 2 850 zł/tonę • Dopłata za masę kręgu 50 zł, cena: 2 900 zł/tonę • Dopłata za specjalne zabezpieczenie 100 zł, cena: 3 000 zł/tonę • Wartość zamówienia 72 000 zł • Upust 8% • Koszt zamówienia: 66 240 zł
Budujemy siatkę decyzyjną
Definiujemy siatkę
Tworzymy siatkę
Tworzymy reguły
Reguły można edytować
Po umieszczeniu bazy w repozytorium możemy ją zweryfikować
Uruchamiamy wnioskowanie wprzód
Wprowadzamy znane fakty
Uzyskujemy wynik
Tworzymy zbiór reguł dla dopłat
Tworzymy zmienne
W tym zmienne wielokrotne
Wszystkie niezbędne zmienne
Reguły
Testujemy reguły – wnioskując wprzód
Wybieramy zmienne, których wartość znamy
Wprowadzamy wartość
Uzyskujemy odpowiedź
Reguły dotyczące dopłat za masę kręgu
Wnioskowanie wprzód
Wprowadzamy dane
Wynik
Reguły dotyczące specjalnych zabezpieczeń
Testowe wnioskowanie wprzód
Wprowadzanie danych
Wynik
Dodajemy zmienne
Dodajemy reguły
Wybieramy dane do testu
Wprowadzamy dane
Uzyskujemy wynik
I historię
Tworzymy tabelę decyzyjną
Tworzymy typ enumerowany
Projektujemy tabelę
Wpisujemy dane
Generujemy reguły
Reguły
Testujemy tabelę
Wprowadzamy dane
I uzyskujemy wynik
Integrujemy reguły do zbioru „Cennik”
Importujemy zmienne
Importujemy reguły
Dodajemy zmienną finalną WartoscOstateczna
I dodajmy reguły
Wybieramy zmienne wejściowe do wnioskowania wprzód
Wprowadzamy dane
Uzyskujemy wynik
Wprowadzamy nową zmienną
Modyfikujemy reguły
Wprowadzamy nowe dane
I uzyskujemy wynik
Wybieramy inny sposób wnioskowania (mieszane)
Kolejno wprowadzamy dane …
….
I uzyskujemy wynik