culebra.solution.parameter_optimization.Solution class

class Solution(species: Species, fitness_cls: Type[Fitness], values: Sequence[int | float] | None = None)

Construct a default solution.

Parameters:
  • species (species_cls) – The species the solution will belong to

  • fitness (Fitness) – The solution’s fitness class

  • values (Sequence of int or float values, optional) – Initial values

Raises:
  • TypeError – If species is not a valid species

  • TypeError – If fitness_cls is not a valid fitness class

Class attributes

Solution.species_cls = <class 'culebra.solution.parameter_optimization.Species'>

Class for the species used by the Solution class to constrain all its instances.

Class methods

classmethod Solution.load_pickle(filename: str) Base

Load a pickled object from a file.

Parameters:

filename (str) – The file name.

Raises:

Properties

property Solution.species: Species

Get the solution’s species.

Returns:

The species

Return type:

Species

property Solution.fitness: Fitness

Get and set the solution’s fitness.

Getter:

Return the current fitness

Setter:

Set a new Fitness

Type:

Fitness

property Solution.named_values_cls: Type[NamedTuple]

Return the named tuple class to hold the parameter values.

property Solution.values: NamedTuple[int | float, ...]

Get and set the parameter values evolved by the solution.

Getter:

Return the parameter values

Setter:

Set the new parameter values.

Type:

named_values_cls

Raises:

ValueError – If set to new parameter values which do not meet the species constraints.

Methods

Solution.save_pickle(filename: str) None

Pickle this object and save it to a file.

Parameters:

filename (str) – The file name.

Raises:
Solution.get(name: str) int | float

Get the value of the parameter with the given name.

Parameters:

name (str) – Name of the parameter

Private methods

Solution._setup() None

Init the values of this solution randomly.

Dunder methods

Solution.__hash__() int

Return the hash number for this solution.

The hash number is used for equality comparisons. Currently is implemented as the hash of the solution’s string representation.

Solution.__eq__(other: Solution) bool

Equality test.

Parameters:

other (Solution) – Other solution

Returns:

True if other codes the same solution, or False otherwise

Return type:

bool

Solution.__ne__(other: Solution) bool

Not equality test.

Parameters:

other (Solution) – Other solution

Returns:

False if other codes the same solutions, or True otherwise

Return type:

bool

Solution.__lt__(other: Solution) bool

Less than operator.

Parameters:

other (Solution) – Other solution

Returns:

True if the solution’s fitness is less than the other’s fitness

Return type:

bool

Solution.__gt__(other: Solution) bool

Greater than operator.

Parameters:

other (Solution) – Other solution

Returns:

True if the solution’s fitness is greater than the other’s fitness

Return type:

bool

Solution.__le__(other: Solution) bool

Less than or equal to operator.

Parameters:

other (Solution) – Other solution

Returns:

True if the solution’s fitness is less than or equal to the other’s fitness

Return type:

bool

Solution.__ge__(other: Solution) bool

Greater than or equal to operator.

Parameters:

other (Solution) – Other solution

Returns:

True if the solution’s fitness is greater than or equal to the other’s fitness

Return type:

bool

Solution.__str__() str

Return the solution as a string.