Wykład 10 i 11. Logiczni agenci. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach. Logiczni agenci (4g)

Podobne dokumenty
SID Wykład 5 Wnioskowanie w rachunku zdań

wykład 6 Agent wnioskujący oparty o logikę dr inż. Joanna Kołodziejczyk Zakład Sztucznej Inteligencji ISZiMM

Świat Wumpusa (Wumpus world)

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Reprezentowanie wiedzy Logika a reprezentacji wiedzy Rachunek zdań Literatura. Systemy ekspertowe. Wykład 2 Reprezentacja wiedzy Rachunek zdań

Systemy ekspertowe. Wykład 2 Reprezentacja wiedzy Rachunek zdań. Joanna Kołodziejczyk. Joanna Kołodziejczyk Systemy ekspertowe / 41

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Złożoność obliczeniowa

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Podstawy Sztucznej Inteligencji (PSZT)

Wprowadzenie do Sztucznej Inteligencji

Metoda Tablic Semantycznych

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

Adam Meissner SZTUCZNA INTELIGENCJA Problem spełnialności (SAT)

Logika pragmatyczna dla inżynierów

Internet Semantyczny i Logika I

III rok kognitywistyki UAM,

Logika Matematyczna (10)

Konsekwencja logiczna

Adam Meissner.

Matematyka ETId Elementy logiki

LOGIKA Klasyczny Rachunek Zdań

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

Metody Sztucznej Inteligencji (studia inżynierskie)

Lekcja 3: Elementy logiki - Rachunek zdań

Elementy logiki matematycznej

Jak wnioskują maszyny?

Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Algorytm wspinaczkowy dla zadania k-sat

Programowanie deklaratywne i logika obliczeniowa

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

4 Klasyczny rachunek zdań

Rachunek zdań i predykatów

ROZDZIAŁ 1. Rachunek funkcyjny

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy Sztucznej Inteligencji (PSZT)

Kultura logiczna Klasyczny rachunek zdań 2/2

1. Składnia. Logika obliczeniowa - zadania 1 SKŁADNIA Teoria

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Przykłady zdań w matematyce. Jeśli a 2 + b 2 = c 2, to trójkąt o bokach długości a, b, c jest prostokątny (a, b, c oznaczają dane liczby dodatnie),

Logika rachunek zdań

Inteligencja obliczeniowa Laboratorium 2: Algorytmy genetyczne

Wykład 4: Klasy i Metody

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Ziemia obraca się wokół Księżyca, bo posiadając odpowiednią wiedzę można stwierdzić, czy są prawdziwe, czy fałszywe. Zdaniami nie są wypowiedzi:

Wstęp do Techniki Cyfrowej... Algebra Boole a

LOGIKA I TEORIA ZBIORÓW

Rachunek zdań. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Visual Basic for Application (VBA)

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Budowa i generowanie planszy

Rachunek logiczny. 1. Język rachunku logicznego.

III rok kognitywistyki UAM,

Podstawy programowania skrót z wykładów:

Bloki anonimowe w PL/SQL

Cw.12 JAVAScript w dokumentach HTML

Podstawy Programowania Podstawowa składnia języka C++

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

Sztuczna Inteligencja i Systemy Doradcze

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Podstawowe Pojęcia. Semantyczne KRZ

Zasada rozszerzania. A U A jest zbiorem rozmytym, B jest obrazem zbioru A Przeniesienie rozmytości A w odwzorowaniu f na zbiór B. sup.

Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbior

Logika rachunek zdań

Reguły gry zaliczenie przedmiotu wymaga zdania dwóch testów, z logiki (za ok. 5 tygodni) i z filozofii (w sesji); warunkiem koniecznym podejścia do

Sztuczna Inteligencja i Systemy Doradcze

Programowanie w Logice Przykłady programów. Przemysław Kobylański

Wstęp do Programowania potok funkcyjny

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

