Fluent (artificial intelligence)
Encyclopedia
In artificial intelligence
, a fluent is a condition that can change over time. In logical
approaches to reasoning about actions, fluents can be represented in first-order logic
by predicates having an argument that depends on time. For example, the condition “the box is on the table”, if it can change over time, cannot be represented by ; a third argument is necessary to the predicate to specify the time: means that the box is on the table at time . This representation of fluents is used in the situation calculus
using the sequence of the past actions in place of the current time.
A fluent can also be represented by a function, dropping the time argument. For example, that the box is on the table can be represented by , where is a function and not a predicate. Converting predicates as functions in first-order logic is called reification
; for this reason, fluents represented by functions are said to be reified. When using reified fluents, a separate predicate is necessary to tell when a fluent is actually true or not. For example, means that the box is actually on the table at time , where the predicate is the one that tells when fluents are true. This representation of fluents is used in the event calculus
, in the fluent calculus
, and in the features and fluents logics.
Some fluents can be represented as functions in a different way. For example, the position of a box can be represented by a function whose value is the object the box is standing on at time . Conditions that can be represented in this way are called functional fluents. Statements about the values of such functions can be given in first order logic with equality using literals such as . Some fluents are represented this way in the situation calculus
.
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...
, a fluent is a condition that can change over time. In logical
Logic
In philosophy, Logic is the formal systematic study of the principles of valid inference and correct reasoning. Logic is used in most intellectual activities, but is studied primarily in the disciplines of philosophy, mathematics, semantics, and computer science...
approaches to reasoning about actions, fluents can be represented in first-order logic
First-order logic
First-order logic is a formal logical system used in mathematics, philosophy, linguistics, and computer science. It goes by many names, including: first-order predicate calculus, the lower predicate calculus, quantification theory, and predicate logic...
by predicates having an argument that depends on time. For example, the condition “the box is on the table”, if it can change over time, cannot be represented by ; a third argument is necessary to the predicate to specify the time: means that the box is on the table at time . This representation of fluents is used in the situation calculus
Situation calculus
The situation calculus is a logic formalism designed for representing and reasoning about dynamical domains. It was first introduced by John McCarthy in 1963. The main version of the situational calculus that is presented in this article is based on that introduced by Ray Reiter in 1991...
using the sequence of the past actions in place of the current time.
A fluent can also be represented by a function, dropping the time argument. For example, that the box is on the table can be represented by , where is a function and not a predicate. Converting predicates as functions in first-order logic is called reification
Reification
Reification generally refers to bringing into being or turning concrete.Specifically, reification may refer to:*Reification , making a data model for a previously abstract concept...
; for this reason, fluents represented by functions are said to be reified. When using reified fluents, a separate predicate is necessary to tell when a fluent is actually true or not. For example, means that the box is actually on the table at time , where the predicate is the one that tells when fluents are true. This representation of fluents is used in the event calculus
Event calculus
The event calculus is a logical language for representing and reasoning about actions and their effects first presented by Robert Kowalski and Marek Sergot in 1986.It was extended by Murray Shanahan and Rob Miller in the 1990s....
, in the fluent calculus
Fluent calculus
The fluent calculus is a formalism for expressing dynamical domains in first-order logic. It is a variant of the situation calculus; the main difference is that situations are considered representations of states. A binary function symbol \circ is used to concatenate the terms that represent facts...
, and in the features and fluents logics.
Some fluents can be represented as functions in a different way. For example, the position of a box can be represented by a function whose value is the object the box is standing on at time . Conditions that can be represented in this way are called functional fluents. Statements about the values of such functions can be given in first order logic with equality using literals such as . Some fluents are represented this way in the situation calculus
Situation calculus
The situation calculus is a logic formalism designed for representing and reasoning about dynamical domains. It was first introduced by John McCarthy in 1963. The main version of the situational calculus that is presented in this article is based on that introduced by Ray Reiter in 1991...
.
See also
- Event calculusEvent calculusThe event calculus is a logical language for representing and reasoning about actions and their effects first presented by Robert Kowalski and Marek Sergot in 1986.It was extended by Murray Shanahan and Rob Miller in the 1990s....
- Fluent calculusFluent calculusThe fluent calculus is a formalism for expressing dynamical domains in first-order logic. It is a variant of the situation calculus; the main difference is that situations are considered representations of states. A binary function symbol \circ is used to concatenate the terms that represent facts...
- Frame problemFrame problemIn artificial intelligence, the frame problem was initially formulated as the problem of expressing a dynamical domain in logic without explicitly specifying which conditions are not affected by an action. John McCarthy and Patrick J. Hayes defined this problem in their 1969 article, Some...
- Situation calculusSituation calculusThe situation calculus is a logic formalism designed for representing and reasoning about dynamical domains. It was first introduced by John McCarthy in 1963. The main version of the situational calculus that is presented in this article is based on that introduced by Ray Reiter in 1991...