Skip to content

Instantly share code, notes, and snippets.

@felixvuo
Last active December 1, 2022 14:25
Show Gist options
  • Save felixvuo/403bad18aa59e159680387121b5f80e1 to your computer and use it in GitHub Desktop.
Save felixvuo/403bad18aa59e159680387121b5f80e1 to your computer and use it in GitHub Desktop.
Cactus Plot to Display Algorithm Performance using Python, Pandas, Matplotlib, Seaborn
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# Cactus Plot to Display Solver or Algorithm Performance\n",
"\n",
"Cactus (or survival) plots are a popular way to show the relative performance of algorithms or solvers. Typically a number of instances have been processed and we want to see how the different algorithms perform. According to [this paper](http://www.sc-square.org/CSA/workshop2-papers/RP3-FinalVersion.pdf), in a survival plot solving time is along the $x$ axis and the $y$ axis shows the number of instances solved. In a cactus plot, the axes are switched.\n",
"\n",
"The example below is from the [Kissat Web Site](http://fmv.jku.at/kissat/) and it shows how many instances can be individually solved in a given amount of time. We observe there are nearly 250 instances which can be solved in 5000 seconds (each) using `kissat-2020` but only just over 50 for the `limmat-2002` solver.\n",
"\n",
"![cactus plot of SAT competition winners 2002-2020](http://fmv.jku.at/kissat/winners-2020.png)\n",
"\n",
"Below is a simple toy example to show how you can create a cactus or survival plot using python, pandas, matplotlib and seaborn."
],
"metadata": {
"id": "gkoNMMaTsl0J"
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "rnvfXXoZsOxY"
},
"outputs": [],
"source": [
"# the modules we need\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"source": [
"## The Data\n",
"Let's fabricate some performance data. Normally you would have timings for each instance attempted by each algorithm."
],
"metadata": {
"id": "7e6u2ZHP4OUP"
}
},
{
"cell_type": "code",
"source": [
"import numpy as np\n",
"from numpy.random import default_rng\n",
"rng = default_rng(1) # random number generation\n",
"\n",
"ALGORITHMS = ('ALGetyounextime','anALGesic','crispyALGae')\n",
"N_INSTANCES = 60\n",
"MINTIME = 1\n",
"MAXTIME = 3600\n",
"timings = pd.DataFrame({'instance':[f'i_{x:03d}' for x in range(N_INSTANCES)]})\n",
"for a in ALGORITHMS:\n",
" # use the right-hand side of a normal distribtion,\n",
" # make the sd of the normal distribution 3-20 times smaller than MAXTIME\n",
" sd_ratio = MAXTIME/(3+rng.random()*17)\n",
" print(sd_ratio)\n",
" timings[a] = MINTIME + np.abs(rng.normal(0,sd_ratio,N_INSTANCES)).round(1)\n",
"fig,ax=plt.subplots(figsize=(6,3))\n",
"sns.swarmplot(data=timings.melt(id_vars=('instance'),value_name='time',var_name='algorithm'),\n",
" x='time',y='algorithm',ax=ax)\n",
"fig.tight_layout()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 277
},
"id": "e1s4tNZv4N_V",
"outputId": "fb39ae39-1bbe-45e0-fda9-103ed653d06c"
},
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"307.66686285637496\n",
"257.5612981309197\n",
"391.08655174049215\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADQCAYAAABStPXYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd3hURdfAf5NNrySkAYFAqCEQWkC6gIAIggWlWPHFwou96yufvWH3fW0oir2iKCogSJXeewsQekJI73Xn+2O23ewmWUog6PyeZ5/snTvl3Lube/bMOXNGSCnRaDQajaa+4XG+BdBoNBqNxhVaQWk0Go2mXqIVlEaj0WjqJVpBaTQajaZeohWURqPRaOolnudbAM3ZJzw8XDZv3vx8i6HRaDRusWHDhgwpZUTVcq2g/oY0b96c9evXn28xNBqNxi2EEIdclespPo1Go9HUS7SC0mg0Gk29RCsojUaj0dRLtILSaDQaTb1EKyiNRqPR1Eu0gtJoNBpNvUQrKI1Go9HUS7SC0mg0Gk29RCsojUaj0dRLtILSaDQaTb1EKyiNRqPR1Eu0gtJoNBpNvUQrKI1Go9HUS3Q2c42BLUdymDpvN2m5JYzs1Jh7L2mNh4cgNbeYr9ccpqS8krHdm9IqMui0+l+enMHnqw7i7enB7f3jSIxpcHYvQKPR/G3QCkpjo7iskgkz1pJdVA7A2wuTCfHzYnS3GK54ZwXp+aUAfLXmML/d3Ze4iMBT6n/7sVxunrGWSrMEYNHudBY9OIDoEN+zeyEajeZvgZ7i09jYejTHppysLEs+yYKdJ2zKCaCorJKfNh475f5/35ZqU07Wfv7cdeK05U3PK+GDpfv5cNl+MgpKa2+g0WguKLQFpbERFxGIl0lQXmlXIm2jgwj0MTnVDfR1/upsOpzNK/P2cCKvhFGdG3PPIDU9aKVxAz+nNk1clLnDyfxShv93uU0xfbw8hXn39ic0wPu0+tNoNPUPbUFpbEQE+fDClR0Jsiifvq3CmTygFYPaRdG1md1X1CzMnzFJTQEoKK2goLSCorIKJsxYx6oDmRzIKOStP5P5YrV9k8zconKign0M/YxIbMTFbZx2eXaLXzYfM1hNJ/JK+W3r8VPup7C0gsLSCpfnKs2SkvLK05LvXFFWYUZKWXtFjeYCRFtQGgAyCkp5dOZW/tqXQbvoIP4zvB0948IB9RC8pU8L2jfOIqFxEFd1icHH04Nnft3BlxYlNKhdJLnFxunBpXtPcnPv5vyVfJI7vthAUVklXibBw0PbMqxjNC1r8WEt2HmCdQez6NqsAcM6NGJfegHvLd5HZmEZEUE+TvU9Tc6/t6SUvLdkP7M2HSMi0IeHh7Wla7NQpJQ88+tOvlpzCIHgxl6xTBkRjxDK4vtu3WFenrubvJIKRnVqzMujO+LjaeKzlQd5Z/E+Ks2SiX1bcOfAVqd1v0+V1NxiPv4rhczCMkZ3jaFLswY8PHML87anERHkw9MjE7isY6NzIotGc67QCkoDwFOzd7BwdzoAW4/mMuXnHfz5wMVIKbnx4zWsSckCINjXk+7NG3I4q5AZKw7a2v+x4wQmD2HwMbWLVpF+L83ZTVGZskTKKyUzVqbw7wEtbfXWpmQxZ1sqMaF+jO/RjAAfT95ZlMxr8/fa6tzRP44fNx4lo6DMVtYw0JtMy3Hzhv5cnuj8gP5m7RFe/WMPAPvSC5jwyVpWPn4Jq/Zn8ulKq/ySj5en0LdVOAPbRXI0u4j/zNpuu5ZZm47RvlEwSc1DeWr2Dlvfr/6xh/aNgxnYNvKU7rWVnKIy1qRk0SoysEZlXVpRybUfrOJodjEAP28+xsjExszZlgYo6/H+7zfTu2U4If5epyWLRlMf0QpKA8CGg9mG433pBeQUlbEnLd+mnADySir4fNVBooKdI+8GtY1kdUom+SUV9GsdziSLEnIMsADILiqn3GzGx8PEnztPcNsX67HOUv2xI40fJvU2KD+Az1YepKTCbCi7qEUYF7eJQAiByUMw6csNBHh7MnlgKzo3VVOJS/akG9rklVSw8VA2u1LznOTflZbHwHaR7DyeZ1C0ANuO5TrVB3XfTkdBbTiUxU0fr6XQorgfGdaWyQNcW2OrD2TZlBOAlLD6QKahTkm5mT0n8unRIuyUZdFo6ivaB6UBoGuscT1SXEQAIX5ehoAJK+WVkn6twxH2+AeEgLsGtWLdE4PZ+H9D+GLiRRSUVPDL5mMMamf0M43o2AgfTxV48dWaQzi6UNYdzGZ3Wh7ensavZtVjgBbhAYzt3oyYBn48+P0WVuzLZP7OE1z/0Wqbf6pttHG9lslD0CoykH6tww3lQkDzsADemL+HvSfy8akyXq+WDekaG+okQ9X75i5vLNhrU04Ab/+ZTEE1vrCGLgI/moX5G46DfD1JaBx8WrJoNPWVOrWghBBXArOAeCnlbiFEc+A3KWUHF3UfAG4HygEzsBB4VEpZXrWuQ5v7gA+llEV1IP4ZI4QYAJRJKVdajicBRVLKz8+rYC54elQChaWV/JV8kvaNg5k6OhEhBL1aNqR9o2B2WiwOH08Prr+oGR2ahPDW2M5MW3oAiZqC62SxWny9TCzYeYLJX22wKbhhCVGYJXRsEszY7s1s4/r7OH8F/b08ueeS1jz+0zZb2f1D2nA8p5jpy1OQEuIbBTOxbxwA83akGdoXllWybO9Jru4aw+3949hyNJdle08S4G3i0cva0biBH40b+PHGmE58uOwAQghGdIzmvu83U2ax0pqG+hHg40lWYRljkpoyNqkpHh6CKSPieW/JfioqzUzsG8egdlGndb+zC41f69IKM0WlFQS6uB8dmoQwumsMP248CkBMqB9vjO3EJ8sP8uuW4zRq4MuUEe0JcNFWo7mQqetv9HhgueXvU9VVsjy4hwI9pZQ5Qghv4AHAD6WwquM+4EugXiooYABQAKwEkFJ+cF6lqYbC0gr+uzCZI1lFjEhszBPD44kO8eWXzcf4eHkKJg/BuO5NiQ7xZWSnxrSMCKSkvJItR3IpqaikXXQQ3apYF6/P32Owvlbsz+Sd8V147KdtvL4gma7NGvDe9d3498UtWbrnpM16uKJTI95emMymw9kMiY+kW2woiU0bMHvzcdamZHFp+yhu6BmLt6cHd361keyiMppWsSYAYhv6cyKvhOd/38XRrCKu6daExy+Lp2Ggj+2aNx3OoazCTEKTEPaeKLApJ4Aj2cV8fetF9G5lt7TmbU/lt63KV3ZrvzhGdWpMfkk5L83dzer9mXSMCeGJ4fGEB/rw3pJ9/LL5OI0a+PHIpW3p0CSE3Wl5vDx3N0ezi1XIfapd3ovbRBDpYtr0SFYRL87ZxZ4T+VzZuTGXd2pM/9YRzN+ZxqbD2cSE+TOpfxw94xqe3od/iny28iDfrD1MiJ8X9w9pc8bjrj+Yxevz95JdVMY13WK4tV9crW1W7s/g7T+TySup4LoeTbmxV3NALT14cc4uthzJ4aK4MB4fHk+w74Xnk8ssKOWF33ex+UgOPVqo6wjxu/Cu42wg6ipEVQgRCOwBBgK/SinbVmdBCSGOAP2llCnV9DUUeAbwAfYDtwD/Al6zjJEBfAEkSinvs7S5DWgvpbzfYp39y9LddCnlW1VlEUI8BARKKZ8WQiwB1lhkbwBMlFL+JYQwAS+jFI8P8K6UcpoQ4n6go5TyX0KIjsA3wBhgEVAJnATuBi4BCqSUr1nG2AT0AwKAm4DHgY7Ad1LKKRa5bgDuAbwtMk2WUtYY+5yUlCTXr19fUxUDj87cynfrj9jbx4bynxHxjH5/pW36zUPA3Hv726bMnp69wyHIANo3CmbWnb1ZnpxBgI8nD3y/meM5JbbzJgGhAd6GIIeRnRpzR/845mxLpbiskksTopm+/AB/7rL7jYYlRONpEvy21f4079WyIVuP5BimyFpHBpKcXoCHgBt6xvLsFR249oOVrHPwrY1JiuGVazq5vOaIQB9OVlns+8OkXnRvrnw6u1LzGPHfv7C6poSAWZP78Pmqg4ZFyz3jwrisQyNDMEXDAG8WPzSAoW8uIy3Pfk9GdWqMh4DWUUFM6N3cpQU07K1l7E7Ltx3/q08LrujcmCvfW2H4bH67ux/t63iKb862VCZ/tdF27OvlwfJHBxEe6BxR6Q45RWX0eXmR4XN8a2xnruzSpNo26fkl9Ju6mFKHHxMf3NCNYR2iufHjNfyVnGErH9WpMf8d3+W0ZDuf3PzJWpbuPWk7HpHYiHev63oeJap7hBAbpJRJVcvr0oK6ApgnpdwrhMgUQnQDMqtWEkIEoxRDdcopHJgCDJZSFgohHgUekFI+a1E8A6WUGRaF+IQQ4mHLtOAtwB2WcW8BLgIEsEYIsRTIdjWeA55Syh5CiOEo628wMBHIlVJ2F0L4ACuEEPOBt4ElQoirgCeAO6SUO4UQH2BRSJZruaTKGGVSyiQhxL3AL0A3IAvYL4R4E4gExgJ9pJTlQoj3gOuBszpFuKhKIMH6Q9nM35Fm8A2ZJSzdm25TUIurtNmZmsfg15dyxOLMj21otGqGdYjm923Gqbg1KZn8vvW47aFfWmlm8Z6ThjqL96TjVSV8fNV+p68RCY2DuX9IG+ZuS6XCLNl8JNugnFRfJx3eG+U/WVBKkK8n+SUVtv6+Wn2I37YcZ2LfOJbtPYlj3ISUKgBj8W5jP6sPZDnJm1lYxq9bjhuUE8CJvBK+u6OX07VYScstMSgnUGM28Pdy8dmcrHMFVfVaS8rNrD6QyeWJjU+rvzUpWQblBOpzqUlBrdqfaVBOoO7JJfGRBuVk7etCw2yWLEs2/g8s2X3hXcfZoi4V1HjUgxvgW8vxO7U1EkJcCkxFWS7XAWFAe5QyAGVJrKraTkpZIIRYBFwuhNgFeEkpt1ke/rOklIWW/n9CWS2zaxHlJ8vfDUBzy/uhQKIQ4hrLcQjQWkqZIoSYAGwFpkkpV9R2nRasMmwDdkgpUy0yHgCaAn1RSmud5dr9AJffViHE7SgfHs2aNXNVpVraRgVx0iHSrkkDPzo0DnGq1yYqyPD+UKZ9ZtXf22RTTgCHMouYdHFLMvJLMZkEHRsHs+N4Hgcd2pjN0vDQ/27dEVpGBLD3RIFhHE+TYNPhHFtZ01A/juYUGx7SYQHe3P/dZtvDa/amYzQK8SU1t8Shr0AqzRKTh6BNVJAhurBJAz9mTe7Ngl0nyC4s540Fe9hxXPnd5mxP49lRCS7vR5uoIEOUY2xDf9pFBxkell4mwUVxDfHx9DA8XKsGcFQlLMCbhgHeZBbarc7WUYG0iXIOSXdVdrZx/PxrKjuV/oTA8DnW1p+r862jgvAyeRAXHsCBjEJbedszkO184eEhaBkRyL50+/9A6wvwOs4WdRLFJ4QIAwYB04UQB4GHUVNeompdKWUeUCCEaGE5/kNK2RnYjlJGAlggpexsebWXUk6sZujpwASUxTSjFjErMF5/VQeA9elViV2RC+BuB1laSCnnW861RvmbTuXnpHUMs8N767GnZbzPHMZrK6V82lVHUsoPpZRJUsqkiIhTy87w9Kj2xEUEABAZ5MOr1yQyvGMjxiY1xeQh8LT4oDrF2JXWlBHxtgdAeKA3fVuFO/XbLjqIlMxCvlt3hCm/7CCnqJzuzUOJDvZlfI9mLlMfTRnR3pb+KCbUjxev6sjzV3awRa1FB/vwwJA2PDCkDb5e6uMb1C4SP2+T4eFfUFbJsIQoIi0LemNC/cjIL6Plf+Zw5bsrmNi3ue2aI4J8eOWaRCKDfbn+olhSc4sNivNkfilSSm7uFYunhwppH9ExmjB/b54a2Z4W4aqfqGAfpo5O5M6BregZp6YGA308eWZUB1pFBvLCVfYsHd1iQ7nnktY1fi7enh68ck2iLYqvXXQQTwxvz9D20Yzv0cz22dzYM5ZB7U5vLdapcGOvWIa0V0EhPp4ePHxp2zNSUC3CA3j8sna2z3Fg2whu6dO8xjbxjYJ5cEgbW5TlpQlRXH+R+kE29ZpEoi1+vNiG/jx7hVMs1gXB1NGJNLYkUG4W5s/zV16Y13E2qBMflOXXfDcp5R0OZUuB/wPec+GDmgyMAsZZgiQEsAB4HtiBsmIGSSn3CSECgCaWqcNtwCjH6UEhxEYgAuWPyhZCdAU+BXpimeIDbkQpwFSgLUqxLEVNSVp9UA9JKddbphjXSymbW65rOHCtZcqtDXAMpUzWAiNRVuKHUsqZQogHgWAp5VMW2Z7G6IOyjjHA8v5yS70lwEOo4I9fUFN86RbFHySltOcQcsGp+qBAZVz4dctx3lqYzNHsYkZ0bMQLV3WgqKyCJ3/ZydztqZiEyrjw1EhlTZjNkv8tSmb9oWwaBnjz+7ZUW2BEZJAPz13ZgTu+2GAY546L43j8snhA+TTu/Hqj7Rf0+B7NeOnqjlSaJSfySogO9rXl8rNOfTz20zbScksI8vXkhSs70KtlOBFBPnyx+hD/9/N2w1jvXd+Voe2jSM8v5a6vN7LRwQpLig3lh0m9SM0tISLIxzAt9+aCvby9MNnQl9UflVtUzmvzd/PF6sOAehB+fetFCCGIDPIxZLNIzyshyNcLP297LsOS8kpyi8tdriOrjrIKM5mFpTQKMSr0nKIyBOKcL87NKCjF18vkMuLwdCgsraCorNJldpDqKCitoKS80sn/VVFpJj2/lEYhvrasIBcirv4H/s6cax/UeNQ0nSM/ooIA2gohjjqU3w+8jwoUWCOEKEUpjBXAJillrmX67BuL3weUT2ov8CEwTwhxXEo50HLue6CzlDIbQEq5UQjxKUqBgAqS2AQghHjWUn4M2O3GdU1HTfdttCjRk8CVwJuogIm9QoiJwGIhxDLgV2CmEOIKVJDEKWHxY00B5gshPFARjXcCNSqo06G4vJIpP28nz+KDmbXpGNEhvrSODGTONhWgUCElM1YcZEh8FL1bhfPu4n28+af9Qd6+cTBdmjYg0MeTG3vFsis132kcx0i54R0b8etdfVmyJ53WUUEMiVe/zk0ewsm68vAQTFt6gDTLlF1+SQXP/b6L1Y8rt97VXZrww/ojbD2qFtT2btmQIe2j8DR50LiBH1uOGhfabjmagxDO4wDc1CuWX7ce58BJNV00IrGRLVgis7DUppxATWV+9FcKT7uYAnQVlefrZcLXyzn5bk14e3o4KSeABv7nJzHu6QZFVEeAj+cph8gH+ni6VJDWz/tCx9X/wD+ROlFQDsrCsey/wH9raPaq5eWqv0VAdxfl/wP+V6W4L0phONZ7A3jDXZmklAMc3mdg8UFJKc3AfywvR/7lUP8IYE0JkA4kOtT7q5oxlgBLqjn3HfBdVRnPNvvSC2zKyUrV7BJW9p7Ip3ercGZvMSZn3Xk8jxkTutusg4ggH1pGBLDf8qD38zIxvofRP9ahSQgdmjj7u1xxKLPQcHwyv5SC0gpC/LwI8PHk58l9mLEyheM5xVx3UazBKurRPIxVDtkXasq40DDQh/n39WdtShbBfl4G+U7kOW/rkZZb4lSm0WjOnL9NJgkhRAMhxF6gWEq58HzLc6HRKjKQ4CpbaHSNDXVK4+PpIehvyUDeqMovvEAfT8O6Ex9PEz/9uw9TRsRzXY+mjOvRlD1p+VRUGqOw3GVoQrThuGdcmGF9yMvzdvPcb7v4ePlBLn1zGX/utO819dqYTvRrHU6At4n+bSJ41RJuXh2eJg96twp3Up5JzUOJCTVe95VdTi+KTaPR1EydrYPSnD9OxwcFajv2p2Zv54iDD8rf25NfNh/jk+UpeHt6MHlAKwZaHPLbj+UyYcZaMgrK8DIJnr2ig5OFBCrc99bP1tvy212e2Ih3TmNdR2lFJf9dmMzy5AzaNw7moaFtbQtv80rK6fbcAsPi4C7NGjBrcp9THqc2jmYXMW3pAY7lFDMysRFXdY0562NoNP8kzsc6KM0FRt/W4TwwpC3frD1McVkl+9ML6RgTwhWdm3BFZ+e1KR2ahLD80UFsO5ZLi/CAan0TH/+VYki++tvWVB4fXnzKmxX6eJpIig1j7vY0ft2SiocQPDUyAW9PDyorpVOC17KK07PUaqNJAz98PD1YnpzBX8kn2Xoslycvb39BO+U1mvrI32aKT3Pm/JV8kju/3sjyfRnM25HG+I9Wk+WwBscVvl4mujcPq9FxXvW5LYSL9QZukFNUxuSvNnLgZCEFpRV8teYwn6xQAZyhAd5OCzxv6dPiNEapnSV7TzJ9eQpllWa1fciKg4bsFxqN5uygFZTGxtztxkwPBaUV/FVlVfvpcFu/ODwdQmUvah7GK/N28/Lc3YZdcWtj+7E8iqvscLvOYZHsK6MTeXNsJyZd3JJvb+/JNd3qZurN5VYdLso0Gs2Zoaf4NDaqbuFQXdmp0r9NBPPu68efu9LJLixj2rIDtnMLd53gj/v6u7XWI6FxsFM2BsctMDxNHlzVpe79Qf1aRfCq2GPIgFB1+w6NRnPmaAtKY+OGnrH0sKz38RBwc69YujRz3gPpdGgVGcSki1vaQs6tJKcXsPloTjWtjIQGePP2uC40aeCHt8nDkv26bqbxaqJjTAhvjulMu+gg2kUH8caYTmftPmk0GjvagtLYCPTx5PtJvVibksknKw6yYn8m//fzdh67rN1Z22vI1eZ7rsqqY1iHaIZ1iK69Yh1zZZcmNSY11Wg0Z45WUBon3lyQbFvUui+9gOLySl67tuZ1Q+4yaUBLFu1JtyWnndC7ObENA85K3xqN5u+FVlAaA8VllYaMC+C8zcKZ0CI8gGUPD2T1gUyiQ3yJb6S3KddoNK7RCkpjwNfLg6ZhfhzJsm+d0TLy7G7l4Odtsi321Wg0murQQRIaA0IIpo5OtGWWVtsWOCdC1Wg0mrpGW1AaJ3q3DGflY4NIyy2hSQO/f0S6f41GU//QCkrjEi+TB03PwhoojUajOV30FJ9Go9Fo6iVaQWk0Go2mXqIVlEaj0WjqJVpBaTQajaZeohWURqPRaOolWkFpNBqNpl6iFZRGo9Fo6iVaQWk0Go2mXqIVlEaj0WjqJVpBaTQajaZeohWURqPRaOolWkFpNBqNpl6iFZRGo9Fo6iVaQWk0Go2mXuLWdhtCCBMwAmju2EZK+UbdiKXRaDSafzru7gf1K1ACbAPMdSeORqPRaDQKdxVUjJQysU4l0Wg0Go3GAXd9UHOFEEPrVBJN/aeiFLb/BJu+hOKc8y2NRqP5m+OuBbUamCWE8ADKAQFIKWVwnUmmqV9UlMHHQyF1szpe9DzcvgSCou11youVAivKgPZXQmjs+ZD01MnYB6V50LgLCHG+pdFoNBbcVVBvAL2AbVJKWYfyaOore+fZlRNAfips+AwGPKqOzWb4bCQcXaeOl0yFWxdAVMK5l/VU+HkybP5KvW/cFW76GXxDzq9MGo0GcH+K7wiwXSunfzCVZS7KSu3vD62wKyeA8kJYN73u5ToTDq20KyeA4xth/SfnTx6NRmPAXQvqALBECDEXsD2VdJj5P4g2w6BBLOQcUsfeQdD5+vMr05mSe8y9Mo1Gc15wV0GlWF7elpfmn4ZPINy6EJa/CSYv6DYBwlrYz8f2gZjudivKOxC63+p+/1kpynqRZtV3eGv325rNcGw9+ARDZDv327W6RE3nleRaCgR0uNr99hqNpk5xS0FJKZ+pa0E09ZzM/fDVNZB1ADz9oGEru4KSEnb8BJHxEBGvznW4Cho0c6/v/BPw0UAozlbHGz6DySvda1+cDZ+OhBPb1HHiOLh6mnvj+obA8Ndh12wwVyrFGNvbvbYajabOcTeTRBvgIZwzSQyqG7E09Y5FzynlBFBRDHMfhYQrwScIFr8Iy16x1+052X3lBLDzF7tyAijLh20zod8DtbddN92unAC2fmtRNL1qbpd9CD6/ArJTQJhgwOPQRq+k0GjqE+4GSfwAbAKmAA87vDT/FLJSjMflhVCQrt6v/9h4bv0MZVW5i6+L1Qo+Qe61zUt1Lss/Xnu7v15TyglAVsKSlyDPjXYajeac4a6CqpBSvi+lXCul3GB91alkmvpF/EjjcWQCNGyp3nsHGs95B5zaeqL2V0CjzvbjiHhIHOte247XgHD4GvuFQavBtbfLPWo8lpUqdL6+U1YEi1+Cr66F5W9BZfn5lkijqTNqnOITQoRZ3v4qhJgMzMIYxZdVh7JpziUn98K278EvVEXn+TWwnzu+SfloOo5RVkd4GzUltulLSFkGTXtC7hEV4ICAQU+c2thefnDzbFj+tgrG6HUXeLoRi3Nih1qf1fk6KMyAgHDofa9765gSrob9i+zHYS2NSvJsIKUKGvHyh+gOZ6fPX+5U/j6A5PmQnwaXvew87v6FahqzzaUQEnN2xtZozjG1+aA2ABKVOQKM03oSiKsLoTTnmLRtMH0wVJSo441fwKS/VLTezl/g+5tRHzfQ5Ua44h31K36pw4Ox7QiIvxyadIOItqc2fs5hlaXCasEc2wDjvqq5zfFN8PGl9rVY4W1g7JdKZoD03bDhU2VddZ9ot/YAKisgMAp63A4ZySrjRb+HwMN0anLXREkefD5KyQkQPwrGfH5mmSoqytTn4ci2750V1KxJyhcH8IdF+TftcfrjajTniRqn+KSULaSUcUC85b3tBbQ/NyJq6pwNn9qVE8DJXXBgqXq/8h1sygnUwtbCTNj0hbGPvfMg4apTV04Aqz8wTq/t/g2Orq+5zcbPjQuFM/bCgSXqffZBmH4JrHkfVr8LHw1SkYKg8gl+MhS+vhbWfgh5x2DwM9Cgac3jFaSrgIxtM6G8pOa6VvmsyglUpKCjxXY6mLwgMNJYFtzYeJx90K6cQAW0rHj7zMbVaM4T7vqgVrpZprkQMfk4l1U7xSaUFeAXZiz2DQYPL9dNpITSgurHt61DcqC2ZLRe/i7K/NTfbTOhzGG8khy75bHrV2WhWcnYC1u+qXmsrBR4twf8/iD8OBE+HaGmPGvClT8rP63mNtVRVggLnoIZw6FJV/vn5R0EQ5831q1wkfGjotS5TKO5AKhRQQkhooUQ3QA/IUQXIURXy2sA4OIJobkg6XGrUeHE9oHYvup9n3uNQQhdbwT/MLjkSfuDUnio45xDaiHvlm/tD8WDy+HtTvBSE/hkmOtIuS43qFBvK6EtoEX/WmS+DQL+UywAACAASURBVAIi7MctLlZyg9F/ZsVaVprnfK40v+ax1n9sDIM/th72L1bXsuRlWPisPQTfSofRxmvyCVH+oNPh13thxVtweCXs/h3aDoebf4UHdkLcAGPdiDbQ0mH1h/BQU5kazQVIbT6oS4EJQAwqYayVfOA/dSRTvUMIsRnYLaUc51D2KfCblHJmlbqtgTeBeCAHyAOeklIuO41xV0op637laFBjGPKsmpJq3ldF7HlYlFJUAlz8GBRnKSXQZpgqbzMUxn8De+aogAMvX3i/t32qcNOXcOPP8ONt9rDvw6vgj//AtZ8axzd5Qd8HVKBFg2ZK+dQWJBEcA8NeUn02769kFgIOrwE8lE8qY6+q26Sb8pHt/QMQ4N8QijLVOe9A6Hitc/9SqgCQ/FQoLXQ+X5wDHw6EAotVtPYjmLRc+bOkVBZc73uUDH6h0OtOFcThLif3qACLmB7Ofqe982DMp67blZeooJEGsSrgpP1VENPNWCf3mJoOjWgLMUnuy1QXFGaqYI+QJrX/KNH846hRQUkpPwM+E0KMllL+eI5kqlcIIeIBE9BPCBEgpXTxtLLV9QV+Bx6SUs62lHUAkoBTVlDnRDkV56gAicxkdXxkrVJCJi81HfbDBDBXqHPBjcFjuHq/7DW1eBeUD6tZL6Mf6+BfKpKs6pqk45uNx38+rawuUBbZ9T84+1mqUlmupruOrlXHyQuU9fTX68rvBGDyhSHPQVR7pcC+uFIltAUVINH9NvD0ga43GVM2WflxImy3fOW9A9WUYnmROo6Ih9Jcu3ICZZlt/Q4ufgRm3aHeg7Kcbpmj5HCXDZ8pq8kanxQQAYXp9vPVbWNSmq8+y5O71XGk5ceFIweWqhB1q/+u7/0w+Gn3ZTubpG1Xn2OpZYr3VLKAaP4R1DbFd4PlbXMhxANVX+dAvrOOEOJnIcQGIcQOIcTtlrICIcQLQogtQojVQogohybjgS+A+cAVtXR/PbDKqpwApJTbpZSfWsYJEEJ8IoRYK4TYJIS4wlKeYCnbLITYarHCEELYHClCiEeFENssMlYJ2zoDtn5vV06gsjJYf7EvfsmunACWvqp8HOXFShlYMVfAie3OffuHK0vGkZAYmD5EZXHYPdcShGGhshSWvVq7zHvn2ZUTqCjAVe/CWoeHW2WJsoBaDYaUpXblBFBwQlk1l77gOqjjxE67cgJlDbUaDAOegC43KQVekO7czstfRQValROoh+/K/9Z+TY4sfgF7YIpUa7SsofM+wSrHoauktlu/tysngPQd9pB0K8teNQaXrHzHOH15Llnxtl05gQruyEiuvr7mH0dtU3wBlr+BNda6sPiXlDJLCOEHrBNC/Ii6ztVSyieEEK8AtwFW7/NYYAjQDrgb+LqGvhOAjTWcfwJYJKX8lxCiAbBWCPEnMAl4W0r5lRDCG2Wx2RBCXIZSjhdJKYsc1qc51rkduB2gWbNTSDNU5iJ4wVpWXsVYrChWyshc4ex49w5U00sVxeo4OlFZM1EdwLeBii6L7qisKisHV4K5ykJTV/I4yVfkXFaaZ1mH5Viv0PjXkeIc2DNXKczojsZz5S76F0JtxLjpc3tZSFM1LQkQ2lxNrVmzvbuSw12q1jdXwAO7lD9v3uMw5yGY+wj0fxgGOsy0u5K7al9OfZefvyAKl/K68flr/jHUFmY+TQhhAvKklM9UfZ0jGc829wghtqB2CW4KtAbKgN8s5zegcg4ihEgCMqSUh4GFQBdXyqE6hBCzhBDbhRDWn7FDgccsPq0lgC/QDFgF/EcI8SgQK6UsrtLVYGCGlLIIXC+QllJ+KKVMklImRUREVD1dPR2vVdNQVvzDVbg4OGcj73wdePuriL3EMcZzve6CyauUL+vix9Qi2m0/qF/wWQfg7vXO1pS5DBp1Mpa5kwG97WXKb2bFyx96/ts5g0RIDHx3o1pcHOIQRm7yhu0/wDfj4IO+MKdK1q4m3YyLdoUHJI533ivKyx/GfAGjP4Z/r1TBI406Q5MkY9tut9R+TY50n1jl+FaVnSN5AWTtV2XSrKyhbAeF2GG0+jFgxS9M+Qdr6rvd5cZdkc8l3W4xBuA0SVK7Gms0FmpNFiulrBRCjEc5/i9oLNGHg4FeFktkCUpJlDtsxliJ/b6MB9oJIQ5ajoOB0cBH1QyxA7B5eqWUV1mU3GtWEYDRUso9VdrtEkKsAUYAc4QQd0gpz3DRjJs0aAp3LFHrdooyVUj151cqBdT7bhVRl/wneHlDpxvs7Ub9D5r1hMOrVWBFF8u5PveqB750CMMuylAPV1dbaAx9HtJ2QNpW6DjavTRFvsFw2yLY+BnkHFEBHTt/hhFvwd45kLlPWTLbvlf1d81WyjW0hbK0Mg/Ant/t/a39UCm4MMu6cyHU4tYNn6pcfx1Gq2ARUeX3nIcntB9lLBMCbpylZMtIViH0a96HnIOQNNG9hbqDn1GW55E1KktHx2tUudVasyLNah2X1ScV3BhuX6I+S+Gh/GtBUcY2XW5QCmnvH+oHQ9ebapenrmg9GG6ZCztmqR8TXW8+f7Jo6iXu7ge1QgjxDvAdYJsjkFLWNJ1VHwkBsi3KqR3Qs7qKQggPYAzQUUp53FI2EPg/qldQXwOPCyFGOfihHMPx/wDuFkLcLaWUQoguUspNQog44ICU8r9CiGZAIuCooBYATwohvrJO8Z3VNFNhcXDxo/Bmgj26bcE2lbC1eT/4/QHlt1kzDS6aBJdNBYRyuO/4SYWVH1oJo95RysJVkIPJW02ltR2uIv+ESfVVkgfLpio/SNpWaNi6+iAAR4IbqRx+Hw60Tytu/Bwmr1FW3vNVrIIdv8ATloCNr13k+SvKBkfb2DdEKVtHek5yWPQqVICBK3yDlXL/cIB9se6+P9VUWq87a782IdQPhKpWasLVyv9mJaSZ2oPLkbAWMPipmvtvNdi9HwLngmY91UujcYG7Cso63/GsQ5kELrTtNuYBk4QQu4A9qGm+6ugHHLMqJwvLgPZCiEaW42lCiLcs749IKXsJIS4H3rCUn0CF5Fv9Wc8BbwFbLQowBbgcpQhvFEKUA2nAi46CSCnnCSE6A+uFEGXAHM52mP/RdXblZGXvHyqjQ8EJe5lVSR3b4OCAlyrDRPxINf2WNBG2/agyUgBEtoeZtyhfSsPWauPD0BZq2uqNdnYn/Ynt8OdTzmHo1bHpS7tyAhUskfyHmqIMiIDcw/ZzgQ7Tnl1uMD7oIxPcm1oa8qxad5S2Tf2tOj3pSOZ+YyYJUAuI3VFQ1dFprLJMt1kiHS9+zJ7aSaP5G+LuhoUD61qQc4GUshS4zMWpQIc6MwHr2ibDTzspZSVg/Wk+oZoxdgPDqzlXDNzhovxlwCkyT0oZWFuds0bDVsqqcZyai2ij1uMYpYKiLDWNVpUjayF9l/LFTJyvLKKKUhXWbO03M1mlSRr5tvKfVI0gS9/t3G91uMwmYYnrufR5+PFWqCxT4euOGRfiR8L1M5XC8PRVlpJHje5YOy0HGRfCVkdAuOrbMfQ+pIl7Y9REkyRY/b5Km5S2A0ZPP7VdhDWaCwi3/iuFECFCiDeEEOstr9eFEG6kjNZcMAQ3hktftD/0m/WGPvepzOaORLZX1kabYUafjDCpB+fCZ9Qans9GqrVRviFGpQfK0gE1lRcRbzx3KpsGJt1iDJZo2lNt4w5q+u/+HcrKSByjsp07pgGKaAepm2Hjp/B+L7XQ9mziG6J8SR6W34BBjWDgKWZ5d8Xsu5TiB7Uk4JfJZ96nRlNPcXeK7xNgO2oqCuBGYAZwdbUtNBceXW9Uv/gz96lpMP8wFQRw3few9Qfl2+l1t7I2GneGcV+r9UceJmUtOE6bpW5W65Ca91NZDRzDr9tfaX8//htY8KSy1GK6Q2eHQIzaCG4Md66BVe8AQilUx4zku2bbM65v+kKthRo9XR0vedm+ZqiiBP54QgVD+LsdpFk7PSepXYezD0Ljru5tIVIbVacNqx5rNH8j3E0W21JK+ZSU8oDl9Qx6q42/H1+PVT6gTV+ovHm756jy6ETlT9r4GXzQR1lKoPxNE36Dm34xhnFbER5g8lQRcZ1vUKlsRr4N3RyitcJawNUfqemvzV/Cu93hpzvc25FXSvjpNlg6VSmiaX1V6hwr66rs9Lv9R/uUYtXceZWlzpsYng2ColUQwNlQTqAUfk3HGs3fCHcVVLEQoq/1QAjRB6i6VkdzIZO+W6UnsiHtW7kve9WeKaKyFOb/n337Cis9blNZDqzEdLc/PEObw5XvqgSn3SY4j73lG+NWFFu/hX0LnetV5cASo9WWuc+4Vsk7wFjf5G3PuF51h+CwOBXaXd+54l1oc5nKhNH6Urjy/fMtkUZTZ7g7xfdvVE6+ENRaniyqCRLQXKBYt6owlFn8UdbFoVbM5WpNjuMam4i2MHm1ivLzDVYLd90NPHCVfSHnYO3tqkYdVi27+FH4Zrw9W0Wf+1QCVVDrnqRZpXUKba4yMrgr7/kkuBFc923t9TSavwHuRvFtBjoJIYItxy72LNBc0ITGKr/Tpi/VsVeAeqCDyjZg3QwQ1HRe1e3RK8tVcMS+Ber40EoY/617U1vtRqr1RdZURZ5+yjqojdZDISDSnkjVw1OFYtvOD4F7NipfWGR7tZeSFSGgUSJs/lqlPPL0geGvqazsGo2mXiCkG3P91SSGzQU2WJSXph6RlJQk16+vZUfa6kj5S1k0rYbYLSQpYc0HsP0nlXliwH8gvJWx3baZKgO4I1d/5LzYtDr2zlcZHTx91DYVzS5yr132QWW15Z9QCqfTeOfsCa4oK4Q34o2bJV78qDG3nUajOScIITZIKZ32fnF3ii/J8vrVcnw5sBW16PUHKeUrZ0dMzXmnRT/UGmUHhFBTYj3/XX07VwEGVVPz1ESboacWYm4ltLnKnTfrDtjxo8oEfs0MiL+85nYndjrv5HtIbxKt0dQn3J10jwG6SikflFI+CHQDIlF55ybUkWyaC4n4kcat403eED+q+vpnk/lT7NuCVJapsPXaiGyntkx35Hxv3qfRaAy4q6AiAcec/OVAlCUzwnnK1a+pVzRsqaL0Eq5S65xu/tV1ctizjbRktnCkKKP2dj5BcM0nao2WMKk8d/0frr2dRqM5Z7g7xfcVsEYIYd17eiTwtRAiANhZJ5JpLjyaXeS+7+hsIQR0Hq8yj1upmv2iOtoMhTZbwWy+MCL4NJp/GO5G8T0nhJgL9LEUTZJSWr3wbj4NNJo6YvhrEN5WJbyN7Q1J/zq19lo5aTT1khoVVJXN+Q5YXrZzZ3XLB43mdDF5QS+dk06j+btRmwW1AbWthnWXNWtMurC81+mONBqNRlMn1KigpJQtrO8t1lRr1A60Go1Go9HUKW75oIQQtwL3osLNN6P2SVoJXFJ3omk0Go3mn4y73uF7ge7AIcvmhV1QmSQ0Go1Go6kT3FVQJVLKEgAhhI9l19i2dSeWRqPRaP7puLsO6qgQogHwM7BACJENuEhBrdFoNBrN2cHddVBXWd4+LYRYDIQA82pootFoNBrNGeGuBWVDSrm0LgTRaDQajcYRvYReo9FoNPUSraA0Go1GUy/RCkqj0Wg09RKtoDQajUZTL9EKSqPRaDT1Eq2gNBqNRlMv0QpKo9FoNPUSraA0Go1GUy/RCkqj0Wg09RKtoDQajUZTL9EKSqPRaDT1Eq2gNBqNRlMv0QpKo9FoNPUSraA0Go1GUy/RCkqjOYfkluay5eQWSitLz7coGk2955T3g9JoLlQqzBV4CA88xPn5XTbnwByeXPkkpZWlhPqE8u4l79IxouN5kUWjuRDQFpTmb49Zmpm6dio9v+5J32/78sXOL865DOXmcl5e+7LNcsouzeb1Da+fczk0mgsJraA0f3vmpszly11fUlpZSn5ZPq+se4WdmTvPqQwlFSVkl2YbylILUs+pDBrNhYZWUJq/PdsztrtVZiWjOINN6Zsoqyw7azIEeQfRp3EfQ9mlzS89a/2fDscLjjN923S+3/M9heWF51UWjcYV2gelAdQ02LH8Y0QFROFt8gZg9v7ZLD68mOYhzZmQMIEQn5CzPm5uaS5F5UU0Cmx01vu2khSdxJe7vrQdCwRJUUku636962teXfcqFbKCCL8Ipg2ZRuvQ1mdFjik9p/Dh1g85XnCcXo17cXPCzbZzReVFHCs4RouQFnh61P2/5YHcA1z3+3U2xfTtnm/57vLv8PLwqvOxNRp30QpKw97svdy76F6OFhwlzDeMF/u+yOH8w7y45kVbnQ0nNvD5ZZ/bjgvLC/lk+yfszdpLr8a9GNduHLmluUxdN5UNJzaQGJ7IYz0eI8I/gnJzObP3zWZv9l76NOlD/5j+ALy7+V2mb5tOhbmCXo168dbAt/D38q9R1sN5h3lzw5sczDvIwKYD+Xfnf1f7UF18eDHvbH6H/LJ8ejfqzb7cffh5+jGp0yTiGsQBKnBhxo4ZAIxrO443N7xJhawA4GTxSd7Z9A5vD3r79G+uhY+3fcy7m9+l3FxO54jOXNPmGpsiWnR4EVOWTyG/PJ/ogGjeGfQObcPanvGYNTFz70yD1ZScnczKYyu5uOnFdTquRnMqaAWlYeraqRwtOApAVkkWT696mnC/cEOdTembOJJ/hKZBTQF4ZNkjLDu6DIAlR5eQXZpNcnYyCw8vBCCtMI28sjw+GvoRT614il8P/ArA17u/5omLnqBrVFc+2PKBrf9Vqav4Zvc3TOw4EYCdmTt5f/P7ZJZkMqrlKMa1G4eUkjsX3snBvIMA7MvZh4fw4K4udzldU2pBKg8secCmbFILU5nabyrD44bb6uzI3MFjfz2GRALw9KqnnfspPHM/0dH8o7y98W3bOJtPbmbG9hnc1+0+Ks2VPLvqWfLL8wF1315d9yrTL51+xuPWhIeL2f3zFd2o0VSHVlAaUnJTDMdphWm0bmCc1vL28CbYOxiAvLI8m3Ky8tv+38gsyTSUrU5dTW5pLr+n/G4o/3b3t4T5hlUrR2F5IbfNv428sjwAtmVsI8g7iISGCTblZGXZ0WUuFdSG9A025WRlbdpag4JadXyVTWlYifKP4kTRCdvx8BbDDeczijP44+Af+Jp8GdZiGAFeAU5jV+Vw3mGncQ7lHVLXWlHodN8O5R+qtc/aKK4oZvHhxZgxM6jpICfLdEzbMczaN8t2jxMaJtCrca8zHlejOZtoBaXh4qYXM3PvTNtxUlQS93S9h20Z28gpzUEgmNx5ss0H5WfyI8g7iPyyfFubSP9Iwv3C2Xxys62sdWhrvE3eeHl4GRam+nn60SO6B/6e/hRVFNnKBzYbCMDGExttD04ri48sZmDTgQR6BVJQXmArt07VVaV9WHunsviweMNxVSUMcE+Xe9iVtYuU3BQGNh3ImLZjbOfSCtMY+9tYskqyAPh85+d8d/l3+Hr6upTBSufIzoT6hBqi+KzXGuwdTPfo7qxLW2c7d0mzSwDILslm+bHlRAdE0z26e41jOFJUXsT438dzIPcAAM2CmvHN5d/YfmCkFqTy3Z7v6N24Nw39GpLQMIEhsUPOie9LozkV/jHfSCHEKKC9lPLls9zvfcDLQJSUMtdSNgB4SEp5eZW6nsCzwLWA1QHwg5TyhbMp06nySPdH8DX5siZtDfFh8dzf7X7C/cKZNngas/bNIikqiUtb2CPOvExePJz0MM+ufpYKcwVBXkHc3+1+ArwCeHDpg6TkptA0qCnP9X4OP08/JnacyHub3wPA08OTSZ0m0cC3AdOGTOODrR+QV5rH1a2vtj2YY4NjEQiD1REbHIu/lz9P9XqKZ1c/S35ZPm1D23Jvl3tdXlNcgzge6/EY725+l+LyYka2HMnVba421Okf05/r46/nuz3fATCmzRhGthzJqFajXPY5K3mWTTmBCjRYcmQJw1oMq/H++nv589HQj3h387tkFGeoMVrax3jt4tf436b/sSdrDz0b9WRSp0nsydrDLfNusU39jWo5ihf6uvc1+ePgHzblBHA4/zC/H/id8e3GU1xRzI1zb7RZiSZhYsawGbUqWY3mfPCPUFBCCE8p5Wxgdh10Px5YB1wNzKil7vNANNBRSlkihAgCHqwDmU6JhYcXsvzYcsrN5cSHxRPuF878g/N5eNnDmKWZb/d8y/7c/UzuPJnM4kxeWPMCG05soFtUN65udTUDmg5g4eGFfLj1Q8rN5dzT5R5u7XgrO7N2ctPcmzicd5jBzQbTs1FP+sb0pUlgE0oqSvhl/y/sztxNbHAsCQ0TWHFsBW9tfIuskiySopPYnL6ZcnM5XSO7cl2765i6dirzDs4jNiiWiR0nMjh2sMvrKa8s57X1rzH/0HyaBzfn/m73O1kg6UXpPLf6Obae3EqvRr14pPsjbErfxMifR2KWZiYkTGBM2zH8lPwTH2/7GIAWIS2cxjJLc6331yzN/HHwD3Zk7qChb0Nig2IN51MLUtmfs5/jBcfJK8tDIpmxY4ZNOYGKqLyt420czj/Mfzf+l5zSHEa3Hs2kTpMQQjA3ZS4fbPmA0spS2oW1c5KhtEJZsCuPrzRMYVbKSmbvn02XyC5ObT7b8Rnf7P4GH5MPkzpN4rIWl9nOzUuZx/tb3qekooTr4q8zRCTWxq/7f+XDrR9SYa7gxvY3cl38dW63dWR7xnamrp3KkfwjDI4dzMPdH2bm3pl8sfMLvDy8uD3xdka2HHlafZ8uVWV6pPsjtqjYU2FW8iw+3v6x4btYn/lq11d1ct+FlLL2WhcAQoibgIcACWwFKoESoAuwwlKWJKW8SwhxLfCUpU6ulLK/EGICcBUQAjQBvpRSPiOEeBbIklK+ZRnnBSBdSvm2EKIlSulNBp6QUg611BlAFQtKCOEPHAGaSyntTx7jNfwMNAV8gbellB9ayocCzwA+wH7gFillgas+AJKSkuT69evdum/J2cmMnj3aYK18MPgD3tzwJnuy99jKfE2+/DXuLx5d9iiLjiyylXeN7Mp/LvoP1/56raGP9y55j6dXPk16cbqt7F8d/sX93e4H4PX1r/Ppjk9t5yL9I8ktzTVMBT7S/REGNh1ITFAM07ZM453N79jONfBpwIJrFrj85f/+5vd5b8t7tuMw3zDmXzMfH5OPrez2+bezKnWV7TgxPJGtGVsN/UzpOYXnVz9vKHOcYmwe3JzvR36Pn6efkwyOfL/ne55b/Zzt2Nfky/xr5hPqG0p5ZTmX/ngpJ4tP2s7f2vFW9ufsZ/GRxcbrGvw+9yy6h3Jzua3suT7PkRieyFWzrzIoS8cp2CCvIOIbxnOs4BgJDROYf2i+od/bOt7GPV3vMZQtPbKUuxbZfXsewoNZV8wiLiSOlNwUrvzlSsN4/xv0PwY0HVDjfQDYnbWbMb+OMXxXPhzy4Sn7v8oryxn641AyijNsZZc1v4y5B+fajgWCH0b+UOcRkY4yDZk5xOBTvD3xdu7ucvcp9bMjYwfjfh9nKJtx6QySol0vjTjfrDy+kjsW3GE7FghmjppJm9A2bvchhNggpXS6wL9F2I4QIgGYAgySUnYCrPM+MUBvKeUDVZo8CVxqqes4n9MDGA0kAtcKIZKAT4CbLON4AOMA66KaccC3wF9AWyFEVA1itgIOV6ecLPxLStkNSALuEUI0FEKEW65tsJSyK7AeqHo9p83atLVODvw1aWsoMxsXqVbICszSzNq0tYbyjekbWZ262qmPBYcWGJQTwNpUe9s1qWsM59KL0p0SqG49uZWYoBibnI7klOYYFGhV+R3JKskiOTvZKEuV/rZnOi/cXXBwgVPZNW2u4aGkh5hy0RS+HvF1rcrJ1VgllSVsObkFUNOEjsoJ1H26ts21hqi6xPBEisqLDMrJWnf9ifVOltzQ2KHc1fku/t3p3wT5BLE2bS3HCo7ZrEorMYExLi2YqvfQLM2sT1M/elyNV/XzrI51aeucvitV74877M/db1BOoJZCOCKRBt9eXbMvZ59TwIvjd95dXN2Pqp9HfaLqZ3827/vfQkEBg1C+nAwAKaXVUfCDlLLSRf0VwKdCiNsAk0P5AillppSyGPgJ6CulPAhkCiG6AEOBTVJK67dwPPCtlNIM/IjyLbmFEOIWIcRmIcQRIURTS/E9QogtwGqUJdUa6Am0B1YIITYDNwOxLvq7XQixXgix/uTJk1VPV0tCwwSnsrahbRnbdqyh7OpWV+Pv5U/7hsbgg9ahrekY7pzwtEd0D4K8gwxljm2r9hPkHYRJmNyu72vyJbc0l/Vpzg/LqnX9PP0MD2VXdWKDnW4p3aK6OZV1j+7OzQk3M7bdWKfrq46qY5mEyTYN1zSoKUFexn7C/MJYcGgBw1sM56pWV/FgtweZNmQa8WHxCIRT31X7B7U4+Y5OdzAibgTHC44bzvmYfPjysi+5Pv56Woe25tvd3zplknDVp7WspnO1cSZtHWkW1IxAr0BDmasF1afT9+kSGxzrJNPpjO/yHrkI+qkvuHqGnK37/ndRUNXhMn+LlHISyippCmwQQjS0nqpa1fJ3OjABuAVlUSGE6IhSIAuEEAdR1tT4GmTZBzSz+J2QUs6QUnYGcgGTZVpwMNDLYtltQk31CZTi7Gx5tZdSTnRxTR9KKZOklEkRERE1iGGkc2Rn7u5yN/6e/nh7eNM1sivPr36e19a/Rv8m/bkp/iaGtxjOvpx9PL3yaSZ3mmyLhosLieOFPi/QNaord3a+Ez9PP7w9vLkh/gZGxI3g5X4vE+WvjMoukV2I8Itg0eFFmKWZe7veS89GPQGIDohmar+pPNnrSUJ8QjAJE8NbDOf6+Ottct6eeDsDYgYgEIT7hhMdEM2dC+/klj9u4aa5N1FSUWKrO6nTJPrH9EcgiPCNYHKnyU7W2TO9n7E90Fo3aM0r/V/hjsQ78PP0w8fkw+Vxl9OyQUtubn8zviZffE2+TOww0bbI+FS4Pv56LmtxGSZhooFPA57q9RTRAdGACqB4qd9LtvuU0DCBo/9r+gAADipJREFUpUeWMmvfLH478BsbTmzg+vbXE+gdSNPgpkzpOYVg72BMwsSolqMY23YsHcI7cG/XewnwCsDLw4vx7cbbwuOj/KNs0XtW2oS2Yd2JdXy16ysWH1nMtK3TeHCJ0RU6vMVwxrUdh5eHFwFeAdzb9V46hHewyWgNivHy8GJs27GMiBvh1r3oFtWNyZ0n274rN7a/kcHNXPsSa8J63yL9IwHo06QPL/d7mRvib8Dbwxt/T3/u7HwnXaO6nnLfp4u/lz8v9n3RJlPfJn2Z3HnyKfdzUaOLDN/FWxJusUV91keGxA4x3Pe7Ot/l0qd5OvwtfFCWKb5ZqId7phAiDHgD+E1KOdNSZwJ2H1RLKeV+S/k64DagM/Ai0AEoBtagptzWCyG8gW2AF9BaSlkphHgRyJdSvuQgRwowAGiB6yi+V4Ao4A5LkIQJ2IWyzDoBt0opRwoh2gGbgWHADmADavpynxAiAGgipdxb3f04FR+UlXJzOXuy9jD+d6OOHdxsMH8e/tN23Da0LTNHzaSovMiwtia1IJXPdn5mc95bgxLM0szSI0t5YOkDVJjVuqSRcSN5sZ/KUlFUXoSvp69tOqvCXEGFuaLaqLLiimLmpczjyZVPGsqf7/M8V7S6wlB2IOcAdy+6m8P5h/EUntzX7T4nZ/53u7/j3c3vkl+Wz/C44TzR4wleWvcSP+/7GVC+rulDpxMXEoeX6czSAM05MIevdn0FAiYkTGBI7BDbObM0U1JRwjOrnmFOyhxDu4+GfmRT5lD9PSo3lyOldHLKLz68mKdXPU1WSRaJ4Ym8MeANbl9wuyHSD2DJmCU09GtoKCurLEMI4TJbR7m5HLM0G3x77lJeWY7EWdZTxXrfHL+LNcl8LnAl0+lwtu7RueJM7nt1Pqi/RRSflHKHJXhhqRCiEmV91MSrQojWKOtkIbAFpaDWoqbqYlBBEust/ZcJIRYDOQ5ThuOA4VX6nWUpXwNcIoQ46nDuWuAJ4DlguxAiH6UIPwOOA6nAJCHELmAPapoPKeVJi3L9RghhfRJMAapVUKeDl4eXk58GnOf192Tv4VDeIcOUWElFCTfNu4m0wjRAZQ//eOjHJEUn4SE8+HbPtzblBPDbgd+4p+s9RAdEO/0Te3r8f3v3H1tldcdx/P0tpUBb+SWotOU3ZAx/oPgLHYkTpQghG/gjzpjBHGzgFn/MKcEshMw4ssU5cQkQ1G0oWRjRuYmNv0CdBmNgiIBAK8JQoPymRQstSOnZH8/p5ba3F3ovbe9zbz+v5An3Oc+5t+fcU55vn3POc57ss96P0yW7C0dPHo1JrzxRGZO2ZMsSdlXtAoIxtPnr5zNx0MTISXjvsb3MWzsv0kW4YscKenXpFQlOEIx1Ld26lCdHPxnz+YnYemRrg1UrHv3gUZZPXB7p6suyLHI75tK9U/eY9zZOi/cdxTsx3NzvZkYXjeabk99E6t6rS68GASo3O7fJm47PdnI8nwBwvsG+Xv33Fi3VJ/SmypSMlvqO2kprfO8ZEaAAnHMvEpzs4x1fAizxr29vfNzMAPY45yY1cSyLYCwoMsbknIu5Q7TRZIx4o+ez/daU8U0lOufeA5p/p2aSrrn4GjpYB05HDdv169qPykNnTv5dsrvELIO0Zt+aSHCC4C/IFTtWRGYdnW40DOhwzZqeHU/xgGIWbVxETW1NpExjB4yNyVd+rLzBfm1dLQeqD0RO0qUVpTHlKK0ojfmcxjcNJ2N1+eoGkwPqXB2ry1fHTAmfcukUVu1axcHqYILJxEETm5w2nqiOWR0bXB09OPJB7l95P1WnqsiyLB6++mHdCyWhkzEBqrWY2XCgBPiXcy72EiOD9O3al6dueoqFGxZSfaqau4fdzZi+Y5i5aiblx8rJycrhsWsfi/lLu0fnHjGfFb2U0ZThU1i3f10kUBX3L6YgvyDpchbmF7J0/FKWlS3jVN0ppl46lcL8wph8xf2LG8yI6t+1f4OT/YjeI8jJymkwY3Fsv7FUnqikrKIMCKbM3jH0jqTLWm9wt8ExaYO6xa6CUZhfSMnkEtbsW8OFnS9stSfujug9gpV3rWTDwQ0M6jaoVVeTF0lWRoxBSUPJjEGdzem602yr3EZBfkHcR27M+mBW5B6UovwiXhr/Er1zz0zWKD1Syuv/e5287Dzuu/w+crPPrwtky+EtzPpwFruqdjGk+xCevunpJpc9Wl62nHe+eoeC/AJmjpgZE8g+3PMh89fPp/JEJZOGTOKBqx6g6tsqlpUtY//x/YwfOJ7r+1x/XmWF4IrpiY+fiHQfTh46mTmj5miBVhHij0EpQGWglg5QzbXl8Bbe2PkGpRWl9O7SmxlXzIgEjcUbF7Nw40LqXB0FeQW8MO6FyMroyZj82mS2H90e2R950UheHB+3hzeuwzWHWbBhAdsqtzG6YDTTr5jeqoPrR08E42fdO8eONYm0Vxk9SULCYXfVbl7aeuaZUWv3r+XN29+k6tsqFm1cFBnv2Xt8L4s3Lk564kFtXW2D4ATEvWn3XB75zyN8ejCYU7Pp0CZqTtfwyNUtdh90DAUmkeZT/4K0mMZL6ByuOcz6g+s5VHMoZqJE9HpwicrOyua6S65rkHZjwY0Jf86RmiOR4FRv1Ver4uQWkbamACUtpii/qMG+YRTmFzKs57CYhVYbP2cpUfNGz+PWfrdyUe5FTBg4gTmj5iT8GV1zusZM4e53Qb/zKpeItByNQWWgVI1BVZyoYMbKGZRVlNHBOjD98umRhwkeOH6A5z97nr3H9jJuwLiYm2pT5a0v32LuR3Oprq3mkrxLWHDLgoQWuRSR86dJEu1IqgIUgHOObZXb6Nm5Z4NZfGF2/NRx9lTtYXD3wXpon0gKaJKEtAkza7PHG7SUvI55aVdmkfZAY1AiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKClAiIhJKetxGBjKzQ8BXSby1F3C4hYsTBplaL1Dd0pXq1lB/51zM83kUoCTCzNY19UyWdJep9QLVLV2pbs2jLj4REQklBSgREQklBSiJ9lyqC9BKMrVeoLqlK9WtGTQGJSIioaQrKBERCSUFKBERCSUFKMHMbjOzz81su5nNTnV5EmVmfc3sfTPbamZbzOwhn97TzFaa2Rf+3x4+3czsz76+m8xsZGprcHZm1sHMPjWzEr8/0MzW+PIvN7Mcn97J72/3xwekstznYmbdzewVMyszs1IzuyGD2uxX/ndxs5ktM7PO6dpuZvZXMztoZpuj0hJuJzOb6vN/YWZTm/OzFaDaOTPrACwAxgPDgXvMbHhqS5WwWuDXzrnhwCjgl74Os4F3nXNDgXf9PgR1Heq3nwOL2r7ICXkIKI3a/wPwjHNuCFAJTPPp04BKn/6MzxdmzwJvOeeGASMI6pj2bWZmhcCDwDXOucuADsCPSN92WwLc1igtoXYys57AXOB64Dpgbn1QOyvnnLZ2vAE3AG9H7T8OPJ7qcp1nnV4DxgKfA318Wh/gc/96MXBPVP5IvrBtQJE/AYwBSgAjuEs/u3H7AW8DN/jX2T6fpboOcerVDdjZuHwZ0maFwG6gp2+HEmBcOrcbMADYnGw7AfcAi6PSG+SLt+kKSur/M9Xb49PSku8euQpYA1zsnNvnD+0HLvav06nO84FZQJ3fvxA46pyr9fvRZY/Uyx//2ucPo4HAIeBvvvvyBTPLIwPazDlXDvwR2AXsI2iHT8iMdquXaDsl1X4KUJIxzCwf+CfwsHPum+hjLvizLa3uqTCzicBB59wnqS5LK8gGRgKLnHNXAcc5000EpGebAfiuqx8SBOECII/YLrKM0ZrtpAAl5UDfqP0in5ZWzKwjQXD6u3PuVZ98wMz6+ON9gIM+PV3q/D3gB2b2JfAPgm6+Z4HuZpbt80SXPVIvf7wbcKQtC5yAPcAe59wav/8KQcBK9zYDuBXY6Zw75Jw7BbxK0JaZ0G71Em2npNpPAUr+Cwz1M4xyCAZzV6S4TAkxMwP+ApQ65/4UdWgFUD9baCrB2FR9+hQ/42gU8HVUd0VoOOced84VOecGELTLe865e4H3gTt9tsb1qq/vnT5/KK9AnHP7gd1m9h2fdAuwlTRvM28XMMrMcv3vZn3d0r7doiTaTm8DxWbWw19hFvu0s0v14Ju21G/ABGAbsAP4TarLk0T5RxN0MWwCNvhtAkE//rvAF8AqoKfPbwQzF3cAnxHMtkp5Pc5Rx+8DJf71IGAtsB14Gejk0zv7/e3++KBUl/scdboSWOfb7d9Aj0xpM+C3QBmwGVgKdErXdgOWEYylnSK48p2WTDsBP/V13A7c15yfraWOREQklNTFJyIioaQAJSIioaQAJSIioaQAJSIioaQAJSIioaQAJdKO+RXFf+FfF5jZK6kuk0g9TTMXacf82oUlLlh1WyRUss+dRUQy2O+BwWa2geCmy+865y4zs58AkwjWkRtKsPhpDvBj4CQwwTlXYWaDCW7M7A1UAz9zzpW1fTUkE6mLT6R9mw3scM5dCTzW6NhlwO3AtcDvgGoXLOz6MTDF53kOeMA5dzXwKLCwTUot7YKuoEQknvedc1VAlZl9Dbzu0z8DrvCrx98IvBwsOQcES/qItAgFKBGJ52TU67qo/TqCc0cWwTOOrmzrgkn7oC4+kfatCrggmTe64JlbO83sLghWlTezES1ZOGnfFKBE2jHn3BHgIzPbDDyVxEfcC0wzs43AFoIH9Ym0CE0zFxGRUNIVlIiIhJIClIiIhJIClIiIhJIClIiIhJIClIiIhJIClIiIhJIClIiIhNL/AeyT3W18YTzoAAAAAElFTkSuQmCC\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"source": [
"## Preparing to Plot\n",
"\n",
"It's easier to use `seaborn.lineplot` if we have \"long\" data, i.e. a data frame where each row is something like [algorithm, time, num_of_instances]."
],
"metadata": {
"id": "XyrZBHBl7-lm"
}
},
{
"cell_type": "code",
"source": [
"frames = []\n",
"for a in ALGORITHMS:\n",
" # first get the times in ascending order\n",
" t = pd.DataFrame({'time' : sorted(timings[a])})\n",
"\n",
" # record our position in the column (i.e. 1..n) as the number\n",
" # of instances solved in up to the time in that row\n",
" t['n_solved'] = list(range(1,1+len(t)))\n",
"\n",
" # label with the algorithm we're recording\n",
" t['algorithm'] = a\n",
"\n",
" # keep this frame to collate at the end\n",
" frames.append(t)\n",
"\n",
"data = pd.concat(frames, ignore_index=True)\n",
"print(data)\n",
"\n",
"# Here's a little trick to deal with duplicate time entries (if they exist).\n",
"# We just take the highest n_solved for each <algo,time> combination.\n",
"# data = data.groupby(['algorithm','time'])['n_solved'].max().reset_index()\n",
"# print(data)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Z2kKSoQs8J2d",
"outputId": "bd715c7f-342b-45ce-e9dd-d1be9ddb3849"
},
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" time n_solved algorithm\n",
"0 3.5 1 ALGetyounextime\n",
"1 7.2 2 ALGetyounextime\n",
"2 9.7 3 ALGetyounextime\n",
"3 11.9 4 ALGetyounextime\n",
"4 13.2 5 ALGetyounextime\n",
".. ... ... ...\n",
"175 637.4 56 crispyALGae\n",
"176 654.4 57 crispyALGae\n",
"177 772.4 58 crispyALGae\n",
"178 837.1 59 crispyALGae\n",
"179 997.4 60 crispyALGae\n",
"\n",
"[180 rows x 3 columns]\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## The Plot"
],
"metadata": {
"id": "ZpEgdDbfk96a"
}
},
{
"cell_type": "code",
"source": [
"fig,ax = plt.subplots(figsize=(8,5))\n",
"sns.lineplot(ax=ax,data=data,y='time',x='n_solved',\n",
" hue='algorithm',style='algorithm',\n",
" markers=True, dashes=False)\n",
"ax.set(title=\"Cactus Plot Comparing Algorithm Performance\",\n",
" ylabel=\"CPU time(seconds)\", xlabel=\"# of instances solved\")\n",
"fig.tight_layout()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 369
},
"id": "bbLgtkp0lAIW",
"outputId": "4f6a17d9-2c75-4daa-e0b3-43d58ac89893"
},
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x360 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment