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