Example Notebooks

In the left-hand navigation pane, you will see a Jupyter link. This link will take you to the Jupyter Notebook UI, where you can run the example notebooks and create your own.


The python folder contains notebooks that use the Python API, and the server folder contains notebooks that utilize a cuOpt server running locally in LaunchPad.

To meet the growing number of customer workflows and abstract the underlying complexity of the technology, cuOpt provides a developer API in Python that is easy to adopt. It exposes a composable solver for all the implemented variants of the VRP problem and available heuristics.

The Python API is implemented as a thin layer sitting on top and translating the C++ APIs and CUDA kernels to deliver the best performance. Compatibility with the existing ecosystem is achieved through RAPIDS cuDF, which provides an API Interface for GPU array-like objects and interoperability with significant data science packages.


The cuOpt server is built on top of the Python API and provides HTTP endpoints for solving the same VRP problems. The problem data is sent as JSON in HTTP requests so no particular programming language is required for a client. While the machine running the server requires a GPU, a client of the server can run on any host with a network connection. Additionally, multiple clients can contribute data to the same problem, which allows an architecture where separate clients are responsible for different aspects of a problem. For example, one client might be responsible for tracking and submitting vehicle data while another client is responsible for tracking and submitting order data.

In each folder, click on the various files ending in .ipynb to open a notebook in another tab. Text in each notebook will guide you through the exercise. The README.ipynb notebook in each folder contains brief descriptions of the features illustrated in the other notebooks.

When you’re done with a notebook, you can shut it down from the File -> Close and Halt or Kernel -> Shutdown menu items to free up GPU memory. This may be important if you’re running many Python API notebooks concurrently or a memory-intensive notebook of your own.


If you would like to edit a notebook to experiment with code changes, use the File -> Make a Copy menu item to create a new notebook and then edit the copy. This will preserve the original notebook for reference.

You can return to the Jupyter file navigation pane by clicking on the Jupyter icon at the top of the page or selecting the File -> Open menu option.

© Copyright 2022-2023, NVIDIA. Last updated on Jan 10, 2023.