Logiczni agenci
Transkrypt
Logiczni agenci
Logiczni agenci (4g) Wykład 10 i 11 Logiczni agenci w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 261 / 302 Logiczni agenci (4g) Logiczni agenci agenci oparci na wiedzy rachunek zdań dowodzenie w rachunku zdań agenci oparci na rachunku zdań P. Kobylański Wprowadzenie do Sztucznej Inteligencji 262 / 302 Logiczni agenci (4g) Logiczni agenci 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 Logiczni agenci (4g) Logiczni agenci 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 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy function KB-AGENT(percept) returns an action persistent: KB, a knowledge base t, a counter, initially 0, indicating time TELL(KB, MAKE-PERCEPT-SENTENCE(percept, t)) action ASK(KB, MAKE-ACTION-QUERY(t)) TELL(KB, MAKE-ACTION-SENTENCE(action, t)) t t +1 return action P. Kobylański Wprowadzenie do Sztucznej Inteligencji 265 / 302 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy Example (Świat Wumpusa) 4 Stench Bree z e PIT PIT Bree z e Bree z e 3 Stench Gold 2 Bree z e Stench Bree z e 1 PIT Bree z e 3 4 START 1 P. Kobylański 2 Wprowadzenie do Sztucznej Inteligencji 266 / 302 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy Example (Świat Wumpusa cd.) miara efektywności: +1000 za wyjście z jaskini ze złotem, 1000 za wpadnięcie do dziury lub bycie zjedzonym przez Wumpusa, 1 za każdą akcję, 10 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 [1, 1] 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 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy Example (Świat Wumpusa cd.) efektory: agent może poruszać się wykonując akcje Forward, 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 [1, 1]. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 268 / 302 Logiczni agenci (4g) Logiczni agenci 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 Breeze (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 w całej jaskini. 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, Breeze, None, None, None]. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 269 / 302 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy Example (Świat Wumpusa cd.) 1,4 2,4 3,4 4,4 1,3 2,3 3,3 4,3 1,2 2,2 3,2 4,2 A B G OK P S V W = Agent = Breeze = Glitter, Gold = Safe square = Pit = Stench = Visited = Wumpus 1,4 2,4 3,4 4,4 1,3 2,3 3,3 4,3 1,2 2,2 3,2 4,2 P? OK OK 1,1 2,1 3,1 4,1 1,1 2,1 A OK V OK OK 3,1 P? 4,1 (b) (a) P. Kobylański A B OK Wprowadzenie do Sztucznej Inteligencji 270 / 302 Logiczni agenci (4g) Logiczni agenci Agenci oparci na wiedzy Example (Świat Wumpusa cd.) 1,4 1,3 1,2 2,4 W! A 3,3 4,3 2,2 3,2 4,2 A B G OK P S V W = Agent = Breeze = Glitter, Gold = Safe square = Pit = Stench = Visited = Wumpus 1,4 3,1 B V OK P! 4,1 2,4 4,4 1,3 W! 2,3 3,3 P? 4,3 1,2 2,2 3,2 4,2 S V OK 1,1 A S G B V OK 2,1 V OK B V OK 3,1 P! 4,1 (b) (a) P. Kobylański 3,4 P? OK 2,1 V OK 4,4 2,3 S OK 1,1 3,4 Wprowadzenie do Sztucznej Inteligencji 271 / 302 Logiczni agenci (4g) Logiczni agenci 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 = 1 formalnie „możliwe światy” będziemy nazywać modelami jeśli formuła ↵ jest prawdziwa w modelu m, to mówimy, że m spełnia ↵, lub czasami, że m jest modelem dla ↵ symbolem M(↵) będziemy zapisywać zbiór wszystkich modeli formuły ↵ P. Kobylański Wprowadzenie do Sztucznej Inteligencji 272 / 302 Logiczni agenci (4g) Logiczni agenci 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: ↵ |= P. Kobylański iff M(↵) ✓ M( ) Wprowadzenie do Sztucznej Inteligencji 273 / 302 Logiczni agenci (4g) Logiczni agenci Logika Example (Świat Wumpusa cd.) Załóżmy, że agent nic nie zaobserwował na polu [1, 1], natomiast na polu [2, 1] poczuł powiew. Niech ↵1 = „Nie ma dziury na polu [1, 2]” ↵2 = „Nie ma dziury na polu [2, 2]” P. Kobylański Wprowadzenie do Sztucznej Inteligencji 274 / 302 Logiczni agenci (4g) Logiczni agenci Logika Example (Świat Wumpusa cd.) PIT 2 PIT 2 2 2 Breez e 1 Breez e 1 2 3 2 3 KB α1 KB 2 1 1 1 Breez e PIT 2 3 1 1 1 2 PIT PIT 2 3 2 2 PIT 1 Breez e 1 Breez e PIT 2 3 KB |= ↵1 PIT PIT 2 3 2 PIT PIT 1 2 PIT Breez e 1 PIT 3 1 1 P. Kobylański 2 Breez e 3 PIT PIT 1 1 2 Breez e 1 2 1 3 1 2 PIT 2 3 PIT Breez e Breez e 1 3 1 1 PIT Breez e 1 2 3 2 Breez e 1 2 2 3 2 Breez e 1 2 PIT 2 2 1 α2 PIT PIT PIT 2 Breez e 1 1 1 Breez e 1 PIT 2 3 3 1 1 Breez e PIT 2 3 KB 6|= ↵2 Wprowadzenie do Sztucznej Inteligencji 275 / 302 Logiczni agenci (4g) Logiczni agenci Logika Example (Świat Wumpusa cd.) nie ma dziury w [1, 2], ponieważ KB |= ↵1 (w każdym modelu, w którym KB jest prawdziwe, ↵1 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 Logiczni agenci (4g) Logiczni agenci 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 Logiczni agenci (4g) Logiczni agenci Logika Sentences Aspects of the real world P. Kobylański Follows Semantics World Semantics Representation Entails Sentence Aspect of the real world Wprowadzenie do Sztucznej Inteligencji 278 / 302 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań 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 ↵ ⌘ dla dowolnych formuł ↵ i , ↵ |= jest prawdziwa gdy ↵ |= i |= ↵ wtedy i tylko wtedy, gdy (↵ ) można sprawdzić czy ↵ |= sprawdzając wszystkie 2n 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 , ↵ |= nie jest spełnialna P. Kobylański wtedy i tylko wtedy, gdy (↵ ^ ¬ ) Wprowadzenie do Sztucznej Inteligencji 279 / 302 Logiczni agenci (4g) Logiczni agenci 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: A1 _ · · · _ Ai 1 _ P _ Ai+1 _ · · · _ Am B1 _ · · · _ Bj A1 _ · · · _ Ai 1 _ Ai+1 _ · · · _ Am _ B1 _ · · · _ Bj _ ¬P _ Bj+1 _ · · · _ Bn 1 _ Bj+1 _ · · · _ Bn 1 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 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań: algorytm rezolucji function PL-RESOLUTION(KB, ↵) returns true or false inputs KB, the knowledge base, a sentence in propositional logic ↵, the query, a sentence in propositional logic clauses the set of clauses in the CNF representation of KB ^ ¬↵ new {} loop do for each pair of clauses Ci , Cj in clauses do resolvents PL-RESOLVE(Ci , Cj ) 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 281 / 302 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań: algorytm rezolucji Example (Świat Wumpusa cd.) Pi,j = na polu [i, j] jest dziura, Bi,j = na polu odczuwa się powiew Rezolucyjny wywód, że KB |= ¬P1,2 : ¬B1,1 ^ ¬P2,1 P2,1 ^ ^ ^ ^ P. Kobylański P2,1 B1,1 P1,2 ^ P1,2 ¬P1,2 P2,1 P2,1 Wprowadzenie do Sztucznej Inteligencji ¬B1,1 B1,1 ^ ^ B1,1 ^ P1,2 ^ ^ ¬B1,1 ¬B1,1 P1,2 B1,1 ^ ¬P2,1 ¬P1,2 ¬P2,1 P1,2 ¬P1,2 282 / 302 Logiczni agenci (4g) Logiczni agenci 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 (1962) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 283 / 302 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań: algorytm DPLL function DPLL-SATISFIABLE?(s) returns true or false inputs s, a sentence in propositional logic clauses the set of clauses in the CNF representation of s symbols a list of the proposition symbols in s return DPLL(clauses, symbols, {}) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 284 / 302 Logiczni agenci (4g) Logiczni agenci 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 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań: lokalne poszukiwanie function WALK-SAT(clauses, p, max_flips) returns a satisfying model or failure inputs clauses, a set of clauses in propositional logic p, the probability of choosing to do a "random walk" move, typically around 0.5 max_flips, number of flips allowed before giving up model a random assignment of true/false to the symbols in clauses for i = 1 to max_flips do if model satisfies clauses then return model clause a randomly selected from clauses 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 Logiczni agenci (4g) Logiczni agenci Dowodzenie w rachunku zdań: lokalne poszukiwanie P. Kobylański Wprowadzenie do Sztucznej Inteligencji 287 / 302 Logiczni agenci (4g) Logiczni agenci Runtime Dowodzenie w rachunku zdań: lokalne poszukiwanie 2000 1800 1600 1400 1200 1000 800 600 400 200 0 DPLL WalkSAT 0 1 2 3 4 5 6 7 8 Clause/symbol ratio m/n P. Kobylański Wprowadzenie do Sztucznej Inteligencji 288 / 302 Logiczni agenci (4g) Logiczni agenci Agenci oparci na rachunku zdań Example (Świat Wumpusa cd.) Tworzymy następujące zdania rachunku zdań: Init 0 zbiór zdań opisujących stan początkowy Transition1 , . . . , Transitiont 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 Logiczni agenci (4g) Logiczni agenci Agenci oparci na rachunku zdań function SAT-PLAN(init, transition, goal, Tmax ) returns solution or failure inputs init, transition, goal, constitue a description of the problem Tmax , an upper limit for plan length for t = 0 to Tmax 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