Optimizers

Optimizer Base

class aiida_reoptimize.optimizers.OptimizerBase._OptimizerBase(*args, **kwargs)[source]

Bases: WorkChain

Base class for all optimization algorithm WorkChains.

Defines common inputs (parameters, itmax, get_best, structure), common outputs (optimized_parameters, final_value, history, result_node_pk), and the initialize / optimization_process / finalize outline.

Subclasses must set the evaluator_workchain and extractor class attributes and implement optimization_process and finalize.

check_itmax()[source]

Check if the current iteration is within the maximum limit.

Returns:

True if the optimizer should continue iterating.

classmethod define(spec)[source]
evaluator_workchain: Type[WorkChain]
extractor: Callable
finalize()[source]

Finalize the optimization process. Subclasses must override this method.

initialize()[source]
optimization_process()[source]

Main optimization loop.

record_history(iteration, value, result_node_pk=None)[source]
report_progress()[source]
run_evaluator(targets, **kwargs)[source]

Run the evaluator workchain with the given targets.

Parameters:
  • targets – AiiDA List of parameter vectors to evaluate.

  • **kwargs – Additional keyword arguments passed to the evaluator (e.g. calculator_parameters).

Returns:

Dictionary of evaluator outputs including evaluation_results, or None when the evaluator failed.

Gradient-based

PyMOO

Utilities

aiida_reoptimize.optimizers.result_utils.ensure_population_has_valid_results(workchain, results, raw_results=None, context='current population')[source]

Abort optimization when every evaluation in a batch returned the penalty.