diff --git a/evaluation/configs/example_rank.yaml b/evaluation/configs/example_rank.yaml index c8644c3f24e0fd0a5600ccefd0967a98e25348ac..5152de83b5dfd0390c8ab91cef7dc849c7b6c3be 100644 --- a/evaluation/configs/example_rank.yaml +++ b/evaluation/configs/example_rank.yaml @@ -8,9 +8,9 @@ maps: queries_per_rank: 10 ranks: [2, 4, 6, 8] setups: - - mu_s: 300 # Start and Target Soc + - mu_s: 40 # Start and Target Soc mu_t: 0 - capacity: 300 # kWh + capacity: 40 # kWh consumption: type: distance - consumption_coefficient: 0.1 # kWh/s + consumption_coefficient: 0.5 # kWh/km = Wh/m diff --git a/evaluation/run.py b/evaluation/run.py index 0fb15aefd36ad95c47707266c1b8f94cc1ea6e17..bc8ea464707feaa184cd28ff2a6a9fafdf6ea998 100644 --- a/evaluation/run.py +++ b/evaluation/run.py @@ -37,8 +37,9 @@ def apply_conversions(conf): """kWh to Wh""" for setup in conf['setups']: setup['capacity'] = 1000 * setup['capacity'] - setup['consumption']['consumption_coefficient'] = \ - 1000 * setup['consumption']['consumption_coefficient'] + if setup['consumption'].get('type') == 'time': + setup['consumption']['consumption_coefficient'] = \ + 1000 * setup['consumption']['consumption_coefficient'] setup['mu_s'] = 1000 * setup['mu_s'] setup['mu_t'] = 1000 * setup['mu_t'] return conf diff --git a/evaluation/statistics.ipynb b/evaluation/statistics.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d47ff563c1714917307166292c7e2f95d51cf941 --- /dev/null +++ b/evaluation/statistics.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from pathlib import Path" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Paths to Benchmark Results\n", + "result_dir = Path('./results')\n", + "example_init = result_dir.joinpath('example_init/init')\n", + "example_init_query = result_dir.joinpath('example_init_query/queries')\n", + "example_init_rank = result_dir.joinpath('example_rank/ranked')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "data = {\n", + " 'init': example_init.joinpath('init.csv'),\n", + " 'insert': example_init.joinpath('insert.csv'),\n", + " 'init_charge_queries': example_init_query.joinpath('charge.csv'),\n", + " 'charge_ranked': example_init_rank.joinpath('charge.csv'),\n", + " 'classic_ranked': example_init_rank.joinpath('classic.csv')\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "for key, path in data.items():\n", + " data[key] = pd.read_csv(path,dtype={'start_node': str, 'target_node': str})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ranked Stats" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ranks = np.log2(data['classic_ranked']['dijkstra_rank'])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "\n", + "for k in ['charge_ranked']:\n", + " data[k]['rank'] = ranks\n", + " _means = data[k].groupby(['rank']).mean()\n", + " _std = data[k].groupby(['rank']).std()\n", + " _x = _means.index\n", + " _y = _means['query_time']\n", + " _yerr = _std['query_time']\n", + " plt.errorbar(_x, _y, yerr=_yerr,fmt='o-')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gasstation" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>time_contracted_graph</th>\n", + " <th>time_state_graph</th>\n", + " <th>nodes_state_graph</th>\n", + " <th>edges_state_graph</th>\n", + " <th>nodes_contracted_graph</th>\n", + " <th>edges_contracted_graph</th>\n", + " <th>charging_stations</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0.000136</td>\n", + " <td>0.000030</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0.323515</td>\n", + " <td>0.000028</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>9.928760</td>\n", + " <td>0.000098</td>\n", + " <td>6</td>\n", + " <td>3</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>9.078340</td>\n", + " <td>0.000190</td>\n", + " <td>12</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>3</td>\n", + " <td>6</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>31.818989</td>\n", + " <td>0.000110</td>\n", + " <td>8</td>\n", + " <td>2</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>62.850130</td>\n", + " <td>0.000063</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>10</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " time_contracted_graph time_state_graph nodes_state_graph \\\n", + "0 0.000136 0.000030 1 \n", + "1 0.323515 0.000028 2 \n", + "2 9.928760 0.000098 6 \n", + "3 9.078340 0.000190 12 \n", + "4 31.818989 0.000110 8 \n", + "5 62.850130 0.000063 10 \n", + "\n", + " edges_state_graph nodes_contracted_graph edges_contracted_graph \\\n", + "0 0 1 0 \n", + "1 0 2 0 \n", + "2 3 4 1 \n", + "3 9 6 3 \n", + "4 2 8 1 \n", + "5 0 10 0 \n", + "\n", + " charging_stations \n", + "0 1 \n", + "1 2 \n", + "2 4 \n", + "3 6 \n", + "4 8 \n", + "5 10 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data['init']" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "x = data['init']['charging_stations']\n", + "time_contracted=data['init']['time_contracted_graph']\n", + "time_state_graph = data['init']['time_state_graph']\n", + "plt.bar(x, time_contracted)\n", + "plt.bar(x, time_state_graph)\n", + "\n", + "charge_query_times = data['init_charge_queries'].groupby('charging_stations').mean()\n", + "charge_query_times_std = data['init_charge_queries'].groupby('charging_stations').std()\n", + "plt.errorbar(x, charge_query_times['query_time'], yerr=charge_query_times_std['query_time'], fmt='bo')\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "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.7.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/evrouting/graph_tools.py b/evrouting/graph_tools.py index bd0c073793de2cb5383ec1d071f911374f6eab59..b521e13b36dca66ddb18f38873320454181c7237 100644 --- a/evrouting/graph_tools.py +++ b/evrouting/graph_tools.py @@ -57,7 +57,7 @@ def sum_weights(G, path, weight: str) -> float: def consumption_function_distance_factory(consumption: float) -> ConsumptionFunction: """ - :param consumption: in kWh/km + :param consumption: in kWh/m """ def c(G, u, v):