gemseo / algos

# algo_lib module¶

Base class for algorithm libraries.

class gemseo.algos.algo_lib.AlgoLib[source]

Bases: object

Abstract class for algorithms libraries interfaces.

An algorithm library solves a numerical problem (optim, doe, linear problem) using a particular algorithm from a particular family of numerical methods.

Provide the available methods in the library for the proposed problem to be solved.

To integrate an optimization package, inherit from this class and put your module in gemseo.algos.doe or gemseo.algo.opt, or gemseo.algos.linear_solver packages.

Return type

None

driver_has_option(option_name)[source]

Check the existence of an option.

Parameters

option_name (str) – The name of the option.

Returns

Whether the option exists.

Return type

bool

execute(problem, algo_name=None, **options)[source]

Execute the driver.

Parameters
• problem (Any) – The problem to be solved.

• algo_name (Optional[str]) –

The name of the algorithm. If None, use algo_name attribute which may have been set by the factory.

By default it is set to None.

• **options (Any) – The algorithm options.

Return type

None

Filter the algorithms capable of solving the problem.

Parameters

problem (Any) – The problem to be solved.

Returns

The names of the algorithms adapted to this problem.

Return type

list[str]

init_options_grammar(algo_name)[source]

Initialize the options grammar.

Parameters

algo_name (str) – The name of the algorithm.

Return type

gemseo.core.grammars.json_grammar.JSONGrammar

static is_algorithm_suited(algorithm_description, problem)[source]

Check if the algorithm is suited to the problem according to its description.

Parameters
Returns

Whether the algorithm is suited to the problem.

Return type

bool

LIBRARY_NAME: ClassVar[str | None] = None

The name of the interfaced library.

OPTIONS_DIR: Final[str] = 'options'

The name of the directory containing the files of the grammars of the options.

OPTIONS_MAP: dict[str, str] = {}

The names of the options in GEMSEO mapping to those in the wrapped library.

algo_name: str | None

The name of the algorithm used currently.

property algorithms: list[str]

The available algorithms.

descriptions: dict[str, AlgorithmDescription]

The description of the algorithms contained in the library.

internal_algo_name: str | None

The internal name of the algorithm used currently.

It typically corresponds to the name of the algorithm in the wrapped library if any.

opt_grammar: JSONGrammar | None

The grammar defining the options of the current algorithm.

problem: Any | None

The problem to be solved.

class gemseo.algos.algo_lib.AlgorithmDescription(algorithm_name, internal_algorithm_name, library_name='', description='', website='')[source]

Bases: object`

The description of an algorithm.

Parameters
• algorithm_name (str) –

• internal_algorithm_name (str) –

• library_name (str) –

By default it is set to .

• description (str) –

By default it is set to .

• website (str) –

By default it is set to .

Return type

None

algorithm_name: str

The name of the algorithm in GEMSEO.

description: str = ''

A description of the algorithm.

internal_algorithm_name: str

The name of the algorithm in the wrapped library.

library_name: str = ''

The name of the wrapped library.

website: str = ''

The website of the wrapped library or algorithm.