|
15 | 15 | "This modeling example is at the advanced level, where we assume that you know Python and the Gurobi Python API and that you have advanced knowledge of building mathematical optimization models. Typically, the objective function and/or constraints of these examples are complex or require advanced features of the Gurobi Python API.\n",
|
16 | 16 | "\n",
|
17 | 17 | "**Download the Repository** <br /> \n",
|
18 |
| - "You can download the repository containing this and other examples by clicking [here](https://github.com/Gurobi/modeling-examples/archive/master.zip). \n", |
19 |
| - "\n", |
20 |
| - "**Gurobi License** <br /> \n", |
21 |
| - "In order to run this Jupyter Notebook properly, you must have a Gurobi license. If you do not have one, you can request an [evaluation license](https://www.gurobi.com/downloads/request-an-evaluation-license/?utm_source=3PW&utm_medium=OT&utm_campaign=WW-MU-MUI-OR-O_LEA-PR_NO-Q3_FY20_WW_JPME_Lost_Luggage_Distribution_COM_EVAL_GitHub&utm_term=Lost%20Luggage%20Distribution&utm_content=C_JPM) as a *commercial user*, or download a [free license](https://www.gurobi.com/academia/academic-program-and-licenses/?utm_source=3PW&utm_medium=OT&utm_campaign=WW-MU-EDU-OR-O_LEA-PR_NO-Q3_FY20_WW_JPME_Lost_Luggage_Distribution_COM_EVAL_GitHub&utm_term=Lost%20Luggage%20Distribution&utm_content=C_JPM) as an *academic user*." |
| 18 | + "You can download the repository containing this and other examples by clicking [here](https://github.com/Gurobi/modeling-examples/archive/master.zip)." |
22 | 19 | ]
|
23 | 20 | },
|
24 | 21 | {
|
|
74 | 71 | "y_{i,k} \\leq z_{k} \\quad \\forall i \\in L \\setminus \\{0\\}, \\; k \\in V\n",
|
75 | 72 | "\\end{equation}\n",
|
76 | 73 | "\n",
|
77 |
| - "**Travel time**: No van travels for more than 120 min. Observe that the travel time to return to the depot is not considered.\n", |
| 74 | + "**Travel time**: No van travels for more than 120 min. Note that we do not consider the travel time to return to the depot.\n", |
78 | 75 | "\n",
|
79 | 76 | "\\begin{equation}\n",
|
80 |
| - "\\sum_{i \\in L} \\sum_{j \\in L \\setminus \\{0\\}} t_{i,j}*x_{i,j,k} \\leq 120 \\quad \\forall k \\in V\n", |
| 77 | + "\\sum_{i \\in L} \\sum_{j \\in L \\setminus \\{0\\}} t_{i,j} \\cdot x_{i,j,k} \\leq 120 \\quad \\forall k \\in V\n", |
81 | 78 | "\\end{equation}\n",
|
82 | 79 | "\n",
|
83 | 80 | "**Visit all customers**: Each customer location is visited by exactly one van.\n",
|
|
391 | 388 | "metadata": {},
|
392 | 389 | "source": [
|
393 | 390 | "### Callback Definition\n",
|
394 |
| - "The following function determines lazy constraints to eliminate sub-tours." |
| 391 | + "Subtour constraints prevent a van from visiting a set of destinations without starting or ending at the Heathrow depot. Because there are an exponential number of these constraints, we don't want to add them all to the model. Instead, we use a callback function to find violated subtour constraints and add them to the model as lazy constraints:" |
395 | 392 | ]
|
396 | 393 | },
|
397 | 394 | {
|
|
0 commit comments