290 likes | 405 Views
Kalkul událostí (Event Calculus). Prezentaci vypracovala: Martina Číhalová. Úvod:. Formalismy pro reprezentaci akcí a jejich důsledků, využívány v databázových aplikacích. Účel: rozhodování o provedení akce na základě znalosti důsledků akcí. Kalkul událostí (event calculus)
E N D
Kalkul událostí(Event Calculus) Prezentaci vypracovala: Martina Číhalová
Úvod: • Formalismy pro reprezentaci akcí a jejich důsledků, využívány v databázových aplikacích. • Účel: rozhodování o provedení akce na základě znalosti důsledků akcí. • Kalkul událostí (event calculus) • Situační kalkul (situation calculus)
Kalkul událostí(Event calculus) • Poprvé uvedl: Robert Kowalski, Marek Sergot v roce 1986 • Rozšíření: Murray Shanah, Rob Miller 90 léta 20. stol.
Kalkul událostí(Event calculus) • Umožňuje časovou projekci, predikci - řešení deduktivních úloh • Umožňuje časovou explanaci, postdikci - řešení abduktivních úloh • Hledání teorie pro důsledky akcí - řešení induktivních úloh (učení)
Kalkul událostíÚvod • Umožňuje reprezentaci následujících typů akcí: • Akce s nepřímými důsledky • Akce s nedeterministickými důsledky • Složené akce • Souběžné akce • Nepřetržitá změna(?)
Kalkul událostí Formalismus • Založen na predikátové logice prvního řádu • Speciální predikátové a funkční symboly • Množina axiomů vymezující požadovaný model
Kalkul událostí Základní proměnné • AKCE (ACTIONS (EVENTS)) • STAVY (FLUENTS) - pro representaci propozic, které se mění v čase; lze specifikovat jejich hodnotu pro určitý časový okamžik • ČASOVÉ OKAMŽIKY (TIME POINTS)
Kalkul událostí Predikáty • Pomocí příslušných predikátů vyjadřujeme: • Podmínku „co se stane, když“ • Počáteční podmínku • Důsledky (účinky) akcí • Platnost stavu (fluent) v příslušných časových okamžicích
Kalkul událostí Fluents Účinky akcí jsou dány pomocí predikátů: • INITIATES: jestliže je vykonána akce vyjádřená termem av čase t, pak stav (fluent) bude po čase t pravdivý • TERMINATES:jestliže je vykonána akce vyjádřená termem av čase t, pak stav (fluent) bude po čase t nepravdivý
Kalkul událostí Axiomy • (InitiallyP(f) Clipped(0,f,t)) HoldsAt(f,t) (SC1) • Happens(a,t1) Initiates(a,f,t1) t1 t2 Clipped(t1,f,t2) HoldsAt (f,t2) (SC2) • a,t Happens(a,t) t1 t t2 Terminates(a,f,t) Clipped(t1,f,t2) (SC3)
Kalkul událostí Axiomy Dle výchozích axiomů (SC1, SC2) neplatí stav (fluent) v čase akce, která ho iniciovala, ale platí v čase akce, která ho ukončuje. Tedy intervaly, které vyjadřují časovou platnost stavu (fluent) jsou zleva otevřené a zprava ostré.
Problém rámce(frame problem) • Technický problém umělé inteligence, spočívá v logice. • Formulován v r. 1969 Mc Carthym a Hayem (tzv. Yale shooting scenario) • Jde o problém toho, jak vyjádřit důsledky akcí, aniž by muselo být explicitně specifikováno, které stavy(fluents) nejsou příslušnou akcí ovlivněny.
Rámcový problém Yale Shooting scenario • Tři možné akce: nabít, odjistit, vystřelit • Tři možné stavy (fluents) : nabito, živý, mrtvý • Důsledkem akce nabít je stav nabito • Důsledkem akce vystřelit je stav mrtvý • Akce odjistit nemá žádný důsledek • Scénář se skládá z akce nabít, následované akcí odjistit,následované akcí vystřelit
Rámcový problém Yale Shooting scenario • Formální specifikace: • Initiates(Load,Loaded,t)(Y1.1) • HoldsAt(Loaded,t) Initiates(Shoot,Dead,t) (Y1.2) • HoldsAt(Loaded,t) Terminates(Shoot,Alive,t) (Y1.3)
Rámcový problém Yale Shooting scenario • InitiallyP(Alive) (Y2.1) • Happens(Load,T1)(Y2.2) • Happens(Sneeze,T2)(Y2.3) • Happens(Shoot,T3)(Y2.4) • T1 T2 (Y2.5) • T2 T3 (Y2.6) • T3 T4 (Y2.7)
Rámcový problém Yale Shooting scenario • …konjunkce (Y1.1) až (Y1.3) • …konjunkce (Y2.1) až (Y2.7) • Tedy mělo by platit následující: • SC l= HoldsAt(Dead,T4)
Rámcový problém Yale Shooting scenario • Tento úsudek je však neplatný! • Neboť jsme explicitně neuvedli stavy, které nejsoudůsledkem příslušných akcí • Neboť nejsme například schopni říci, zda akce odjistit nezpůsobí to, že zbraň přestane být nabitá
Rámcový problém Yale Shooting scenario • Existuje model formulí SC, v němž: • Terminates(Sneeze,Loaded,T2) je pravdivé • Holds(Alive,T4) je pravdivé • HoldsAt(DeadT4) je nepravdivé • Tedy je nutné zavedením dalších pravidel zohlednit další okolnosti, pokud chceme, aby závěr z předpokladů opravdu vyplýval.
Rámcový problém Řešení rámcového problému • Využitím nemonotónního formalismu, např. defaultní logiky (možnost vyjádření faktů typu: „něco je defaultně považováno za pravdivé“) (Reiter,1980) • Pomocí specifikace (McCarthy 1980), formalizace takzvaného common sense law of inertia(stav (fluent) je považován za stále platný, dokud není důvod věřit, že je tomu jinak)
Kalkul událostí Plná verze: axiomy • InitiallyP(f) Clipped(0,f,t) HoldsAt(f,t) (EC1) • Happens(a,t1,t2) Initiates(a,f,t2) t2 t3 Clipped(t1,f,t3) HoldsAt(f,t3) (EC2) • a,t1,t3 Happens(a,t1,t3) t1 t3 t2 t4 Terminates(a,f,t2) Releases (a,f,t2) Clipped(t1,f,t4) (EC3)
Kalkul událostí Plná verze: axiomy • InitiallyN(f) Declipped(0,f,t) HoldsAt(f,t) (EC4) • Happens(a,t1,t2) Teminates(a,f,t1) t2<t3 Declipped(t1,f,t3) HoldsAt(f,t3) (EC5) • a,t2,t3Happens(a,t2,t3) t1<t3 t2<t4 Initiates(a,f,t2) Releases(a,f,t2) Declipped(t1,f,t4) (EC6) • Happens(a,t1,t2) t1 t2 (EC7)
Situační kalkul • Jde o logický formalismus navržený pro reprezentaci znalostí a rozhodování nad dynamickými doménami. • Využívá predikátovou logiku druhého řádu. • Představen roku 1963 J. McCarthym. • Jeho základní verzi vyvinul roku 1991 Ray Reiter.
Situační kalkul:základní prvky • Akce (Actions) • Stavy (Fluents) • Situace (Situations): konečné sekvence akcí • Objekty (Objects): (cokoliv co není akce, nebo situace)
Situační kalkul Axiomy • Axiomy udávajícípodmínkypříslušných akcí, jeden pro každou akci • Axiomy udávající následníka stavu, jedenpro každýstav(fluent) • Axiomypopisujícísvětv různých situacích • Základní axiomysituačního kalkulu
Situační kalkul Základní prvky • Jde o kalkul nad doménou tří typů entitních sort: • Akce, situace, objekty • Stavy (fluents)jsoumodeloványpomocí predikátůnebofunkcí. • Spec. Predikát pro vyjádření toho, že je akce proveditelná Poss(action)
Situační kalkul Příklady formalizace • do(a,S) (akce) • is_carrying(o,S) (stav) • is_carrying(Ball,S0) • is_carrying(Ball,do(pickup(Ball),S0)) situace
Situační kalkul Příklad formalizace • Poss(pickup(o),S) (zis_carrying(z,S)) heavy(o) • Akci zvednout objekt v situaci S je možné provést jen tehdy a tehdy, když pro všechny objekty platí stav, že nejsou neseny v situaci S a nejsou těžké.