Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wnioskowanie w systemach sztucznych Wnioskowanie dedukcyjne lub niezawodne jest realizowane zgodnie z zasadami logiki formalnej Wnioskowanie redukcyjne.

Podobne prezentacje


Prezentacja na temat: "Wnioskowanie w systemach sztucznych Wnioskowanie dedukcyjne lub niezawodne jest realizowane zgodnie z zasadami logiki formalnej Wnioskowanie redukcyjne."— Zapis prezentacji:

1 Wnioskowanie w systemach sztucznych Wnioskowanie dedukcyjne lub niezawodne jest realizowane zgodnie z zasadami logiki formalnej Wnioskowanie redukcyjne zakładające, że przesłanka wynika z konkluzji nie jest realizowane zgodnie z zasadami logiki formalnej i w związku z tym jest zawodne

2 Zasada rezolucji rezolwenta

3 Rachunek predykatów (przykład) Fakt1: część(w001,wałek) Fakt2: część(p04,panewka) Fakt3: twardość(w001,wysoka) Reguła1: współpracują(X1,X2) if część(X1,wałek) and część(X2,panewka) Reguła2: twardość (X2,X3) if współpracują (X1,X2) and twardość(X1,X3) wniosek Fakt: twardość(p04,wysoka)

4 Dedukowanie Podstawiamy X1=w001, X2=p04

5 Klauzule Literał – formuła postaci ~a lub a, gdzie a jest dowolna formułą atomową Literały ~a i a nazywamy literałami komplementarnymi Klauzula – alternatywa dowolnej skończonej liczby literałów (formuła bez kwantyfikatorów) Każdy zbiór poprawnie zbudowanych formuł można przekształcić w zbiór klauzul

6 Klauzule Horna Klauzula Horna to klauzula, która ma jeden literał pozytywny Pozytywna klauzula Horna: może być w sposób równoważny przedstawiona jako:

7 Klauzule Horna Z rachunku kwantyfikatorów mamy, że: wtedy i tylko wtedy Klauzula jest tezą w rachunku kwantyfikatorów wtedy i tylko wtedy, gdy prawa jej strona wynika logicznie z lewej

8 Klauzule Horna - zapis informatyków współpracują(X1,X2) if część(X1,wałek) and część(X2,panewka) B 1 if A 1 and A 2

9 Wnioskowanie dedukcyjne reguła modus ponens (reguła odrywania): |— A  B |— A |— B

10 Wnioskowanie dedukcyjne |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X jest studentem”. |— „X zdał maturę”. |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X nie jest studentem”. |— „X nie zdał matury”. |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X zdał maturę”. |— „X jest studentem”.

11 Wnioskowanie dedukcyjne reguła modus tollens: |— A  B |— ¬B |— ¬A

12 Wnioskowanie dedukcyjne |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X nie zdał matury”. |— „X nie jest studentem”.

13 Wnioskowanie redukcyjne schematy wnioskowania: |— A  B |— A  B |— ¬A |— B |— ¬B |— A

14 Wnioskowanie redukcyjne |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X nie jest studentem”. |— „X nie zdał matury”. |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X zdał maturę”. |— „X jest studentem”.

15 Metody wnioskowania Wnioskowanie progresywne („w przód”) Wnioskowanie regresywne („wstecz”) Wnioskowanie mieszane

16 Przykład – przewidywanie bankructwa Oceniamy zagrożenie pewnej firmy bankructwem Pod uwagę bierzemy jego sytuację ekonomiczną (zadłużenie, rentowność) oraz sytuację rynkową (atrakcyjność oferty, zagrożenie ze strony konkurencji)

17 Typy i zmienne TYPES Ocena = "zły", "dobry" OcenaZagrozenia = "wysokie", "niskie", "brak" VARIABLES Zadluzenie: Ocena Rentownosc: Ocena OcenaEkonomiczna: Ocena AtrakcyjnoscOferty: Ocena SytuacjaKonkurencyjna: Ocena OcenaRynkowa: Ocena ZagrozenieBakructwem: OcenaZagrozenia

18 RULE R9 IF OcenaEkonomiczna = "zły" AND OcenaRynkowa = "zły" THEN ZagrozenieBakructwem = "wysokie" RULE R10 IF OcenaEkonomiczna = "zły" AND OcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "niskie" RULE R11 IF OcenaEkonomiczna = "dobry" AND OcenaRynkowa = "zły" THEN ZagrozenieBakructwem = "niskie" RULE R12 IF OcenaEkonomiczna = "dobry" AND OcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "brak"

19 RULE R1 IF Zadluzenie = "zły" AND Rentownosc = "zły" THEN OcenaEkonomiczna = "zły" RULE R2 IF Zadluzenie = "zły" AND Rentownosc = "dobry" THEN OcenaEkonomiczna = "zły" RULE R3 IF Zadluzenie = "dobry" AND Rentownosc = "zły" THEN OcenaEkonomiczna = "dobry" RULE R4 IF Zadluzenie = "dobry" AND Rentownosc = "dobry" THEN OcenaEkonomiczna = "dobry"

