UtilityBasedOutcomeSetRecommender
- class negmas.sao.UtilityBasedOutcomeSetRecommender(rank_only: bool = False, ufun_inverter: Callable[[BaseUtilityFunction], InverseUFun] | None = None, max_cardinality: int | float = inf, eps: float = 0.0001, inversion_method: Literal['min', 'max', 'one', 'some', 'all'] = 'some')[source]
Bases:
GBComponentRecommends a set of outcome appropriate for proposal
Attributes Summary
Methods Summary
__call__(urange, state)Receives a normalized [0-> 1] utility range and returns a utility range relative to the ufun taking the tolerance _eps into account
after_join(nmi)A call back called after joining a negotiation to confirm wwe joined.
after_proposing(state, offer[, dest])Called after proposing
after_responding(state, offer, response[, ...])Called before offering
before_proposing(state[, dest])Called before proposing
before_responding(state, offer[, source])Called before offering
can_join(nmi, state, *[, preferences, ufun, ...])A call back called before joining a negotiation to confirm that we can join it.
on_leave(state)A call back called after leaving a negotiation.
on_mechanism_error(state)A call back called whenever an error happens in the mechanism.
on_negotiation_end(state)A call back called at each negotiation end
on_negotiation_start(state)A call back called at each negotiation start
on_partner_ended(partner)Called when a partner ends the negotiation.
on_partner_joined(partner)Called when a partner joins the negotiation.
on_partner_left(partner)Called when a partner leaves the negotiation.
on_partner_proposal(state, partner_id, offer)A callback called by the mechanism when a partner proposes something
on_partner_refused_to_propose(state, partner_id)A callback called by the mechanism when a partner refuses to propose
on_partner_response(state, partner_id, ...)A callback called by the mechanism when a partner responds to some offer
on_preferences_changed(changes)Called to inform the component that the ufun has changed and the kinds of change that happened.
on_round_end(state)A call back called at each negotiation round end
on_round_start(state)A call back called at each negotiation round start
scale_utilities(urange)Scales given utilities to the range of the ufun.
set_negotiator(negotiator)Sets the negotiator of which this component is a part.
Attributes Documentation
- negotiator
- tolerance
- ufun_max
- ufun_min
Methods Documentation
- __call__(urange: tuple[float, float], state: GBState) Sequence[Outcome][source]
Receives a normalized [0-> 1] utility range and returns a utility range relative to the ufun taking the tolerance _eps into account
Remarks:
This method calls
scale_utilitieson the input range
- after_join(nmi: NegotiatorMechanismInterface) None
A call back called after joining a negotiation to confirm wwe joined.
- after_proposing(state: GBState, offer: Outcome | None, dest: str | None = None)
Called after proposing
- after_responding(state: GBState, offer: Outcome | None, response: ResponseType, source: str | None = None)
Called before offering
- before_responding(state: GBState, offer: Outcome | None, source: str | None = None)
Called before offering
- can_join(nmi: NegotiatorMechanismInterface, state: MechanismState, *, preferences: Preferences | None = None, ufun: BaseUtilityFunction | None = None, role: str = 'negotiator') bool
A call back called before joining a negotiation to confirm that we can join it.
- on_leave(state: MechanismState) None
A call back called after leaving a negotiation.
- on_mechanism_error(state: MechanismState) None
A call back called whenever an error happens in the mechanism. The error and its explanation are accessible in
state
- on_negotiation_end(state: MechanismState) None
A call back called at each negotiation end
- on_negotiation_start(state: MechanismState) None
A call back called at each negotiation start
- on_partner_ended(partner: str)
Called when a partner ends the negotiation.
Note that the negotiator owning this component may never receive this offer. This is only receivd if the mechanism is sending notifications on every offer.
- on_partner_joined(partner: str)
Called when a partner joins the negotiation.
This is only receivd if the mechanism is sending notifications.
- on_partner_left(partner: str)
Called when a partner leaves the negotiation.
This is only receivd if the mechanism is sending notifications.
- on_partner_proposal(state: GBState, partner_id: str, offer: Outcome) None
A callback called by the mechanism when a partner proposes something
- Parameters:
state –
MechanismStategiving the state of the negotiation when the offer was porposed.partner_id – The ID of the agent who proposed
offer – The proposal.
- Remarks:
Will only be called if
enable_callbacksis set for the mechanism
- on_partner_refused_to_propose(state: GBState, partner_id: str) None
A callback called by the mechanism when a partner refuses to propose
- Parameters:
state –
MechanismStategiving the state of the negotiation when the partner refused to offer.partner_id – The ID of the agent who refused to propose
- Remarks:
Will only be called if
enable_callbacksis set for the mechanism
- on_partner_response(state: GBState, partner_id: str, outcome: Outcome | None, response: ResponseType) None
A callback called by the mechanism when a partner responds to some offer
- Parameters:
state –
MechanismStategiving the state of the negotiation when the partner responded.partner_id – The ID of the agent who responded
outcome – The proposal being responded to.
response – The response
- Remarks:
Will only be called if
enable_callbacksis set for the mechanism
- on_preferences_changed(changes: list[PreferencesChange])[source]
Called to inform the component that the ufun has changed and the kinds of change that happened.
- on_round_end(state: MechanismState) None
A call back called at each negotiation round end
- on_round_start(state: MechanismState) None
A call back called at each negotiation round start
- scale_utilities(urange: tuple[float, ...]) tuple[float, ...][source]
Scales given utilities to the range of the ufun.
Remarks:
Assumes that the input utilities are in the range [0-1] no matter what is the range of the ufun.
Subtracts the
tolerancefrom the first and adds it to the last utility value which slightly enlarges the range to account for small rounding errors
- set_negotiator(negotiator: GBNegotiator) None[source]
Sets the negotiator of which this component is a part.