lumix.solvers.capabilities.LXSolverCapability

class lumix.solvers.capabilities.LXSolverCapability(name, features, max_variables=2147483647, max_constraints=2147483647, supports_warmstart=False, supports_parallel=False, supports_callbacks=False)[source]

Describes a solver’s capabilities.

Used to: - Query what features a solver supports - Automatically select appropriate linearization methods - Provide meaningful errors when features are unavailable

Parameters:
__init__(name, features, max_variables=2147483647, max_constraints=2147483647, supports_warmstart=False, supports_parallel=False, supports_callbacks=False)
Parameters:
Return type:

None

Methods

__init__(name, features[, max_variables, ...])

can_solve_integer()

Check if solver can handle integer variables.

can_solve_quadratic()

Check if solver can handle quadratic objectives.

can_use_indicator()

Check if solver has native indicator constraint support.

can_use_sos2()

Check if solver has native SOS2 support.

description()

Get human-readable capability description.

has_feature(feature)

Check if solver has a specific feature.

needs_linearization_for_abs()

Check if solver needs linearization for absolute value x.

needs_linearization_for_bilinear()

Check if solver needs linearization for bilinear products (x * y).

needs_linearization_for_minmax()

Check if solver needs linearization for min/max functions.

needs_linearization_for_nonlinear()

Check if solver needs linearization for general nonlinear functions.

Attributes

name: str
features: LXSolverFeature
max_variables: int = 2147483647
max_constraints: int = 2147483647
supports_warmstart: bool = False
supports_parallel: bool = False
supports_callbacks: bool = False
has_feature(feature)[source]

Check if solver has a specific feature.

Parameters:

feature (LXSolverFeature) – Feature to check

Return type:

bool

Returns:

True if solver supports the feature

can_solve_quadratic()[source]

Check if solver can handle quadratic objectives.

Return type:

bool

can_solve_integer()[source]

Check if solver can handle integer variables.

Return type:

bool

can_use_sos2()[source]

Check if solver has native SOS2 support.

Return type:

bool

can_use_indicator()[source]

Check if solver has native indicator constraint support.

Return type:

bool

needs_linearization_for_bilinear()[source]

Check if solver needs linearization for bilinear products (x * y).

Return type:

bool

Returns:

True if solver lacks native quadratic support

needs_linearization_for_abs()[source]

Check if solver needs linearization for absolute value x.

Return type:

bool

Returns:

True if solver lacks native piecewise-linear support

needs_linearization_for_minmax()[source]

Check if solver needs linearization for min/max functions.

Return type:

bool

Returns:

True if solver lacks native piecewise-linear support

needs_linearization_for_nonlinear()[source]

Check if solver needs linearization for general nonlinear functions.

Return type:

bool

Returns:

True if solver lacks native exponential cone or PWL support

description()[source]

Get human-readable capability description.

Return type:

str

__init__(name, features, max_variables=2147483647, max_constraints=2147483647, supports_warmstart=False, supports_parallel=False, supports_callbacks=False)
Parameters:
Return type:

None