negmas.sao Package

Implements Stacked Alternating Offers (SAO) mechanism and basic negotiators.

Functions

all_negotiator_types()

Returns all the negotiator types defined in negmas.sao.negotiators

make_boa([acceptance, offering, model, ...])

A negotiator that is constructed from three components:

plot_offer_utilities(trace, negotiator, ...)

plot_mechanism_run(mechanism[, negotiators, ...])

plot_2dutils(trace, plotting_ufuns, ...[, ...])

Classes

ResponseType(value)

Possible responses to offers during negotiation.

SAOResponse([response, outcome])

A response to an offer given by an agent in the alternating offers protocol

SAOState([running, waiting, started, step, ...])

SAONMI(id, n_outcomes, outcome_space, ...[, ...])

SAOComponent(*[, negotiator])

AcceptanceStrategy(*[, negotiator])

OfferingStrategy(*[, negotiator])

ProposalStrategy

alias of negmas.sao.components.base.OfferingStrategy

Model

alias of negmas.sao.components.base.SAOComponent

LimitedOutcomesAcceptanceStrategy(prob[, ...])

Accepts from a list of predefined outcomes

NegotiatorAcceptanceStrategy(acceptor, *[, ...])

Uses a negotiator as an offering strategy

ConcensusAcceptanceStrategy(strategies, *[, ...])

Accepts based on concensus of multiple strategies

AllAcceptanceStrategies(strategies, *[, ...])

Accept only if all children accept, end only if all of them end, otherwise reject

AnyAcceptanceStrategy(strategies, *[, ...])

Accept any children accept, end or reject only if all of them end or reject

AcceptImmediately(*[, negotiator])

Accepts immediately anything

RejectAlways(*[, negotiator])

Rejects everything

EndImmediately(*[, negotiator])

Rejects immediately anything

AcceptAbove(limit[, above_reserve, negotiator])

Accepts outcomes with utilities in the given top limit fraction above reserve/minimum (based on above_resrve ).

RandomAcceptanceStrategy([p_acceptance, ...])

AcceptTop([fraction, k, negotiator])

Accepts outcomes that are in the given top fraction or top k.

AcceptBest([best_util, negotiator])

Accepts Only the best outcome.

TFTAcceptanceStrategy(partner_ufun, ...[, ...])

An acceptance strategy that concedes as much as the partner (or more)

ACNext(offering_strategy[, alpha, beta, ...])

Implements the ACnext acceptance strategy based on our next offer.

LimitedOutcomesOfferingStrategy(outcomes[, ...])

Offers from a given list of outcomes

NegotiatorOfferingStrategy(*[, negotiator])

Uses a negotiator as an offering strategy

ConcensusOfferingStrategy(strategies, *[, ...])

Offers based on concensus of multiple strategies

RandomConcensusOfferingStrategy(strategies)

Offers a random response from the list of stratgies (different strategy every time).

UnanimousConcensusOfferingStrategy(strategies, *)

Offers only if all offering strategies gave exactly the same outcome

UtilBasedConcensusOfferingStrategy(strategies, *)

Offers from the list of stratgies (different strategy every time) based on outcome utilities

MyBestConcensusOfferingStrategy(strategies, *)

Offers my best outcome from the list of stratgies (different strategy every time).

MyWorstConcensusOfferingStrategy(strategies, *)

Offers my worst outcome from the list of stratgies (different strategy every time) based on outcome utilities

NoneOfferingStrategy(*[, negotiator])

Always offers None which means it never gets an agreement.

RandomOfferingStrategy(*[, negotiator])

Always offers None which means it never gets an agreement.

OfferTop([fraction, k, negotiator])

Offers outcomes that are in the given top fraction or top k.

OfferBest([best, negotiator])

Offers Only the best outcome.

TFTOfferingStrategy(partner_ufun, recommender)

An acceptance strategy that concedes as much as the partner (or more)

ConcessionRecommender(*[, negotiator])

Decides the level of concession to use

KindConcessionRecommender([kindness, ...])

A simple recommender that does one small concession first then a tit-for-tat response

OfferSelectorProtocol(*args, **kwargs)

Can select the best offer in some sense from a list of offers based on an inverter

OfferSelector(*[, negotiator])

Can select the best offer in some sense from a list of offers based on an inverter

RandomOfferSelector(*[, negotiator])

BestOfferSelector(*[, negotiator])

MedianOfferSelector(*[, negotiator])

WorstOfferSelector(*[, negotiator])

OfferOrientedSelector([distance_fun])

Selects the nearest outcome to the pivot outcome which is updated before responding

FirstOfferOrientedSelector([distance_fun])

Selects the offer nearest the partner's first offer

LastOfferOrientedSelector([distance_fun])

Selects the offer nearest the partner's last offer

BestOfferOrientedSelector([distance_fun])

Selects the offer nearest the partner's best offer for me so far

OutcomeSetOrientedSelector([distance_fun, ...])

