SourceForge - Download, Develop and Publish Free Open ...



Purpose: This document describes the operation and mechanism of the new Local Probability Distribution (LPD) in MEBN for a user and developer.

Authors: Cheol Young Park, Shou Matsumoto.

Date: 03/23/2013

Index

1. Introduction 1

2. Process of LPD operation 1

2.1. Discrete LPD operation 1

2.2. Continuous LPD operation 8

3. Mechanism of LPD 11

4. Conclusion 14

Introduction

The Local Probability Distribution (LPD) specifies numerical probability information for resident random variables of an MFrag. It is a kind of function which should represent Probability Distribution. The LPD in MEBN provides discrete and continuous Probability Distribution, so a user should know the different operation of the LPD in MEBN. Also, we have developed the new LPD which can be performed for the continuous resident node. The chapter 2 introduces the operation. And the chapter 3 describes the mechanism of LPD.

Process of LPD operation

1. Discrete LPD operation

To manipulate LPD, first of all, at least one resident node is created. To understand the operation easily, we will use “VehicleIdentification.ubf” file which is located in “plugins\unbbayes.prs.mebn-1.11.9\examples”. Once the file is opened, click “ImageTypeReport_MFrag”. Following describes how to use LPD. (This example is based on Window O/S).

1) Select a resident node in order to open the LPD panel. And click the “Edit table” button [pic].

[pic]

2) Following figure shows the LPD panel.

[pic]

There is the “Nodes” panel which shows current and parent nodes.

There is “States” panel which shows the list of the possible states of a selected node.

There is “Arguments” panel which shows arguments of the selected node.

There are “LPD Grammar” buttons [pic].

There is the Text field as the LPD edit panel as which is empty firstly.

3) Click “if any” or “if all” button.

[pic]

By choosing “any”, the sentence “if any paramSubSet have ( booleanFunction )” will be automatically inserted to the editor panel. It basically states that if there is at least one instance of a parent satisfying the statement at “booleanFunction”, then the probability distribution declared within the next block of pseudocode (delimited by square brackets) will be adopted by the algorithm. We will talk about each of them later.

Similarly, by choosing “all”, the sentence “if all paramSubSet have ( booleanFunction )” will be automatically inserted. In this case, the probability distribution declared in the next block of code will only be used if all the parents satisfy “booleanFunction”.

4) Click “else” button.

[pic]

The if-else block can be put in cascade, so that complex LPD may be created using multiple levels of if-else clauses. For instance, the following LPD is valid:

if any obj have ( ObjectType = Tracked ) [

if any rgn have ( Weather = Clear ) [

Tracked = .8, Wheeled = .15, NonVehicle = .05

] else [ Tracked = .6, Wheeled = .3, NonVehicle = .1]

] else if any obj have ( ObjectType = Wheeled ) [

if any rgn have ( Weather = Clear ) [

Tracked = .1, Wheeled = .8, NonVehicle = .1

] else [Tracked = .2, Wheeled = .6, NonVehicle = .2]

] else [

if any rgn have ( Weather = Clear ) [

Tracked = .05, Wheeled = .05, NonVehicle = .9

] else [ Tracked = .15, Wheeled = .15, NonVehicle = .7 ]

]

Note that an “else” is mandatory after an if, so the number of occurrences of “if” should match the occurrences of “else”.

5) Click “paramSubSet” on the LPD edit panel and make it highlight. And click “ObjectType” on the “Nodes” panel. And double click “obj” on the “Arguments” panel.

[pic]

The “paramSubSet” has a special purpose, and it is basically used for restricting “booleanFunction” and/or enabling the CARDINALITY function in the probability distribution block (the one delimited by square brackets). It is a dot-separated list of ordinary variables.

6) Click “booleanFunction” on the LPD edit panel and make it highlight.

[pic]

And click “equal operator” button[pic]. And click “Node” on the LPD edit panel and make it highlight. And click “ObjectType” on the “Nodes” panel.

[pic]

7) Click “NodeState” on the LPD edit panel and make it highlight. And click “Tracked” on the “States” panel.

[pic]

The “booleanFunction” (the block being edited now) will only consider the parents containing all the ordinary variables in “paramSubSet” as arguments, except those whose types are entities marked as “ordered”. For example, if “paramSubSet” is “x.y” (a list containing ordinary variables “x” and “y”), and the parents are Res1(x), Res2(x,y), Res3(x,y,t), and Res(y) (assuming that the ordinary variable “t” is marked as “ordered” in UnBBayes), then any boolean sentence in “booleanFunction” will return false if it is NOT using Res2(x,y) or Res3(x,y,t) – because these are the only parents using both “x” and “y” simultaneously, if we do not consider the ordered variable “t”.

The “booleanFunction”, as the name suggest, represents an boolean expression. If the expression returns true, then It can be composed by:

• “&” - this is the boolean AND operation, and it returns true if both operands are true;

• “|” - this is the boolean OR operation, and it returns true if one of the operand are true;

• “~” - this is the boolean NOT operation, and it returns true if the operand is false;

• “Node = State” - it means that the actual state of “Node” (which is a node) is “State” (which is a state).

Complex boolean expressions can be created by combining the operators, using parenthesis to explicitly specify the order of the operations.

After the “( booleanFunction )”, a square-bracket block specifies the probability distribution of each state of the current node. Basically, it is a comma-separated list of probability attributions following the format “ = ”. Expression can be composed by a combination of numeric values and operations (it is recommended to write fully-parenthesized expressions). The following list summarizes the possible operations for numeric expressions:

• “MAX” - a binary operator which returns the highest of the two operands, and it is useful for creating a lower bound for the probability;

• “MIN” - a binary operator which returns the lowest of the two operands, and it is useful for creating a upper bound for the probability (e.g. 1.0);

• +,-,*,/ - the well known add, subtract, multiply, and divide operations;

• “” - the probability of a state can be declared as a function of another state, just by writing the name of a previously declared state in the expression (it will be substituted by its actual probability);

• “CARD” - a special function which returns the quantity (count, or cardinality) of possible COMBINATIONS of parent nodes (please, notice that this is not the number of parents) which satisfies the conditions in “booleanFunction”. This is useful for creating a distribution which may vary depending on the set (actually, a combination) of parents in a specific situation. In a normal LPD, this function is used with MAX and MIN to limit the probability values. Its only parameter must be a “paramSubSet” (i.e. a dot-separated list of ordinary variables), which identifies which “if” we are considering in a cascaded if-else situation.

It is supposed to specify the probability distribution for all states in a bracket-separated block. States not described in the bracket-block will be considered to have 0% (i.e. equivalent to “State = 0”).

8) As same manner, we put “MIN( .9, CARDINALITY( obj ) ),” and “1-(Trackedd + NonVehicle)” as following figure.

[pic]

9) Click “Compile” button [pic] in order to check LPD grammar.

[pic]

In our example case, it generates an error as the above figure. “>73 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download