From 164501f11c2bea5673afa775d4bc2f0a201abc7f Mon Sep 17 00:00:00 2001 From: "niehues.mark@gmail.com" <niehues.mark@gmail.com> Date: Wed, 6 May 2020 18:14:57 +0200 Subject: [PATCH] fixes import statements --- evaluation/Evaluation.ipynb | 44 ++++++++++++++++-------------------- evaluation/lib/benchmarks.py | 0 evaluation/lib/export.py | 2 +- evaluation/lib/queries.py | 5 ++-- evaluation/run.py | 32 ++++++++++++++++++++++---- 5 files changed, 50 insertions(+), 33 deletions(-) create mode 100644 evaluation/lib/benchmarks.py diff --git a/evaluation/Evaluation.ipynb b/evaluation/Evaluation.ipynb index c7f6373..3c2e32d 100644 --- a/evaluation/Evaluation.ipynb +++ b/evaluation/Evaluation.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -12,21 +12,30 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "config = 'bigger_gasstation'" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "paths = [\n", - " ('gasstation', './results/example/queries/gasstation.csv'),\n", - " ('astar', './results/example/queries/astar.csv'),\n", - " ('charge', './results/example/queries/charge.csv'),\n", - " ('classic', './results/example/queries/classic.csv'),\n", + " ('gasstation', f'./results/{config}/queries/gasstation.csv'),\n", + " ('astar', f'./results/{config}/queries/astar.csv'),\n", + " ('charge', f'./results/{config}/queries/charge.csv'),\n", + " ('classic', f'./results/{config}/queries/classic.csv'),\n", "]" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -45,14 +54,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "n = 100\n" + "n = 50\n" ] } ], @@ -62,22 +71,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 14, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD4CAYAAADlwTGnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAWsUlEQVR4nO3df5BdZ2He8e+DhGTzw/JE3iQgCa+IxBDZ1AxeBEkdZsE1kYcfgok0iHiw3fGgeIzaTlOmkdtYk3pMxi5/0CExtCI2Npq4Mjg4LGNhk+AoCVALrcBGkh2VRci1BJSV7AoMkY3M0z/uu8nlcld71vvjavU+n5k795z3vOe97zl77n3u+bH3yDYREVGfF/S6AxER0RsJgIiISiUAIiIqlQCIiKhUAiAiolLze92ByTjvvPPc39/f625ERMwpe/bsOWq7r7N8TgVAf38/w8PDve5GRMScIunxbuU5BBQRUakEQEREpRIAERGVSgBERFQqARARUakEQEREpRIAERGVSgBERFQqARBxhhscHGRwcLDX3YjTUAIgIqJSCYCIiEolACIiKpUAiIioVAIgIqJSCYCIiEo1CgBJayQdkDQiaXOX6Qsl3V2m75LUX8pXS3q4PB6R9O62eQ5J2lum5Uf+IyJm2YQ3hJE0D7gVuAw4DOyWNGT70bZq1wBP2V4haQNwC/AeYB8wYPukpJcBj0j6vO2TZb432z46nQt0Ohq7Bnvnzp097UdERLsmewCrgRHbB20/C2wH1nbUWQvcWYbvAS6VJNs/afuwPwvwdHQ6IiKmrkkALAGeaBs/XMq61ikf+MeBxQCS3iBpP7AXuLYtEAx8UdIeSRvHe3FJGyUNSxoeHR1tskwREdHAjJ8Etr3L9gXA64HrJZ1VJl1i+3XA5cAHJL1pnPm32h6wPdDX9wv3NI6IiOepSQAcAZa1jS8tZV3rSJoPLAKOtVew/RjwNHBhGT9Snn8A3EvrUFNERMySJgGwG1gpabmkBcAGYKijzhBwVRleBzxo22We+QCSzgdeDRyS9GJJLy3lLwbeSuuEcUREzJIJrwIqV/BsAh4A5gG3294v6UZg2PYQcBuwTdII8CStkAC4BNgs6afAz4DrbB+V9ErgXkljfbjL9v3TvXARETG+CQMAwPYOYEdH2Za24RPA+i7zbQO2dSk/CFw02c5GRMT0yX8CR0RUKgEQEVGpBEBERKUSABERlUoARERUKgEQEVGpBEBERKUSABERlUoARERUKgEQEVGpBEBERKUSABERlUoARERUKgEQEVGpBEBERKUSABERlUoARERUKgEQEVGpRgEgaY2kA5JGJG3uMn2hpLvL9F2S+kv5akkPl8cjkt7dtM2IiJhZEwaApHnArcDlwCrgvZJWdVS7BnjK9grgI8AtpXwfMGD7tcAa4H9Imt+wzYiImEFN9gBWAyO2D9p+FtgOrO2osxa4swzfA1wqSbZ/YvtkKT8L8CTajIiIGdQkAJYAT7SNHy5lXeuUD/zjwGIASW+QtB/YC1xbpjdpkzL/RknDkoZHR0cbdDciIpqY8ZPAtnfZvgB4PXC9pLMmOf9W2wO2B/r6+mamkxERFWoSAEeAZW3jS0tZ1zqS5gOLgGPtFWw/BjwNXNiwzYiImEFNAmA3sFLSckkLgA3AUEedIeCqMrwOeNC2yzzzASSdD7waONSwzYiImEHzJ6pg+6SkTcADwDzgdtv7Jd0IDNseAm4DtkkaAZ6k9YEOcAmwWdJPgZ8B19k+CtCtzWletoiIOIUJAwDA9g5gR0fZlrbhE8D6LvNtA7Y1bTMiImZP/hM4IqJSCYCIiEolACIiKpUAiIioVAIgIqJSCYCIiEolACIiKpUAiIioVAIgIqJSCYCIiEolACIiKpUAiIioVAIgIqJSCYCIiEolACIiKpUAiIioVAIgIqJSjQJA0hpJBySNSNrcZfpCSXeX6bsk9ZfyyyTtkbS3PL+lbZ6dpc2Hy+OXp2uhIiJiYhPeElLSPOBW4DLgMLBb0pDtR9uqXQM8ZXuFpA3ALcB7gKPAO2x/V9KFtO4BvKRtvitsD0/TskRExCQ02QNYDYzYPmj7WWA7sLajzlrgzjJ8D3CpJNn+hu3vlvL9wNmSFk5HxyMiYmqaBMAS4Im28cP8/Lf4n6tj+yRwHFjcUed3gK/bfqat7JPl8M8NktTtxSVtlDQsaXh0dLRBdyMioolZOQks6QJah4V+r634CtuvAX6rPN7XbV7bW20P2B7o6+ub+c5GRFSiSQAcAZa1jS8tZV3rSJoPLAKOlfGlwL3Alba/PTaD7SPl+UfAXbQONUVExCxpEgC7gZWSlktaAGwAhjrqDAFXleF1wIO2Lelc4D5gs+2vjFWWNF/SeWX4hcDbgX1TW5SIiJiMCQOgHNPfROsKnseAT9veL+lGSe8s1W4DFksaAX4fGLtUdBOwAtjScbnnQuABSd8EHqa1B/GJ6VywiIg4tQkvAwWwvQPY0VG2pW34BLC+y3w3ATeN0+zFzbsZERHTLf8JHBFRqQRARESlEgAREZVKAEREVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqUZ3BDsT9G++r2ev/f2Dx3reh0M3v61nrx0Rp6dGewCS1kg6IGlE0uYu0xdKurtM3yWpv5RfJmmPpL3l+S1t81xcykckfVSSpmuhIiJiYhMGgKR5wK3A5cAq4L2SVnVUuwZ4yvYK4CPALaX8KPAO268BrgK2tc3zceD9wMryWDOF5YiIiElqsgewGhixfdD2s8B2YG1HnbXAnWX4HuBSSbL9DdvfLeX7gbPL3sLLgHNsP2TbwKeAd015aSIiorEmAbAEeKJt/HAp61rH9kngOLC4o87vAF+3/Uypf3iCNgGQtFHSsKTh0dHRBt2NiIgmZuUqIEkX0Dos9HuTndf2VtsDtgf6+vqmv3MREZVqEgBHgGVt40tLWdc6kuYDi4BjZXwpcC9wpe1vt9VfOkGbERExg5oEwG5gpaTlkhYAG4ChjjpDtE7yAqwDHrRtSecC9wGbbX9lrLLt7wE/lPTGcvXPlcDnprgsERExCRMGQDmmvwl4AHgM+LTt/ZJulPTOUu02YLGkEeD3gbFLRTcBK4Atkh4uj18u064D/gwYAb4NfGG6FioiIibW6B/BbO8AdnSUbWkbPgGs7zLfTcBN47Q5DFw4mc5GRMT0yU9BRERUKgEQEVGpBEBERKWq+TG4iF7KjxHmxwhPR9kDiIioVAIgIqJSCYCIiEolACIiKpUAiIioVAIgIqJSCYCIiEolAOK0Nzg4yODgYK+7EXHGSQBERFQqARARUakEQEREpRIAERGVSgBERFSqUQBIWiPpgKQRSZu7TF8o6e4yfZek/lK+WNLfSHpa0p92zLOztNl5q8iIiJgFE/4ctKR5wK3AZcBhYLekIduPtlW7BnjK9gpJG4BbgPcAJ4AbaN36sdvtH68ot4aMiIhZ1mQPYDUwYvug7WeB7cDajjprgTvL8D3ApZJk+8e2v0wrCCIi4jTSJACWAE+0jR8uZV3r2D4JHAcWN2j7k+Xwzw2S1KB+RERMk16eBL7C9muA3yqP93WrJGmjpGFJw6Ojo7PawYiIM1mTADgCLGsbX1rKutaRNB9YBBw7VaO2j5TnHwF30TrU1K3eVtsDtgf6+voadDciIppoEgC7gZWSlktaAGwAhjrqDAFXleF1wIO2PV6DkuZLOq8MvxB4O7Bvsp2PiIjnb8KrgGyflLQJeACYB9xue7+kG4Fh20PAbcA2SSPAk7RCAgBJh4BzgAWS3gW8FXgceKB8+M8D/hr4xLQuWUREnNKEAQBgewewo6NsS9vwCWD9OPP2j9Psxc26GBERMyH/CRwRUakEQEREpRIAERGVSgBERFQqARARUakEQEREpRIAERGVSgBERFQqARARUakEQEREpRIAERGVSgBERFQqARARUakEQEREpRIAERGVSgBERFQqARARUakEQEREpRoFgKQ1kg5IGpG0ucv0hZLuLtN3Seov5Ysl/Y2kpyX9acc8F0vaW+b5qCRNxwJFREQzEwaApHnArcDlwCrgvZJWdVS7BnjK9grgI8AtpfwEcAPwwS5Nfxx4P7CyPNY8nwWIiIjnp8kewGpgxPZB288C24G1HXXWAneW4XuASyXJ9o9tf5lWEPwTSS8DzrH9kG0DnwLeNZUFiYiIyWkSAEuAJ9rGD5eyrnVsnwSOA4snaPPwBG0CIGmjpGFJw6Ojow26GxERTZz2J4Ftb7U9YHugr6+v192JiDhjNAmAI8CytvGlpaxrHUnzgUXAsQnaXDpBmxERMYOaBMBuYKWk5ZIWABuAoY46Q8BVZXgd8GA5tt+V7e8BP5T0xnL1z5XA5ybd+4iIeN7mT1TB9klJm4AHgHnA7bb3S7oRGLY9BNwGbJM0AjxJKyQAkHQIOAdYIOldwFttPwpcB9wBnA18oTwiImKWTBgAALZ3ADs6yra0DZ8A1o8zb/845cPAhU07Gr3Vv/m+nr329w8e63kfDt38tp69dsRMOe1PAkdExMxIAEREVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqQRARESlEgAREZVKAEREVKrRz0HH1Pzq797c6y5ERPyC7AFERFQqARARUakEQEREpRoFgKQ1kg5IGpG0ucv0hZLuLtN3Sepvm3Z9KT8g6bfbyg9J2ivpYUnD07EwERHR3IQngSXNA24FLgMOA7slDZUbu4+5BnjK9gpJG4BbgPdIWkXrBvEXAC8H/lrSq2w/V+Z7s+2j07g8ERHRUJM9gNXAiO2Dtp8FtgNrO+qsBe4sw/cAl0pSKd9u+xnb3wFGSnsREdFjTQJgCfBE2/jhUta1ju2TwHFg8QTzGviipD2SNo734pI2ShqWNDw6OtqguxER0UQvTwJfYvt1wOXAByS9qVsl21ttD9ge6Ovrm90eRkT1BgcHGRwc7HU3ZkSTADgCLGsbX1rKutaRNB9YBBw71by2x55/ANxLDg1FRMyqJgGwG1gpabmkBbRO6g511BkCrirD64AHbbuUbyhXCS0HVgJfk/RiSS8FkPRi4K3AvqkvTkRENDXhVUC2T0raBDwAzANut71f0o3AsO0h4DZgm6QR4ElaIUGp92ngUeAk8AHbz0n6FeDe1nli5gN32b5/BpYvIiLG0ei3gGzvAHZ0lG1pGz4BrB9n3g8BH+ooOwhcNNnORkTE9Ml/AkdEVCoBEBFRqQRARESlEgAREZVKAEREVCoBEBFRqdwSMiJOe/2b7+vZa3//4LGe9+HQzW+bkXazBxARUakEQEREpRIAERGVSgBERFQqARARUakEQEREpXIZaJz2fvV3b+51FyLOSNkDiIioVAIgIqJSOQQUEXEKZ/IhyEZ7AJLWSDogaUTS5i7TF0q6u0zfJam/bdr1pfyApN9u2mZERMysCQNA0jzgVuByYBXwXkmrOqpdAzxlewXwEeCWMu8qWvcHvgBYA3xM0ryGbUZExAxqsgewGhixfdD2s8B2YG1HnbXAnWX4HuBSte74vhbYbvsZ298BRkp7TdqMiIgZ1OQcwBLgibbxw8Abxqtj+6Sk48DiUv5Qx7xLyvBEbQIgaSOwEeAVr3hFg+52N1O/pleLrL+p6eX6G3zowwDsnMN/w2x/M+O0vwrI9lbbA7YH+vr6et2diIgzRpM9gCPAsrbxpaWsW53DkuYDi4BjE8w7UZsRMQ127tzZ6y7EaarJHsBuYKWk5ZIW0DqpO9RRZwi4qgyvAx607VK+oVwltBxYCXytYZsRETGDJtwDKMf0NwEPAPOA223vl3QjMGx7CLgN2CZpBHiS1gc6pd6ngUeBk8AHbD8H0K3N6V+8iIgYj1pf1OeGgYEBDw8P97obERFziqQ9tgc6y0/7k8ARETEzEgAREZVKAEREVCoBEBFRqQRARESlEgAREZWaU5eBShoFHu91P56n84Cjve7EHJb1NzVZf1Mz19ff+bZ/4bd05lQAzGWShrtdhxvNZP1NTdbf1Jyp6y+HgCIiKpUAiIioVAJg9mztdQfmuKy/qcn6m5ozcv3lHEBERKWyBxARUakEQEREpRIAM0TSuZKum2w9SS+XdM/M9m5ukXS1pJf3uh+nE0l3SFrX637MZZL+SNIHp7G9r05XW7MlATBzzgUmDIDOera/aztv7J93NTCpACi3Jo0u1JL3/jSz/Zu97sNkZSMAJN0g6YCkL0v6n5I+KOn9knZLekTSX0h6Uam7XtK+Uv53pewCSV+T9LCkb0paCdwM/Fop+7Ckl0j6kqSvS9oraW15+c56/ZL2lXbPkvTJUv8bkt5cyq+W9FlJ90v6lqT/Ovtrbeok/aWkPZL2S9ooaV75ZruvLPO/L99yB4A/L+vobElbyt9mn6StklTa2ynpv0kaBv5dTxdumkm6smxbj0jaVorfJOmrkg6O7Q2Mt52V7eqApE8B+4Bl3bb7UvfXyra1R9LfS3p1TxZ6mo2zDsemTfX9jqSn29r7g7L+H5F082wu56TYrvoBvB54GDgLeCnwLeCDwOK2OjcB/6YM7wWWlOFzy/OfAFeU4QXA2UA/sK+tjfnAOWX4PGAEUJd6/zQO/Adat8sEeDXwf0o/rwYOAovK+OPAsl6vy+ex7n+pPJ9N60PpYuCv2qaPrd+dwEDnfGV4G/COtnof6/VyzcB6ugD438B5Y8sP3AF8htaXuFXASIPt7GfAG0+13ZdpXwJWluE30LrHd8/Xwwyswz9qW+Ypvd/L8NPl+XLgq8CLOrfX0+2R3WT4l8DnbJ8ATkj6fCm/UNJNtA7RvITW/YsBvgLcoda9jj9byv4X8J8lLQU+a/tb5UtpOwF/LOlNtN6IS4BfmaBvl9Da2LD9D5IeB15Vpn3J9nEASY8C5wNPTG7Re+7fSnp3GV5G6830Skl/AtwHfHGc+d4s6T8CL6L1Rt4PjP3d7p7B/vbKW4DP2D4KYPvJsn39pe2fAY9KGtuWTrWdPW77oTLcdbuX9BLgN4HPtG3DC2d06WbHeOtwzJTe7x2v9a+AT9r+ydhrzcQCTYccAhrfHcAm268B/gutb0rYvhb4Q1ofWHskLbZ9F/BO4B+BHZLe0qW9K4A+4GLbrwX+71ibz9MzbcPPwdwKc0mDtN4ov2H7IuAbtD5oLqL1Tf5a4M+6zHcW8DFgXfnbfIKfX48/ntGOn17at4GxT7NTbWdN1s0LgP9n+7Vtj1+fth6fvu5get/vc0ICoJXw7yjH218CvL2UvxT4nqQX0npTAa3jo7Z32d4CjNI6lvpK4KDtjwKfA/4F8KPSxphFwA9s/7Qcyz+/lHfWa/f3Y68t6VXAK4ADU17i08Mi4CnbPynHmN9I65DFC2z/Ba033etK3fZ1NPZhdrT8vWo4Yf4gsF7SYgBJv3SKuuNtZ526bve2fwh8R9L68lqSdNF0LUgPTbQOp/p+b/dXwL9uO49wqr9XT82pb40zwfZuSUPAN2l9W9oLHAduAHbR+qPv4p8/gD5cTvqI1rHSR4A/AN4n6afA94E/LruYX1HrhO4XgFuAz0vaCwwD/1Be/1hHvVvbuvcx4ONlnpPA1baf6XJ4aS66H7hW0mO0Qu0hWocrduqfr1C5vjzfAfx3Sf8I/Aatb/37aK3r3bPZ6V6wvV/Sh4C/lfQcrb2l8fw5XbazLm2Ot91D6wPw45L+EHghsJ3Wdj5njbMOD7VVmdL7veO17pf0WmBY0rPADuA/zdSyTUV+CoLWcU/bT5fE/jtgo+2v97pfETMp231UvwdQbJW0itbhhTvzJohKZLuvXPYAIiIqlZPAERGVSgBERFQqARARUakEQEREpRIAERGV+v+ZjojJ+pEg+gAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = plt.figure()\n", "y = []\n", diff --git a/evaluation/lib/benchmarks.py b/evaluation/lib/benchmarks.py new file mode 100644 index 0000000..e69de29 diff --git a/evaluation/lib/export.py b/evaluation/lib/export.py index d4ef72e..ccf4ba9 100644 --- a/evaluation/lib/export.py +++ b/evaluation/lib/export.py @@ -1,7 +1,7 @@ from typing import TextIO from dataclasses import asdict, fields -from lib.T import QueryRow +from evaluation.lib.T import QueryRow SEP = ',' diff --git a/evaluation/lib/queries.py b/evaluation/lib/queries.py index 65e5671..0a968df 100644 --- a/evaluation/lib/queries.py +++ b/evaluation/lib/queries.py @@ -3,7 +3,6 @@ from time import perf_counter import networkx as nx -from evrouting.T import Result from evrouting import gasstation, charge from evrouting.graph_tools import ( consumption_function_distance_factory, @@ -13,14 +12,14 @@ from evrouting.graph_tools import ( from evrouting.osm.profiles import car from evrouting.osm.routing import GasstationAccessFunctions, a_start_heuristic -from lib.T import ( +from evaluation.lib.T import ( GasstationQueryRow, ChargeQueryRow, ClassicQueryRow, AStarQueryRow, QueryRow ) -from lib.algorithm import ranked_dijkstra +from evaluation.lib.algorithm import ranked_dijkstra __all__ = [ 'gasstation_query', diff --git a/evaluation/run.py b/evaluation/run.py index 38daee7..fed49c2 100644 --- a/evaluation/run.py +++ b/evaluation/run.py @@ -1,5 +1,6 @@ import argparse import json +import gc import random import pickle import logging @@ -8,9 +9,9 @@ from pathlib import Path import yaml from evrouting.osm.imports import read_osm -from lib.T import * -from lib.export import write_head, write_row -from lib.queries import ( +from evaluation.lib.T import * +from evaluation.lib.export import write_head, write_row +from evaluation.lib.queries import ( gasstation_query, charge_query, classic_query, @@ -22,6 +23,22 @@ from lib.queries import ( base = Path(__file__).parent +def no_gc(func): + """Run func without garbage collection.""" + + def inner(*args, **kwargs): + gcold = gc.isenabled() + gc.disable() + try: + r = func(*args, **kwargs) + finally: + if gcold: + gc.enable() + return r + + return inner + + def query_benchmark(graphs, conf, result_dir): # Charging Stations cs_path = base.joinpath('static').joinpath(conf['charging_stations']) @@ -64,9 +81,13 @@ def query_benchmark(graphs, conf, result_dir): map_name )) for i, (s, t) in enumerate(zip(start_nodes, target_nodes)): - logging.info(f'{i + 1}/{len(start_nodes)}') + logging.debug(f'{i + 1}/{len(start_nodes)}') + + # Run tests with garbage collection disabled + result_data = no_gc(func)(G, setup, s, t) + with result_dir.joinpath(filename).open('a') as f: - write_row(f, func(G, setup, s, t)) + write_row(f, result_data) # Delete cached graphs for key in list(CACHE.keys()): @@ -121,6 +142,7 @@ if __name__ == '__main__': format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p', level=logging.DEBUG) + results_dir = base.joinpath('results') static_dir = base.joinpath('static') maps_dir = static_dir.joinpath('maps') -- GitLab