load_genius_domain_from_folder

negmas.inout.load_genius_domain_from_folder(folder_name, ignore_reserved=False, ignore_discount=False, safe_parsing=False, **kwargs)[source]

Loads a genius domain from a folder. See load_genius_domain for more details.

Parameters:
  • folder_name (str | PathLike) – A folder containing one XML domain file and one or more ufun files in Genius format

  • ignore_reserved – Sets the reserved_value of all ufuns to -inf

  • ignore_discount – Ignores discounting

  • safe_parsing – Applies more stringent checks during parsing

  • kwargs – Extra arguments to pass verbatim to SAOMechanism constructor

Return type:

Scenario

Returns:

A domain ready for make_session

Examples

>>> import pkg_resources
>>> from negmas import load_genius_domain_from_folder

Try loading and running a domain with predetermined agents: >>> domain = load_genius_domain_from_folder( … pkg_resources.resource_filename(“negmas”, resource_name=”tests/data/Laptop”) … )

Try loading a domain and check the resulting ufuns >>> domain = load_genius_domain_from_folder( … pkg_resources.resource_filename(“negmas”, resource_name=”tests/data/Laptop”) … )

>>> domain.n_issues, domain.n_negotiators
(3, 2)
>>> [type(_) for _ in domain.ufuns]
[<class 'negmas.preferences.crisp.linear.LinearAdditiveUtilityFunction'>, <class 'negmas.preferences.crisp.linear.LinearAdditiveUtilityFunction'>]

Try loading a domain forcing a single issue space >>> domain = load_genius_domain_from_folder( … pkg_resources.resource_filename(“negmas”, resource_name=”tests/data/Laptop”) … ).to_single_issue() >>> domain.n_issues, domain.n_negotiators (1, 2) >>> [type(_) for _ in domain.ufuns] [<class ‘negmas.preferences.crisp.linear.LinearAdditiveUtilityFunction’>, <class ‘negmas.preferences.crisp.linear.LinearAdditiveUtilityFunction’>]

Try loading a domain with nonlinear ufuns: >>> folder_name = pkg_resources.resource_filename( … “negmas”, resource_name=”tests/data/10issues” … ) >>> domain = load_genius_domain_from_folder(folder_name) >>> print(domain.n_issues) 10 >>> print(domain.n_negotiators) 2 >>> print([type(u) for u in domain.ufuns]) [<class ‘negmas.preferences.crisp.nonlinear.HyperRectangleUtilityFunction’>, <class ‘negmas.preferences.crisp.nonlinear.HyperRectangleUtilityFunction’>] >>> u = domain.ufuns[0] >>> print(u.outcome_ranges[0]) {1: (7.0, 9.0), 3: (2.0, 7.0), 5: (0.0, 8.0), 8: (0.0, 7.0)}

>>> print(u.mappings[0])
97.0
>>> print(u([0.0] * domain.n_issues))
0
>>> print(u([0.5] * domain.n_issues))
186.0