Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Frame problem
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Event calculus solution=== The [[event calculus]] uses terms for representing fluents, like the fluent calculus, but also has one or more axioms constraining the value of fluents, like the successor state axioms. There are many variants of the event calculus, but one of the simplest and most useful employs a single axiom to represent the law of inertia: :<math>\mathit{holdsAt}(F,T2) \leftarrow</math> :<math>[\mathit{happensAt}(E1,T1) \wedge \mathit{initiates}(E1, F, T1) \wedge (T1 < T2) \wedge </math> :<math>\neg \exists E2, T [\mathit{happensAt}(E2, T) \wedge \mathit{terminates}(E2, F, T) \wedge (T1 \leq T < T2)] </math> The axiom states that a fluent <math>F</math> holds at a time <math>T2</math>, if an event <math>E1</math> happens and initiates <math>F</math> at an earlier time <math>T1</math>, and there is no event <math>E2</math> that happens and terminates <math>F</math> after or at the same time as <math>T1</math> and before <math>T2</math>. To apply the event calculus to a particular problem domain, it is necessary to define the <math>initiates</math> and <math>terminates</math> predicates for that domain. For example: :<math>\mathit{initiates}(opendoor, open, T). </math> :<math>\mathit{terminates}(opendoor, closed, T). </math> :<math>\mathit{initiates}(closedoor, closed, T). </math> :<math>\mathit{terminates}(closeddoor, open, T). </math> To apply the event calculus to a particular problem in the domain, it is necessary to specify the events that happen in the context of the problem. For example: : <math>\mathit{happensAt}(opendoor, 0)</math>. : <math>\mathit{happensAt}(closedoor, 3)</math>. To solve a problem, such as ''which fluents hold at time 5?'', it is necessary to pose the problem as a goal, such as: :<math> \exists Fluent [\mathit{holdsAt(Fluent, 5)}]. </math> In this case, obtaining the unique solution: :<math>Fluent = closed. </math> The event calculus solves the frame problem, eliminating undesired solutions, by using a [[non-monotonic logic]], such as first-order logic with [[Circumscription (logic)|circumscription]]<ref>Shanahan, M. (1997) ''[https://books.google.com/books?id=z8zR3Ds7xKQC Solving the frame problem: A mathematical investigation of the common sense law of inertia]''. MIT Press.</ref> or by treating the event calculus as a [[logic programming|logic program]] using [[negation as failure]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)