negmas.preferences Package

Models basic types of utility functions.

Utility functions are at the core of negotiation. Agents engage in negotiations with the goal of maximizing some utility function. In most cases, these utility functions are assumed to be known a-periori and static for the duration of a single negotiations.

Notes

We try to allow for applications that do not necessary have these two assumptions in the following ways:

  • A utility_function value (Value) can always represent represent a utility_function distribution over all possible utility_function values (Distribution) or a KnownValue which is a real number.

  • The base class of all utility_function functions is UtilityFunction and is assumed to map outcomes (Outcome objects) to the aforementioned generic utility values (Value objects).

  • Utility functions can be constructed using any Callable which makes it possible to construct them so that they change depending on the context or the progression of the negotiation.

Functions

pareto_frontier(ufuns[, outcomes, issues, ...])

Finds all pareto-optimal outcomes in the list.

pareto_frontier_of(points[, eps, ...])

Finds the pareto-frontier of a set of utils (i.e. utility values).

pareto_frontier_bf(points[, eps, ...])

rtype:

ndarray

pareto_frontier_active(points[, eps, ...])

Finds the pareto-frontier of a set of points.

nash_points(ufuns, frontier[, ranges, ...])

Calculates all the Nash Bargaining Solutions on the Pareto frontier of a negotiation.

kalai_points(ufuns, frontier[, ranges, ...])

Calculates the all Kalai bargaining solutions on the Pareto frontier of a negotiation which is the most Egaliterian solution ref: Kalai, Ehud (1977).

max_welfare_points(ufuns, frontier[, ...])

Calculates all the points with maximum relative welfare (i.e. sum of improvements above reserved value) on the Pareto frontier of a negotiation.

max_relative_welfare_points(ufuns, frontier)

Calculates all the points with maximum relative welfare (i.e. sum of improvements above reserved value) on the Pareto frontier of a negotiation.

make_discounted_ufun(ufun[, cost_per_round, ...])

rtype:

DiscountedUtilityFunction | UFunType

scale_max(ufun[, to, outcome_space, issues, ...])

Normalizes a utility function to the given range.

normalize(ufun[, to, outcome_space, issues, ...])

Normalizes a utility function to the given range.

sample_outcome_with_utility(ufun, rng[, ...])

Gets one outcome within the given utility range or None on failure.

extreme_outcomes(ufun[, outcome_space, ...])

Finds the best and worst outcomes.

minmax(ufun[, outcome_space, issues, ...])

Finds the range of the given utility function for the given outcomes.

conflict_level(u1, u2, outcomes[, max_tests])

Finds the conflict level in these two ufuns.

opposition_level(ufuns[, max_utils, ...])

Finds the opposition level of the two ufuns defined as the minimum distance to outcome (1, 1)

winwin_level(u1, u2, outcomes[, max_tests])

Finds the win-win level in these two ufuns.

get_ranks(ufun, outcomes[, normalize])

rtype:

list[float] | NDArray[np.floating[Any]]

distance_to(w, p)

rtype:

float

distance_between(w, n)

rtype:

float

calc_outcome_distances(utils, stats)

rtype:

OutcomeDistances

calc_scenario_stats(ufuns[, outcomes, eps])

rtype:

ScenarioStats

sort_by_utility(ufun[, outcomes, ...])

Returns an ordered list of utility values and outcomes for the given ufun

calc_reserved_value(ufun[, fraction, nmin, ...])

Calculates a reserved value that keeps the given fraction of outcomes (saturated between nmin and nmax).

dominating_points(utils, points)

Tests whether the given point in utility space is dominated by any in the given points (eps is the tolerance).

make_fun_from_xml(item)

rtype:

tuple[BaseFun, str]

Classes

Distribution(*args, **kwargs)

A protocol representing a probability distribution

VolatileUFunMixin()

Indicates that the ufun is volatile

SessionDependentUFunMixin()

Indicates that the ufun is session-dependent (i.e. utility value of outcomes depend on the NMI).

StateDependentUFunMixin()

