Skip to content

skoptimizer

sgp.models.optimize.skoptimizer.HashableBaseModelIO

Bases: BaseModel

Input/output utilities for the models with support for the following features:

  • Hashing of the model
  • Conversion to and from dictionaries, json, toml, and yaml files
  • Compatibility with pydantic v1 and v2

sgp.models.optimize.skoptimizer.HashableBaseModelIO.exclude property

exclude: set[int] | set[str] | dict[int, Any] | dict[str, Any] | None

Fields to exclude from the model, typically used to exclude arbitrary types when it is allowed in the pydantic model to avoid hashing issues.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.__hash__

__hash__() -> int

Return the hash of the model.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromBytes classmethod

fromBytes(*, binary: bytes | None = None, path: str | None = None, **kwargs) -> Self

Load the model from a binary string or file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromCryptography classmethod

fromCryptography(*, binary: bytes | None = None, path: str | None = None, **kwargs) -> Self

Decrypt the model using the key.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromDict classmethod

fromDict(*, data: dict, **kwargs) -> Self

Load the model from a dictionary.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromJson classmethod

fromJson(*, string: str | None = None, path: str | None = None, **kwargs)

Load the model from a json string or file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromToml classmethod

fromToml(*, string: str | None = None, path: str | None = None, **kwargs)

Load the model from a toml string or file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.fromYaml classmethod

fromYaml(*, string: str | None = None, path: str | None = None, **kwargs)

Load the model from a yaml string or file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toBytes

toBytes(path: Path | str | None = None, **kwargs) -> bytes | None

Convert the model to a binary string or save it to a file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toCryptography

toCryptography(path: Path | str | None = None, **kwargs) -> bytes | None

Encrypt the model using the key.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toDict

toDict(**kwargs) -> dict

Convert the model to a dictionary.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toJson

toJson(path: Path | str | None = None, **kwargs) -> str | None

Convert the model to a json string or save it to a file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toToml

toToml(path: Path | str | None = None, **kwargs) -> str | None

Convert the model to a toml string or save it to a file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.toYaml

toYaml(path: Path | str | None = None, **kwargs) -> str | None

Convert the model to a yaml string or save it to a file if a path is provided.

sgp.models.optimize.skoptimizer.HashableBaseModelIO.update

update(data: dict = None, **kwargs) -> Self

Update the options of the optimizer

sgp.models.optimize.skoptimizer.OptimizerBase

Base class for optimizers

sgp.models.optimize.skoptimizer.OptimizerBase.__init__

__init__(objective_function: Callable, x0: ndarray, *, args: tuple = (), bounds: ndarray | None = None, callback: Callable[[Iterable], Any] | None = None, maxiter: int = 1000, maxfun: int = 10000, **options)

Initialize the optimizer

PARAMETER DESCRIPTION
objective_function

Objective function

TYPE: Callable

x0

Initial parameters

TYPE: ndarray

args

Additional arguments for the objective function

TYPE: tuple DEFAULT: ()

bounds

Bounds of the parameter

TYPE: ndarray DEFAULT: None

maxiter

Maximal number of iterations

TYPE: int DEFAULT: 1000

maxfun

Maximal number of function evaluations

TYPE: int DEFAULT: 10000

callback

Callback function that will be evaluated after each iteration

TYPE: Callable DEFAULT: None

options

Optimizer-specific options

TYPE: int | float | bool | dict | Any DEFAULT: {}

sgp.models.optimize.skoptimizer.OptimizerBase.callback

callback(x: ndarray | Any)

Callback function that will be evaluated after each iteration

sgp.models.optimize.skoptimizer.OptimizerBase.fmin classmethod

fmin(*args, **kwargs) -> OptimizerResult

Static method to do the optimization

PARAMETER DESCRIPTION
args

Positional and keyword arguments for the optimizer

DEFAULT: ()

kwargs

Positional and keyword arguments for the optimizer

DEFAULT: ()

RETURNS DESCRIPTION
res

Optimize result

TYPE: OptimizeResult

sgp.models.optimize.skoptimizer.OptimizerBase.optimize

optimize() -> OptimizerResult

Optimize the objective function

sgp.models.optimize.skoptimizer.OptimizerBase.setup

setup()

Post set up the optimizer

sgp.models.optimize.skoptimizer.OptimizerResult

Bases: HashableBaseModelIO

OptimizeResult for the optimizers

sgp.models.optimize.skoptimizer.SKOAFSA

Bases: SKOOptimizer

sgp.models.optimize.skoptimizer.SKOAFSAOptions

sgp.models.optimize.skoptimizer.SKOAFSAResult

sgp.models.optimize.skoptimizer.SKODE

Bases: SKOOptimizer

sgp.models.optimize.skoptimizer.SKODEOptions

sgp.models.optimize.skoptimizer.SKODEResult

sgp.models.optimize.skoptimizer.SKOGA

Bases: SKOOptimizer

sgp.models.optimize.skoptimizer.SKOGAOptions

sgp.models.optimize.skoptimizer.SKOGAResult

sgp.models.optimize.skoptimizer.SKOGeneticAlgorithmResult

sgp.models.optimize.skoptimizer.SKOOptimizer

Bases: OptimizerBase, ABC

sgp.models.optimize.skoptimizer.SKOOptimizer.optimizer property

optimizer: Type[Union['DE', 'GA', 'PSO', 'SA', 'AFSA']]

Return the optimizer class to be used for optimization

sgp.models.optimize.skoptimizer.SKOOptimizerOptions

sgp.models.optimize.skoptimizer.SKOOptimizerResult

sgp.models.optimize.skoptimizer.SKOPSO

Bases: SKOOptimizer

sgp.models.optimize.skoptimizer.SKOPSOOptions

sgp.models.optimize.skoptimizer.SKOPSOResult

sgp.models.optimize.skoptimizer.SKOSA

Bases: SKOOptimizer

sgp.models.optimize.skoptimizer.SKOSAOptions

sgp.models.optimize.skoptimizer.SKOSAResult

sgp.models.optimize.skoptimizer.register

register(cls_or_name: Type[OptimizerBase] | str | None = None, name: str | None = None, *, jitclass: bool = False, spec: List[Tuple[str, type]] | Mapping[str, Type] | None = None, saveto: Registry | None = None, **methods) -> Type | Callable

Register a new model

Examples:

The following calls are equivalent:

1) cls_or_name = "Foo", name = None

@register("Foo") ... class Foo: ... ...

2) cls_or_name = None, name = "Foo"

@register(name="Foo") ... class Foo: ... ...

3) cls_or_name = Foo, name = "Foo"

class Foo: ... ... register(Foo, "Foo") # noqa

PARAMETER DESCRIPTION
cls_or_name

The class to register or the name of the class, by default None.

TYPE: Type | str DEFAULT: None

name

The name of the class, by default None

TYPE: str DEFAULT: None

jitclass

Whether to compile the class with numba jitclass, by default False

TYPE: bool DEFAULT: False

spec

The numba jitclass spec, by default None

TYPE: List[Tuple[str, type]] | Mapping[str, type] DEFAULT: None

saveto

The registry to save the class, by default None which will use the default registry

TYPE: Registry DEFAULT: None

methods

The additional methods to add to the class before the jitclass compilation, functions with the first argument being the class instance self

DEFAULT: {}

RETURNS DESCRIPTION
Type | Callable

The class that was registered or a callable that registers the class