CartesianOutcomeSpace

class negmas.outcomes.CartesianOutcomeSpace(issues, name: str | None = None)[source]

Bases: XmlSerializable

An outcome-space that is generated by the cartesian product of a tuple of Issue s.

Attributes Summary

cardinality

The space cardinality = the number of outcomes

issue_names

Returns an ordered list of issue names

issues

name

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[, ...])

contains_issue(x)

Cheks that the given issue is in the tuple of issues constituting the outcome space (i.e. it is one of its dimensions).

contains_os(x)

Checks whether an outcome-space is contained in this outcome-space

ensure_correct_types(outcome)

Returns an outcome that is guaratneed to have correct types or raises an exception

enumerate_or_sample([levels, max_cardinality])

Enumerates all outcomes if possible (i.e. discrete space) or returns max_cardinality different outcomes otherwise.

enumerate_or_sample_rational(preferences[, ...])

Enumerates all outcomes if possible (i.e. discrete space) or returns max_cardinality different outcomes otherwise.

from_dict(d[, python_class_identifier])

from_genius(file_name, **kwargs)

Imports a utility function from a GENIUS XML file.

from_outcomes(outcomes[, numeric_as_ranges, ...])

from_xml_str(xml_str[, safe_parsing, name])

Imports a utility function from a GENIUS XML string.

is_all_continuous()

Checks whether all issues are discrete

is_compact()

Checks whether all issues are complete ranges

is_discrete()

Checks whether all issues are discrete

is_finite()

Checks whether the space is finite

is_float()

Checks whether all issues are real

is_integer()

Checks whether all issues are integer

is_not_discrete()

Checks whether all issues are discrete

is_numeric()

Checks whether all issues are numeric

is_valid(outcome)

random_outcome()

sample(n_outcomes[, with_replacement, ...])

to_dict([python_class_identifier])

to_discrete([levels, max_cardinality])

Discretizes the outcome space by sampling Logging Levels values for each continuous issue.

to_genius(file_name, **kwargs)

Exports a utility function to a GENIUS XML file.

to_largest_discrete(levels[, max_cardinality])

to_single_issue([numeric, stringify, ...])

Creates a new outcome space that is a single-issue version of this one discretizing it as needed

to_xml_str(**kwargs)

Exports a utility function to a well formatted string

Attributes Documentation

cardinality

The space cardinality = the number of outcomes

issue_names

Returns an ordered list of issue names

issues: tuple[Issue, ...]
name: str | None

Methods Documentation

are_types_ok(outcome: tuple) bool[source]

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[source]
contains_issue(x: Issue) bool[source]

Cheks that the given issue is in the tuple of issues constituting the outcome space (i.e. it is one of its dimensions)

contains_os(x: OutcomeSpace) bool[source]

Checks whether an outcome-space is contained in this outcome-space

ensure_correct_types(outcome: tuple) tuple[source]

Returns an outcome that is guaratneed to have correct types or raises an exception

enumerate_or_sample(levels: int | float = inf, max_cardinality: int | float = inf) Iterable[tuple][source]

Enumerates all outcomes if possible (i.e. discrete space) or returns max_cardinality different outcomes otherwise

enumerate_or_sample_rational(preferences: Iterable[HasReservedValue | HasReservedOutcome], levels: int | float = inf, max_cardinality: int | float = inf, aggregator: Callable[[Iterable[bool]], bool] = <built-in function any>) Iterable[Outcome][source]

Enumerates all outcomes if possible (i.e. discrete space) or returns max_cardinality different outcomes otherwise.

Parameters:
  • preferences – A list of Preferences that is used to judge outcomes

  • levels – The number of levels to use for discretization if needed

  • max_cardinality – The maximum cardinality allowed in case of discretization

  • aggregator – A predicate that takes an Iterable of booleans representing whether or not an outcome is rational for a given Preferences (i.e. better than reservation) and returns a single boolean representing the result for all preferences. Default is any but can be all.

classmethod from_dict(d, python_class_identifier='__python_class__')[source]
classmethod from_genius(file_name: PathLike, **kwargs) X

Imports a utility function from a GENIUS XML file.

Parameters:

file_name (str) – File name to import from

Returns:

A utility function object (depending on the input file)

static from_outcomes(outcomes: list[tuple], numeric_as_ranges: bool = False, issue_names: list[str] | None = None, name: str | None = None) DiscreteCartesianOutcomeSpace[source]
classmethod from_xml_str(xml_str: str, safe_parsing=True, name=None, **kwargs) CartesianOutcomeSpace[source]

Imports a utility function from a GENIUS XML string.

Parameters:

xml_str (str) – The string containing GENIUS style XML utility function definition

Returns:

A utility function object (depending on the input file)

is_all_continuous() bool[source]

Checks whether all issues are discrete

is_compact() bool[source]

Checks whether all issues are complete ranges

is_discrete() bool[source]

Checks whether all issues are discrete

is_finite() bool[source]

Checks whether the space is finite

is_float() bool[source]

Checks whether all issues are real

is_integer() bool[source]

Checks whether all issues are integer

is_not_discrete() bool[source]

Checks whether all issues are discrete

is_numeric() bool[source]

Checks whether all issues are numeric

is_valid(outcome: tuple) bool[source]
random_outcome()[source]
sample(n_outcomes: int, with_replacement: bool = True, fail_if_not_enough=True) Iterable[tuple][source]
to_dict(python_class_identifier='__python_class__')[source]
to_discrete(levels: int | float = 10, max_cardinality: int | float = inf) DiscreteCartesianOutcomeSpace[source]

Discretizes the outcome space by sampling Logging Levels values for each continuous issue.

The result of the discretization is stable in the sense that repeated calls will return the same output.

to_genius(file_name: PathLike, **kwargs) None

Exports a utility function to a GENIUS XML file.

Parameters:

file_name (str) – File name to export to

Returns:

None

Remarks:

See to_xml_str for all the parameters

to_largest_discrete(levels: int, max_cardinality: int | float = inf, **kwargs) DiscreteCartesianOutcomeSpace[source]
to_single_issue(numeric=False, stringify=True, levels: int = 5, max_cardinality: int | float = inf) DiscreteCartesianOutcomeSpace[source]

Creates a new outcome space that is a single-issue version of this one discretizing it as needed

Parameters:
  • numeric – If given, the output issue will be a ContiguousIssue otberwise it will be a CategoricalIssue

  • stringify – If given, the output issue will have string values. Checked only if Numeric and Mathematical Modules is False

  • levels – Number of levels to discretize any continuous issue

  • max_cardinality – Maximum allowed number of outcomes in the resulting issue.

Remarks:
  • Will discretize inifinte outcome spaces

to_xml_str(**kwargs) str[source]

Exports a utility function to a well formatted string