Adam Meissner STUCZNA INTELIGENCJA

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

LOGIKA MATEMATYCZNA WYKŁAD 10: METODA REZOLUCJI W KRZ (20XII2007) II. 10. Dowody rezolucyjne w KRZ Przypomnienia i kilka definicji

Reprezentacja wiedzy i wnioskowanie

Programowanie logiczne a negacja

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe

Modelowanie Niepewności

Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.

I. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych.

Na podstawie: AIMA, ch13. Wojciech Jaśkowski. 15 marca 2013

Kiedy i czy konieczne?

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

SID Wykład 7 Zbiory rozmyte

Wstęp do programowania

Transkrypt:

Wykład 0 i w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 26 / 302

agenci oparci na wiedzy rachunek zdań dowodzenie w rachunku zdań agenci oparci na rachunku zdań P. Kobylański Wprowadzenie do Sztucznej Inteligencji 262 / 302

Agenci oparci na wiedzy baza wiedzy (KB, knowledge base) jest zbiorem zdań zdania są wyrażone w języku reprezentacji wiedzy operacja TELL dodaje do bazy nowe zdanie operacja ASK zadaje pytanie do bazy o to co jest znane obie powyższe operacje mogą korzystać z wnioskowania (inference), które wyprowadza nowe zdania ze starych baza wiedzy jest inicjowana wiedzą początkową (background knowledge) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 263 / 302

Agenci oparci na wiedzy funkcja MAKE-PERCEPT-SENTENCE tworzy zdanie wyrażające, że agent zaobserwował daną obserwację w danej chwili funkcja MAKE-ACTION-QUERY tworzy zdanie będące zapytaniem o to jaką akcję powinien agent wykonać w danej chwili funkcja MAKE-ACTION-SENTENCE tworzy zdanie wyrażające, którą akcję agent wykonał P. Kobylański Wprowadzenie do Sztucznej Inteligencji 264 / 302

Agenci oparci na wiedzy function KB-AGENT(percept) returns an action persistent: KB, a knowledge base t, acounter,initially0,indicatingtime TELL(KB, MAKE-PERCEPT-SENTENCE(percept, t)) action ASK(KB, MAKE-ACTION-QUERY(t)) TELL(KB, MAKE-ACTION-SENTENCE(action, t)) t t + return action P. Kobylański Wprowadzenie do Sztucznej Inteligencji 265 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa) 4 Stench Breez e PIT Breez e 3 Stench PIT Breez e Gold 2 Stench Breez e Breez e PIT Breez e START 2 3 4 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 266 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa cd.) miara efektywności: +000 za wyjście z jaskini ze złotem, 000 za wpadnięcie do dziury lub bycie zjedzonym przez Wumpusa, za każdą akcję, 0 za użycie strzały (gra kończy się kiedy agent ginie lub wychodzi z jaskini ze złotem) środowisko: plansza będąca siatką4 4 kwadratowych pól, agent zawsze rozpoczyna na pozycji [, ] patrząc się w prawo, położenie złota i Wumpusa jest wybrane losowo z jednostajnym prawdopodobieństwem spośród innych pól niż początkowe, każde pole inne niż startowe może być dziurą z ppb. 0.2 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 267 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa cd.) efektory: agentmożeporuszaćsięwykonującakcjeforward, TurnLeft o 90 stopni, TurnRight o 90 stopni. Agent ginie jeśli wejdzie na pole zawierające dziurę lub żywego Wumpusa (nie ginie się gdy wejdzie się na pole z martwym Wumpusem). Jeśli agent idzie do przodu poza planszę odbija się od ściany i nie przesuwa. Akcja Grab może być użyta do podniesienia złota jeśli znajduje się ono na tym samym polu co agent. Akcja Shoot polega na wystrzeleniu strzały, która porusza się w kierunku, którym patrzy agent i albo dociera do ściany albo zabija na swej drodze Wumpusa (agent ma tylko jedną strzałę). Akcja Climb może być użyta do wyjścia z jaskini ale tylko z pola [, ]. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 268 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa cd.) sensory: agent wyposażony jest w pięć sensorów, które dają po jednym bicie informacji: Jeśli kwadrat na którym jest Wumpus, znajduje się na jednym z sąsiednich pól, to agent odczuwa Stench (smród) Jeśli pole sąsiaduje z dziurą, to agent odczuwa (powiew). Jeśli na polu znajduje się złoto, to agent obserwuje Glitter (błysk). Jeśli agent wszedł na ścianę, to agent doświadcza Bump (bum). Jeśli agent trafił strzałą Wumpusa, to słyszy Scream (krzyk) słyszalny wcałejjaskini. Obserwacja jest wektorem pięciu informacji z pięciu czujników. Jeśli np. czuć smród, czuć powiew, nie ma błysku, nie ma odbicia od ściany, nie ma krzyku, to program otrzymuje wektor [Stench,, None, None, None]. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 269 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa cd.),4 2,4 3,4 4,4,3 2,3 3,3 4,3,2 2,2 3,2 4,2 OK, 2, 3, 4, A OK OK (a) A = Agent B = G = Glitter, Gold OK = Safe square P = Pit S = Stench V = Visited W = Wumpus,4 2,4 3,4 4,4,3 2,3 3,3 4,3,2 2,2 P? 3,2 4,2 OK, 2, A 3, P? 4, V B OK OK (b) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 270 / 302