20 RULE R5 IF AtrakcyjnoscOferty = "zły" AND SytuacjaKonkurencyjna = "zły" THEN OcenaRynkowa = "zły" RULE R6 IF AtrakcyjnoscOferty = "zły" AND SytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry" RULE R7 IF AtrakcyjnoscOferty = "dobry" AND SytuacjaKonkurencyjna = "zły" THEN OcenaRynkowa = "zły" RULE R8 IF AtrakcyjnoscOferty = "dobry" AND SytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry"

21 Wnioskowanie wprzód

22

23

24 Zaczynamy od faktu ‘Zadłużenie = zły’ Szukamy odpowiednich reguł Sprawdzamy, czy fakt ‘Rentownosc = zły’ RULE R1 IF Zadluzenie = "zły" AND Rentownosc = "zły" THEN OcenaEkonomiczna = "zły"

25 Wnioskowanie wprzód Fakt nie jest prawdziwy regułę zaznaczamy jako wykorzystaną i szukamy kolejnej Fakt ‘Rentownosc = dobry’ jest prawdziwy RULE R2 IF Zadluzenie = "zły" AND Rentownosc = "dobry" THEN OcenaEkonomiczna = "zły"

26 Wnioskowanie wprzód „Odpalamy” regułę, rejestrujemy nowy fakt ‘OcenaEkonomiczna = zły’ i zapisujemy do stosu faktów Szukamy kolejnej reguły, w przesłankach której mamy fakt ‘Zadłużenie = zły’ Takiej reguły już nie ma – usuwamy fakt ze stosu faktów i pobieramy kolejny

27 Wnioskowanie wprzód Załóżmy, że jest to fakt ‘Rentowność = dobry’ Wśród „niewykorzystanych” reguł poszukujemy odpowiedniej: RULE R4 IF Zadluzenie = "dobry" AND Rentownosc = "dobry" THEN OcenaEkonomiczna = "dobry"

28 Wnioskowanie wprzód Sprawdzamy czy fakt ‘Zadłużenie = dobry’ jest prawdziwy Ponieważ nie jest, regułę zaznaczmy jako wykorzystaną i szukamy kolejnej odpowiedniej Nie ma już żadnej takiej reguły – niczego nowego już nie wydedukujemy Usuwamy fakt ze stosu i pobieramy kolejny

29 Wnioskowanie wstecz

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45 Stawiamy hipotezę, np. ‘ZagrożenieBankructwem = brak’ Silnik szuka reguł, w których konkluzją jest taki fakt: RULE R12 IF OcenaEkonomiczna = "dobry" AND OcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "brak"

46 Wnioskowanie wstecz Sprawdzamy, czy prawdziwe są przesłanki Pierwsza to ‘OcenaRynkowa = dobry’ Szukamy reguły, w której występuje taka konkluzja: RULE R8 IF AtrakcyjnoscOferty = "dobry" AND SytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry"

47 Wnioskowanie wstecz Sprawdzamy, czy prawdziwe są przesłanki Pierwsza to ‘SytuacjaKonkurencyjna = dobry’ Szukamy reguły, w której występuje taka konkluzja – nie ma takiej reguły Silnik pyta o wartość logiczną tego faktu Jeżeli fakt jest prawdziwy to weryfikujemy kolejną przesłankę, jeśli nie to szukamy kolejnej reguły, która mogłaby potwierdzić, że ‘OcenaRynkowa = dobry’

48 Wnioskowanie mieszane - przykład

49 Dane jeżeli InneCechyMateriału_są_dobre i Wytrzymałość_jest_dobra wtedy Materiał_jest_dobry

50 Dane

51

52

53

54 Start i pierwsze kroki 1.Zakładamy, że wytrzymałość jest dobra 2.Szukamy wszystkich reguł, dla których zdanie jest przesłanką

55 Kolejne kroki 3.Analizujemy pierwszą regułę i ustalamy, że ustalenie jej wartości wymaga oceny zdania: InneCechyMateriału_są_dobre 4.Sprawdzamy, czy znamy wartość zdania 5.Jeżeli nie, przeszukujemy konkluzje wszystkich reguł poszukując zdania 6.Jeżeli nie znajdujemy reguły to po prostu pytamy o zdanie

56 Kolejne kroki 7.Załóżmy, że zdanie jest fałszywe 8.Zaznaczamy regułę jako odpaloną i powtarzamy, kroki 4, 5 i 6 dla kolejnej reguły 9.Jeżeli żadna reguła nie może być odpalona kończymy wnioskowanie 10.Załóżmy jednak że zdanie InneCechyMateriału_są_złe jest prawdziwe

57 Kolejne kroki 11.Odpalamy regułę: jeżeli InneCechyMateriału_są_złe i Wytrzymałość_jest_dobra wtedy Materiał_jest_średni i przyjmujemy, że zdanie Materiał_jest_średni jest prawdziwe

