explorator module
Define Explorator, a module to explore the design space.
In order to be consistent with the ABC OptimisationAlgorithm,
it also returns the solution with the lowest residual value – hence it is also
a “brute-force” optimisation algorithm.
Todo
Make this class more robust. In particular: save all objectives (not just
the norm), handle export when there is more than two variables, also save
complementary data (e.g.: always save phi_s even it is not in the
constraints nor variables).
Todo
Allow for different number of points according to variable.
- class Explorator(*, compensating_elements, elts, objectives, variables, compute_beam_propagation, compute_residuals, cavity_settings_factory, reference_simulation_output, constraints=None, compute_constraints=None, optimisation_algorithm_kwargs=None, history_kwargs=None, **kwargs)[source]
Bases:
OptimisationAlgorithmMethod that tries all the possible solutions.
Notes
Very inefficient for optimization. It is however useful to study a specific case.
All the attributes but
solutionare inherited from the Abstract Base ClassOptimisationAlgorithm.- Parameters:
compensating_elements (
Collection[Element])elts (
ListOfElements)objectives (
Collection[Objective])variables (
Collection[Variable])compute_beam_propagation (
Callable[[SetOfCavitySettings],SimulationOutput])compute_residuals (
Callable[[SimulationOutput],Any])cavity_settings_factory (
CavitySettingsFactory)reference_simulation_output (
SimulationOutput)constraints (
Collection[Constraint] |None, default:None)compute_constraints (
Callable[[SimulationOutput],ndarray] |None, default:None)optimisation_algorithm_kwargs (
dict[str,Any] |None, default:None)
-
compute_constraints:
Callable[[SimulationOutput],ndarray]
- optimize()[source]
Set up the optimization and solve the problem.
- Return type:
- Returns:
Gives list of solutions, corresponding objective, convergence violation if applicable, etc.
- _generate_combinations(n_points=10, **kwargs)[source]
Generate all the possible combinations of the variables.
- _array_of_values_to_mesh(objectives_values, n_points=10, **kwargs)[source]
Reformat the results for plotting purposes.
- _generate_opti_sol(variables_values, objectives_values, criterion)[source]
Create the dictionary holding all relatable information.
- _take_best_solution(variable_comb, objectives_values, criterion)[source]
Take the “best” of the calculated solutions.
- Parameters:
variable_comb (
ndarray) – All the set of variables (cavity parameters) that were tried.objectives_values (
ndarray) – The values of the objective corresponding tovariable_comb.criterion (
Literal['minimize norm of objective']) – Name of the criterion that will determine which solution is the “best”. Only one is implemented for now, may add others in the future.
- Return type:
- Returns:
best_solution – “Best” solution.
best_objective – Objective values corresponding to
best_solution.
- _abc_impl = <_abc._abc_data object at 0x75e515324d40>