Introduction

Introduction#

What is JijModeling?#

jijmodeling is a Python package designed to intuitively describe optimization problems. The main features of jijmodeling are as follows:

  • You can describe mathematical models without instance data, which makes it quick to verify and easy to reuse mathematical models. The size of the instance does not affect the performance of describing or manipulating the mathematical model.

  • It functions as a common interface for various types of optimization problems, such as linear programming problems, mixed integer programming problems, and nonlinear programming problems.

  • You can programmatically manipulate mathematical models, making it easier to construct mathematical models in parts or describe more complex logic in constructing constraints.

  • It supports LaTeX output, so you can quickly and interactively check whether the mathematical model is constructed as expected when combined with the Jupyter environment.

jijmodeling is a tool for describing mathematical models using Python code, not for evaluating or solving mathematical models. This specification focuses on the algebraic structure of mathematical models, independent of instance data, allowing for logical consideration, verification, and faster modification of mathematical models. It also functions as a schema for generating the input format expected by solvers.

To solve the mathematical models described with jijmodeling using a solver, you need to combine them with actual instance data and convert them into the input format for a specific solver using other tools such as the JijZept service or the freely available jijmodeling-transpiler.

Installation#

If you are using pip, you can install jijmodeling with the following command:

pip install jijmodeling

Note that jijmodeling requires Python 3.9 or higher.

import jijmodeling
jijmodeling.__version__
'1.12.2'

Caution

When running the code in this document, it is strongly recommended to use the same version of jijmodeling as above.