Indicates that the ufun is state-dependent (i.e. utility value of outcomes depend on the mechanism state).

StationaryMixin()

Indicates that the ufun is stationary which means that it is not session or state dependent and not volatile.

BasePref(*args, **kwargs)

Base Protcol for all preferences in NegMAS.

Ordinal(*args, **kwargs)

Can be ordered (at least partially)

CardinalProb(*args, **kwargs)

Differences between outcomes are meaningfull but probabilistic.

CardinalCrisp(*args, **kwargs)

Differences between outcomes are meaningfull and crisp (i.e. real numbers).

UFun(*args, **kwargs)

Can be called to map an Outcome to a Distribution or a float

UFunProb(*args, **kwargs)

Can be called to map an Outcome to a Distribution

UFunCrisp(*args, **kwargs)

Can be called to map an Outcome to a float

OrdinalRanking(*args, **kwargs)

Outcomes can be ranked.

CardinalRanking(*args, **kwargs)

Implements ranking of outcomes with meaningful differences (i.e. each rank is given a value and nearer values are more similar).

HasReservedOutcome(*args, **kwargs)

In case of disagreement, the value of reserved_outcome will be received by the entity

HasReservedValue(*args, **kwargs)

In case of disagreement, reserved_value will be received by the entity

HasReservedDistribution(*args, **kwargs)

In case of disagreement, a value sampled from reserved_distribution will be received by the entity

Randomizable(*args, **kwargs)

Random Preferences of this type can be created using a random method

Scalable(*args, **kwargs)

Can be scaled by a constant amount (i.e. utility values are all multiplied by this amount).

Shiftable(*args, **kwargs)

Can be shifted by a constant amount (i.e. utility values are all shifted by this amount).

PartiallyShiftable(*args, **kwargs)

Can be shifted by a constant amount for a specific part of the outcome space

PartiallyScalable(*args, **kwargs)

Can be scaled by a constant amount for a specific part of the outcome space

Normalizable(*args, **kwargs)

Can be normalized to a given range of values (default is 0-1)

HasRange(*args, **kwargs)

Has a defined range of utility values (a minimum and a maximum) and defined best and worst outcomes

InverseUFun(*args, **kwargs)

Can be used to get one or more outcomes at a given range

IndIssues(*args, **kwargs)

The utility value depends on each Issue value through a value function that does not depend on any other issue.

XmlSerializableUFun(*args, **kwargs)

Can be serialized to XML format (compatible with GENIUS)

SingleIssueFun(*args, **kwargs)

A value function mapping values from a single issue to a real number

MultiIssueFun(*args, **kwargs)

A value function mapping values from multiple issues to a real number

Preferences(*args[, outcome_space, issues, ...])

Base class for all preferences.

BaseUtilityFunction(*args[, reserved_value])

Base class for all utility functions in negmas

UtilityFunction(*args[, reserved_value])

Base for all crisp ufuns

ProbUtilityFunction(*args[, reserved_value])

A probablistic utility function.

PresortingInverseUtilityFunction(ufun[, ...])

A utility function inverter that uses pre-sorting.

SamplingInverseUtilityFunction(ufun[, ...])

A utility function inverter that uses sampling.

LinDiscountedUFun(ufun[, cost, factor, ...])

A utility function with linear discounting based on some factor of the negotiation

ExpDiscountedUFun(ufun[, discount, factor, ...])

A discounted utility function based on some factor of the negotiation

DiscountedUtilityFunction(ufun, **kwargs)

Base class for all discounted ufuns

ConstUtilityFunction(value, *[, reserved_value])

A utility function that returns the same value for all outcomes.

LinearUtilityAggregationFunction

alias of LinearAdditiveUtilityFunction

LinearAdditiveUtilityFunction(values[, ...])

A linear aggregation utility function for multi-issue negotiations.

LinearUtilityFunction([weights])

A special case of the AffineUtilityFunciton for which the bias is zero.

AffineUtilityFunction([weights, bias])