58 Kolejne kroki 12.Szukamy wszystkich reguł, dla których zdanie jest przesłanką

59 Kolejne kroki 13.Realizujemy kroki 3 do 9 dla zaznaczonych reguł 14.Załóżmy, że zdanie Powtarzalność_jest_dobra jest prawdziwe 15.Ustalamy, że zdanie Jakość_tak jest prawdziwe 16.Wracamy do punktu 12

60 Kolejne kroki

61 17.Załóżmy, że ustalamy wartość zdania Ekonomia_jest_dobra

62 Kolejne kroki 18.Musimy ustalić wartość zdań: Cena_jest_dobra i WarunkiPłatności_są_dobre 19.Powtarzamy kroki 3 do 6 dla obu zdań

63 WybranyStart = wybierz zmienną startową() dodaj WybranyStart do StosZmiennychWprzod while nie pusty StosZmiennychWprzod { AktualnaZmienna = zdejmij ze StosZmiennychWprzod for each Wyrazenie in WyrazeniaZwiazaneZeZmienna(AktualnaZmienna) _wyrazenie = EwaluujWyrazenie(Wyrazenie) for each Przeslanka in PrzeslankiDlaKtorychWyrazenieJestLewaStrona(_wyrazenie) {

64 WyrazenieZPrawejStrony = ZnajdzWyrazenieZPrawejStrony(Przeslanka) if (WartoscWyrazeniaZPrawejStrony == null) { EwaluujWyrazenie(WyrazenieZPrawejStrony) } EwaluujPrzeslanke(Przeslanka) ZmienWartoscPrzeslanki(Przeslanka) if (WartoscLogicznaPrzeslanki == true) { dodaj Przeslanka do StosPrzeslanek }

65 for each Przeslanka in PrzeslankiDlaKtorychWyrazenieJestPrawaStrona(Wyrazenie) { WyrazenieZLewejStrony = ZnajdzWyrazenieZLewejStrony(Przeslanka) if (WartoscWyrazeniaZLewejStrony == null) { EwaluujWyrazenie(WyrazenieZLewejStrony) } EwaluujPrzeslanke(Przeslanka) ZmienWartoscPrzeslanki(Przeslanka) if (WartoscLogicznaPrzeslanki == true) { dodaj Przeslanka do StosPrzeslanek }

66 while nie pusty StosPrzeslanek { AktualnaPrzeslanka = zdejmij ze StosPrzeslanek for each Regula in RegulyZwiazaneZPrzeslanka(AktualnaPrzeslanka) { if SprawdzRegule(Regula) { EwaluujRegule(Regula) }

67 EwaluujWyrazenie(X) for each Zmienna in ZmienneZwiazaneZWyrazeniem(X) { if (WartoscZmiennej == null) // wartość zmiennej nie jest znana { WartoscZmiennej = EwaluujZmienna(Zmienna) } dodaj do ListaZmiennych WartoscZmiennej } return EwaluatorTekstuWyrazenia(X, ListaZmiennych)

68 EwaluujPrzeslanke(X) Przeslanka = SzukajPrzeslanke(X) // pełny opis przesłanki WartoscWyrazeniaZLewejStrony = EwaluujWyrazenie(LewaStronaPrzeslanki) WartoscWyrazeniaZPrawejStrony = EwaluujWyrazenie(PrawaStronaPrzeslanki) return EwaluatorLogiczny(WartoscWyrazeniaZLewejStrony, WartoscWyrazeniaZPrawejStrony, Operator)

69 EwaluujZmienna(X) Zmienna = SzukajZmienna(X) if (KategoriaZmiennej == intermediate) { return WnioskujWstecz(X) } else { Wyrazenie = SzukajWyrazeniaKonkluzjiOkreslajacejZmienna(X) Akcja = SzukajAkcjiDlaWyrazenia(Wyrazenie) return EgzekutorAkcji(X, Akcja) }

70 SprawdzRegule(X) RegulaPrawdziwa = true for each Przeslanka in PrzeslankiZwiazaneZRegula(X) { if (WartoscLogicznaPrzeslanka == null) { EwaluujPrzeslanke(Przeslanka) } if (WartoscLogicznaPrzeslanka == false) { return false) break i } return true

71 EwaluujRegule(X) ZmienZmienna(ZmiennaOkreslanaPrzezRegule,EwluujWyrazenie(WyrazenieWKonkluzjiReguly(X)) dodaj ZmiennaOkreslanaPrzezRegule do StosZmiennychWprzod

72 WnioskujWstecz(X) for each Reguly in WszystkieRegulyOkreslajaceWartoscZmiennejX { if SprawdzRegule(Regula) { EwaluujRegule(Regula) } if (RegulaPrawdziwa == true) { EwaluujRegule(Regula) }


Pobierz ppt "Wnioskowanie w systemach sztucznych Wnioskowanie dedukcyjne lub niezawodne jest realizowane zgodnie z zasadami logiki formalnej Wnioskowanie redukcyjne."

Podobne prezentacje


Reklamy Google