aea.decision_
maker.gop¶
This module contains the decision maker class.
GoalPursuitReadiness Objects¶
The goal pursuit readiness.
Status Objects¶
The enum of the readiness status.
In particular, it can be one of the following:
- Status.READY: when the agent is ready to pursuit its goal
- Status.NOT_READY: when the agent is not ready to pursuit its goal
__
init__
¶
Instantiate the goal pursuit readiness.
is_
ready¶
Get the readiness.
update¶
Update the goal pursuit readiness.
Arguments:
new_status
: the new status
OwnershipState Objects¶
Represent the ownership state of an agent (can proxy a ledger).
__
init__
¶
Instantiate an ownership state object.
set¶
def set(amount_by_currency_id: CurrencyHoldings = None,
quantities_by_good_id: GoodHoldings = None,
**kwargs: Any) -> None
Set values on the ownership state.
Arguments:
amount_by_currency_id
: the currency endowment of the agent in this state.quantities_by_good_id
: the good endowment of the agent in this state.kwargs
: the keyword arguments.
apply_
delta¶
def apply_delta(delta_amount_by_currency_id: Dict[str, int] = None,
delta_quantities_by_good_id: Dict[str, int] = None,
**kwargs: Any) -> None
Apply a state update to the ownership state.
This method is used to apply a raw state update without a transaction.
Arguments:
delta_amount_by_currency_id
: the delta in the currency amountsdelta_quantities_by_good_id
: the delta in the quantities by goodkwargs
: the keyword arguments
is_
initialized¶
Get the initialization status.
amount_
by_
currency_
id¶
Get currency holdings in this state.
quantities_
by_
good_
id¶
Get good holdings in this state.
is_
affordable_
transaction¶
Check if the transaction is affordable (and consistent).
E.g. check that the agent state has enough money if it is a buyer or enough holdings if it is a seller. Note, the agent is the sender of the transaction message by design.
Arguments:
terms
: the transaction terms
Returns:
True if the transaction is legal wrt the current state, false otherwise.
is_
affordable¶
Check if the tx is affordable.
Arguments:
terms
: the transaction terms
Returns:
whether the transaction is affordable or not
update¶
Update the agent state from a transaction.
Arguments:
terms
: the transaction terms
apply_
transactions¶
Apply a list of transactions to (a copy of) the current state.
Arguments:
list_of_terms
: the sequence of transaction terms.
Returns:
the final state.
__
copy__
¶
Copy the object.
Preferences Objects¶
Class to represent the preferences.
__
init__
¶
Instantiate an agent preference object.
set¶
def set(exchange_params_by_currency_id: ExchangeParams = None,
utility_params_by_good_id: UtilityParams = None,
**kwargs: Any) -> None
Set values on the preferences.
Arguments:
exchange_params_by_currency_id
: the exchange params.utility_params_by_good_id
: the utility params for every asset.kwargs
: the keyword arguments.
is_
initialized¶
Get the initialization status.
Returns:
True if exchange_params_by_currency_id and utility_params_by_good_id are not None.
exchange_
params_
by_
currency_
id¶
Get exchange parameter for each currency.
utility_
params_
by_
good_
id¶
Get utility parameter for each good.
logarithmic_
utility¶
Compute agent's utility given her utility function params and a good bundle.
Arguments:
quantities_by_good_id
: the good holdings (dictionary) with the identifier (key) and quantity (value) for each good
Returns:
utility value
linear_
utility¶
Compute agent's utility given her utility function params and a currency bundle.
Arguments:
amount_by_currency_id
: the currency holdings (dictionary) with the identifier (key) and quantity (value) for each currency
Returns:
utility value
utility¶
Compute the utility given the good and currency holdings.
Arguments:
quantities_by_good_id
: the good holdingsamount_by_currency_id
: the currency holdings
Returns:
the utility value.
marginal_
utility¶
def marginal_utility(
ownership_state: BaseOwnershipState,
delta_quantities_by_good_id: Optional[GoodHoldings] = None,
delta_amount_by_currency_id: Optional[CurrencyHoldings] = None,
**kwargs: Any) -> float
Compute the marginal utility.
Arguments:
ownership_state
: the ownership state against which to compute the marginal utility.delta_quantities_by_good_id
: the change in good holdingsdelta_amount_by_currency_id
: the change in money holdingskwargs
: the keyword arguments
Returns:
the marginal utility score
utility_
diff_
from_
transaction¶
Simulate a transaction and get the resulting utility difference (taking into account the fee).
Arguments:
ownership_state
: the ownership state against which to apply the transaction.terms
: the transaction terms.
Returns:
the score.
is_
utility_
enhancing¶
Check if the tx is utility enhancing.
Arguments:
ownership_state
: the ownership state against which to apply the transaction.terms
: the transaction terms
Returns:
whether the transaction is utility enhancing or not
__
copy__
¶
Copy the object.
DecisionMakerHandler Objects¶
This class implements the decision maker.
SigningDialogues Objects¶
This class keeps track of all oef_search dialogues.
__
init__
¶
Initialize dialogues.
Arguments:
self_address
: the address of the entity for whom dialogues are maintainedkwargs
: the keyword arguments
StateUpdateDialogues Objects¶
This class keeps track of all oef_search dialogues.
__
init__
¶
Initialize dialogues.
Arguments:
self_address
: the address of the entity for whom dialogues are maintainedkwargs
: the keyword arguments
__
init__
¶
Initialize the decision maker.
Arguments:
identity
: the identitywallet
: the walletconfig
: the user defined configuration of the handler
handle¶
Handle an internal message from the skills.
Arguments:
message
: the internal message