An affine utility function for multi-issue negotiations.

MappingUtilityFunction(mapping[, default])

Outcome mapping utility function.

NonLinearAggregationUtilityFunction(values, ...)

A nonlinear utility function.

HyperRectangleUtilityFunction(...[, ...])

A utility function defined as a set of hyper-volumes.

NonlinearHyperRectangleUtilityFunction(...)

A utility function defined as a set of outcome_ranges.

RandomUtilityFunction([rng])

A random utility function for a discrete outcome space

RankOnlyUtilityFunction(ufun[, ...])

A utility function that keeps trak of outcome order onlyself.

ProbMappingUtilityFunction(mapping[, default])

Outcome mapping utility function.

IPUtilityFunction(outcomes[, distributions, ...])

Independent Probabilistic Utility Function.

ILSUtilityFunction(type, loc, scale, *args, ...)

A utility function which represents the loc and scale deviations as any crisp ufun

UniformUtilityFunction(loc, scale, *args, ...)

A utility function which represents the loc and scale deviations as any crisp ufun

ProbRandomUtilityFunction([locs, scales, types])

A random utility function for a discrete outcome space

ScenarioStats(opposition, utility_ranges, ...)

OutcomeDistances(pareto_dist, nash_dist, ...)

OutcomeOptimality(pareto_optimality, ...)

WeightedUtilityFunction(ufuns[, weights])

A utility function composed of linear aggregation of other utility functions

ComplexNonlinearUtilityFunction(ufuns, ...)

A utility function composed of nonlinear aggregation of other utility functions

ConstFun(bias)

IdentityFun()

AffineFun(slope[, bias])

LinearFun(slope)

TriangularFun(start, middle, end[, bias])

LambdaFun(f[, bias, min_value, max_value])

PolynomialFun(coefficients[, bias])

QuadraticFun(a2, a1[, bias])

ExponentialFun(tau[, bias, base])

LogFun(tau[, bias, base, scale])

SinFun([multiplier, bias, phase, amplitude])

CosFun([multiplier, bias, phase, amplitude])

TableFun(mapping)

TableMultiFun(mapping)

AffineMultiFun(slope[, bias])

LinearMultiFun(slope)

LambdaMultiFun(f[, bias, min_value, max_value])

Class Inheritance Diagram

