Don't take unnecessary risks! Keep your DPL Support plan current.

Find out more about DPL software's history -- one that spans over 20 years

Meet the folks behind the DPL Software

Discover opportunities at Syncopation Software

DPL 9 Help

Specifying the Use of a Utility Function (DPL Code)

Specifying the Use of a Utility Function (DPL Code)

DPL allows you to represent a decision maker's attitude toward risk by one or more utility functions. DPL selects the best alternative for each decision that follows a utility function in the event sequence (or decision tree) based on expected utilities instead of expected values.

DPL provides two ways to define a utility function: One produces an exponential utility function, and the other lets you define any function and its inverse. You can specify multiple utility functions in the same sequence section. Each specification applies only to the subtree below it, and each specification overrides any specification higher in the tree.

The Built-in Utility Function

The expression for DPL's built-in exponential utility function is -exp(-V/T),
where V is a value and T is the risk tolerance coefficient. To use it, you only
need to specify the decision maker's risk tolerance coefficient.

use tolerance 100

The following program uses the built-in exponential utility function; the risk tolerance coefficient is defined as a value called RiskTolerance.

The expression for the risk tolerance coefficient cannot contain values that depend on events. Also, this expression cannot contain the state function. Because the specification occurred at the beginning of the sequence section, it applies to the entire tree.

User-Defined Utility Functions

You can define your own utility function for converting values into utiles. If you do so, you must also define the inverse utility function for converting utiles to values.

The expressions for the utility function and inverse utility function use a dollar sign ($) to represent the arguments of these functions. For example, the following defines a utility function that is equivalent to the built-in exponential utility function.

use utility -exp(-$/RiskTolerance),-RiskTolerance*log(-$)

The expressions for the utility function and inverse utility function cannot contain values that depend on events. Also, these expressions cannot contain the state function.

The following program is equivalent to the previous one, except it defines a utility function and its inverse with the keyword utility.