650 likes | 778 Views
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.
E N D
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
Wnioskowanie dedukcyjne • reguła modus ponens (reguła odrywania): |— A B |— A |— B
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”.
Wnioskowanie dedukcyjne • reguła modus tollens: |— A B |—¬B |—¬A
Wnioskowanie dedukcyjne |— Jeżeli „X jest studentem”, to „X zdał maturę”. |— „X nie zdał matury”. |— „X nie jest studentem”.
Wnioskowanie redukcyjne • schematy wnioskowania: |— A B |— A B |—¬A |— B |—¬B |— A
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”.
Metody wnioskowania • Wnioskowanie progresywne („w przód”) • Wnioskowanie regresywne („wstecz”) • Wnioskowanie mieszane
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)
Typy i zmienne TYPES Ocena = "zły" , "dobry" OcenaZagrozenia = "wysokie" , "niskie" , "brak" VARIABLES Zadluzenie: OcenaRentownosc: OcenaOcenaEkonomiczna: OcenaAtrakcyjnoscOferty: OcenaSytuacjaKonkurencyjna: OcenaOcenaRynkowa: OcenaZagrozenieBakructwem: OcenaZagrozenia
RULE R9 IF OcenaEkonomiczna = "zły" ANDOcenaRynkowa = "zły" THEN ZagrozenieBakructwem = "wysokie" RULE R10 IF OcenaEkonomiczna = "zły" ANDOcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "niskie" RULE R11 IF OcenaEkonomiczna = "dobry" ANDOcenaRynkowa = "zły" THEN ZagrozenieBakructwem = "niskie" RULE R12 IF OcenaEkonomiczna = "dobry" ANDOcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "brak"
RULE R1 IF Zadluzenie = "zły" ANDRentownosc = "zły" THEN OcenaEkonomiczna = "zły" RULE R2 IF Zadluzenie = "zły" ANDRentownosc = "dobry" THEN OcenaEkonomiczna = "zły" RULE R3 IF Zadluzenie = "dobry" ANDRentownosc = "zły" THEN OcenaEkonomiczna = "dobry" RULE R4 IF Zadluzenie = "dobry" ANDRentownosc = "dobry" THEN OcenaEkonomiczna = "dobry"
RULE R5 IF AtrakcyjnoscOferty = "zły" ANDSytuacjaKonkurencyjna = "zły" THEN OcenaRynkowa = "zły" RULE R6 IF AtrakcyjnoscOferty = "zły" ANDSytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry" RULE R7 IF AtrakcyjnoscOferty = "dobry" ANDSytuacjaKonkurencyjna = "zły" THEN OcenaRynkowa = "zły" RULE R8 IF AtrakcyjnoscOferty = "dobry" ANDSytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry"
Wnioskowanie wprzód • Zaczynamy od faktu ‘Zadłużenie = zły’ • Szukamy odpowiednich reguł • Sprawdzamy, czy fakt ‘Rentownosc = zły’ RULE R1 IF Zadluzenie = "zły" ANDRentownosc = "zły" THEN OcenaEkonomiczna = "zły"
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" ANDRentownosc = "dobry" THEN OcenaEkonomiczna = "zły"
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
Wnioskowanie wprzód • Załóżmy, że jest to fakt ‘Rentowność = dobry’ • Wśród „niewykorzystanych” reguł poszukujemy odpowiedniej: RULE R4 IF Zadluzenie = "dobry" ANDRentownosc = "dobry" THEN OcenaEkonomiczna = "dobry"
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
Wnioskowanie wstecz • Stawiamy hipotezę, np. ‘ZagrożenieBankructwem = brak’ • Silnik szuka reguł, w których konkluzją jest taki fakt: RULE R12 IF OcenaEkonomiczna = "dobry" ANDOcenaRynkowa = "dobry" THEN ZagrozenieBakructwem = "brak"
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" ANDSytuacjaKonkurencyjna = "dobry" THEN OcenaRynkowa = "dobry"
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’
Dane jeżeli InneCechyMateriału_są_dobre i Wytrzymałość_jest_dobra wtedy Materiał_jest_dobry
Start i pierwsze kroki • Zakładamy, że wytrzymałość jest dobra • Szukamy wszystkich reguł, dla których zdanie jest przesłanką
Kolejne kroki • Analizujemy pierwszą regułę i ustalamy, że ustalenie jej wartości wymaga oceny zdania: InneCechyMateriału_są_dobre • Sprawdzamy, czy znamy wartość zdania • Jeżeli nie, przeszukujemy konkluzje wszystkich reguł poszukując zdania • Jeżeli nie znajdujemy reguły to po prostu pytamy o zdanie
Kolejne kroki • Załóżmy, że zdanie jest fałszywe • Zaznaczamy regułę jako odpaloną i powtarzamy, kroki 4, 5 i 6 dla kolejnej reguły • Jeżeli żadna reguła nie może być odpalona kończymy wnioskowanie • Załóżmy jednak że zdanie InneCechyMateriału_są_złe jest prawdziwe
Kolejne kroki • 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