Agenci oparci na wiedzy Example (Świat Wumpusa cd.),4 2,4 3,4 4,4,3 W! 2,3 3,3 4,3,2 A 2,2 3,2 4,2 S OK OK, 2, B 3, P! 4, V V OK OK (a) A = Agent B = G = Glitter, Gold OK = Safe square P = Pit S = Stench V = Visited W = Wumpus,4 2,4 P? 3,4 4,4,3 W! 2,3 A 3,3 P? 4,3 S G B,2 S 2,2 3,2 4,2 V V OK OK, 2, B 3, P! 4, V V OK OK (b) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 27 / 302

Logika składnia definiuje poprawną postać zdań z bazy wiedzy semantyka przypisuje zdaniom znaczenie semantyka przypisuje zdaniu wartość logiczną w każdym z możliwych światów dla przykładu zdanie x + y = 4 jest prawdziwe w świecie, w którym x = y = 2 ale jest fałszywe w świecie, w którym x = 2, y = formalnie możliwe światy będziemy nazywać modelami jeśli formuła jest prawdziwa w modelu m, tomówimy,żem spełnia, lubczasami,żem jest modelem dla symbolem M( ) będziemy zapisywać zbiór wszystkich modeli formuły P. Kobylański Wprowadzenie do Sztucznej Inteligencji 272 / 302

Logika między formułami może zachodzić relacja logicznego wynikania (entailment), którą zapisywać będziemy = logiczne wynikanie definiujemy w ten sposób, że = wtedy i tylko wtedy, gdy w każdy modelu, w którym jest prawdziwe, jest również prawdziwe: = iff M( ) M( ) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 273 / 302

Logika Example (Świat Wumpusa cd.) Załóżmy, że agent nic nie zaobserwował na polu [, ], natomiastna polu [2, ] poczuł powiew. Niech = Nie ma dziury na polu [, 2] 2 = Nie ma dziury na polu [2, 2] P. Kobylański Wprowadzenie do Sztucznej Inteligencji 274 / 302

Logika Example (Świat Wumpusa cd.) 2 2 PIT 2 2 PIT PIT KB α 2 3 2 3 KB PIT 2 3 2 3 α 2 2 PIT 2 2 PIT 2 PIT 2 2 PIT 2 3 2 3 PIT 2 3 2 3 2 3 PIT 2 3 2 PIT 2 PIT PIT 2 PIT 2 PIT PIT PIT 2 PIT PIT 2 3 PIT 2 PIT PIT 2 3 2 3 2 3 PIT PIT 2 3 2 3 KB = KB 6 = 2 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 275 / 302

