objective module

Define a class to hold optimisation objective with its ideal value.

class Objective(name, weight, descriptor=None, ideal_value=None)[source]

Bases: ABC

Hold an objective and methods to evaluate it.

Parameters:
  • name (str) – A short string to describe the objective and access to it.

  • weight (float) – A scaling constant to set the weight of current objective.

  • descriptor (str | None, default: None) – A longer string to explain the objective.

  • ideal_value (Any | None, default: None) – The ideal value or range of values that we should tend to.

name: str
weight: float
descriptor: str | None = None
ideal_value: Any | None = None
__post_init__()[source]

Avoid line jumps in the descriptor.

Return type:

None

abstract __str__()[source]

Output info on what is this objective about.

Return type:

str

abstract base_str()[source]

Tell nature and position of objective.

Return type:

str

static str_header()[source]

Give a header to explain what __str__() returns.

Return type:

str

abstract evaluate(simulation_output)[source]

Compute residuals of this objective.

Parameters:

simulation_output (SimulationOutput) – Object containing simulation results of the broken linac.

Returns:

residual – Difference between current evaluation and ideal_value value for self.name, scaled by self.weight.

Return type:

float

_compute_residuals(*args, **kwargs)[source]

Compute residual (loss), for a given value.

In general, you will want to call this function from Objective.evaluate().

Return type:

float

_check_get_arguments(get_key, get_kwargs)[source]

Check validity of get_args, get_kwargs.

In general, residuals evaluation relies on a SimulationOutput.get() method. This method uses get_args and get_kwargs; we perform here some basic checks.

Parameters:
Return type:

None

__init__(name, weight, descriptor=None, ideal_value=None)
Parameters:
_abc_impl = <_abc._abc_data object at 0x70e252921dc0>