Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Situation Calculus: Fundamentals and Applications
Situation Calculus: Fundamentals and Applications
Situation Calculus: Fundamentals and Applications
Ebook169 pages2 hours

Situation Calculus: Fundamentals and Applications

Rating: 0 out of 5 stars

()

Read preview

About this ebook

What Is Situation Calculus


A logic formalism known as the situation calculus has been developed for the purpose of expressing and reasoning about dynamical domains. John McCarthy was the one who initially proposed it back in 1963. This article's primary presentation of the situational calculus is primarily based on a model that was initially presented by Ray Reiter in the year 1991. After that comes some information regarding McCarthy's revised version from 1986 as well as a logic programming approach.


How You Will Benefit


(I) Insights, and validations about the following topics:


Chapter 1: Situation Calculus


Chapter 2: First-order Logic


Chapter 3: Frame Problem


Chapter 4: Propositional Calculus


Chapter 5: Fluent (artificial intelligence)


Chapter 6: Event Calculus


Chapter 7: Fluent Calculus


Chapter 8: Resolution (logic)


Chapter 9: Circumscription (logic)


Chapter 10: Yale Shooting Problem


(II) Answering the public top questions about situation calculus.


(III) Real world examples for the usage of situation calculus in many fields.


(IV) 17 appendices to explain, briefly, 266 emerging technologies in each industry to have 360-degree full understanding of situation calculus' technologies.


Who This Book Is For


Professionals, undergraduate and graduate students, enthusiasts, hobbyists, and those who want to go beyond basic knowledge or information for any kind of situation calculus.

LanguageEnglish
Release dateJun 30, 2023
Situation Calculus: Fundamentals and Applications

Related to Situation Calculus

Titles in the series (100)

View More

Related ebooks

Intelligence (AI) & Semantics For You

View More

Related articles

