# OR-Tools Examples

The following table provides links to:

- Code examples in the supported languages: C++ ![](https://developers.google.com/static/optimization/images/cppLogo.svg) Python ![](https://developers.google.com/static/optimization/images/pythonLogo.svg) DotNet ![](https://developers.google.com/static/optimization/images/dotnetLogo.svg) Java ![](https://developers.google.com/static/optimization/images/javaLogo.svg)
- Tutorials that explain the examples. ![](https://developers.google.com/static/optimization/images/orLogo.png)
- Colabs --- code demos that you can run directly in your browser. ![](https://developers.google.com/static/optimization/images/colabLogo.svg)

Linear Optimization Integer Optimization Constraint Optimization Assignment Packing Scheduling Routing Network Flows Routing Solver MPSolver CP-SAT Solver CP Solver PDLP Solver Knapsack Solver Assignment Solver Tutorial Colab C++ Python .Net Java

| Problem Type | Interface | Description | Tutorials Colabs | Code examples |
|---|---|---|---|---|
| Linear Optimization | MPSolver (GLOP) | Simple linear programming example | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/lp/lp_example) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/linear_solver/linear_programming_example.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/linear_programming_example.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/linear_programming_example.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/LinearProgrammingExample.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/LinearProgrammingExample.java) |
| Integer Optimization | MPSolver (SCIP) | Simple mixed-integer programming example | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/mip/mip_example) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/linear_solver/simple_mip_program.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/simple_mip_program.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/simple_mip_program.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/SimpleMipProgram.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/SimpleMipProgram.java) |
| Constraint Optimization | CP-SAT Solver | Simple constraint programming example | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/cp/cp_example) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/sat/cp_sat_example.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/cp_sat_example.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/cp_sat_example.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/CpSatExample.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/CpSatExample.java) |
| Constraint Optimization | CP-SAT Solver | Simple CP program | [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/sat/solve_with_time_limit_sample_sat.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/solve_with_time_limit_sample_sat.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/solve_with_time_limit_sample_sat.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/SolveWithTimeLimitSampleSat.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/sat/samples/SolveWithTimeLimitSampleSat.java) |
| Routing | Routing solver | Simple TSP example | [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/tsp.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/Tsp.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/Tsp.java) |
| Routing | Routing solver | TSP with distance matrix | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/tsp) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/tsp_cities.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp_cities.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp_cities.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/TspCities.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/TspCities.java) |
| Routing | Routing solver | TSP with 2D locations | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/tsp#circuit_board) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/tsp_circuit_board.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp_circuit_board.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/tsp_circuit_board.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/TspCircuitBoard.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/TspCircuitBoard.java) |
| Routing | Routing solver | Simple Vehicle Routing Problem example | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/vrp) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/vrp.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/Vrp.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/Vrp.java) |
| Routing | Routing solver | Vehicle Routing Problem with capacity constraints | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/cvrp) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/vrp_capacity.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_capacity.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_capacity.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpCapacity.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpCapacity.java) |
| Routing | Routing solver | Vehicle Routing Problem with pickup and delivery constraints | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/pickup_delivery) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/vrp_pickup_delivery.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_pickup_delivery.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_pickup_delivery.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpPickupDelivery.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpPickupDelivery.java) |
| Routing | Routing solver | Vehicle Routing Problem with time window constraints | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/vrptw) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/vrp_time_windows.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_time_windows.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_time_windows.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpTimeWindows.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpTimeWindows.java) |
| Routing | Routing solver | Vehicle Routing Problem with start and end locations | [![](https://developers.google.com/static/optimization/images/orLogo.png)](https://developers.google.com/optimization/routing/routing_tasks#setting_start_and_end_locations_for_routes) [![](https://developers.google.com/static/optimization/images/colabLogo.svg)](https://colab.research.google.com/github/google/or-tools/blob/stable/examples/notebook/constraint_solver/vrp_starts_ends.ipynb) | [![](https://developers.google.com/static/optimization/images/cppLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_starts_ends.cc) [![](https://developers.google.com/static/optimization/images/pythonLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/vrp_starts_ends.py) [![](https://developers.google.com/static/optimization/images/dotnetLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpStartsEnds.cs) [![](https://developers.google.com/static/optimization/images/javaLogo.svg)](https://github.com/google/or-tools/blob/stable/ortools/constraint_solver/samples/VrpStartsEnds.java) |