EStrategy

class negmas.elicitation.EStrategy(strategy, resolution=0.0001, stop_at_cost=True)[source]

Bases: object

A proxy for a user that have some true utilities which can be elicited.

Parameters:

strategy (str) – a string specifying the elicitation strategy or a callable.

Remarks:

  • Supported string elicitation_strategies can be found using the supported_strategies class method

  • If a callable is passed then it must receive four float numbers indicating the lower and upper boundaries of the current Negotiator distribution, the true Negotiator and a threshold (resolution). It must return a new lower and upper values. To stop eliciting and return an exact number, the callable should set lower to the same value as upper

Methods Summary

apply(user, outcome)

Do the elicitation and incur the cost.

next_query(outcome)

rtype:

Query | None

on_enter(nmi[, preferences])

rtype:

None

supported_strategies()

until(outcome, user, dist)

rtype:

Value

utility_estimate(outcome)

Gets a probability distribution of the Negotiator for this outcome without elicitation.

Methods Documentation

apply(user, outcome)[source]

Do the elicitation and incur the cost.

Remarks: :rtype: tuple[Value | None, QResponse | None]

  • This function returns a uniform distribution whenever it returns a distribution

  • Can return None which indicates that elicitation failed

  • If it could find an exact value, it will return a float not a Distribution

next_query(outcome)[source]
Return type:

Query | None

on_enter(nmi, preferences=None)[source]
Return type:

None

classmethod supported_strategies()[source]
until(outcome, user, dist)[source]
Return type:

Value

utility_estimate(outcome)[source]

Gets a probability distribution of the Negotiator for this outcome without elicitation. Costs nothing

Return type:

Value