digraph inheritance832bb91d4a { bgcolor=transparent; fontsize=11; randkir=TB; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "AffineFun" [URL="../api/negmas.preferences.AffineFun.html#negmas.preferences.AffineFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "AffineFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AffineMultiFun" [URL="../api/negmas.preferences.AffineMultiFun.html#negmas.preferences.AffineMultiFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "MultiIssueFun" -> "AffineMultiFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AffineUtilityFunction" [URL="../api/negmas.preferences.AffineUtilityFunction.html#negmas.preferences.AffineUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="An affine utility function for multi-issue negotiations."]; "StationaryMixin" -> "AffineUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "AffineUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseFun" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "ABC" -> "BaseFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BasePref" [URL="../api/negmas.preferences.BasePref.html#negmas.preferences.BasePref",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base Protcol for all preferences in NegMAS. All Preferences objects implement this interface"]; "Protocol" -> "BasePref" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" [URL="../api/negmas.preferences.BaseUtilityFunction.html#negmas.preferences.BaseUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all utility functions in negmas"]; "Preferences" -> "BaseUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "BaseUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CardinalCrisp" [URL="../api/negmas.preferences.CardinalCrisp.html#negmas.preferences.CardinalCrisp",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Differences between outcomes are meaningfull and crisp (i.e. real numbers)"]; "CardinalProb" -> "CardinalCrisp" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "CardinalCrisp" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CardinalProb" [URL="../api/negmas.preferences.CardinalProb.html#negmas.preferences.CardinalProb",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Differences between outcomes are meaningfull but probabilistic."]; "Ordinal" -> "CardinalProb" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "CardinalProb" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CardinalRanking" [URL="../api/negmas.preferences.CardinalRanking.html#negmas.preferences.CardinalRanking",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Implements ranking of outcomes with meaningful differences (i.e. each rank is given a value and nearer values are more similar)"]; "Protocol" -> "CardinalRanking" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ComplexNonlinearUtilityFunction" [URL="../api/negmas.preferences.ComplexNonlinearUtilityFunction.html#negmas.preferences.ComplexNonlinearUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function composed of nonlinear aggregation of other utility functions"]; "_DependenceMixin" -> "ComplexNonlinearUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "ComplexNonlinearUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ConstFun" [URL="../api/negmas.preferences.ConstFun.html#negmas.preferences.ConstFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "ConstFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ConstUtilityFunction" [URL="../api/negmas.preferences.ConstUtilityFunction.html#negmas.preferences.ConstUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function that returns the same value for all outcomes."]; "StationaryMixin" -> "ConstUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "ConstUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CosFun" [URL="../api/negmas.preferences.CosFun.html#negmas.preferences.CosFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "CosFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DiscountedUtilityFunction" [URL="../api/negmas.preferences.DiscountedUtilityFunction.html#negmas.preferences.DiscountedUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all discounted ufuns"]; "StateDependentUFunMixin" -> "DiscountedUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "DiscountedUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ExpDiscountedUFun" [URL="../api/negmas.preferences.ExpDiscountedUFun.html#negmas.preferences.ExpDiscountedUFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A discounted utility function based on some factor of the negotiation"]; "DiscountedUtilityFunction" -> "ExpDiscountedUFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ExponentialFun" [URL="../api/negmas.preferences.ExponentialFun.html#negmas.preferences.ExponentialFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "ExponentialFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Fun" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="A value function mapping values from one or more issues to a real number"]; "Protocol" -> "Fun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Generic" [URL="https://docs.python.org/3/library/typing.html#typing.Generic",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Abstract base class for generic types."]; "HasMinMax" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Protocol" -> "HasMinMax" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HasRange" [URL="../api/negmas.preferences.HasRange.html#negmas.preferences.HasRange",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Has a defined range of utility values (a minimum and a maximum) and defined best and worst outcomes"]; "HasMinMax" -> "HasRange" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UFun" -> "HasRange" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "HasRange" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HasReservedDistribution" [URL="../api/negmas.preferences.HasReservedDistribution.html#negmas.preferences.HasReservedDistribution",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="In case of disagreement, a value sampled from `reserved_distribution` will be received by the entity"]; "Protocol" -> "HasReservedDistribution" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HasReservedOutcome" [URL="../api/negmas.preferences.HasReservedOutcome.html#negmas.preferences.HasReservedOutcome",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="In case of disagreement, the value of `reserved_outcome` will be received by the entity"]; "Protocol" -> "HasReservedOutcome" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HasReservedValue" [URL="../api/negmas.preferences.HasReservedValue.html#negmas.preferences.HasReservedValue",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="In case of disagreement, `reserved_value` will be received by the entity"]; "Protocol" -> "HasReservedValue" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HyperRectangleUtilityFunction" [URL="../api/negmas.preferences.HyperRectangleUtilityFunction.html#negmas.preferences.HyperRectangleUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function defined as a set of hyper-volumes."]; "StationaryMixin" -> "HyperRectangleUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "HyperRectangleUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ILSUtilityFunction" [URL="../api/negmas.preferences.ILSUtilityFunction.html#negmas.preferences.ILSUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function which represents the loc and scale deviations as any crisp ufun"]; "StationaryMixin" -> "ILSUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbUtilityFunction" -> "ILSUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "IPUtilityFunction" [URL="../api/negmas.preferences.IPUtilityFunction.html#negmas.preferences.IPUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Independent Probabilistic Utility Function."]; "StationaryMixin" -> "IPUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbUtilityFunction" -> "IPUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "IdentityFun" [URL="../api/negmas.preferences.IdentityFun.html#negmas.preferences.IdentityFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "IdentityFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "IndIssues" [URL="../api/negmas.preferences.IndIssues.html#negmas.preferences.IndIssues",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="The utility value depends on each `Issue` value through a value function that does not depend on any other issue. (i.e. can be modeled as a `LinearAdditiveUtilityFunction`"]; "BasePref" -> "IndIssues" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "IndIssues" [arrowsize=0.5,style="setlinewidth(0.5)"]; "InverseUFun" [URL="../api/negmas.preferences.InverseUFun.html#negmas.preferences.InverseUFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be used to get one or more outcomes at a given range"]; "Protocol" -> "InverseUFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LambdaFun" [URL="../api/negmas.preferences.LambdaFun.html#negmas.preferences.LambdaFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "LambdaFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LambdaMultiFun" [URL="../api/negmas.preferences.LambdaMultiFun.html#negmas.preferences.LambdaMultiFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "MultiIssueFun" -> "LambdaMultiFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinDiscountedUFun" [URL="../api/negmas.preferences.LinDiscountedUFun.html#negmas.preferences.LinDiscountedUFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function with linear discounting based on some factor of the negotiation"]; "DiscountedUtilityFunction" -> "LinDiscountedUFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinearAdditiveUtilityFunction" [URL="../api/negmas.preferences.LinearAdditiveUtilityFunction.html#negmas.preferences.LinearAdditiveUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A linear aggregation utility function for multi-issue negotiations."]; "StationaryMixin" -> "LinearAdditiveUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "LinearAdditiveUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinearFun" [URL="../api/negmas.preferences.LinearFun.html#negmas.preferences.LinearFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "LinearFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinearMultiFun" [URL="../api/negmas.preferences.LinearMultiFun.html#negmas.preferences.LinearMultiFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "MultiIssueFun" -> "LinearMultiFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinearUtilityFunction" [URL="../api/negmas.preferences.LinearUtilityFunction.html#negmas.preferences.LinearUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A special case of the `AffineUtilityFunciton` for which the bias is zero."]; "AffineUtilityFunction" -> "LinearUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LogFun" [URL="../api/negmas.preferences.LogFun.html#negmas.preferences.LogFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "LogFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MappingUtilityFunction" [URL="../api/negmas.preferences.MappingUtilityFunction.html#negmas.preferences.MappingUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Outcome mapping utility function."]; "StationaryMixin" -> "MappingUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "MappingUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MultiIssueFun" [URL="../api/negmas.preferences.MultiIssueFun.html#negmas.preferences.MultiIssueFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A value function mapping values from **multiple** issues to a real number"]; "Fun" -> "MultiIssueFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "MultiIssueFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NamedObject" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="The base class of all named entities."]; "NonLinearAggregationUtilityFunction" [URL="../api/negmas.preferences.NonLinearAggregationUtilityFunction.html#negmas.preferences.NonLinearAggregationUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A nonlinear utility function."]; "StationaryMixin" -> "NonLinearAggregationUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "NonLinearAggregationUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NonlinearHyperRectangleUtilityFunction" [URL="../api/negmas.preferences.NonlinearHyperRectangleUtilityFunction.html#negmas.preferences.NonlinearHyperRectangleUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function defined as a set of outcome_ranges."]; "StationaryMixin" -> "NonlinearHyperRectangleUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "NonlinearHyperRectangleUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Normalizable" [URL="../api/negmas.preferences.Normalizable.html#negmas.preferences.Normalizable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be normalized to a given range of values (default is 0-1)"]; "Shiftable" -> "Normalizable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Scalable" -> "Normalizable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "Normalizable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Ordinal" [URL="../api/negmas.preferences.Ordinal.html#negmas.preferences.Ordinal",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be ordered (at least partially)"]; "BasePref" -> "Ordinal" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "Ordinal" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OrdinalRanking" [URL="../api/negmas.preferences.OrdinalRanking.html#negmas.preferences.OrdinalRanking",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Outcomes can be ranked. Supports equality"]; "Protocol" -> "OrdinalRanking" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OutcomeDistances" [URL="../api/negmas.preferences.OutcomeDistances.html#negmas.preferences.OutcomeDistances",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "OutcomeOptimality" [URL="../api/negmas.preferences.OutcomeOptimality.html#negmas.preferences.OutcomeOptimality",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "PartiallyScalable" [URL="../api/negmas.preferences.PartiallyScalable.html#negmas.preferences.PartiallyScalable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be scaled by a constant amount for a specific part of the outcome space"]; "Scalable" -> "PartiallyScalable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BasePref" -> "PartiallyScalable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "PartiallyScalable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PartiallyShiftable" [URL="../api/negmas.preferences.PartiallyShiftable.html#negmas.preferences.PartiallyShiftable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be shifted by a constant amount for a specific part of the outcome space"]; "Scalable" -> "PartiallyShiftable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "PartiallyShiftable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PolynomialFun" [URL="../api/negmas.preferences.PolynomialFun.html#negmas.preferences.PolynomialFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "PolynomialFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Preferences" [URL="../api/negmas.preferences.Preferences.html#negmas.preferences.Preferences",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all preferences."]; "NamedObject" -> "Preferences" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "Preferences" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PresortingInverseUtilityFunction" [URL="../api/negmas.preferences.PresortingInverseUtilityFunction.html#negmas.preferences.PresortingInverseUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function inverter that uses pre-sorting."]; "InverseUFun" -> "PresortingInverseUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbMappingUtilityFunction" [URL="../api/negmas.preferences.ProbMappingUtilityFunction.html#negmas.preferences.ProbMappingUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Outcome mapping utility function."]; "StationaryMixin" -> "ProbMappingUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbUtilityFunction" -> "ProbMappingUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbRandomUtilityFunction" [URL="../api/negmas.preferences.ProbRandomUtilityFunction.html#negmas.preferences.ProbRandomUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A random utility function for a discrete outcome space"]; "StationaryMixin" -> "ProbRandomUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbUtilityFunction" -> "ProbRandomUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ProbUtilityFunction" [URL="../api/negmas.preferences.ProbUtilityFunction.html#negmas.preferences.ProbUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A probablistic utility function. One that returns a probability distribution when called"]; "_ExtremelyDynamic" -> "ProbUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "ProbUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" [URL="https://docs.python.org/3/library/typing.html#typing.Protocol",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for protocol classes."]; "Generic" -> "Protocol" [arrowsize=0.5,style="setlinewidth(0.5)"]; "QuadraticFun" [URL="../api/negmas.preferences.QuadraticFun.html#negmas.preferences.QuadraticFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "QuadraticFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomUtilityFunction" [URL="../api/negmas.preferences.RandomUtilityFunction.html#negmas.preferences.RandomUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A random utility function for a discrete outcome space"]; "StationaryMixin" -> "RandomUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "RandomUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Randomizable" [URL="../api/negmas.preferences.Randomizable.html#negmas.preferences.Randomizable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Random Preferences of this type can be created using a `random` method"]; "Protocol" -> "Randomizable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RankOnlyUtilityFunction" [URL="../api/negmas.preferences.RankOnlyUtilityFunction.html#negmas.preferences.RankOnlyUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function that keeps trak of outcome order onlyself."]; "StationaryMixin" -> "RankOnlyUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" -> "RankOnlyUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SamplingInverseUtilityFunction" [URL="../api/negmas.preferences.SamplingInverseUtilityFunction.html#negmas.preferences.SamplingInverseUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function inverter that uses sampling."]; "InverseUFun" -> "SamplingInverseUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Scalable" [URL="../api/negmas.preferences.Scalable.html#negmas.preferences.Scalable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be scaled by a constant amount (i.e. utility values are all multiplied by this amount)"]; "UFun" -> "Scalable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "Scalable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ScenarioStats" [URL="../api/negmas.preferences.ScenarioStats.html#negmas.preferences.ScenarioStats",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SessionDependentUFunMixin" [URL="../api/negmas.preferences.SessionDependentUFunMixin.html#negmas.preferences.SessionDependentUFunMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Indicates that the ufun is session-dependent (i.e. utility value of outcomes depend on the NMI)"]; "Shiftable" [URL="../api/negmas.preferences.Shiftable.html#negmas.preferences.Shiftable",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be shifted by a constant amount (i.e. utility values are all shifted by this amount)"]; "CardinalProb" -> "Shiftable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "Shiftable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SinFun" [URL="../api/negmas.preferences.SinFun.html#negmas.preferences.SinFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "SinFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SingleIssueFun" [URL="../api/negmas.preferences.SingleIssueFun.html#negmas.preferences.SingleIssueFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A value function mapping values from a **single** issue to a real number"]; "Fun" -> "SingleIssueFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "SingleIssueFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "StateDependentUFunMixin" [URL="../api/negmas.preferences.StateDependentUFunMixin.html#negmas.preferences.StateDependentUFunMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Indicates that the ufun is state-dependent (i.e. utility value of outcomes depend on the mechanism state)"]; "StationaryMixin" [URL="../api/negmas.preferences.StationaryMixin.html#negmas.preferences.StationaryMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Indicates that the ufun is stationary which means that it is not session or state dependent and not volatile."]; "TableFun" [URL="../api/negmas.preferences.TableFun.html#negmas.preferences.TableFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "TableFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TableMultiFun" [URL="../api/negmas.preferences.TableMultiFun.html#negmas.preferences.TableMultiFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "MultiIssueFun" -> "TableMultiFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TriangularFun" [URL="../api/negmas.preferences.TriangularFun.html#negmas.preferences.TriangularFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "BaseFun" -> "TriangularFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UFun" [URL="../api/negmas.preferences.UFun.html#negmas.preferences.UFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be called to map an `Outcome` to a `Distribution` or a `float`"]; "CardinalProb" -> "UFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "UFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UFunCrisp" [URL="../api/negmas.preferences.UFunCrisp.html#negmas.preferences.UFunCrisp",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be called to map an `Outcome` to a `float`"]; "UFun" -> "UFunCrisp" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "UFunCrisp" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UFunProb" [URL="../api/negmas.preferences.UFunProb.html#negmas.preferences.UFunProb",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be called to map an `Outcome` to a `Distribution`"]; "UFun" -> "UFunProb" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "UFunProb" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UniformUtilityFunction" [URL="../api/negmas.preferences.UniformUtilityFunction.html#negmas.preferences.UniformUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function which represents the loc and scale deviations as any crisp ufun"]; "ILSUtilityFunction" -> "UniformUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityFunction" [URL="../api/negmas.preferences.UtilityFunction.html#negmas.preferences.UtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base for all crisp ufuns"]; "_ExtremelyDynamic" -> "UtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "UtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "VolatileUFunMixin" [URL="../api/negmas.preferences.VolatileUFunMixin.html#negmas.preferences.VolatileUFunMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Indicates that the ufun is volatile"]; "WeightedUtilityFunction" [URL="../api/negmas.preferences.WeightedUtilityFunction.html#negmas.preferences.WeightedUtilityFunction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A utility function composed of linear aggregation of other utility functions"]; "_DependenceMixin" -> "WeightedUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "WeightedUtilityFunction" [arrowsize=0.5,style="setlinewidth(0.5)"]; "XmlSerializable" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Protocol" -> "XmlSerializable" [arrowsize=0.5,style="setlinewidth(0.5)"]; "XmlSerializableUFun" [URL="../api/negmas.preferences.XmlSerializableUFun.html#negmas.preferences.XmlSerializableUFun",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Can be serialized to XML format (compatible with GENIUS)"]; "XmlSerializable" -> "XmlSerializableUFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Protocol" -> "XmlSerializableUFun" [arrowsize=0.5,style="setlinewidth(0.5)"]; "_DependenceMixin" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Used to set dependence properties based on the object's `values` ."]; "_ExtremelyDynamic" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Used internally to indicate that the ufun can change due to anything."]; }