You can create and run Decision Optimization models in Python notebooks using DOcplex, a native Python API for Decision Optimization. There are several Decision Optimization notebooks already available for you to use.
Runtime 22.2 on Python 3.10 S/XS/XXS
DO + NLP runtime 22.2 on Python 3.10
You can easily change environments (runtimes and Python version) inside a notebook using the Environment tab (see Changing the environment of a notebook). This means that you can formulate optimization models and test them with small data sets in one environment, and then, to solve with bigger data sets, you can just switch to a different environment, without having to rewrite or copy the notebook code.
- The Sudoku example, a Constraint Programming example in which the objective is to solve a 9x9 Sudoku grid.
- The Pasta Production Problem example, a Linear Programming example in which the objective is to minimize the production cost for some pasta products and ensure that the customers' demand for the products is satisfied.
All Decision Optimization notebooks use DOcplex.
DOcplex
The Decision Optimization notebooks use DOcplex, a native Python API for modeling and solving Decision Optimization problems. The API is available by default as part of the Python environment.
- Mathematical Programming Modeling for Python using
docplex.mp
- Constraint Programming Modeling for Python using
docplex.cp
from docplex.mp.model import Model
The API is licensed under the Apache License V2.0 and is numpy/pandas
friendly.
You can read the full DOcplex API documentation on rawgit. You can find DOcplex examples on the Decision Optimization GitHub.
Decision Optimization client API
In addition to DOcplex, a Decision Optimization client API is available for you to create scenarios and handle models made in the Decision Optimization experiment UI. For example, see Generating multiple scenarios.
See the Decision Optimization client API documentation. You can also find the previous example in the jupyter folder of the DO-samples.
Running Decision Optimization notebooks
Depending on whether you are interested in Constraint Programming or Linear Programming, choose one of the two notebooks presented earlier in this section and run it as follows.
- From the Samples, open the notebook you want to work with.
- If you have already created a project, click Add to project.
- Select an existing project in the drop-down list, and select a runtime, for example Runtime 22.2 on Python 3.10 XS (or for larger models which require the Commercial Edition of CPLEX engines, select DO + NLP Runtime 22.2 on Python 3.10 XS) and click Create. The notebook is added to your project.
If you have not already created a project, click the Download button to download the example on your machine.
- Create a new project: select Projects > View all Projects from the menu and click the New Project button.
- Select Create an empty project and in the window that opens enter a name and click Create.
- Select the Assets tab.
- Select New task > Work with data and models in Python or R notebooks in the Work with models section.
- Choose From file. Then click Drag and drop files or upload and browse to the notebook on your machine.
- Click Create Notebook.The notebook is added to your project.
To run your notebook, click Cell > Run All.
Example Python notebooks are provided in the Decision Optimization GitHub. To use these, see Jupyter notebook samples. These examples do not use the experiment UI.
Also a Python notebook that shows you how to generate multiple scenarios using randomized data is provided in the jupyter folder of the DO-samples. This can be useful to test a model made in the experiment UI with different data sets. See Generating multiple scenarios for how to do this.
Decision Optimization tutorials
You can find more DOcplex examples that will introduce you to the DOcplex Python API on the Decision Optimization GitHub:
- Linear Programming
- You can read a detailed description of this notebook in this Linear Programming (CPLEX Part 1) tutorial. You can clone or download this Decision Optimization Linear Programming notebook from Github.
- Beyond Linear Programming
- You can read a detailed description of this notebook in this Linear Programming (CPLEX Part 2) tutorial. You can clone or download this Decision Optimization Beyond Linear Programming notebook from Github.
- Getting started with Scheduling in CPLEX for Python
- You can read a detailed description of this notebook in this Scheduling in CPLEX for Python tutorial. You can clone or download this Getting started with Scheduling in CPLEX for Python notebook from Github.