Selects the nearest outcome to a set of pivot outcomes which is updated before responding

PartnerOffersOrientedSelector([...])

Orients offes toward the set of past opponent offers

MultiplicativePartnerOffersOrientedSelector([...])

Orients offes toward the set of past opponent offers.

AdditivePartnerOffersOrientedSelector(*args)

Orients offes toward the set of past opponent offers.

UtilityInverter(*args[, offer_selector])

A component that can recommend an outcome based on utility

UtilityBasedOutcomeSetRecommender([...])

Recommends a set of outcome appropriate for proposal

UFunModel(*[, negotiator])

A SAOComponent that can model the opponent's utility function.

FrequencyUFunModel(*[, negotiator])

A PartnerUfunModel that uses a simple frequency-based model of the opponent offers.

FrequencyLinearUFunModel(*[, negotiator])

A PartnerUfunModel that uses a simple frequency-based model of the opponent offers assuming the ufun is LinearAdditiveUtilityFunction .

ZeroSumModel([above_reserve, rank_only, ...])

Assumes a zero-sum negotiation (i.e.

SAOMechanism([dynamic_entry, ...])

Implements Several variants of the Stacked Alternating Offers Protocol

SAOProtocol

alias of negmas.sao.mechanism.SAOMechanism

TraceElement(time, relative_time, step, ...)

An element of the trace returned by full_trace representing the history of the negotiation

SAONegotiator([preferences, ufun, name, ...])

Base class for all SAO negotiators.

SAOModularNegotiator(*args, components[, ...])

A generic modular SAO negotiator.

BOANegotiator(*[, acceptance, offering, ...])

A negotiator that is constructed from three components:

MAPNegotiator(*args[, acceptance, offering, ...])

A negotiator that is constructed from three components:

LimitedOutcomesNegotiator([...])

A negotiation agent that uses a fixed set of outcomes in a single negotiation.

LimitedOutcomesAcceptor([...])

A negotiation agent that uses a fixed set of outcomes in a single negotiation.

ToughNegotiator([can_propose])

Accepts and proposes only the top offer (i.e.

TopFractionNegotiator([min_utility, ...])

Offers and accepts only one of the top outcomes for the negotiator.

ControlledSAONegotiator([preferences, ufun, ...])

A negotiator that acts as an end point to a parent Controller.

UtilBasedNegotiator(*args[, stochastic, ...])

A negotiator that bases its decisions on the utility value of outcomes only.

TimeBasedNegotiator(*args[, offering_curve, ...])

Represents a time-based negotiation strategy that is independent of the offers received during the negotiation.

TimeBasedConcedingNegotiator(*args[, ...])

Represents a time-based negotiation strategy that is independent of the offers received during the negotiation.

BoulwareTBNegotiator(*args, **kwargs)

A Boulware time-based negotiator that conceeds sub-linearly

LinearTBNegotiator(*args, **kwargs)

A Boulware time-based negotiator that conceeds linearly

ConcederTBNegotiator(*args, **kwargs)

A Boulware time-based negotiator that conceeds super-linearly

AspirationNegotiator(*args[, ...])

Represents a time-based negotiation strategy that is independent of the offers received during the negotiation.

FirstOfferOrientedTBNegotiator(*args[, ...])

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's first offer

LastOfferOrientedTBNegotiator(*args[, ...])

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's last offer

BestOfferOrientedTBNegotiator(*args[, ...])

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's past offer with the highest utility for me

AdditiveParetoFollowingTBNegotiator(*args[, ...])

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

MultiplicativeParetoFollowingTBNegotiator(*args)

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

MultiplicativeLastOfferFollowingTBNegotiator(*args)

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

AdditiveLastOfferFollowingTBNegotiator(*args)

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

MultiplicativeFirstFollowingTBNegotiator(*args)

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

AdditiveFirstFollowingTBNegotiator(*args[, ...])

A time-based negotiator that selectes outcomes from the list allowed by the current utility level based on a weighted sum of their normalized utilities and distances to previous offers

NaiveTitForTatNegotiator(*args[, kindness, ...])

Implements a naive tit-for-tat strategy that does not depend on the availability of an opponent model.

SimpleTitForTatNegotiator

alias of negmas.sao.negotiators.titfortat.NaiveTitForTatNegotiator

RandomNegotiator([p_acceptance, ...])

A negotiation agent that responds randomly in a single negotiation.

NiceNegotiator(*args, **kwargs)

Offers and accepts anything.

SAOController([default_negotiator_type, ...])

A controller that can manage multiple negotiators taking full or partial control from them.

SAORandomController(*args[, p_acceptance])

A controller that returns random offers.

SAOSyncController(*args[, global_ufun])

A controller that can manage multiple negotiators synchronously.

SAORandomSyncController(*args[, ...])

A sync controller that returns random offers.

SAOSingleAgreementController(*args[, strict])

A synchronized controller that tries to get no more than one agreeement.

SAOSingleAgreementRandomController(*args[, ...])

A single agreement controller that uses a random negotiation strategy.

SAOSingleAgreementAspirationController(*args)

A SAOSingleAgreementController that uses aspiration level to decide what to accept and what to propose.

SAOMetaNegotiatorController(*args[, ...])

Controls multiple negotiations using a single meta negotiator.

Class Inheritance Diagram

digraph inheritancee4e8466f96 { bgcolor=transparent; fontsize=11; randkir=TB; rankdir=LR; size=""; "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",tooltip="Helper class that provides a standard way to create an ABC using"]; "ACNext" [URL="../../api/negmas.sao.ACNext.html#negmas.sao.ACNext",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 the ACnext acceptance strategy based on our next offer."]; "AcceptanceStrategy" -> "ACNext" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AcceptAbove" [URL="../../api/negmas.sao.AcceptAbove.html#negmas.sao.AcceptAbove",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="Accepts outcomes with utilities in the given top `limit` fraction above reserve/minimum (based on `above_resrve` )."]; "AcceptanceStrategy" -> "AcceptAbove" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AcceptBest" [URL="../../api/negmas.sao.AcceptBest.html#negmas.sao.AcceptBest",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="Accepts Only the best outcome."]; "AcceptanceStrategy" -> "AcceptBest" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AcceptImmediately" [URL="../../api/negmas.sao.AcceptImmediately.html#negmas.sao.AcceptImmediately",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="Accepts immediately anything"]; "AcceptanceStrategy" -> "AcceptImmediately" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AcceptTop" [URL="../../api/negmas.sao.AcceptTop.html#negmas.sao.AcceptTop",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="Accepts outcomes that are in the given top fraction or top `k`. If neither is given it reverts to accepting the best outcome only."]; "AcceptanceStrategy" -> "AcceptTop" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AcceptanceStrategy" [URL="../../api/negmas.sao.AcceptanceStrategy.html#negmas.sao.AcceptanceStrategy",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"]; "SAOComponent" -> "AcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AdditiveFirstFollowingTBNegotiator" [URL="../../api/negmas.sao.AdditiveFirstFollowingTBNegotiator.html#negmas.sao.AdditiveFirstFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by"]; "TimeBasedNegotiator" -> "AdditiveFirstFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AdditiveLastOfferFollowingTBNegotiator" [URL="../../api/negmas.sao.AdditiveLastOfferFollowingTBNegotiator.html#negmas.sao.AdditiveLastOfferFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by"]; "TimeBasedNegotiator" -> "AdditiveLastOfferFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AdditiveParetoFollowingTBNegotiator" [URL="../../api/negmas.sao.AdditiveParetoFollowingTBNegotiator.html#negmas.sao.AdditiveParetoFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by"]; "TimeBasedNegotiator" -> "AdditiveParetoFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AdditivePartnerOffersOrientedSelector" [URL="../../api/negmas.sao.AdditivePartnerOffersOrientedSelector.html#negmas.sao.AdditivePartnerOffersOrientedSelector",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="Orients offes toward the set of past opponent offers."]; "PartnerOffersOrientedSelector" -> "AdditivePartnerOffersOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AllAcceptanceStrategies" [URL="../../api/negmas.sao.AllAcceptanceStrategies.html#negmas.sao.AllAcceptanceStrategies",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="Accept only if all children accept, end only if all of them end, otherwise reject"]; "ConcensusAcceptanceStrategy" -> "AllAcceptanceStrategies" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AnyAcceptanceStrategy" [URL="../../api/negmas.sao.AnyAcceptanceStrategy.html#negmas.sao.AnyAcceptanceStrategy",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="Accept any children accept, end or reject only if all of them end or reject"]; "ConcensusAcceptanceStrategy" -> "AnyAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "AspirationNegotiator" [URL="../../api/negmas.sao.AspirationNegotiator.html#negmas.sao.AspirationNegotiator",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="Represents a time-based negotiation strategy that is independent of the offers received during the negotiation."]; "TimeBasedConcedingNegotiator" -> "AspirationNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BOANegotiator" [URL="../../api/negmas.sao.BOANegotiator.html#negmas.sao.BOANegotiator",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 negotiator that is constructed from three components:"]; "MAPNegotiator" -> "BOANegotiator" [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)"]; "BestOfferOrientedSelector" [URL="../../api/negmas.sao.BestOfferOrientedSelector.html#negmas.sao.BestOfferOrientedSelector",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="Selects the offer nearest the partner's best offer for me so far"]; "OfferOrientedSelector" -> "BestOfferOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BestOfferOrientedTBNegotiator" [URL="../../api/negmas.sao.BestOfferOrientedTBNegotiator.html#negmas.sao.BestOfferOrientedTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's past offer with the highest utility for me"]; "FirstOfferOrientedTBNegotiator" -> "BestOfferOrientedTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BestOfferSelector" [URL="../../api/negmas.sao.BestOfferSelector.html#negmas.sao.BestOfferSelector",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"]; "OfferSelector" -> "BestOfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BoulwareTBNegotiator" [URL="../../api/negmas.sao.BoulwareTBNegotiator.html#negmas.sao.BoulwareTBNegotiator",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 Boulware time-based negotiator that conceeds sub-linearly"]; "TimeBasedConcedingNegotiator" -> "BoulwareTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CheckpointMixin" [URL="../../api/negmas.checkpoints.CheckpointMixin.html#negmas.checkpoints.CheckpointMixin",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="Adds the ability to save checkpoints to a `NamedObject`"]; "Component" [URL="../../api/negmas.negotiators.Component.html#negmas.negotiators.Component",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 component that can be added to a `ModularNegotiator`"]; "ConcederTBNegotiator" [URL="../../api/negmas.sao.ConcederTBNegotiator.html#negmas.sao.ConcederTBNegotiator",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 Boulware time-based negotiator that conceeds super-linearly"]; "TimeBasedConcedingNegotiator" -> "ConcederTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ConcensusAcceptanceStrategy" [URL="../../api/negmas.sao.ConcensusAcceptanceStrategy.html#negmas.sao.ConcensusAcceptanceStrategy",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="Accepts based on concensus of multiple strategies"]; "AcceptanceStrategy" -> "ConcensusAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "ConcensusAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ConcensusOfferingStrategy" [URL="../../api/negmas.sao.ConcensusOfferingStrategy.html#negmas.sao.ConcensusOfferingStrategy",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="Offers based on concensus of multiple strategies"]; "OfferingStrategy" -> "ConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "ConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ConcessionRecommender" [URL="../../api/negmas.sao.ConcessionRecommender.html#negmas.sao.ConcessionRecommender",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="Decides the level of concession to use"]; "SAOComponent" -> "ConcessionRecommender" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ControlledSAONegotiator" [URL="../../api/negmas.sao.ControlledSAONegotiator.html#negmas.sao.ControlledSAONegotiator",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 negotiator that acts as an end point to a parent Controller."]; "SAONegotiator" -> "ControlledSAONegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Controller" [URL="../../api/negmas.negotiators.Controller.html#negmas.negotiators.Controller",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="Controls the behavior of multiple negotiators in multiple negotiations."]; "Rational" -> "Controller" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EndImmediately" [URL="../../api/negmas.sao.EndImmediately.html#negmas.sao.EndImmediately",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="Rejects immediately anything"]; "AcceptanceStrategy" -> "EndImmediately" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Enum" [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="Generic enumeration."]; "EventSource" [URL="../../api/negmas.events.EventSource.html#negmas.events.EventSource",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 object capable of raising events"]; "FirstOfferOrientedSelector" [URL="../../api/negmas.sao.FirstOfferOrientedSelector.html#negmas.sao.FirstOfferOrientedSelector",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="Selects the offer nearest the partner's first offer"]; "OfferOrientedSelector" -> "FirstOfferOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "FirstOfferOrientedTBNegotiator" [URL="../../api/negmas.sao.FirstOfferOrientedTBNegotiator.html#negmas.sao.FirstOfferOrientedTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's first offer"]; "OfferOrientedNegotiator" -> "FirstOfferOrientedTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "FrequencyLinearUFunModel" [URL="../../api/negmas.sao.FrequencyLinearUFunModel.html#negmas.sao.FrequencyLinearUFunModel",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 `PartnerUfunModel` that uses a simple frequency-based model of the opponent offers assuming the ufun is `LinearAdditiveUtilityFunction` ."]; "UFunModel" -> "FrequencyLinearUFunModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "FrequencyUFunModel" [URL="../../api/negmas.sao.FrequencyUFunModel.html#negmas.sao.FrequencyUFunModel",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 `PartnerUfunModel` that uses a simple frequency-based model of the opponent offers."]; "UFunModel" -> "FrequencyUFunModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "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",tooltip="Abstract base class for generic types."]; "KindConcessionRecommender" [URL="../../api/negmas.sao.KindConcessionRecommender.html#negmas.sao.KindConcessionRecommender",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 simple recommender that does one small concession first then a tit-for-tat response"]; "ConcessionRecommender" -> "KindConcessionRecommender" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LastOfferOrientedSelector" [URL="../../api/negmas.sao.LastOfferOrientedSelector.html#negmas.sao.LastOfferOrientedSelector",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="Selects the offer nearest the partner's last offer"]; "OfferOrientedSelector" -> "LastOfferOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LastOfferOrientedTBNegotiator" [URL="../../api/negmas.sao.LastOfferOrientedTBNegotiator.html#negmas.sao.LastOfferOrientedTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the current utility level based on their utility value and how near they are to the partner's last offer"]; "FirstOfferOrientedTBNegotiator" -> "LastOfferOrientedTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LimitedOutcomesAcceptanceStrategy" [URL="../../api/negmas.sao.LimitedOutcomesAcceptanceStrategy.html#negmas.sao.LimitedOutcomesAcceptanceStrategy",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="Accepts from a list of predefined outcomes"]; "AcceptanceStrategy" -> "LimitedOutcomesAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LimitedOutcomesAcceptor" [URL="../../api/negmas.sao.LimitedOutcomesAcceptor.html#negmas.sao.LimitedOutcomesAcceptor",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 negotiation agent that uses a fixed set of outcomes in a single"]; "MAPNegotiator" -> "LimitedOutcomesAcceptor" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAONegotiator" -> "LimitedOutcomesAcceptor" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LimitedOutcomesNegotiator" [URL="../../api/negmas.sao.LimitedOutcomesNegotiator.html#negmas.sao.LimitedOutcomesNegotiator",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 negotiation agent that uses a fixed set of outcomes in a single"]; "MAPNegotiator" -> "LimitedOutcomesNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LimitedOutcomesOfferingStrategy" [URL="../../api/negmas.sao.LimitedOutcomesOfferingStrategy.html#negmas.sao.LimitedOutcomesOfferingStrategy",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="Offers from a given list of outcomes"]; "OfferingStrategy" -> "LimitedOutcomesOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "LinearTBNegotiator" [URL="../../api/negmas.sao.LinearTBNegotiator.html#negmas.sao.LinearTBNegotiator",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 Boulware time-based negotiator that conceeds linearly"]; "TimeBasedConcedingNegotiator" -> "LinearTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MAPNegotiator" [URL="../../api/negmas.sao.MAPNegotiator.html#negmas.sao.MAPNegotiator",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 negotiator that is constructed from three components:"]; "SAOModularNegotiator" -> "MAPNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Mechanism" [URL="../../api/negmas.mechanisms.Mechanism.html#negmas.mechanisms.Mechanism",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 negotiation Mechanisms."]; "NamedObject" -> "Mechanism" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EventSource" -> "Mechanism" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CheckpointMixin" -> "Mechanism" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "Mechanism" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MechanismState" [URL="../../api/negmas.common.MechanismState.html#negmas.common.MechanismState",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="Encapsulates the mechanism state at any point"]; "MedianOfferSelector" [URL="../../api/negmas.sao.MedianOfferSelector.html#negmas.sao.MedianOfferSelector",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"]; "OfferSelector" -> "MedianOfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ModularNegotiator" [URL="../../api/negmas.negotiators.ModularNegotiator.html#negmas.negotiators.ModularNegotiator",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 generic modular negotiator that can combine multiple negotiation `Component` s."]; "Negotiator" -> "ModularNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MultiplicativeFirstFollowingTBNegotiator" [URL="../../api/negmas.sao.MultiplicativeFirstFollowingTBNegotiator.html#negmas.sao.MultiplicativeFirstFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the"]; "TimeBasedNegotiator" -> "MultiplicativeFirstFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MultiplicativeLastOfferFollowingTBNegotiator" [URL="../../api/negmas.sao.MultiplicativeLastOfferFollowingTBNegotiator.html#negmas.sao.MultiplicativeLastOfferFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the"]; "TimeBasedNegotiator" -> "MultiplicativeLastOfferFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MultiplicativeParetoFollowingTBNegotiator" [URL="../../api/negmas.sao.MultiplicativeParetoFollowingTBNegotiator.html#negmas.sao.MultiplicativeParetoFollowingTBNegotiator",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 time-based negotiator that selectes outcomes from the list allowed by the"]; "TimeBasedNegotiator" -> "MultiplicativeParetoFollowingTBNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MultiplicativePartnerOffersOrientedSelector" [URL="../../api/negmas.sao.MultiplicativePartnerOffersOrientedSelector.html#negmas.sao.MultiplicativePartnerOffersOrientedSelector",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="Orients offes toward the set of past opponent offers."]; "PartnerOffersOrientedSelector" -> "MultiplicativePartnerOffersOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MyBestConcensusOfferingStrategy" [URL="../../api/negmas.sao.MyBestConcensusOfferingStrategy.html#negmas.sao.MyBestConcensusOfferingStrategy",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="Offers my best outcome from the list of stratgies (different strategy every time)."]; "UtilBasedConcensusOfferingStrategy" -> "MyBestConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MyWorstConcensusOfferingStrategy" [URL="../../api/negmas.sao.MyWorstConcensusOfferingStrategy.html#negmas.sao.MyWorstConcensusOfferingStrategy",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="Offers my worst outcome from the list of stratgies (different strategy every time) based on outcome utilities"]; "UtilBasedConcensusOfferingStrategy" -> "MyWorstConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NaiveTitForTatNegotiator" [URL="../../api/negmas.sao.NaiveTitForTatNegotiator.html#negmas.sao.NaiveTitForTatNegotiator",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 a naive tit-for-tat strategy that does not depend on the availability of an opponent model."]; "MAPNegotiator" -> "NaiveTitForTatNegotiator" [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."]; "Negotiator" [URL="../../api/negmas.negotiators.Negotiator.html#negmas.negotiators.Negotiator",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 negotiation agent. Base class for all negotiators"]; "Rational" -> "Negotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Notifiable" -> "Negotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "Negotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NegotiatorAcceptanceStrategy" [URL="../../api/negmas.sao.NegotiatorAcceptanceStrategy.html#negmas.sao.NegotiatorAcceptanceStrategy",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="Uses a negotiator as an offering strategy"]; "AcceptanceStrategy" -> "NegotiatorAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NegotiatorMechanismInterface" [URL="../../api/negmas.common.NegotiatorMechanismInterface.html#negmas.common.NegotiatorMechanismInterface",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="All information of a negotiation visible to negotiators."]; "NegotiatorOfferingStrategy" [URL="../../api/negmas.sao.NegotiatorOfferingStrategy.html#negmas.sao.NegotiatorOfferingStrategy",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="Uses a negotiator as an offering strategy"]; "OfferingStrategy" -> "NegotiatorOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NiceNegotiator" [URL="../../api/negmas.sao.NiceNegotiator.html#negmas.sao.NiceNegotiator",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="Offers and accepts anything."]; "MAPNegotiator" -> "NiceNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NoneOfferingStrategy" [URL="../../api/negmas.sao.NoneOfferingStrategy.html#negmas.sao.NoneOfferingStrategy",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="Always offers `None` which means it never gets an agreement."]; "OfferingStrategy" -> "NoneOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Notifiable" [URL="../../api/negmas.events.Notifiable.html#negmas.events.Notifiable",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 object that can be notified"]; "OfferBest" [URL="../../api/negmas.sao.OfferBest.html#negmas.sao.OfferBest",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="Offers Only the best outcome."]; "OfferingStrategy" -> "OfferBest" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferOrientedNegotiator" [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 time-based negotiator that orients its offers toward some pivot outcome (See `OfferOrientedSelector` )"]; "TimeBasedNegotiator" -> "OfferOrientedNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferOrientedSelector" [URL="../../api/negmas.sao.OfferOrientedSelector.html#negmas.sao.OfferOrientedSelector",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="Selects the nearest outcome to the pivot outcome which is updated before responding"]; "OfferSelector" -> "OfferOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferSelector" [URL="../../api/negmas.sao.OfferSelector.html#negmas.sao.OfferSelector",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 select *the best* offer in some sense from a list of offers based on an inverter"]; "OfferSelectorProtocol" -> "OfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOComponent" -> "OfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferSelectorProtocol" [URL="../../api/negmas.sao.OfferSelectorProtocol.html#negmas.sao.OfferSelectorProtocol",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 select *the best* offer in some sense from a list of offers based on an inverter"]; "Protocol" -> "OfferSelectorProtocol" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferTop" [URL="../../api/negmas.sao.OfferTop.html#negmas.sao.OfferTop",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="Offers outcomes that are in the given top fraction or top `k`. If neither is given it reverts to only offering the best outcome"]; "OfferingStrategy" -> "OfferTop" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OfferingStrategy" [URL="../../api/negmas.sao.OfferingStrategy.html#negmas.sao.OfferingStrategy",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"]; "SAOComponent" -> "OfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "OutcomeSetOrientedSelector" [URL="../../api/negmas.sao.OutcomeSetOrientedSelector.html#negmas.sao.OutcomeSetOrientedSelector",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="Selects the nearest outcome to a set of pivot outcomes which is updated before responding"]; "OfferSelector" -> "OutcomeSetOrientedSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PartnerOffersOrientedSelector" [URL="../../api/negmas.sao.PartnerOffersOrientedSelector.html#negmas.sao.PartnerOffersOrientedSelector",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="Orients offes toward the set of past opponent offers"]; "OutcomeSetOrientedSelector" -> "PartnerOffersOrientedSelector" [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)"]; "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",tooltip="Base class for protocol classes."]; "Generic" -> "Protocol" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomAcceptanceStrategy" [URL="../../api/negmas.sao.RandomAcceptanceStrategy.html#negmas.sao.RandomAcceptanceStrategy",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"]; "AcceptanceStrategy" -> "RandomAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomConcensusOfferingStrategy" [URL="../../api/negmas.sao.RandomConcensusOfferingStrategy.html#negmas.sao.RandomConcensusOfferingStrategy",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="Offers a random response from the list of stratgies (different strategy every time)."]; "ConcensusOfferingStrategy" -> "RandomConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomNegotiator" [URL="../../api/negmas.sao.RandomNegotiator.html#negmas.sao.RandomNegotiator",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 negotiation agent that responds randomly in a single negotiation."]; "MAPNegotiator" -> "RandomNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomOfferSelector" [URL="../../api/negmas.sao.RandomOfferSelector.html#negmas.sao.RandomOfferSelector",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"]; "OfferSelector" -> "RandomOfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RandomOfferingStrategy" [URL="../../api/negmas.sao.RandomOfferingStrategy.html#negmas.sao.RandomOfferingStrategy",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="Always offers `None` which means it never gets an agreement."]; "OfferingStrategy" -> "RandomOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Rational" [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 rational object is an object that can have preferences."]; "NamedObject" -> "Rational" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RejectAlways" [URL="../../api/negmas.sao.RejectAlways.html#negmas.sao.RejectAlways",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="Rejects everything"]; "AcceptanceStrategy" -> "RejectAlways" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ResponseType" [URL="../../api/negmas.sao.ResponseType.html#negmas.sao.ResponseType",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="Possible responses to offers during negotiation."]; "Enum" -> "ResponseType" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOComponent" [URL="../../api/negmas.sao.SAOComponent.html#negmas.sao.SAOComponent",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"]; "Component" -> "SAOComponent" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOController" [URL="../../api/negmas.sao.SAOController.html#negmas.sao.SAOController",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 controller that can manage multiple negotiators taking full or partial control from them."]; "Controller" -> "SAOController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOMechanism" [URL="../../api/negmas.sao.SAOMechanism.html#negmas.sao.SAOMechanism",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 Several variants of the Stacked Alternating Offers Protocol"]; "Mechanism" -> "SAOMechanism" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOMetaNegotiatorController" [URL="../../api/negmas.sao.SAOMetaNegotiatorController.html#negmas.sao.SAOMetaNegotiatorController",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="Controls multiple negotiations using a single `meta` negotiator."]; "SAOController" -> "SAOMetaNegotiatorController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOModularNegotiator" [URL="../../api/negmas.sao.SAOModularNegotiator.html#negmas.sao.SAOModularNegotiator",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 generic modular SAO negotiator."]; "ModularNegotiator" -> "SAOModularNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAONegotiator" -> "SAOModularNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAONMI" [URL="../../api/negmas.sao.SAONMI.html#negmas.sao.SAONMI",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="SAONMI(id: 'str', n_outcomes: 'int | float', outcome_space: 'OutcomeSpace', time_limit: 'float', step_time_limit: 'float', negotiator_time_limit: 'float', n_steps: 'int | None', dynamic_entry: 'bool', max_n_agents: 'int | None', annotation: 'dict[str, Any]' = <factory>, end_on_no_response: 'bool' = True, publish_proposer: 'bool' = True, publish_n_acceptances: 'bool' = False)"]; "NegotiatorMechanismInterface" -> "SAONMI" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAONegotiator" [URL="../../api/negmas.sao.SAONegotiator.html#negmas.sao.SAONegotiator",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 SAO negotiators."]; "Negotiator" -> "SAONegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAORandomController" [URL="../../api/negmas.sao.SAORandomController.html#negmas.sao.SAORandomController",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 controller that returns random offers."]; "SAOController" -> "SAORandomController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAORandomSyncController" [URL="../../api/negmas.sao.SAORandomSyncController.html#negmas.sao.SAORandomSyncController",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 sync controller that returns random offers. (See `SAOSyncController` )."]; "SAOSyncController" -> "SAORandomSyncController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOResponse" [URL="../../api/negmas.sao.SAOResponse.html#negmas.sao.SAOResponse",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 response to an offer given by an agent in the alternating offers protocol"]; "SAOSingleAgreementAspirationController" [URL="../../api/negmas.sao.SAOSingleAgreementAspirationController.html#negmas.sao.SAOSingleAgreementAspirationController",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 `SAOSingleAgreementController` that uses aspiration level to decide what"]; "SAOSingleAgreementController" -> "SAOSingleAgreementAspirationController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOSingleAgreementController" [URL="../../api/negmas.sao.SAOSingleAgreementController.html#negmas.sao.SAOSingleAgreementController",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 synchronized controller that tries to get no more than one agreeement."]; "SAOSyncController" -> "SAOSingleAgreementController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "SAOSingleAgreementController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOSingleAgreementRandomController" [URL="../../api/negmas.sao.SAOSingleAgreementRandomController.html#negmas.sao.SAOSingleAgreementRandomController",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 single agreement controller that uses a random negotiation strategy."]; "SAOSingleAgreementController" -> "SAOSingleAgreementRandomController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOState" [URL="../../api/negmas.sao.SAOState.html#negmas.sao.SAOState",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="SAOState(running: 'bool' = False, waiting: 'bool' = False, started: 'bool' = False, step: 'int' = 0, time: 'float' = 0.0, relative_time: 'float' = 0.0, broken: 'bool' = False, timedout: 'bool' = False, agreement: \"'Outcome' | None\" = None, results: \"'Outcome' | 'OutcomeSpace' | None\" = None, n_negotiators: 'int' = 0, has_error: 'bool' = False, error_details: 'str' = '', current_offer: 'Optional[Outcome]' = None, current_proposer: 'Optional[str]' = None, current_proposer_agent: 'Optional[str]' = None, n_acceptances: 'int' = 0, new_offers: 'List[Tuple[str, Outcome]]' = <factory>, new_offerer_agents: 'List[str]' = <factory>, last_negotiator: 'Optional[str]' = None)"]; "MechanismState" -> "SAOState" [arrowsize=0.5,style="setlinewidth(0.5)"]; "SAOSyncController" [URL="../../api/negmas.sao.SAOSyncController.html#negmas.sao.SAOSyncController",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 controller that can manage multiple negotiators synchronously."]; "SAOController" -> "SAOSyncController" [arrowsize=0.5,style="setlinewidth(0.5)"]; "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."]; "TFTAcceptanceStrategy" [URL="../../api/negmas.sao.TFTAcceptanceStrategy.html#negmas.sao.TFTAcceptanceStrategy",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 acceptance strategy that concedes as much as the partner (or more)"]; "AcceptanceStrategy" -> "TFTAcceptanceStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TFTOfferingStrategy" [URL="../../api/negmas.sao.TFTOfferingStrategy.html#negmas.sao.TFTOfferingStrategy",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 acceptance strategy that concedes as much as the partner (or more)"]; "OfferingStrategy" -> "TFTOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TimeBasedConcedingNegotiator" [URL="../../api/negmas.sao.TimeBasedConcedingNegotiator.html#negmas.sao.TimeBasedConcedingNegotiator",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="Represents a time-based negotiation strategy that is independent of the offers received during the negotiation."]; "TimeBasedNegotiator" -> "TimeBasedConcedingNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TimeBasedNegotiator" [URL="../../api/negmas.sao.TimeBasedNegotiator.html#negmas.sao.TimeBasedNegotiator",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="Represents a time-based negotiation strategy that is independent of the offers received during the negotiation."]; "UtilBasedNegotiator" -> "TimeBasedNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TopFractionNegotiator" [URL="../../api/negmas.sao.TopFractionNegotiator.html#negmas.sao.TopFractionNegotiator",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="Offers and accepts only one of the top outcomes for the negotiator."]; "MAPNegotiator" -> "TopFractionNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ToughNegotiator" [URL="../../api/negmas.sao.ToughNegotiator.html#negmas.sao.ToughNegotiator",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="Accepts and proposes only the top offer (i.e. the one with highest utility)."]; "MAPNegotiator" -> "ToughNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TraceElement" [URL="../../api/negmas.sao.TraceElement.html#negmas.sao.TraceElement",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="TraceElement(time, relative_time, step, negotiator, offer, response)"]; "UFunModel" [URL="../../api/negmas.sao.UFunModel.html#negmas.sao.UFunModel",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 `SAOComponent` that can model the opponent's utility function."]; "SAOComponent" -> "UFunModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BaseUtilityFunction" -> "UFunModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UnanimousConcensusOfferingStrategy" [URL="../../api/negmas.sao.UnanimousConcensusOfferingStrategy.html#negmas.sao.UnanimousConcensusOfferingStrategy",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="Offers only if all offering strategies gave exactly the same outcome"]; "ConcensusOfferingStrategy" -> "UnanimousConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilBasedConcensusOfferingStrategy" [URL="../../api/negmas.sao.UtilBasedConcensusOfferingStrategy.html#negmas.sao.UtilBasedConcensusOfferingStrategy",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="Offers from the list of stratgies (different strategy every time) based on outcome utilities"]; "ConcensusOfferingStrategy" -> "UtilBasedConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ABC" -> "UtilBasedConcensusOfferingStrategy" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilBasedNegotiator" [URL="../../api/negmas.sao.UtilBasedNegotiator.html#negmas.sao.UtilBasedNegotiator",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 negotiator that bases its decisions on the utility value of outcomes only."]; "SAONegotiator" -> "UtilBasedNegotiator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityBasedOutcomeSetRecommender" [URL="../../api/negmas.sao.UtilityBasedOutcomeSetRecommender.html#negmas.sao.UtilityBasedOutcomeSetRecommender",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="Recommends a set of outcome appropriate for proposal"]; "SAOComponent" -> "UtilityBasedOutcomeSetRecommender" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UtilityInverter" [URL="../../api/negmas.sao.UtilityInverter.html#negmas.sao.UtilityInverter",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 component that can recommend an outcome based on utility"]; "SAOComponent" -> "UtilityInverter" [arrowsize=0.5,style="setlinewidth(0.5)"]; "WorstOfferSelector" [URL="../../api/negmas.sao.WorstOfferSelector.html#negmas.sao.WorstOfferSelector",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"]; "OfferSelector" -> "WorstOfferSelector" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ZeroSumModel" [URL="../../api/negmas.sao.ZeroSumModel.html#negmas.sao.ZeroSumModel",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="Assumes a zero-sum negotiation (i.e. $u_o$ = $-u_s$ )"]; "StationaryMixin" -> "ZeroSumModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UFunModel" -> "ZeroSumModel" [arrowsize=0.5,style="setlinewidth(0.5)"]; }