FullElicitor

class negmas.elicitation.FullElicitor(strategy: EStrategy, user: User, epsilon=0.001, true_utility_on_zero_cost=False, base_negotiator: negmas.sao.negotiators.SAONegotiator = <negmas.sao.negotiators.AspirationNegotiator object>, **kwargs)[source]

Bases: negmas.elicitation.BasePandoraElicitor

Does full deep elicitation in the first call to elicit.

Methods Summary

elicit(state)

Called to do utility elicitation whenever needed.

init_elicitation(ufun, **kwargs)

Initializes the elicitation process (called only once).

init_unknowns()

Initializes the unknowns list which is a list of Tuples [-u(o), o] for o in outcomes.

update_best_offer_utility(outcome, u)

Updates the unknown list (and makes sure it is a heap) given the given utility value for the given outcome.

Methods Documentation

elicit(state: negmas.common.MechanismState)[source]

Called to do utility elicitation whenever needed.

Parameters

state – mechanism state

Remarks:
  • Keeps track of elicitation time and asking time.

  • If the maximum attainable utility minus elicitation cost is less than the reserved value, no elicitation will take place because we will end this negotiation anyway. Note that the maximum attainable utility can never go up.

  • Calls before_eliciting once to initialize the process then calls elicit_single which does the actual elicitation. This is done only once if single_elicitation is set, otherwise it is repeated until one of the following conditiosn is met:

    • elicit_single returns False

    • The maximum attainable utility (minus elicitation cost) is less than the reserved value.

init_elicitation(ufun: Optional[Union[IPUtilityFunction, UtilityDistribution]], **kwargs)[source]

Initializes the elicitation process (called only once).

Remarks:

init_unknowns()List[Tuple[float, int]][source]

Initializes the unknowns list which is a list of Tuples [-u(o), o] for o in outcomes.

update_best_offer_utility(outcome: Union[negmas.outcomes.OutcomeType, Tuple[Union[int, float, str, list]], Dict[Union[int, str], Union[int, float, str, list]]], u: Union[negmas.helpers.Distribution, float])[source]

Updates the unknown list (and makes sure it is a heap) given the given utility value for the given outcome.