DiscreteOutcomeSpace
- class negmas.outcomes.DiscreteOutcomeSpace(*args, **kwargs)[source]
Bases:
OutcomeSpace,Collection,ProtocolThe base protocol for all outcome spaces with a finite number of items.
This type of outcome-space acts as a standard python
Collectionwhich means that its length can be found usinglen()and it can be iterated over to return outcomes.Attributes Summary
The space cardinality = the number of outcomes
Methods Summary
are_types_ok(outcome)Checks if the type of each value in the outcome is correct for the given issue
cardinality_if_discretized(levels[, ...])Returns the cardinality if discretized the given way.
ensure_correct_types(outcome)Returns an outcome that is guaratneed to have correct types or raises an exception
Enumerates the outcome space returning all its outcomes (or up to max_cardinality for infinite ones)
enumerate_or_sample([levels, max_cardinality])Enumerates all outcomes if possible (i.e. discrete space) or returns
max_cardinalitydifferent outcomes otherwise.Checks whether there are no continua components of the space
Checks whether the space is finite
is_float()Checks whether all values in all outcomes are real
Checks whether all values in all outcomes are integers
Checks whether all values in all outcomes are numeric
is_valid(outcome)Checks if the given outcome is valid for that outcome space
limit_cardinality([max_cardinality, levels])Limits the cardinality of the outcome space to the given maximum (or the number of levels for each issue to
Logging Levels)Returns a single random outcome.
sample(n_outcomes[, with_replacement, ...])Samples up to n_outcomes with or without replacement
to_discrete(*args, **kwargs)Returns a stable finite outcome space.
to_largest_discrete(levels[, max_cardinality])to_single_issue([numeric, stringify])Attributes Documentation
- cardinality
The space cardinality = the number of outcomes
Methods Documentation
- are_types_ok(outcome: Outcome) bool
Checks if the type of each value in the outcome is correct for the given issue
- cardinality_if_discretized(levels: int, max_cardinality: int | float = inf) int
Returns the cardinality if discretized the given way.
- ensure_correct_types(outcome: Outcome) Outcome
Returns an outcome that is guaratneed to have correct types or raises an exception
- enumerate() Iterable[Outcome][source]
Enumerates the outcome space returning all its outcomes (or up to max_cardinality for infinite ones)
- enumerate_or_sample(levels: int | float = inf, max_cardinality: int | float = inf) Iterable[Outcome]
Enumerates all outcomes if possible (i.e. discrete space) or returns
max_cardinalitydifferent outcomes otherwise
- limit_cardinality(max_cardinality: int | float = inf, levels: int | float = inf) DiscreteOutcomeSpace[source]
Limits the cardinality of the outcome space to the given maximum (or the number of levels for each issue to
Logging Levels)- Parameters:
max_cardinality – The maximum number of outcomes in the resulting space
levels – The maximum levels allowed per issue (if issues are defined for this outcome space)
- random_outcome() Outcome
Returns a single random outcome.
- sample(n_outcomes: int, with_replacement: bool = False, fail_if_not_enough=True) Iterable[Outcome][source]
Samples up to n_outcomes with or without replacement
- to_discrete(*args, **kwargs) DiscreteOutcomeSpace[source]
Returns a stable finite outcome space. If the outcome-space is already finite. It shoud return itself.
- Parameters:
levels – The levels of discretization of any continuous dimension (or subdimension)
max_cardintlity – The maximum cardinality allowed for the resulting outcomespace (if the original OS was infinite). This limitation is NOT applied for outcome spaces that are alredy discretized. See
limit_cardinality()for a method to limit the cardinality of an already discrete space
If called again, it should return the same discrete outcome space every time.
- to_largest_discrete(levels: int, max_cardinality: int | float = inf, **kwargs) DiscreteOutcomeSpace
- to_single_issue(numeric: bool = False, stringify: bool = True) CartesianOutcomeSpace[source]