Metody zapisu wiedzy. Logika Logika jest formalnym językiem reprezentacji informacji takim, w którym mogą być wyciągane wnioski Syntaktyka definiuje zdania.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Teoria układów logicznych
Wprowadzenie w problematykę związaną z twierdzeniem Gödla
Język C/C++ Funkcje.
Mechanizm wnioskowania rozmytego
RACHUNEK ZDAŃ.
REGUŁOWO-MODELOWE SKORUPOWE SYSTEMY EKSPERTOWE Część 1
PROGRAMOWANIE STRUKTURALNE
WYKŁAD 2 SYSTEMY EKSPERTOWE cz.2.
Badania operacyjne. Wykład 2
Matematyka Dyskretna, G.Mirkowska, PJWSTK
MS Access 2000 Normalizacja Paweł Górczyński 2005.
AUTOMATYCZNE DOWODZENIE TWIERDZEŃ.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Materiały pomocnicze do wykładu
Materiały pomocnicze do wykładu
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Wstęp do interpretacji algorytmów
Jest to wyrażenie jednoznacznie stwierdzające, na gruncie danego języka, iż tak a tak jest albo że tak a tak nie jest. Zazwyczaj określa się, iż takim.
Modele baz danych - spojrzenie na poziom fizyczny
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
Zależności funkcyjne.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Podstawy układów logicznych
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Elementy Rachunku Prawdopodobieństwa i Statystyki
Elementy Rachunku Prawdopodobieństwa i Statystyki
Metody reprezentacji wiedzy – cz. 2.
Rachunki Gentzena Joanna Witoch.
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Model relacyjny.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Metody zapisu wiedzy.
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Wykład 10 typ zbiorowy rekurencja.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Projektowanie relacyjnych baz danych – postacie normalne
PRZYGOTOWALI Bartosz Pawlik Daniel Sawa Marcin Turbiński.
Algorytmika.
Semantyczna teoria prawdy Tarskiego
Model obiektowy bazy danych
Zagadnienia AI wykład 2.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Zagadnienia AI wykład 6.
Projektowanie relacyjnych baz danych – diagramy związków encji
Metody zapisu wiedzy.
Zasady arytmetyki dwójkowej
Systemy wspomagające dowodzenie twierdzeń
Wstęp do interpretacji algorytmów
Wstęp do programowania Wykład 9
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
KNW - wykład 3 LOGIKA MODALNA.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Etapy procesu sterowania rozmytego
Temat: Tworzenie bazy danych
Weryfikacja hipotez statystycznych „Człowiek – najlepsza inwestycja”
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Systemy rozmyte – wnioskowanie Mamdani’ego II © Kazimierz Duzinkiewicz, dr hab.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Wstęp do Informatyki - Wykład 6
Metody sztucznej inteligencji
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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 >= y jest prawdziwe wtw x + 2 jest nie mniejsze niż liczba y 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 KB 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 studentem” Np. 4 = x + y jest logiczną konsekwencją x + 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 α może być wyprowadzone z KB procedurą i 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ż KB |= i α Cel: zdefiniować logikę, w której można wyrazić możliwie jak najwięcej i dla której istnieje poprawna i pełna procedura dowodzenia. 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: 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 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

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 (multiple) Do pełnej charakterystyki danych wielowartościowych konieczne jest określenie relacji porządku: uporządkowane (ordered) nieuporządkowane (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 (constrained types) W obecnej wersji dopuszczalne są następujące typy podstawowe: liczby całkowite (integer) liczby rzeczywiste (real) tekstowy (string) logiczny (boolean)

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 (step > 0). Typ 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.

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 i przez analogie na termy reprezentujące wystąpienie funkcji używa się określenia termy funkcyjne. 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. Termy stałe 2 – term prosty reprezentujący stałą jednowartościową {„angielski”, „niemiecki”, ”francuski”} – term prosty reprezentujący stałą wielowartościową nieuporządkowaną [3, 6, 1, 2]– term prosty reprezentujący stałą wielowartościową uporządkowaną Przykład 2.2. Termy zmienne Podatek – 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: – 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} – prawda {1, 2, 3, 4}  {1, 2, 3} – prawda {1, 2, 3}  {2, 3, 4} – fałsz {1, 2, 3}  {0, 3}– prawda

Formuły atomowe z termami stałymi MultipleOrdered- MultipleOrdered [1, 5, 3]  [1, 5, 3, 0]– prawda [1, 2, 3]  [1, 2, 3, 4]– prawda [1, 2, 3]  [2, 3, 4, 5]– fałsz [1, 2, 3]  [3, 2, 1]– fałsz [1, 2, 3]  [1, 2, 3]– fałsz [1, 2, 3]  [4, 5, 6]– prawda [1, 2, 3]  [1, 2, 4]– prawda [1, 2, 3]  [3, 2, 1]– 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: IF THEN gdzie: r – identyfikator reguły – przesłanka reguły – konkluzja reguły

Przesłanki Przesłanki reguły mają postać koniunkcji formuł atomowych: and and... and gdzie : – i-ta formuła atomowa and – 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. = gdzie: – zmienna – term

Reguły - przykłady RULE 1: IF (X > 2) and (Y = 2) THEN Z = „dobry” RULE 2: IF GatunekStali = „St32” THEN 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 Basic dopuszczalne są jedynie termy stałe i zmienne. Reguły w dialekcie Complex 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ść ,40- 0, ,50-0, ,60-0, ,70-0, ,75-2,

Dopłaty za gatunek stali (zł/tonę) Gatunek staliDopłata DC01, DC020 DC03, DC04100 St37-2G, St37-3G50 H260LA, H300LA200 H340LA250 DC01 EK220

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ówieniaOcena klientaUpust < nieznany0 < trudny0 < premium5% > nieznany2% > trudny3% > premium8%

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: zł/tonę Dopłata za gatunek : 100 zł/tonę, cena: zł/tonę Dopłata za masę kręgu 50 zł, cena: zł/tonę Dopłata za specjalne zabezpieczenie 100 zł, cena: zł/tonę Wartość zamówienia zł Upust 8% Koszt zamówienia: 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