Preferences
- class negmas.preferences.Preferences(*args, outcome_space=None, issues=None, outcomes=None, reserved_outcome=None, **kwargs)[source]
Bases:
NamedObject
,ABC
Base class for all preferences.
- Parameters:
outcome_space (
OutcomeSpace
|None
) – The outcome-space over which the preferences are defined
Attributes Summary
Returns the utility_function base type ignoring discounting and similar wrappings.
The unique ID of this entity
A convenient name of the entity (intended primarily for printing/logging/debugging).
Returns the utility_function type.
The unique ID of this entity
Methods Summary
changes
()Returns a list of changes to the preferences (if any) since last call.
checkpoint
(path[, file_name, info, ...])Saves a checkpoint of the current object at the given path.
checkpoint_info
(file_name)Returns the information associated with a dump of the object saved in the given file
create
(*args, **kwargs)Creates an object and returns a proxy to it.
from_checkpoint
(file_name[, return_info])Creates an object from a saved checkpoint
from_dict
(d)is_better
(first, second)Compares two offers using the
ufun
returning whether the first is strictly better than the secondis_equivalent
(first, second)Compares two offers using the
ufun
returning whether the first is strictly equivelent than the secondis_not_better
(first, second)Compares two offers using the
ufun
returning whether the first is worse or equivalent than the secondis_not_worse
(first, second)Is
first
at least as good assecond
Does the utility of an outcome depend on the
NegotiatorMechanismInterface
?Does the utility of an outcome depend on the negotiation state?
Are the preferences stationary (i.e. repeated calls return the same value for any preferences comparion or evaluaton method)?.
Does the utility of an outcome depend on factors outside the negotiation?
is_worse
(first, second)Compares two offers using the
ufun
returning whether the first is strictly worse than the secondWill be called whenever we need to reset changes.
set_id
(id)Sets the unique ID of this entity
spawn
([spawn_as, spawn_params])spawn_object
(*args, **kwargs)to_dict
()Attributes Documentation
- base_type
Returns the utility_function base type ignoring discounting and similar wrappings.
- id
The unique ID of this entity
- name
A convenient name of the entity (intended primarily for printing/logging/debugging).
- short_type_name
- type
Returns the utility_function type.
Each class inheriting from this
UtilityFunction
class will have its own type. The default type is the empty string.Examples
>>> from negmas.preferences import * >>> from negmas.outcomes import make_issue >>> print( ... LinearAdditiveUtilityFunction( ... (lambda x: x, lambda x: x), issues=[make_issue((0, 1), (0, 1))] ... ).type ... ) linear_additive >>> print( ... MappingUtilityFunction( ... [lambda x: x], issues=[make_issue((0.0, 1.0))] ... ).type ... ) mapping
- Returns:
utility_function type
- Return type:
- type_name
- uuid
The unique ID of this entity
Methods Documentation
- changes()[source]
Returns a list of changes to the preferences (if any) since last call.
- Return type:
- Remarks:
If the ufun is stationary, the return list will always be empty.
If the ufun is not stationary, the ufun itself is responsible for saving the changes in _changes whenever they happen.
- checkpoint(path, file_name=None, info=None, exist_ok=False, single_checkpoint=True, step_attribs=('current_step', '_current_step', '_Entity__current_step', '_step'))
Saves a checkpoint of the current object at the given path.
- Parameters:
path (
PathLike
) – Full path to a directory to store the checkpointfile_name (
str
|None
) – Name of the file to dump into. If not given, a unique name is createdinfo (
dict
[str
,Any
] |None
) – Information to save with the checkpoint (must be json serializable)exist_ok (
bool
) – If true, override existing dumpsingle_checkpoint (
bool
) – If true, keep a single checkpoint for the last stepstep_attribs (
tuple
[str
,...
]) – Attributes to represent the time-step of the object. Any of the given attributes will be used in the file name generated if single_checkpoint is False. If single_checkpoint is True, the filename will not contain time-step information
- Return type:
- Returns:
full path to the file used to save the checkpoint
- classmethod checkpoint_info(file_name)
Returns the information associated with a dump of the object saved in the given file
Returns:
- classmethod create(*args, **kwargs)
Creates an object and returns a proxy to it.
- classmethod from_checkpoint(file_name, return_info=False)
Creates an object from a saved checkpoint
- Parameters:
- Return type:
- Returns:
Either the object or the object and dump-info as a dict (if return_info was true)
Remarks:
- If info is returned, it is guaranteed to have the following members:
time: Dump time
type: Type of the dumped object
id: ID
name: name
- is_better(first, second)[source]
Compares two offers using the
ufun
returning whether the first is strictly better than the second- Parameters:
- Return type:
Remarks:
Should raise
ValueError
if the comparison cannot be done
- is_equivalent(first, second)[source]
Compares two offers using the
ufun
returning whether the first is strictly equivelent than the second- Parameters:
- Return type:
Remarks:
Should raise
ValueError
if the comparison cannot be done
- is_not_better(first, second)[source]
Compares two offers using the
ufun
returning whether the first is worse or equivalent than the second- Parameters:
- Return type:
Remarks:
Should raise
ValueError
if the comparison cannot be done
- abstract is_session_dependent()[source]
Does the utility of an outcome depend on the
NegotiatorMechanismInterface
?- Return type:
- abstract is_state_dependent()[source]
Does the utility of an outcome depend on the negotiation state?
- Return type:
- is_stationary()[source]
Are the preferences stationary (i.e. repeated calls return the same value for any preferences comparion or evaluaton method)?
- Return type:
- abstract is_volatile()[source]
Does the utility of an outcome depend on factors outside the negotiation?
- Return type:
- Remarks:
A volatile preferences is one that can change even for the same mechanism state due to outside influence
- is_worse(first, second)[source]
Compares two offers using the
ufun
returning whether the first is strictly worse than the second- Parameters:
- Return type:
Remarks:
Should raise
ValueError
if the comparison cannot be done
- set_id(id)
Sets the unique ID of this entity
- classmethod spawn(spawn_as='object', spawn_params=None, *args, **kwargs)
- classmethod spawn_object(*args, **kwargs)