Reviews for Situation Calculus

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Situation Calculus - Fouad Sabry

    Chapter 1: Situation calculus

    A logic framework created for representing and discussing dynamical domains is called the scenario calculus. John McCarthy originally mentioned it in 1963. The situational calculus that is provided in this article is primarily based on Ray Reiter's 1991 invention. It is followed by sections that discuss McCarthy's 1986 version and a formulation for logic programming.

    The situation calculus uses a collection of first-order logic formulae to express changing scenarios. The fundamental components of calculus are:

    The things that are possible to do in the world

    The world's current status is described in eloquent terms.

    The situations

    A number of equations are used to formalize a domain, including:

    Preconditions for each action, one for each action

    Axioms of succession for each fluent

    Axioms that describe the world in different circumstances

    The situation calculus's guiding principles

    As a running example, a basic robot environment will be modeled.

    There is only one robot and various inanimate items in this universe.

    The world is laid out according to a grid so that locations can be specified in terms of (x,y) coordinate points.

    The robot could travel anywhere in the world, and to pick up and dispense objects.

    Certain objects can be too heavy for the robot to lift, or weak to the point where they crumble when dumped.

    The robot can also fix any damaged objects that it is holding.

    The actions, fluents, and situations make up the scenario calculus' essential components. Additionally, the description of the world frequently includes a number of objects. The objects category includes everything that is not an action or a situation. The scenario calculus is built on a sorted domain with three sorts: actions, situations, and objects. Each type of variable is usable. Despite the fact that objects, situations, and actions are domain constituents, the fluents are modeled as either predicates or functions.

    The behavior is sort of the domain.

    You can utilize sort action variables.

    Actions may be measured.

    In the hypothetical robot world, possible action terms would be move(x,y) to model the robot moving to a new location (x,y) , and pickup(o) to model the robot picking up an object o.

    When an action is executable, it is indicated by a unique predicate called Poss.

    A dynamic world is depicted in the scenario calculus as moving through a sequence of situations as a result of various activities taken within the world. A circumstance is a timeline of events that have taken place. Contrary to the literal meaning of the term and contrary to the original definition by McCarthy and Hayes, a situation does not reflect a state in the Reiter version of the scenario calculus that is discussed here. Reiter's summary of this idea is as follows::

    A circumstance is a limited set of possible outcomes. Period. It is a history rather than a condition or a moment in time.

    The situation before any actions have been performed is typically denoted S_{0} and called the initial situation.

    The function symbol do is used to indicate the new circumstance that results from the performance of an action (Some other references also use result).

    The arguments for this function symbol are a situation and an action, and a resultant circumstance, the latter being the outcome of taking the first action in the first circumstance.

    The fact that situations are sequences of actions and not states is enforced by an axiom stating that do(a,s) is equal to do(a',s') if and only if a=a' and s=s' .

    If situations were states, then this condition would be absurd, as the same condition can emerge from two separate acts carried out in two different states.

    In the hypothetical robot world, if the robot's first action is to move to location (2,3) , the first action is move(2,3) and the resulting situation is do(move(2,3),S_{{0}}) .

    If it decides to pick up the ball as its next move, the resulting situation is

    do(pickup(Ball),do(move(2,3),S_{{0}}))

    .

    Situations terms like do(move(2,3),S_{{0}}) and

    do(pickup(Ball),do(move(2,3),S_{{0}}))

    denote the sequences of executed actions, instead of the description of the condition produced by execution.

    Relational fluents, which take a scenario as their final argument, model statements whose truth value may vary. Functional fluents, functions that accept a scenario as their final parameter and return a situation-dependent value, are another possibility. One could consider fluents to be properties of the world..

    In this instance, the fluent {\displaystyle {\textit {isCarrying}}(o,s)} can be used to indicate that the robot is carrying a particular object in a particular situation.

    if the robot doesn't have any initial cargo, {\displaystyle {\textit {isCarrying}}(Ball,S_{0})} is false while

    {\displaystyle {\textit {isCarrying}}(Ball,do(pickup(Ball),S_{0}))}

    is true.

    The location of the robot can be modeled using a functional fluent location(s) which returns the location (x,y) of the robot in a particular situation.

    Three different types of formulae—formulae about actions (preconditions and effects), formulae about the state of the world, and foundational axioms—are used to encode the description of a dynamic world in second order logics.

    In some circumstances, certain acts might not be possible to carry out.

    For example, Nothing can be put down until one is actually carrying it.

    The restrictions on the performance of actions are modeled by literals of the form {\displaystyle {\textit {Poss}}(a,s)} , where action an is, s a situation, Poss is a unique binary predicate that indicates the executability of actions.

    In this instance, Modeling the property that losing an object is only conceivable when carrying it:

    {\displaystyle {\textit {Poss}}(drop(o),s)\leftrightarrow {\textit {isCarrying}}(o,s)}

    The next models illustrate a more complicated case where the robot can only carry one object at a time and some objects are too heavy for the robot to lift (indicated by the predicate heavy):

    {\displaystyle {\textit {Poss}}(pickup(o),s)\leftrightarrow (\forall z\ \neg {\textit {isCarrying}}(z,s))\wedge \neg heavy(o)}

    Certain that an action is conceivable in a given circumstance, one must describe how the action will impact the fluents. The impact axioms achieve this. For instance, it is possible to describe how picking up an object affects the robot to carry it:

    {\displaystyle Poss(pickup(o),s)\rightarrow {\textit {isCarrying}}(o,do(pickup(o),s))}

    Additionally, conditional effects, or effects that are contingent on the current state, can be specified. The following illustrates how dropping some things can cause them to break because they are fragile (as indicated by the predicate fragile) (indicated by the fluent broken):

    Poss(drop(o),s)\wedge fragile(o)\rightarrow broken(o,do(drop(o),s))

    Despite the fact that this formula accurately captures the outcome of the activities, the frame issue prevents it from accurately capturing the action in logic.

    The aforementioned formulae appear to be appropriate for deducing the effects of actions, but they have a serious flaw in that they cannot be utilized to determine the non-effects of acts. For instance, it is not possible to infer that the robot's location stays the same after picking up an object. A frame axiom, sometimes known as a formula like:

    Poss(pickup(o),s)\wedge location(s)=(x,y)\rightarrow location(do(pickup(o),s))=(x,y)

    The frame problem, or the requirement to establish frame axioms, has long been acknowledged as a challenge in axiomatizing dynamic worlds. Due to the fact that there are typically many such axioms, it is quite simple for the designer to fail to include a crucial frame axiom or to amend all pertinent axioms when a modification to the world description is made.

    The situation calculus frame problem is solved by the successor state axioms.

    The following solution, The designer must list all the possible ways to alter the value of a specific fluent as effect axioms.

    The effect axioms affecting the value of fluent F(\overrightarrow {x},s) can be written in generalised form as a positive and a negative effect axiom:

    Poss(a,s)\wedge \gamma _{{F}}^{{+}}(\overrightarrow {x},a,s)\rightarrow F(\overrightarrow {x},do(a,s))Poss(a,s)\wedge \gamma _{{F}}^{{-}}(\overrightarrow {x},a,s)\rightarrow \neg F(\overrightarrow {x},do(a,s))

    The formula \gamma _{{F}}^{{+}} describes the conditions under which action a in situation s makes the fluent F become true in the successor situation do(a,s) .

    Likewise, \gamma _{{F}}^{{-}} describes the conditions under which performing action a in situation s makes fluent F false in the successor situation.

    This pair of axioms can be expressed as a single axiom if they encompass all the ways that fluent F can change value:

    Poss(a,s)\rightarrow \left[F(\overrightarrow {x},do(a,s))\leftrightarrow \gamma _{{F}}^{{+}}(\overrightarrow {x},a,s)\vee \left(F(\overrightarrow {x},s)\wedge \neg \gamma _{{F}}^{{-}}(\overrightarrow {x},a,s)\right)\right]

    In words, Given that doing action an in situation s is possible, this formula reads:, the fluent F would be true in the resulting situation do(a,s) if and only if performing a in s would make it true, Or else, doing an in s would not render it untrue because it is true in s.

    By way of illustration, the following successor state axiom provides the value of the fluent broken presented earlier:

    Poss(a,s)\rightarrow \left[broken(o,do(a,s))\leftrightarrow a=drop(o)\wedge fragile(o)\vee broken(o,s)\wedge a\neq repair(o)\right]

    Simply specifying the attributes of the initial state or any other condition as equations will allow them to be stated.

    For example, a fact about the initial state is formalized by making assertions about S_{{0}} (which is not a state, but a circumstance).

    The sentences that follow demonstrate initially, The robot has no cargo, is at location (0,0) , and there are no damaged items:

    {\displaystyle \forall z\,\neg {\textit {isCarrying}}(z,S_{0})}location(S_{{0}})=(0,0)\,\forall o\,\neg broken(o,S_{{0}})

    The foundational axioms of the situation calculus formalize the idea that situations are histories by having

    {\displaystyle do(a,s)=do(a',s')\iff a=a'\land s=s'}

    .

    They also contain other characteristics, including the second order induction on circumstances.

    Regression is a technique for demonstrating the situation's effects. calculus.

    It is based on expressing a formula containing the situation do(a,s) in terms of a formula containing the action a and the situation s, but not the situation do(a,s) .

    By repeating this action, One may arrive at an equivalent formula that simply includes the starting point. S 0.

    According to this formula, proving consequences is easier than using the original approach.

    GOLOG is a situation-based logic programming language. calculus.

    The interpretation of situations is where McCarthy and Hayes' initial situation calculus and the one currently in use diverge. A circumstance is a series of acts in the contemporary formulation of the situational calculus. Situations were initially described as the total state of the universe at a moment in time. The goal was merely to offer basic comments about situations and draw conclusions from them because it was immediately obvious that such situations could not be fully described. This differs from the fluent calculus approach, which views a state as a possible imperfect representation of the universe made up of a collection of known facts.

    In the scenario calculus' initial iteration, Fluents do not become reified.

    Alternatively put, Predicates, not functions, reflect situations that can change.

    Actually, According to McCarthy and Hayes, a fluent function is one that changes based on the circumstances, however they then went on to always represent fluents with predicates.

    For example, the fact that it is raining at place x in the situation s is represented by the literal raining(x,s) .

    McCarthy's scenario calculus, published in 1986, Functional fluency is employed.

    For example, the position of an object x

    Enjoying the preview?
    Page 1 of 1