Logika Example (Świat Wumpusa cd.) nie ma dziury w [, 2], ponieważkb = (w każdym modelu, w którym KB jest prawdziwe, jest również prawdziwe) nie można na tym etapie rozstrzygnąć czy jest dziura w [2, 2], ponieważ KB 6 = 2 (nie można również na tym etapie dowieść, że jest w [2, 2] dziura) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 276 / 302

Logika generowanie wszystkich możliwych modeli celem sprawdzenia logicznego wynikania nazywa się weryfikacją modelową (model checking) sprawdzenie logicznego wynikania można dokonać procedurą, która wyprowadza (derives) formułę ze zbioru założeń gdy algorytm wyprowadzania i może wyprowadzić z KB, to zapisywać będziemy: KB `i co czytamy jest wyprowadzone z KB przez i lub i wyprowadza z KB algorytm wyprowadzający jest poprawny (sound) jeśli wyprowadza tylko formuły logicznie wynikające algorytm wyprowadzający jest pełny (complete) jeśli wyprowadza każdą formułę logicznie wynikającą P. Kobylański Wprowadzenie do Sztucznej Inteligencji 277 / 302

Logika Representation World Sentences Semantics Entails Sentence Semantics Aspects of the real world Follows Aspect of the real world P. Kobylański Wprowadzenie do Sztucznej Inteligencji 278 / 302

Dowodzenie w rachunku zdań (4g) model to przypisanie każdej zmiennej zdaniowej stałych prawda lub fałsz formuła jest prawdziwa gdy jest spełniona przez każdy model dwie formuły są logicznie równoważne gdy = i = dla dowolnych formuł i, = wtedy i tylko wtedy, gdy ( ) jest prawdziwa można sprawdzić czy = sprawdzając wszystkie 2 n przypisania stałych logicznych n zmiennym zdaniowym z tych formuł mówimy, że formuła jest spełnialna gdy jest spełniona przez przynajmniej jeden model dla dowolnych formuł i, = wtedy i tylko wtedy, gdy ( ^ ) nie jest spełnialna P. Kobylański Wprowadzenie do Sztucznej Inteligencji 279 / 302

(4g) Dowodzenie w rachunku zdań: algorytm rezolucji formuła jest w postaci koniunkcyjnej-normalnej (CNF) gdy jest koniunkcją klauzul klauzula jest alternatywą literałów literał jest zmienną zdaniową lub jej negacją rezolwenta: A _ _A i _ P _ A i+ _ _A m B _ _B j _ P _ B j+ _ _B n A _ _A i _ A i+ _ _A m _ B _ _B j _ B j+ _ _B n klauzula pusta jest zdegenerowaną alternatywą niezawierającą żadnego literału klauzula pusta nie jest spełniona przez żaden model P. Kobylański Wprowadzenie do Sztucznej Inteligencji 280 / 302

(4g) Dowodzenie w rachunku zdań: algorytm rezolucji function PL-RESOLUTION(KB, ) returns true or false inputs KB, the knowledge base, a sentence in propositional logic, thequery,asentenceinpropositionallogic clauses the set of clauses in the CNF representation of KB ^ new {} loop do for each pair of clauses C i, C j in clauses do resolvents PL-RESOLVE(C i, C j ) if resolvents contains the empty clause then return true new new [ resolvents if new clauses then return false clauses clauses [ new P. Kobylański Wprowadzenie do Sztucznej Inteligencji 28 / 302

(4g) Dowodzenie w rachunku zdań: algorytm rezolucji Example (Świat Wumpusa cd.) P i,j =napolu[i, j] jest dziura, B i,j =napoluodczuwasiępowiew Rezolucyjny wywód, że KB = P,2 : P 2, B, B, P,2 P 2, P,2 B, B, P,2 ^ ^ ^ ^ B, P,2 B, ^ ^ P,2 P 2, P 2, B, P 2, B, P,2 P 2, P,2 ^ ^ ^ ^ ^ ^ P 2, P,2 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 282 / 302

(4g) Dowodzenie w rachunku zdań: algorytm DPLL czysty symbol (pure symbol) jest zmienna zdaniowa, która w każdej klauzuli występuje z tym samym znakiem (wszędzie jest zanegowana albo wszędzie nie jest zanegowana) klauzula jednostkowa (unit clause) to klauzula zawierająca dokładnie jeden literał DPLL algorytm w wersji Davisa, Putnama, Logermanna i Lovelanda (962) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 283 / 302

(4g) Dowodzenie w rachunku zdań: algorytm DPLL function DPLL-SATISFIABLE?(s) returns true or false inputs s, asentenceinpropositionallogic clauses the set of clauses in the CNF representation of s symbols alistofthepropositionsymbolsins return DPLL(clauses, symbols, {}) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 284 / 302

(4g) Dowodzenie w rachunku zdań: algorytm DPLL function DPLL(clauses, symbols, model) returns true or false if every clause in clauses is true in model then return true if some clause in clause is false in model then return false P, value FIND-PURE-SYMBOL(symbols, clauses, model) if P is non-null then return DPLL(clauses, symbols P, model [{P = value}) P, value FIND-UNIT-CLAUSE(symbols, clauses, model) if P is non-null then return DPLL(clauses, symbols P, model [{P = value}) P FIRST(symbols); rest REST(symbols) return DPLL(clauses, rest, model [{P = true}) or DPLL(clauses, rest, model [{P = false}) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 285 / 302

(4g) Dowodzenie w rachunku zdań: lokalne poszukiwanie function WALK-SAT(clauses, p, max_flips) returns asatisfyingmodelorfailure inputs clauses, asetofclausesinpropositionallogic p, the probability of choosing to do a "random walk" move, typically around 0.5 max_flips, numberofflipsallowedbeforegivingup model arandomassignmentoftrue/false to the symbols in clauses for i = to max_flips do if model satisfies clauses then return model clause arandomlyselectedfromclauses that is false in model with probability p flip the value in model of a randomly selected symbol from clause else flip whichever symbol in clause maximizes the number if satisfied clauses return failure P. Kobylański Wprowadzenie do Sztucznej Inteligencji 286 / 302

(4g) Dowodzenie w rachunku zdań: lokalne poszukiwanie P. Kobylański Wprowadzenie do Sztucznej Inteligencji 287 / 302

(4g) Dowodzenie w rachunku zdań: lokalne poszukiwanie Runtime 2000 800 600 400 200 000 800 600 400 200 0 DPLL WalkSAT 0 2 3 4 5 6 7 8 Clause/symbol ratio m/n P. Kobylański Wprowadzenie do Sztucznej Inteligencji 288 / 302

Agenci oparci na rachunku zdań (4g) Example (Świat Wumpusa cd.) Tworzymy następujące zdania rachunku zdań: Init 0 zbiór zdań opisujących stan początkowy Transition,...,Transition t opisy wszystkich możliwych przejść w każdej chwili czasu do t HaveGold t ^ ClimbedOut t osiągnięcie celu w chwili t P. Kobylański Wprowadzenie do Sztucznej Inteligencji 289 / 302

Agenci oparci na rachunku zdań (4g) function SAT-PLAN(init, transition, goal, T max ) returns solution or failure inputs init, transition, goal, constitueadescriptionoftheproblem T max,anupperlimitforplanlength for t = 0 to T max do cnf TRANSLATE-TO-SAT(init, transition, goal, t) model SAT-SOLVER(cnf ) if model is not null then return EXTRACT-SOLUTION(model) return failure P. Kobylański Wprowadzenie do Sztucznej Inteligencji 290 / 302