ommx_fixstars_amplify_adapter.adapter

Classes

OMMXFixstarsAmplifyAdapter

An abstract interface for OMMX Solver Adapters, defining how solvers should be used with OMMX.

Functions

_make_constraint_label(→ str)

_make_variable_label(→ str)

Module Contents

class ommx_fixstars_amplify_adapter.adapter.OMMXFixstarsAmplifyAdapter(ommx_instance: ommx.v1.Instance)

Bases: ommx.adapter.SolverAdapter

An abstract interface for OMMX Solver Adapters, defining how solvers should be used with OMMX.

See the implementation guide for more details.

_function_to_poly(func: ommx.v1.Function) amplify.Poly
_set_constraints()
_set_decision_variables()
_set_objective()
decode(data: amplify.Result) ommx.v1.Solution

Convert optimized Python-MIP model and ommx.v1.Instance to ommx.v1.Solution.

This method is intended to be used if the model has been acquired with solver_input for futher adjustment of the solver parameters, and separately optimizing the model.

Note that alterations to the model may make the decoding process incompatible – decoding will only work if the model still describes effectively the same problem as the OMMX instance used to create the adapter.

Example:

The following example shows how to solve an unconstrained linear optimization problem with x as the objective function.

>>> from ommx_fixstars_amplify_adapter import OMMXFixstarsAmplifyAdapter
>>> from ommx.v1 import Instance, DecisionVariable, Linear
>>>
>>> x1 = DecisionVariable.integer(1, lower=0, upper=5)
>>> ommx_instance = Instance.from_components(
...     decision_variables=[x1],
...     objective=x1,
...     constraints=[],
...     sense=Instance.MINIMIZE,
... )
>>>
>>> adapter = OMMXFixstarsAmplifyAdapter(ommx_instance)
>>> model = adapter.solver_input
>>> # ... some modification of model's parameters
>>> client = amplify.FixstarsClient()
>>> client.token = "YOUR API TOKEN" # Set your API token
>>> client.parameters.timeout = 1000
>>> result = amplify.solve(model, client)  
>>> solution = adapter.decode(result)  
decode_to_state(data: amplify.Result) ommx.v1.State

Create an ommx.v1.State from an amplify.Result.

Example:

The following example shows how to solve an unconstrained linear optimization problem with x as the objective function.

>>> from ommx_fixstars_amplify_adapter import OMMXFixstarsAmplifyAdapter
>>> from ommx.v1 import Instance, DecisionVariable, Linear
>>>
>>> x1 = DecisionVariable.integer(1, lower=0, upper=5)
>>> ommx_instance = Instance.from_components(
...     decision_variables=[x1],
...     objective=x1,
...     constraints=[],
...     sense=Instance.MINIMIZE,
... )
>>>
>>> adapter = OMMXFixstarsAmplifyAdapter(ommx_instance)
>>> model = adapter.solver_input
>>> # ... some modification of model's parameters
>>> client = amplify.FixstarsClient()
>>> client.token = "YOUR API TOKEN" # Set your API token
>>> client.parameters.timeout = 1000
>>> result = amplify.solve(model, client)  
>>> state = adapter.decode_to_state(result)  
classmethod solve(ommx_instance: ommx.v1.Instance, *, amplify_token: str = '', timeout: int = 1000) ommx.v1.Solution

Solve the given ommx.v1.Instance using Fixstars Amplify, returning an ommx.v1.Solution.

NOTE The amplify_token parameter _must_ be passed to properly

instantiate the Fixstars Client. Using the default value will result in an error.

Parameters:
  • ommx_instance – The ommx.v1.Instance to solve.

  • amplify_token – Token for instantiating the Fixstars Client, obtained from your Fixstars Amplify account.

  • timeout – Timeout passed the client

Example:

The following example shows how to solve an unconstrained linear optimization problem with x as the objective function.

>>> from ommx_fixstars_amplify_adapter import OMMXFixstarsAmplifyAdapter
>>> from ommx.v1 import Instance, DecisionVariable, Linear
>>>
>>> x1 = DecisionVariable.integer(1, lower=0, upper=5)
>>> ommx_instance = Instance.from_components(
...     decision_variables=[x1],
...     objective=x1,
...     constraints=[],
...     sense=Instance.MINIMIZE,
... )
>>> token = "YOUR API TOKEN" # Set your API token
>>> solution = OMMXFixstarsAmplifyAdapter.solve(ommx_instance, amplify_token=token) 
instance
model
property solver_input: amplify.Model

The Amplify model generated from this OMMX instance

ommx_fixstars_amplify_adapter.adapter._make_constraint_label(constraint: ommx.v1.Constraint) str
ommx_fixstars_amplify_adapter.adapter._make_variable_label(variable: ommx.v1.DecisionVariable) str