next up previous contents
Next: ALFA Components Up: Active Logic for Agents Previous: Active Logic for Agents   Contents


ALFA--Active Logic For Agents--is a reasoner based on Alma/Carne with representations for beliefs, observations, desires, intentions, expectations and achievements. In general, an agent based on ALFA can have desires to perform concurrent actions or achieve concurrent results at different times.

For a UIA, the actions are: send commands to TOS, provide information to the user and update own knowledge base; the results are: readings from TOS and information from the user. The UIA actions listed in Section 1.3.9 correspond to performing these actions and receiving these results. In some cases, the results may directly map to the effect of an action, but that is not a necessary condition. In other words, the UIA can have desires to achieve results that are not effects of known action(s) [*].

ALFA transforms achievable desires to intentions and achievable intentions to actions. Actions may cause changes to different properties of domain objects and these properties need to be observed to determine whether the changes have been effective. For this, ALFA creates expectations regarding the new value of the property, and these expectations may then get transformed into desires to actually observe the value of that property. For instance, performing the action--turning the heater on--causes an expectation that the water temperature increases; this expectation causes a new desire to observe the water temperature. Thus, ALFA makes use of expectations to determine whether the action that the agent initiates produces the requisite outcome or result. Such expectations can act as desire creators by triggering the formation of desires to observe the result specified in an expectation.

Agents based on ALFA can have the following 6 broad categories of desires or intentions:

In ALFA, a desire for $ \theta$, where $ \theta$ is a set of either concurrent actions or simultaneous results, is represented as $ \desire(Id, Type, \theta, T_1, T_2)$. Here, $ Id$ distinguishes different desires and $ Type$ is a constant--$ act$, $ reAct$, $ get$ or $ reGet$--depending on whether $ \theta$ denotes a set of actions to be performed concurrently once, a set of actions to be repeatedly performed simultaneously, a set of results to be obtained together once or a set of results to be repeatedly obtained simultaneously, respectively. $ T_1$ and $ T_2$ denote the time period in which the actions are to be performed or the results need to be obtained. The different values that $ T_1$ and $ T_2$ can take include all non-negative integers. Intentions are represented likewise, as $ \intention(Id, Type, \theta, T_1, T_2)$, where the interpretation of the different variables is the same as that for desires. An expectation for a result $ \beta'$ is represented as $ \expectation(\beta', T_1, T_2)$, where the variables $ T_1$ and $ T_2$ together denote the time period in which an observation of $ \beta'$ is expected. Depending on the values of $ T_1$ and $ T_2$, a desire, intention or expectation can be associated with an interval (when $ T_1
\neq T_2$) or point in time (when $ T_1 = T_2$).

ALFA represents the last observed value $ Val$ of a property $ Prop$ of an object $ Obj$ as $ \observed(Obj, Prop, Val, T)$ where $ T$ denotes the time at which the last observation was obtained.

Preconditions for actions and results are represented as $ \precond(\kappa, \theta')$ where $ \theta'$ is either an action or a result and $ \kappa$ is either $ \posint(F)$ or $ \neg \posint(F)$, where $ F$ is any formula. By assigning $ \posint(\done(\alpha',ID))$ to $ \kappa$, it can be specified that the action $ \alpha'$ should precede $ \theta'$.

ALFA represents the effect of a set of concurrent actions $ \alpha$ as $ \effect(\alpha, \beta', \tau_1, \tau_2)$, where $ \beta'$ is either $ \has(Obj,Prop,Val)$ or $ \observation(Obj,Prop)$ depending on whether $ \alpha$ causes a change in the property of an object or an observation of a property of an object. $ \tau_1$ and $ \tau_2$ together specify the duration for which the result can be observed; that is, $ \beta'$ can be observed for $ \tau_2$ steps, starting $ \tau_1$ steps after the step at which the actions in $ \alpha$ have been invoked. The value, $ \tau_2 =0$, indicates that the effect persists.

ALFA represents opposing results and effects as $ \oppose(Obj, Prop, Val_1, Val_2)$ where $ Val_1$ and $ Val_2$ are two possible values for the property $ Prop$ of object $ Obj$ and $ Val_1$ opposes (has an opposing effect to) $ Val_2$. Examples of $ Val_1$ and $ Val_2$ are $ increase$ and $ decrease$.

ALFA marks desires and intentions as $ \achievable(N)$ or $ \false(\achievable(N))$ where $ N$ is the name of the desire formula or intention formula, based on whether the desire or intention is achievable or not. Only achievable desires get transformed to intentions; similarly, only achievable intentions[*] get transformed to actions. ALFA also marks achieved intentions as $ \achieved(Id, N)$ and achieved expectations as $ \achieved(N)$ so that they don't take part in further reasoning.

When ALFA has an intention to achieve a set of results, it notes a feasible set of concurrent actions that can cause each result as $ \feasible(Id, \beta', \alpha, \tau_1, \tau_2)$ where $ Id$ is a unique identifier that corresponds to the intention, $ \beta'$ is a result, $ \alpha$ is a set of concurrent actions that can produce $ \beta'$, $ \tau_1$ is the first time step after the actions are initiated when the result can be observed and $ \tau_2$ is the duration for which the result can be observed.

next up previous contents
Next: ALFA Components Up: Active Logic for Agents Previous: Active Logic for Agents   Contents
Darsana Josyula 2006-01-16