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

Podobne dokumenty