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 formatignore_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:
- 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