JijZept SDK
Development Kit for Mathematical Optimization
A free development kit that bundles optimization packages.
Installing JijZept SDK alone lets you easily set up all the tools you need for optimization.
pip install "jijzept_sdk[all]"

Packages Included in JijZept SDK
JijModeling
Intuitively formulate optimization problems
With JijModeling, you can formulate problems using expressions similar to mathematical notation. Its structure analysis features help further enhance solver performance.
OMMX
Seamless integration with optimization tools
OMMX enables easy integration with various solvers and visualization and analysis tools.
MINTO
Simplify management of complex experimental data
MINTO allows you to save and manage optimization results along with runtime parameters. This makes it easy to organize and compare experimental data.
Qamomile
Support for quantum optimization beyond classical approaches
Qamomile enables quantum optimization for problems formulated with JijModeling or OMMX. Note that "quantum" here refers to gate-based quantum computers.
Quick Start
Running optimization with JijZept SDK follows these 4 steps.
1 Installation
Installation
Install JijZept SDK to set up all packages necessary for mathematical optimization.
pip install "jijzept_sdk[all]"
2 Modeling
Modeling
Use JijModeling to describe mathematical models. The following is an example of formulating the knapsack problem.
import jijmodeling as jm
# Define the knapsack problemv = jm.Placeholder("v", ndim=1) # Item valuesw = jm.Placeholder("w", ndim=1) # Item weightsW = jm.Placeholder("W") # Knapsack capacityN = v.len_at(0, latex="N") # Number of itemsx = jm.BinaryVar("x", shape=(N,)) # Decision variablesi = jm.Element("i", belong_to=(0, N))
problem = jm.Problem("Knapsack", sense=jm.ProblemSense.MAXIMIZE)problem += jm.sum(i, v[i] * x[i]) # Objective: maximize valueproblem += jm.Constraint("weight", jm.sum(i, w[i] * x[i]) <= W) # Weight constraint
# Instance datainstance_data = { "v": [10, 13, 18, 31, 7, 15], # Item values "w": [11, 15, 20, 35, 10, 33], # Item weights "W": 47, # Knapsack capacity}
# Create OMMX instanceinterpreter = jm.Interpreter(instance_data)instance = interpreter.eval_problem(problem)
3 Solver Selection and Solving
Solver Selection and Solving
Solve optimization problems with solvers. With OMMX Adapter, you can use the same interface regardless of the solver.
from ommx_highs_adapter import OMMXHighsAdapter
solution = OMMXHighsAdapter.solve(instance)
from ommx_openjij_adapter import OMMXOpenJijSAAdapter
solution = OMMXOpenJijSAAdapter.solve(instance)
from ommx_python_mip_adapter import OMMXPythonMIPAdapter
solution = OMMXPythonMIPAdapter.solve(instance)
from ommx_pyscipopt_adapter import OMMXPySCIPOptAdapter
solution = OMMXPySCIPOptAdapter.solve(instance)
See the list of solvers supported by OMMX Adapter here.
4 Result Analysis
Result Analysis
You can easily retrieve objective function values and decision variables from the solution as shown below.
Objective Function
# Value of the objective functionprint(f"Value of the objective function: {solution.objective}")
Value of the objective function: 41.0
Decision Variables
dv_df = solution.decision_variables_df
# Drop unnecessary columns for displaydv_df.drop(columns=["description", "substituted_value"])
id | kind | lower | upper | name | subscripts | value |
---|---|---|---|---|---|---|
0 | Binary | 0.0 | 1.0 | x | [0] | 1.0 |
1 | Binary | 0.0 | 1.0 | x | [1] | 1.0 |
2 | Binary | 0.0 | 1.0 | x | [2] | 1.0 |
3 | Binary | 0.0 | 1.0 | x | [3] | 0.0 |
4 | Binary | 0.0 | 1.0 | x | [4] | 0.0 |
5 | Binary | 0.0 | 1.0 | x | [5] | 0.0 |
For more efficient data management, please use MINTO.
Install Now
Get the free packages you need for optimization.
Install the package with the following command.
pip install "jijzept_sdk[all]"
Feel Free to Contact Us
We welcome any questions or technical inquiries about JijZept SDK and its included packages.