utility.endnode.intpol2d.create {utility}R Documentation

Construct a two-attribute interpolation end node

Description

Function to construct a two-attribute interpolation end node.

Usage

utility.endnode.intpol2d.create(name.node, 
                                name.attrib, 
                                ranges, 
                                isolines, 
                                u, 
                                names.u      = rep(NA, length(u)), 
                                lead         = 0, 
                                utility      = TRUE, 
                                required     = FALSE, 
                                col          = "black", 
                                shift.levels = 0)

Arguments

name.node

name of the node to be constructed as a character string.

name.attrib

names of the attributes on which the value or utility function depends as a vector of two character strings.

ranges

list of two numeric vectors with two components each specifying the minimum and the maximum of the range of the corresponding attribute.

isolines

list of isoline definitions. Each definition consists of a list with elements x and y that each represents a numeric vector of x- (=first attribute) and y- (second attribute) values to characterize the shape of the isoline.

u

numeric vector of the same length as the outer list of the argument isolines specifying the corresponding values or utilities.

names.u

(optional) vector of character strings with names of the components of the numeric vector u specified above. Only required to provide acces through a named parameter vector.

lead

numeric value specifying which variable is the lead variable for interpolation. 1 indicates linear interpolation between isolines along lines with constant value of the first attribute, 2 along lines with constant values of the second attribute, and zero indicates to take the average of these two interpolation schemes.

utility

(optional) logical variable indicating if a value function (FALSE) or a utility function (TRUE) is created. Default value is TRUE.

required

(optional) logical variable indicating if the value of this node is required for aggregation at the next higher level. If this variable is TRUE, aggregation at the next higher level is not possible if this node returns NA. Default value is FALSE.

col

(optional) color used for plotting the bounding box of the node in the objective hierarchy. Default value is "black".

shift.levels

(optional) number of hierarchical levels by which the node in the objective hierarchy is shifted to make a branch fit better to other branches. Default value is 0.

Value

The function returns the created object of type utility.endnode.intpol2d with the properties specified in the arguments of the function.

Author(s)

Peter Reichert <peter.reichert@emeriti.eawag.ch>

References

Short description of the package:

Reichert, P., Schuwirth, N. and Langhans, S., Constructing, evaluating and visualizing value and utility functions for decision support, Environmental Modelling & Software 46, 283-291, 2013.

Textbooks on the use of utility and value functions in decision analysis:

Keeney, R. L. and Raiffa, H. Decisions with Multiple Objectives - Preferences and Value Tradeoffs. John Wiley & Sons, 1976.

Eisenfuehr, F., Weber, M. and Langer, T., Rational Decision Making, Springer, Berlin, 2010.

See Also

Print, evaluate and plot the node with

print.utility.endnode.intpol2d,
summary.utility.endnode.intpol2d,
evaluate.utility.endnode.intpol2d and
plot.utility.endnode.intpol2d.

Create other end nodes with

utility.endnode.discrete.create,
utility.endnode.intpol1d.create,
utility.endnode.parfun1d.create,
utility.endnode.cond.create, or
utility.endnode.firstavail.create.

Create other types of nodes with

utility.aggregation.create,
utility.conversion.intpol.create, or
utility.conversion.parfun.create.

Examples

  riparzone_width <-
    utility.endnode.intpol2d.create(
      name.node   = "riparian zone width",
      name.attrib = c("riverbedwidth_m","riparianzonewidth_m"),
      ranges      = list(c(0,16),c(0,30)),
      isolines    = list(list(x=c(0,16),y=c(0,0)),
                         list(x=c(0,2,10,16),y=c(5,5,15,15)),
                         list(x=c(0,16),y=c(15,15)),
                         list(x=c(0,16),y=c(30,30))),
      u           = c(0.0,0.6,1.0,1.0),
      lead         = 1,
      utility      = FALSE)

  print(riparzone_width)
  plot(riparzone_width)

[Package utility version 1.4.6 Index]