Skip to content

scipyoptimizer

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.HashableBaseModelIO.__hash__

__hash__() -> int

Return the hash of the model.

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.HashableBaseModelIO.fromCryptography classmethod

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

Decrypt the model using the key.

sgp.models.optimize.scipyoptimizer.HashableBaseModelIO.fromDict classmethod

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

Load the model from a dictionary.

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.HashableBaseModelIO.toCryptography

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

Encrypt the model using the key.

sgp.models.optimize.scipyoptimizer.HashableBaseModelIO.toDict

toDict(**kwargs) -> dict

Convert the model to a dictionary.

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.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.scipyoptimizer.HashableBaseModelIO.update

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

Update the options of the optimizer

sgp.models.optimize.scipyoptimizer.LBFGSB

sgp.models.optimize.scipyoptimizer.LBFGSBOptions

Bases: ScipyOptions

sgp.models.optimize.scipyoptimizer.NelderMead

sgp.models.optimize.scipyoptimizer.NelderMeadOptions

Bases: ScipyOptions

sgp.models.optimize.scipyoptimizer.OptimizerBase

Base class for optimizers

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.OptimizerBase.callback

callback(x: ndarray | Any)

Callback function that will be evaluated after each iteration

sgp.models.optimize.scipyoptimizer.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.scipyoptimizer.OptimizerBase.optimize

optimize() -> OptimizerResult

Optimize the objective function

sgp.models.optimize.scipyoptimizer.OptimizerBase.setup

setup()

Post set up the optimizer

sgp.models.optimize.scipyoptimizer.OptimizerResult

Bases: HashableBaseModelIO

OptimizeResult for the optimizers

sgp.models.optimize.scipyoptimizer.Powell

sgp.models.optimize.scipyoptimizer.PowellOptions

Bases: ScipyOptions

sgp.models.optimize.scipyoptimizer.ScipyOptimizer

Bases: OptimizerBase, ABC

sgp.models.optimize.scipyoptimizer.ScipyOptions

sgp.models.optimize.scipyoptimizer.ScipyResult

Bases: OptimizerResult

Represents the optimization result for scipy optimize algorithms

Notes

OptimizeResult may have additional attributes not listed here depending on the specific solver being used. Since this class is essentially a subclass of dict with attribute accessors, one can see which attributes are available using the OptimizeResult.keys method.

sgp.models.optimize.scipyoptimizer.TNC

sgp.models.optimize.scipyoptimizer.TNCOptions

Bases: ScipyOptions

sgp.models.optimize.scipyoptimizer.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