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
| 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
| 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
| 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
| 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