Skip to content

Instantly share code, notes, and snippets.

@FabsOliveira
Last active March 17, 2016 00:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FabsOliveira/8dfc4e3c2f444fb59e70 to your computer and use it in GitHub Desktop.
Save FabsOliveira/8dfc4e3c2f444fb59e70 to your computer and use it in GitHub Desktop.
Robust Optimisation Example - knapsack problem with Bertsimas and Sim (2004) polyhedral uncertainty sets
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This example was developed by Fabricio Oliveira at 13/03/2016. Main reference is: Bertsimas, D. and Sim, M., 2004. *The price of robustness*. Operations research, 52(1), pp.35-53.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Deterministic Model\n",
"\n",
"Let us consider a knapsack problem. In this problem, we have to make a selection of a given number of items that are available. Each item $j$ has a value $c_j$ associated to it and a weigth $b_j$. We want to make an optimal selection that has maximised value, given that we have a limited capacity $b$.\n",
"\n",
"Let $x_j$ be the binary variable representing the decision of selecting $(x_j = 1)$ or not a given item. Thus, our optimisation problem can be posed as follows."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\\begin{align}\n",
"\\max_x &\\sum_j c_jx_j \\\\\n",
"\\text{s.t.: } &\\sum_j a_jx_j \\leq b\\\\\n",
"&x_j \\in \\lbrace 0, 1\\rbrace\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A bit of coding to solve the deterministic version of this problem would look like this..."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal selection: \n",
"3, 7, 9, 11, 19, 22, 23, 25, 32, 38, 45, 47, 48, 49\n"
]
}
],
"source": [
"import pulp as pp\n",
"import numpy as n\n",
"import random as r\n",
"import matplotlib.pyplot as plot\n",
"\n",
"#Some initial declarations\n",
"items = range(0,50)\n",
"c = n.zeros(50)\n",
"a = n.zeros(50)\n",
"b = 500\n",
"\n",
"#Creating instances randomly\n",
"for j in items:\n",
" c[j] = r.randrange(10,200)\n",
" a[j] = r.randrange(10,100)\n",
"\n",
"#Creating the problem instance\n",
"detProb = pp.LpProblem(\"Knapsack Deterministic\", pp.LpMaximize)\n",
"\n",
"#Declaring our x variables\n",
"x = pp.LpVariable.dicts(\"x\", items, 0 , 1, 'Integer')\n",
"\n",
"#Including OF\n",
"detProb += sum(c[j]*x[j] for j in items)\n",
" \n",
"#Including constraint\n",
"detProb += sum(a[j]*x[j] for j in items) <= b\n",
" \n",
"#Solve the model\n",
"detProb.solve()\n",
"\n",
"#Printing out the solution\n",
"print(\"Optimal selection: \")\n",
"selection = \"\"\n",
"for j in items:\n",
" if x[j].value() > 0: \n",
" if selection == \"\":\n",
" selection += str(j)\n",
" else:\n",
" selection += \", \" + str(j)\n",
"print(selection) \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, what happens if we simulate that selection? In other words, what are the chances that we end up having a knapsack that is actually heavier than my weight limit $b$?\n",
"\n",
"Suppose that the weights $a_j$ follow a Gaussian distribution with average $\\overline{a}_j$ and deviation $0.5\\overline{a}$. A simple Monte Carlo simulation show us the following."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Chance of feasibility.: 50.51%\n"
]
}
],
"source": [
"simulations = range(10000) \n",
"simulResult = n.zeros(len(simulations))\n",
"aTilde = n.zeros(len(items))\n",
"\n",
"for s in simulations:\n",
" for j in items:\n",
" aTilde[j] = r.gauss(a[j], 0.5*a[j]) #sampling an observed \\tilde{a}\n",
" \n",
" if sum(aTilde[j]*x[j].value() for j in items) <= b: #registering if the experiment is feasible\n",
" simulResult[s] = 1\n",
" \n",
"print(\"Chance of feasibility.: \" + str(sum(simulResult)*100/len(simulations)) + \"%\") "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Robust Model\n",
"\n",
"Using the RO philosophy, let's assume that the weights $a_j$ are uncertain and take value in an interval which is defined as $\\left[\\overline{a}_j - \\hat{a}_j, \\overline{a}_j + \\hat{a}_j \\right]$. Let us set $\\hat{a} = 0.5\\overline{a}$. By doing so, it lead us to following Robust Counterpart\n",
"\n",
"\\begin{align}\n",
"\\max_x &\\sum_j c_jx_j \\\\\n",
"\\text{s.t.: } &\\sum_j a_jx_j + \\Gamma\\pi + \\sum_j p_j \\leq b\\\\\n",
"&\\pi + p_j \\geq \\hat{a}x_j, \\ \\forall j\\\\\n",
"&x_j \\in \\lbrace 0, 1\\rbrace \\\\\n",
"&p_j \\geq 0 ,\\forall j, \\pi \\geq 0\n",
"\\end{align}\n",
"\n",
"which, once again, can be modelled as follows (note that we have embedded the model into a function so we can use in the following experiment."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def solveForGamma(Gamma):\n",
" \n",
" #defining it for the robust formulation\n",
" aHat = 0.5*a\n",
" \n",
" #Creating the problem instance\n",
" robProb = pp.LpProblem(\"Knapsack Robust\", pp.LpMaximize)\n",
"\n",
" #Declaring the selection variables\n",
" x = pp.LpVariable.dicts(\"x\", items, 0 , 1, 'Integer')\n",
"\n",
" #... and the additional dual variables\n",
" pi = pp.LpVariable(\"pi\", 0 , 5000,'Continuous')\n",
" p = pp.LpVariable.dicts(\"p\", items, 0 , 5000,'Continuous')\n",
"\n",
" #Including OF\n",
" robProb += sum(c[j]*x[j] for j in items) \n",
"\n",
" #Including constraints\n",
" robProb += sum(a[j]*x[j] for j in items) + Gamma*pi + sum(p[j] for j in items) <= b\n",
"\n",
" for j in items:\n",
" robProb += pi + p[j] >= aHat[j]*x[j] \n",
"\n",
" #Solve the model\n",
" robProb.solve()\n",
" \n",
" #...and simulate on-the-fly (note to self: stop being lazy and use a simulation procedure as well)\n",
" simulations = range(10000) \n",
" \n",
" #simulation elements\n",
" simulResult = n.zeros(len(simulations))\n",
" aTilde = n.zeros(len(items))\n",
" \n",
" #Performing Monte Carlo simulation... \n",
" for s in simulations:\n",
" for j in items:\n",
" aTilde[j] = r.gauss(a[j], 0.5*a[j])\n",
"\n",
" if sum(aTilde[j]*x[j].value() for j in items) <= b:\n",
" simulResult[s] = 1\n",
" \n",
" obsProb = sum(simulResult)*100/len(simulations) \n",
" optimalValue = robProb.objective.value()\n",
" \n",
" #Printing the output\n",
" print(\"Optimal selection: \")\n",
" selection = \"\"\n",
" for j in items:\n",
" if x[j].value() > 0: \n",
" if selection == \"\":\n",
" selection += str(j)\n",
" else:\n",
" selection += \", \" + str(j)\n",
" print(selection)\n",
" \n",
" return [obsProb, optimalValue] "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's do a similar experiment, but now different values of $\\Gamma$ to see what happens as we increase it. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done for Gamma = 0\n",
"Optimal selection: \n",
"3, 7, 9, 11, 19, 22, 23, 25, 32, 38, 45, 47, 48, 49\n",
"Done for Gamma = 1\n",
"Optimal selection: \n",
"3, 7, 9, 11, 14, 22, 23, 25, 32, 38, 40, 45, 47, 48, 49\n",
"Done for Gamma = 2\n",
"Optimal selection: \n",
"3, 7, 9, 11, 13, 14, 23, 25, 31, 32, 45, 47, 48, 49\n",
"Done for Gamma = 3\n",
"Optimal selection: \n",
"3, 7, 9, 11, 13, 22, 23, 25, 32, 40, 45, 47, 48, 49\n",
"Done for Gamma = 4\n",
"Optimal selection: \n",
"3, 7, 9, 11, 13, 14, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 5\n",
"Optimal selection: \n",
"3, 7, 9, 11, 14, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 6\n",
"Optimal selection: \n",
"3, 7, 9, 11, 22, 23, 25, 32, 40, 45, 47, 48, 49\n",
"Done for Gamma = 7\n",
"Optimal selection: \n",
"3, 7, 9, 11, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 8\n",
"Optimal selection: \n",
"7, 9, 11, 14, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 9\n",
"Optimal selection: \n",
"3, 7, 9, 11, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 10\n",
"Optimal selection: \n",
"3, 7, 9, 11, 14, 22, 23, 25, 32, 45, 48, 49\n",
"Done for Gamma = 11\n",
"Optimal selection: \n",
"7, 9, 11, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 12\n",
"Optimal selection: \n",
"7, 9, 11, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 13\n",
"Optimal selection: \n",
"7, 9, 11, 22, 23, 25, 32, 45, 47, 48, 49\n",
"Done for Gamma = 14\n",
"Optimal selection: \n",
"7, 9, 11, 22, 23, 25, 32, 45, 47, 48, 49\n"
]
},
{
"data": {
"image/png": "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\nm0nnqYgmAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a080eb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"totalGammas = 15\n",
"obsProb = n.zeros(totalGammas)\n",
"optimalValue = n.zeros(totalGammas)\n",
"\n",
"#Let's repeat the experiment for several Gamma values and store observed probabilities and costs\n",
"for gamma in range(totalGammas): \n",
" print(\"Done for Gamma = \" + str(gamma))\n",
" [obsProb[gamma], optimalValue[gamma]] = solveForGamma(gamma)\n",
" \n",
"#Boring bit to get a pretty graph...\n",
"%matplotlib inline\n",
"fig = plot.figure()\n",
"fig.set_size_inches(18.5, 10.5, forward=True)\n",
"plot.title('The price of robustness')\n",
"ax = fig.add_subplot(111)\n",
"\n",
"def theoryBound(gamma): #this is the theoretical bound from Li et al. 2012, thm. 3.1. \n",
" return 100*(1 - n.exp(-(gamma**2)/(2*len(items))))\n",
"\n",
"gammaRange = n.arange(0, totalGammas, 1)\n",
"\n",
"#Plot on regular axis\n",
"ax.plot(obsProb, '-', label = 'Chance of feas.')\n",
"ax.plot(theoryBound(gammaRange), '-g', label = 'Theoretical bound.')\n",
"\n",
"#Plot on the reverse axis\n",
"ax2 = ax.twinx()\n",
"ax2.plot(optimalValue, '-r', label = 'Obj. Function Values')\n",
"\n",
"#get labels for legend\n",
"lines, labels = ax.get_legend_handles_labels()\n",
"lines2, labels2 = ax2.get_legend_handles_labels()\n",
"ax2.legend(lines + lines2, labels + labels2, loc='center right')\n",
"\n",
"ax.grid()\n",
"ax.set_xlabel(\"Gamma\")\n",
"ax.set_ylabel(\"Probabilities\")\n",
"ax2.set_ylabel(\"Obj. Function Values\")\n",
"\n",
"plot.show() \n",
" "
]
}
],
"metadata": {
"celltoolbar": "Raw Cell Format",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment