DiscreteOutcomeSpace

class negmas.outcomes.DiscreteOutcomeSpace(*args, **kwargs)[source]

Bases: OutcomeSpace, Collection, Protocol

The base protocol for all outcome spaces with a finite number of items.

This type of outcome-space acts as a standard python Collection which means that its length can be found using len() and it can be iterated over to return outcomes.

Attributes Summary

cardinality

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

enumerate()

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_cardinality different outcomes otherwise.

is_discrete()

Checks whether there are no continua components of the space

is_finite()

Checks whether the space is finite

is_float()

Checks whether all values in all outcomes are real

is_integer()

Checks whether all values in all outcomes are integers

is_numeric()

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)

random_outcome()

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_cardinality different outcomes otherwise

is_discrete() bool[source]

Checks whether there are no continua components of the space

is_finite() bool

Checks whether the space is finite

is_float() bool

Checks whether all values in all outcomes are real

is_integer() bool

Checks whether all values in all outcomes are integers

is_numeric() bool

Checks whether all values in all outcomes are numeric

is_valid(outcome: Outcome) bool

Checks if the given outcome is valid for that outcome space

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]