ommx_fixstars_amplify_adapter.adapter
Classes
An abstract interface for OMMX Solver Adapters, defining how solvers should be used with OMMX. |
Functions
|
|
|
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