From b923bd64d236814c355ca7ac5f067e03c0931e52 Mon Sep 17 00:00:00 2001 From: "niehues.mark@gmail.com" <niehues.mark@gmail.com> Date: Tue, 5 May 2020 15:05:42 +0200 Subject: [PATCH] caching intermediate graphs --- evaluation/configs/example.yaml | 2 +- evaluation/lib/queries.py | 50 ++++++- evaluation/results/example/queries/astar.csv | 132 +++++------------- evaluation/results/example/queries/charge.csv | 132 +++++------------- .../results/example/queries/classic.csv | 132 +++++------------- .../results/example/queries/gasstation.csv | 55 +++++--- evaluation/run.py | 23 ++- 7 files changed, 193 insertions(+), 333 deletions(-) diff --git a/evaluation/configs/example.yaml b/evaluation/configs/example.yaml index 73d27e7..e3c9ef9 100644 --- a/evaluation/configs/example.yaml +++ b/evaluation/configs/example.yaml @@ -5,7 +5,7 @@ type: query charging_stations: charging_stations.json maps: - map.osm -queries_per_setup: 100 +queries_per_setup: 10 setups: - mu_s: 300 # Start and Target Soc mu_t: 0 diff --git a/evaluation/lib/queries.py b/evaluation/lib/queries.py index 6f05143..2d82f54 100644 --- a/evaluation/lib/queries.py +++ b/evaluation/lib/queries.py @@ -1,3 +1,4 @@ +import logging from time import perf_counter import networkx as nx @@ -18,12 +19,35 @@ from lib.T import ( AStarQueryRow ) -__all__ = ['gasstation_query', 'charge_query', 'classic_query', 'astar_query'] +__all__ = [ + 'gasstation_query', + 'charge_query', + 'classic_query', + 'astar_query' +] +CACHE = {} -def gasstation_query(graph, conf, s, t): - f = GasstationAccessFunctions(conf['consumption']['consumption_coefficient']) +def cached(key): + """Cache returned graph to file in temp_dir.""" + + def decorator(func): + def getter(*args, **kwargs): + try: + return CACHE[key], None + except KeyError: + graph, runtime = func(*args, **kwargs) + CACHE[key] = graph + return graph, runtime + + return getter + + return decorator + + +@cached('gasstation') +def get_contracted_graph(graph, conf, f): start = perf_counter() contracted_graph = gasstation.routing.contract_graph( G=graph, @@ -32,7 +56,15 @@ def gasstation_query(graph, conf, s, t): f=f ) contraction_time = perf_counter() - start + logging.info('Contracted graph with {} stations in {:.2f} s.'.format( + len(graph.charging_stations), + contraction_time + )) + return contracted_graph, contraction_time + +@cached('state_graph') +def get_state_graph(contracted_graph, conf, f): start = perf_counter() state_graph = gasstation.routing.state_graph( contracted_graph, @@ -40,6 +72,16 @@ def gasstation_query(graph, conf, s, t): f ) state_graph_time = perf_counter() - start + logging.info('Created State Graph in {:.2f} s.'.format( + state_graph_time + )) + return state_graph, state_graph_time + + +def gasstation_query(graph, conf, s, t): + f = GasstationAccessFunctions(conf['consumption']['consumption_coefficient']) + contracted_graph, contraction_time = get_contracted_graph(graph, conf, f) + state_graph, state_graph_time = get_state_graph(contracted_graph, conf, f) start = perf_counter() result = gasstation.routing.shortest_path( @@ -59,7 +101,7 @@ def gasstation_query(graph, conf, s, t): return GasstationQueryRow( start_node=s, target_node=t, - query_time=query_time + contraction_time + state_graph_time, + query_time=query_time, trip_time=result.trip_time if type(result) == Result else None, nodes=len(graph.nodes), edges=len(graph.edges), diff --git a/evaluation/results/example/queries/astar.csv b/evaluation/results/example/queries/astar.csv index fe730fb..7df5a8e 100644 --- a/evaluation/results/example/queries/astar.csv +++ b/evaluation/results/example/queries/astar.csv @@ -1,101 +1,33 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations -7321902574,318014974,0.007568578999780584,238.1110904996911,2827,5691,3 -4016874515,2611369730,0.003537241000231006,113.40853811212274,2827,5691,3 -7182110441,268980011,0.006901079999806825,575.546920845741,2827,5691,3 -1934188724,34911575,0.02502793900021061,None,2827,5691,3 -1867147194,549947326,0.009264481999707641,306.3977004462799,2827,5691,3 -418009253,1411856646,0.024911561000408255,926.5828722425748,2827,5691,3 -6448459754,2608429407,0.005626917999506986,110.63446581791817,2827,5691,3 -1821291294,318261953,0.009873198999230226,366.3184015404222,2827,5691,3 -1927634061,360747579,0.012953817000379786,465.50083809477644,2827,5691,3 -79954921,2614897354,0.011293107000710734,626.9765430725013,2827,5691,3 -1934189119,563194918,0.002633582000271417,243.91394290107357,2827,5691,3 -408478784,2614897352,0.004225145999953384,376.06559393330286,2827,5691,3 -3111465595,474997347,0.005856654999661259,233.37360027751848,2827,5691,3 -1672267587,7115310188,7.70900005591102e-05,None,2827,5691,3 -426948340,2623041441,0.017265800000132003,607.4759695626486,2827,5691,3 -7030602777,2614920443,0.011115194000012707,309.14324380214833,2827,5691,3 -2611494658,7074500839,0.02345366000008653,649.6622428768856,2827,5691,3 -6448461998,2604687802,0.010816668999723333,369.2373455358261,2827,5691,3 -317767227,748845499,0.02000224200037337,438.7724254643551,2827,5691,3 -7081828735,1757613834,0.017728652999721817,638.132348548364,2827,5691,3 -600861362,34053452,0.0033281639998676837,257.2835741707556,2827,5691,3 -7030623427,5609334121,0.009842467999988003,505.63577043459526,2827,5691,3 -793260945,1935264851,0.02548328200009564,982.3373940665655,2827,5691,3 -2616315923,7257113601,0.004644349000045622,232.54030844332127,2827,5691,3 -1827520762,426930253,0.02144544400016457,555.1219663447,2827,5691,3 -2997117857,45217462,0.0007760219996271189,239.69584582112356,2827,5691,3 -7074500836,318015069,0.006032391999724496,358.3313926632318,2827,5691,3 -1672334351,2997117873,0.014431023999350145,619.7320443863234,2827,5691,3 -5113940071,574546136,0.00032739900052547455,38.36680561831532,2827,5691,3 -3307706662,408478842,0.0002016809994529467,106.17669377184302,2827,5691,3 -365065394,2619115981,0.004220568000164349,211.22096795741354,2827,5691,3 -2973923689,2604686273,0.004096565000509145,314.30553801234936,2827,5691,3 -5576943376,549938448,0.012980622999748448,378.7504835821481,2827,5691,3 -7140363797,4475752956,0.006811612999626959,405.1173694042988,2827,5691,3 -2608501043,549944087,0.006625901999541384,309.83263677334804,2827,5691,3 -7115183094,1821291310,0.006649093999840261,166.72662919095825,2827,5691,3 -4016874408,469720334,0.014832183000180521,474.5248341109552,2827,5691,3 -7115183090,508823959,0.003660451000541798,99.25054650686562,2827,5691,3 -2598984220,2639898818,0.007726304999778222,315.22936375978804,2827,5691,3 -1934189313,34053448,0.01874155099994823,996.5041118441444,2827,5691,3 -306639025,2608786068,0.005269233000035456,335.3712680198829,2827,5691,3 -549931420,2635713653,0.019543730000805226,443.3356339909103,2827,5691,3 -1929118250,7246644040,0.023990942000637006,792.7725145604651,2827,5691,3 -474997344,321209230,0.008237455999733356,360.1032536260311,2827,5691,3 -4383156579,318014986,0.006319156999779807,334.8287484267631,2827,5691,3 -2701786796,7321902570,0.014290217000052508,396.4678926102016,2827,5691,3 -418009817,408478815,0.006516372000078263,393.2077751296899,2827,5691,3 -665115010,7180800494,0.005075002000012319,121.99627562066787,2827,5691,3 -7286240204,7207579520,0.012112248000448744,444.57943336659633,2827,5691,3 -7286240202,3273201483,0.0034503960005167755,151.17570520208938,2827,5691,3 -34053458,1672267572,0.012001237999356817,534.9695327831129,2827,5691,3 -6448461991,1827520765,0.025130322999757482,None,2827,5691,3 -2600451785,2705157134,0.0119646510001985,391.70762990375385,2827,5691,3 -1672267690,306639024,0.00011611700028879568,None,2827,5691,3 -317767228,574482753,0.013925289000326302,360.4443894533518,2827,5691,3 -6448461999,317839537,0.001202407000164385,113.79275358739032,2827,5691,3 -45217495,3996162743,0.016943106999860902,370.86620593338074,2827,5691,3 -288947123,7030602775,0.0084678539997185,380.7827532273404,2827,5691,3 -318260942,1672267832,0.02540487199985364,None,2827,5691,3 -4955446038,6603016874,0.008938343999943754,338.336413426195,2827,5691,3 -1574635372,7140363795,0.0005431959998531966,None,2827,5691,3 -2611404223,1636935570,0.01713199500045448,477.29034631823833,2827,5691,3 -7182110439,45217473,0.007642070000656531,588.6851099661361,2827,5691,3 -7115244209,418009812,0.014710782999827643,389.59809435549516,2827,5691,3 -2604685993,288944217,0.019526024999322544,517.7769043458792,2827,5691,3 -2600670536,665115005,0.002605667000352696,346.37375978016064,2827,5691,3 -306636853,426948333,0.022952964000069187,572.6741026406311,2827,5691,3 -7165728796,549947346,0.010273412999595166,397.60081105225186,2827,5691,3 -34053442,79952473,0.004863211000156298,159.72842896428756,2827,5691,3 -549943303,292484626,0.02529727199998888,None,2827,5691,3 -1672334374,2621462848,0.004323944000134361,685.7706435103163,2827,5691,3 -574485683,45217441,0.004481981999560958,214.6046386679047,2827,5691,3 -1826594887,549931434,0.01306698200005485,436.26736948173607,2827,5691,3 -7321870098,6389435552,0.0045035630000711535,164.6141667563423,2827,5691,3 -7115244215,4016874494,0.0021844929997314466,59.16033555162781,2827,5691,3 -2335713764,2611369851,0.008659335999254836,341.4414664124244,2827,5691,3 -2884684292,1828418192,0.005371036999349599,227.3872947428237,2827,5691,3 -2608394380,79952469,0.004148380000515317,323.70435471590326,2827,5691,3 -574485682,408478827,0.004000263000307314,186.9543818851861,2827,5691,3 -4955446039,2591134812,0.02313379499992152,623.3082344539869,2827,5691,3 -292981056,5576939244,0.00780612100061262,350.8540660979972,2827,5691,3 -2635713647,1820309645,0.0035686840001289966,158.25319591694605,2827,5691,3 -6047068261,549941827,0.006793865999497939,238.57914333266365,2827,5691,3 -2616315927,2611492275,0.00995773199974792,364.99875612623697,2827,5691,3 -79952492,430534359,0.012335537000581098,404.07151199153935,2827,5691,3 -7245276253,674511702,0.011887880000358564,361.98526836465845,2827,5691,3 -7115244212,4225277008,0.011752117000469298,346.17073362608573,2827,5691,3 -7286240209,408478755,0.023824191999665345,731.529341557396,2827,5691,3 -574546108,1830468180,0.023124328000449168,692.7399479939606,2827,5691,3 -600858466,1827520830,0.02558539399979054,None,2827,5691,3 -4226442916,549925965,0.017318748999969102,458.86593644477375,2827,5691,3 -2627469510,600866945,0.002440263000607956,169.10426681490915,2827,5691,3 -1672267773,4955446069,0.00013917000069341157,None,2827,5691,3 -2608597627,288944214,0.009315194000009797,320.059571405044,2827,5691,3 -418009820,318015012,0.006670095000117726,376.9674794697233,2827,5691,3 -7158827509,1828263557,0.006894396999996388,265.2832428627522,2827,5691,3 -7115126884,418009264,0.010392732000582328,331.629702693991,2827,5691,3 -574465009,5609333816,0.015511605999563471,429.3442689028079,2827,5691,3 -3123285391,2611369895,0.006960386000173457,213.00699592380232,2827,5691,3 -574482746,549941210,0.00527424699976109,207.27982913832062,2827,5691,3 +418009800,574457854,0.016365269000743865,513.3867017835531,2827,5691,1 +1934189643,1672267862,0.024794959999780986,None,2827,5691,1 +4955445788,2608597329,0.006531982999149477,468.61012521592113,2827,5691,1 +3111465599,426948327,0.02325725999980932,733.6313989681807,2827,5691,1 +426930250,360747525,0.010435072001200751,730.4096032452347,2827,5691,1 +2626105675,574449298,0.015268628001649631,581.5878060414734,2827,5691,1 +2608501851,418009810,0.009202822999213822,311.5216253485141,2827,5691,1 +1718397716,294919195,0.00783049699930416,316.4427340861574,2827,5691,1 +405229458,748845494,0.007164475000536186,241.74032174316505,2827,5691,1 +5726327175,5576939249,0.005316733000654494,133.7762557564627,2827,5691,1 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations +418009800,574457854,0.01609230000030948,513.3867017835531,2827,5691,2 +1934189643,1672267862,0.02513524099958886,None,2827,5691,2 +4955445788,2608597329,0.006504785998913576,468.61012521592113,2827,5691,2 +3111465599,426948327,0.02274821399987559,733.6313989681807,2827,5691,2 +426930250,360747525,0.010359958001572522,730.4096032452347,2827,5691,2 +2626105675,574449298,0.015497483000217471,581.5878060414734,2827,5691,2 +2608501851,418009810,0.009121514000071329,311.5216253485141,2827,5691,2 +1718397716,294919195,0.007242572999530239,316.4427340861574,2827,5691,2 +405229458,748845494,0.0071749509988876525,241.74032174316505,2827,5691,2 +5726327175,5576939249,0.00539905000005092,133.7762557564627,2827,5691,2 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations +418009800,574457854,0.01592524300031073,513.3867017835531,2827,5691,3 +1934189643,1672267862,0.0248023820004164,None,2827,5691,3 +4955445788,2608597329,0.006321331999060931,468.61012521592113,2827,5691,3 +3111465599,426948327,0.023352963999059284,733.6313989681807,2827,5691,3 +426930250,360747525,0.010226640999462688,730.4096032452347,2827,5691,3 +2626105675,574449298,0.015081085999554489,581.5878060414734,2827,5691,3 +2608501851,418009810,0.00919760700162442,311.5216253485141,2827,5691,3 +1718397716,294919195,0.007316459999856306,316.4427340861574,2827,5691,3 +405229458,748845494,0.0069069710007170215,241.74032174316505,2827,5691,3 +5726327175,5576939249,0.005275892001009197,133.7762557564627,2827,5691,3 diff --git a/evaluation/results/example/queries/charge.csv b/evaluation/results/example/queries/charge.csv index 035fffb..cbad858 100644 --- a/evaluation/results/example/queries/charge.csv +++ b/evaluation/results/example/queries/charge.csv @@ -1,101 +1,33 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations -7321902574,318014974,0.816606456000045,1792.648905540409,2828,5691,3 -4016874515,2611369730,0.05695069000012154,113.40853811212274,2827,5691,3 -7182110441,268980011,0.023140358999626187,None,2828,5691,3 -1934188724,34911575,0.32412717399984103,None,2827,5691,3 -1867147194,549947326,1.0531797159992493,None,2828,5691,3 -418009253,1411856646,0.023896833999970113,None,2827,5691,3 -6448459754,2608429407,0.08569430400075362,110.63446581791817,2828,5691,3 -1821291294,318261953,0.8421148419993187,9576.358960120844,2827,5691,3 -1927634061,360747579,0.7470106589998977,None,2828,5691,3 -79954921,2614897354,0.01227395899968542,None,2827,5691,3 -1934189119,563194918,0.07671072499942966,243.91394290107357,2828,5691,3 -408478784,2614897352,0.09311294800045289,None,2827,5691,3 -3111465595,474997347,0.2229279070006669,233.37360027751848,2828,5691,3 -1672267587,7115310188,0.012990934000299603,None,2827,5691,3 -426948340,2623041441,0.03597513000022445,None,2828,5691,3 -7030602777,2614920443,0.42990678400019533,None,2827,5691,3 -2611494658,7074500839,0.6106054279998716,None,2828,5691,3 -6448461998,2604687802,0.7877546489999077,None,2827,5691,3 -317767227,748845499,0.5888809139996738,None,2828,5691,3 -7081828735,1757613834,0.2787895599994954,None,2827,5691,3 -600861362,34053452,0.1160973930000182,257.2835741707556,2828,5691,3 -7030623427,5609334121,0.2116003549999732,19699.075181768025,2827,5691,3 -793260945,1935264851,0.4287361090000559,None,2828,5691,3 -2616315923,7257113601,0.1145265790000849,232.54030844332127,2827,5691,3 -1827520762,426930253,0.21864520799954335,None,2828,5691,3 -2997117857,45217462,0.011323332999381819,239.69584582112356,2827,5691,3 -7074500836,318015069,0.24373853799988865,18499.671678755098,2828,5691,3 -1672334351,2997117873,0.006136222000350244,None,2827,5691,3 -5113940071,574546136,0.0067075360002490925,38.36680561831532,2828,5691,3 -3307706662,408478842,0.006063058000108867,106.17669377184302,2827,5691,3 -365065394,2619115981,0.08204879600089043,211.22096795741354,2828,5691,3 -2973923689,2604686273,0.055503057000350964,314.30553801234936,2827,5691,3 -5576943376,549938448,0.8836931559999357,None,2828,5691,3 -7140363797,4475752956,0.009287233000577544,None,2827,5691,3 -2608501043,549944087,0.9896497019999515,None,2828,5691,3 -7115183094,1821291310,0.16703532399969845,166.72662919095825,2827,5691,3 -4016874408,469720334,0.6323797390004984,None,2828,5691,3 -7115183090,508823959,0.07809145000010176,99.25054650686562,2827,5691,3 -2598984220,2639898818,0.1919862570002806,317.989681778846,2828,5691,3 -1934189313,34053448,0.062292321999848355,None,2827,5691,3 -306639025,2608786068,0.03854399600004399,None,2828,5691,3 -549931420,2635713653,0.45712342700062436,None,2827,5691,3 -1929118250,7246644040,0.5446669550001388,None,2828,5691,3 -474997344,321209230,0.5101050759994905,25721.375123146114,2827,5691,3 -4383156579,318014986,0.2736173040002541,15552.042241115294,2828,5691,3 -2701786796,7321902570,0.44951088200014055,None,2827,5691,3 -418009817,408478815,0.3063651310003479,None,2828,5691,3 -665115010,7180800494,0.13378255800034822,121.99627562066787,2827,5691,3 -7286240204,7207579520,0.7944291719995817,None,2828,5691,3 -7286240202,3273201483,0.10878032700020412,151.17570520208938,2827,5691,3 -34053458,1672267572,0.018573579999610956,None,2828,5691,3 -6448461991,1827520765,0.4178299609993701,None,2827,5691,3 -2600451785,2705157134,0.295613293000315,None,2828,5691,3 -1672267690,306639024,0.029936169999928097,None,2827,5691,3 -317767228,574482753,0.5675544059995445,None,2828,5691,3 -6448461999,317839537,0.0191387830000167,113.79275358739032,2827,5691,3 -45217495,3996162743,0.9394159049998052,None,2828,5691,3 -288947123,7030602775,0.33305940499940334,None,2827,5691,3 -318260942,1672267832,0.3947207510000226,None,2828,5691,3 -4955446038,6603016874,0.5525475649992586,None,2827,5691,3 -1574635372,7140363795,0.0061973400006536394,None,2828,5691,3 -2611404223,1636935570,1.0060662539999612,None,2827,5691,3 -7182110439,45217473,0.025666359999377164,None,2828,5691,3 -7115244209,418009812,0.9239453850004793,None,2827,5691,3 -2604685993,288944217,2.4160380559997066,None,2828,5691,3 -2600670536,665115005,0.08823915300035878,346.37375978016064,2827,5691,3 -306636853,426948333,0.8456364619996748,None,2828,5691,3 -7165728796,549947346,1.1368291119997593,None,2827,5691,3 -34053442,79952473,0.11454584500006604,159.72842896428756,2828,5691,3 -549943303,292484626,0.3857124339992879,None,2827,5691,3 -1672334374,2621462848,0.005592903999968257,None,2828,5691,3 -574485683,45217441,0.09150863600007142,214.6046386679047,2827,5691,3 -1826594887,549931434,0.4621335629999521,None,2828,5691,3 -7321870098,6389435552,0.13617897600033757,164.6141667563423,2827,5691,3 -7115244215,4016874494,0.04243734299961943,59.16033555162781,2828,5691,3 -2335713764,2611369851,0.24678136299917242,18481.74054420309,2827,5691,3 -2884684292,1828418192,0.25409771999966324,227.45445690314511,2828,5691,3 -2608394380,79952469,0.1772169229998326,323.70435471590326,2827,5691,3 -574485682,408478827,0.06435229900034756,186.9543818851861,2828,5691,3 -4955446039,2591134812,0.5674075529996117,None,2827,5691,3 -292981056,5576939244,0.3297397569995155,None,2828,5691,3 -2635713647,1820309645,0.11047373000019434,158.25319591694605,2827,5691,3 -6047068261,549941827,0.1659991420001461,238.57914333266365,2828,5691,3 -2616315927,2611492275,0.35699719700005517,None,2827,5691,3 -79952492,430534359,0.7037360610001997,None,2828,5691,3 -7245276253,674511702,0.48892663400056335,2965.5782504425006,2827,5691,3 -7115244212,4225277008,0.4287897479998719,None,2828,5691,3 -7286240209,408478755,0.8902888889997485,None,2827,5691,3 -574546108,1830468180,56.450571792999654,None,2828,5691,3 -600858466,1827520830,0.705039191000651,None,2827,5691,3 -4226442916,549925965,0.7127105130002747,None,2828,5691,3 -2627469510,600866945,0.08905787500043516,169.10426681490915,2827,5691,3 -1672267773,4955446069,0.004978612000741123,None,2828,5691,3 -2608597627,288944214,0.8749616969998897,7241.99317190265,2827,5691,3 -418009820,318015012,0.07547216999955708,376.9674794697233,2828,5691,3 -7158827509,1828263557,0.12232587600010447,265.2832428627522,2827,5691,3 -7115126884,418009264,0.7031070630000613,None,2828,5691,3 -574465009,5609333816,0.372224918000029,None,2827,5691,3 -3123285391,2611369895,0.13805532100013806,213.00699592380232,2828,5691,3 -574482746,549941210,0.09052957499989134,207.27982913832062,2827,5691,3 +418009800,574457854,0.33510476099945663,None,2828,5691,1 +1934189643,1672267862,0.012840351999329869,None,2827,5691,1 +4955445788,2608597329,0.01045286299995496,None,2828,5691,1 +3111465599,426948327,0.42038153800058353,None,2827,5691,1 +426930250,360747525,0.03632907799874374,None,2828,5691,1 +2626105675,574449298,0.16826632900119876,None,2827,5691,1 +2608501851,418009810,0.28878574400005164,311.5216253485141,2828,5691,1 +1718397716,294919195,0.588220438999997,19410.47441813424,2827,5691,1 +405229458,748845494,0.14829701700000442,241.74032174316505,2828,5691,1 +5726327175,5576939249,0.11976762000085728,133.7762557564627,2827,5691,1 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations +418009800,574457854,0.33343001899993396,None,2828,5691,2 +1934189643,1672267862,0.012630760998945334,None,2827,5691,2 +4955445788,2608597329,0.010600056000839686,None,2828,5691,2 +3111465599,426948327,0.429355864000172,None,2827,5691,2 +426930250,360747525,0.03632738200030872,None,2828,5691,2 +2626105675,574449298,0.17084869800055458,None,2827,5691,2 +2608501851,418009810,0.29104091499903006,311.5216253485141,2828,5691,2 +1718397716,294919195,0.5826008940002794,19410.47441813424,2827,5691,2 +405229458,748845494,0.14460836600119364,241.74032174316505,2828,5691,2 +5726327175,5576939249,0.11788628400063317,133.7762557564627,2827,5691,2 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations +418009800,574457854,0.3407406269998319,None,2828,5691,3 +1934189643,1672267862,0.01283182599945576,None,2827,5691,3 +4955445788,2608597329,0.010952074000670109,None,2828,5691,3 +3111465599,426948327,0.754869055999734,None,2827,5691,3 +426930250,360747525,0.03519974899973022,None,2828,5691,3 +2626105675,574449298,0.33222086900059367,None,2827,5691,3 +2608501851,418009810,0.3017630939993978,311.5216253485141,2828,5691,3 +1718397716,294919195,0.6059926620000624,19410.47441813424,2827,5691,3 +405229458,748845494,0.17973764000089432,241.74032174316505,2828,5691,3 +5726327175,5576939249,0.11767219800094608,133.7762557564627,2827,5691,3 diff --git a/evaluation/results/example/queries/classic.csv b/evaluation/results/example/queries/classic.csv index 977d13b..27b0ad4 100644 --- a/evaluation/results/example/queries/classic.csv +++ b/evaluation/results/example/queries/classic.csv @@ -1,101 +1,33 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,dijkstra_rank -7321902574,318014974,0.002519671999834827,238.1110904996911,2827,5691,3,0 -4016874515,2611369730,0.0011238140004934394,113.40853811212274,2827,5691,3,0 -7182110441,268980011,0.001713784000457963,575.546920845741,2827,5691,3,0 -1934188724,34911575,0.005819557999529934,None,2827,5691,3,0 -1867147194,549947326,0.0037802899996677297,306.3977004462799,2827,5691,3,0 -418009253,1411856646,0.005890318000638217,926.5828722425748,2827,5691,3,0 -6448459754,2608429407,0.0015214900004139054,110.63446581791817,2827,5691,3,0 -1821291294,318261953,0.003146213999571046,366.3184015404222,2827,5691,3,0 -1927634061,360747579,0.006537439000567247,465.50083809477644,2827,5691,3,0 -79954921,2614897354,0.0034732479998638155,626.9765430725013,2827,5691,3,0 -1934189119,563194918,0.0007917940001789248,243.91394290107357,2827,5691,3,0 -408478784,2614897352,0.0015355779996752972,376.06559393330286,2827,5691,3,0 -3111465595,474997347,0.0017485260004832526,233.37360027751848,2827,5691,3,0 -1672267587,7115310188,2.4167999981727917e-05,None,2827,5691,3,0 -426948340,2623041441,0.00504699500015704,607.4759695626486,2827,5691,3,0 -7030602777,2614920443,0.004175713999757136,309.14324380214833,2827,5691,3,0 -2611494658,7074500839,0.006150950999654015,649.6622428768856,2827,5691,3,0 -6448461998,2604687802,0.0036673259992312524,369.2373455358261,2827,5691,3,0 -317767227,748845499,0.005325655999513401,438.7724254643551,2827,5691,3,0 -7081828735,1757613834,0.004511068000283558,638.132348548364,2827,5691,3,0 -600861362,34053452,0.0018471389994374476,257.2835741707556,2827,5691,3,0 -7030623427,5609334121,0.0023055800002111937,505.63577043459526,2827,5691,3,0 -793260945,1935264851,0.006104363999838824,982.3373940665655,2827,5691,3,0 -2616315923,7257113601,0.001763603000654257,232.54030844332127,2827,5691,3,0 -1827520762,426930253,0.007004467000115255,555.1219663447,2827,5691,3,0 -2997117857,45217462,0.0002233479999631527,239.69584582112356,2827,5691,3,0 -7074500836,318015069,0.0019508490004227497,358.3313926632318,2827,5691,3,0 -1672334351,2997117873,0.005116002999784541,619.7320443863234,2827,5691,3,0 -5113940071,574546136,0.00014604399984818883,38.36680561831532,2827,5691,3,0 -3307706662,408478842,9.085800047614612e-05,106.17669377184302,2827,5691,3,0 -365065394,2619115981,0.0015626829999746406,211.22096795741354,2827,5691,3,0 -2973923689,2604686273,0.0013597130000562174,314.30553801234936,2827,5691,3,0 -5576943376,549938448,0.003950379999878351,378.7504835821481,2827,5691,3,0 -7140363797,4475752956,0.001974978000362171,405.1173694042988,2827,5691,3,0 -2608501043,549944087,0.002876131999983045,309.83263677334804,2827,5691,3,0 -7115183094,1821291310,0.0016394470003433526,166.72662919095825,2827,5691,3,0 -4016874408,469720334,0.004805833000318671,474.5248341109552,2827,5691,3,0 -7115183090,508823959,0.001090603999728046,99.25054650686562,2827,5691,3,0 -2598984220,2639898818,0.0017905220001921407,315.22936375978804,2827,5691,3,0 -1934189313,34053448,0.005262915999992401,996.5041118441444,2827,5691,3,0 -306639025,2608786068,0.0017418150000594324,335.3712680198829,2827,5691,3,0 -549931420,2635713653,0.005793508000351721,443.3356339909103,2827,5691,3,0 -1929118250,7246644040,0.005666458999257884,792.7725145604651,2827,5691,3,0 -474997344,321209230,0.004416523000145389,360.1032536260311,2827,5691,3,0 -4383156579,318014986,0.001728482000544318,334.8287484267631,2827,5691,3,0 -2701786796,7321902570,0.004073723000146856,396.4678926102016,2827,5691,3,0 -418009817,408478815,0.0022180609994393308,393.2077751296899,2827,5691,3,0 -665115010,7180800494,0.0014712470001541078,121.99627562066787,2827,5691,3,0 -7286240204,7207579520,0.003412189000300714,444.57943336659633,2827,5691,3,0 -7286240202,3273201483,0.0010125459994014818,151.17570520208938,2827,5691,3,0 -34053458,1672267572,0.004387083999972674,534.9695327831129,2827,5691,3,0 -6448461991,1827520765,0.006571904000338691,None,2827,5691,3,0 -2600451785,2705157134,0.00510032400052296,391.70762990375385,2827,5691,3,0 -1672267690,306639024,3.9774000470060855e-05,None,2827,5691,3,0 -317767228,574482753,0.004602334000082919,360.4443894533518,2827,5691,3,0 -6448461999,317839537,0.00046482899961119983,113.79275358739032,2827,5691,3,0 -45217495,3996162743,0.005132786000103806,370.86620593338074,2827,5691,3,0 -288947123,7030602775,0.0030040209994695033,380.7827532273404,2827,5691,3,0 -318260942,1672267832,0.0074371099999552825,None,2827,5691,3,0 -4955446038,6603016874,0.0030983750002633315,338.336413426195,2827,5691,3,0 -1574635372,7140363795,9.686800058261724e-05,None,2827,5691,3,0 -2611404223,1636935570,0.004732641999908083,477.29034631823833,2827,5691,3,0 -7182110439,45217473,0.0033237799998460105,588.6851099661361,2827,5691,3,0 -7115244209,418009812,0.004428059000019857,389.59809435549516,2827,5691,3,0 -2604685993,288944217,0.005145299000105297,517.7769043458792,2827,5691,3,0 -2600670536,665115005,0.0010103529994012206,346.37375978016064,2827,5691,3,0 -306636853,426948333,0.005547469000703131,572.6741026406311,2827,5691,3,0 -7165728796,549947346,0.0029472710002664826,397.60081105225186,2827,5691,3,0 -34053442,79952473,0.0013936549994468805,159.72842896428756,2827,5691,3,0 -549943303,292484626,0.005738058999668283,None,2827,5691,3,0 -1672334374,2621462848,0.0015659170003345935,685.7706435103163,2827,5691,3,0 -574485683,45217441,0.0011523289995238883,214.6046386679047,2827,5691,3,0 -1826594887,549931434,0.0038064310001573176,436.26736948173607,2827,5691,3,0 -7321870098,6389435552,0.001359501000479213,164.6141667563423,2827,5691,3,0 -7115244215,4016874494,0.0006750539996573934,59.16033555162781,2827,5691,3,0 -2335713764,2611369851,0.0022982750006121933,341.4414664124244,2827,5691,3,0 -2884684292,1828418192,0.0025121770004261634,227.3872947428237,2827,5691,3,0 -2608394380,79952469,0.0017890930002977257,323.70435471590326,2827,5691,3,0 -574485682,408478827,0.001031939999847964,186.9543818851861,2827,5691,3,0 -4955446039,2591134812,0.005635057000290544,623.3082344539869,2827,5691,3,0 -292981056,5576939244,0.0030401649992199964,350.8540660979972,2827,5691,3,0 -2635713647,1820309645,0.001137377999839373,158.25319591694605,2827,5691,3,0 -6047068261,549941827,0.0016248410001935554,238.57914333266365,2827,5691,3,0 -2616315927,2611492275,0.0031081359993549995,364.99875612623697,2827,5691,3,0 -79952492,430534359,0.004308175000005576,404.07151199153935,2827,5691,3,0 -7245276253,674511702,0.004105555000023742,361.98526836465845,2827,5691,3,0 -7115244212,4225277008,0.003819587999714713,346.17073362608573,2827,5691,3,0 -7286240209,408478755,0.005415741999968304,731.529341557396,2827,5691,3,0 -574546108,1830468180,0.005615375999695971,692.7399479939606,2827,5691,3,0 -600858466,1827520830,0.00601139299942588,None,2827,5691,3,0 -4226442916,549925965,0.004591696000716183,458.86593644477375,2827,5691,3,0 -2627469510,600866945,0.00184673700005078,169.10426681490915,2827,5691,3,0 -1672267773,4955446069,3.999399996246211e-05,None,2827,5691,3,0 -2608597627,288944214,0.0027223360002608388,320.059571405044,2827,5691,3,0 -418009820,318015012,0.0019810060002782848,376.9674794697233,2827,5691,3,0 -7158827509,1828263557,0.002145832000678638,265.2832428627522,2827,5691,3,0 -7115126884,418009264,0.0031014950000098906,331.629702693991,2827,5691,3,0 -574465009,5609333816,0.0041591769995648065,429.3442689028079,2827,5691,3,0 -3123285391,2611369895,0.0019373100003576837,213.00699592380232,2827,5691,3,0 -574482746,549941210,0.0014043890005268622,207.27982913832062,2827,5691,3,0 +418009800,574457854,0.004828957000427181,513.3867017835531,2827,5691,1,0 +1934189643,1672267862,0.005808068000987987,None,2827,5691,1,0 +4955445788,2608597329,0.001732140999592957,468.61012521592113,2827,5691,1,0 +3111465599,426948327,0.005730105000111507,733.6313989681807,2827,5691,1,0 +426930250,360747525,0.002913627000452834,730.4096032452347,2827,5691,1,0 +2626105675,574449298,0.004262749000190524,581.5878060414734,2827,5691,1,0 +2608501851,418009810,0.0028825260014855303,311.5216253485141,2827,5691,1,0 +1718397716,294919195,0.002073088999168249,316.4427340861574,2827,5691,1,0 +405229458,748845494,0.0025266470001952257,241.74032174316505,2827,5691,1,0 +5726327175,5576939249,0.0016190309997909935,133.7762557564627,2827,5691,1,0 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,dijkstra_rank +418009800,574457854,0.004759720000947709,513.3867017835531,2827,5691,2,0 +1934189643,1672267862,0.005909605999477208,None,2827,5691,2,0 +4955445788,2608597329,0.001711437000267324,468.61012521592113,2827,5691,2,0 +3111465599,426948327,0.005789236000055098,733.6313989681807,2827,5691,2,0 +426930250,360747525,0.0029222049997770227,730.4096032452347,2827,5691,2,0 +2626105675,574449298,0.004599191001034342,581.5878060414734,2827,5691,2,0 +2608501851,418009810,0.003021403001184808,311.5216253485141,2827,5691,2,0 +1718397716,294919195,0.002083249999486725,316.4427340861574,2827,5691,2,0 +405229458,748845494,0.002550164001149824,241.74032174316505,2827,5691,2,0 +5726327175,5576939249,0.001533010999992257,133.7762557564627,2827,5691,2,0 +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,dijkstra_rank +418009800,574457854,0.004621473999577574,513.3867017835531,2827,5691,3,0 +1934189643,1672267862,0.005740635999245569,None,2827,5691,3,0 +4955445788,2608597329,0.0018071670001518214,468.61012521592113,2827,5691,3,0 +3111465599,426948327,0.005631329000607366,733.6313989681807,2827,5691,3,0 +426930250,360747525,0.0028826800007664133,730.4096032452347,2827,5691,3,0 +2626105675,574449298,0.004391055999803939,581.5878060414734,2827,5691,3,0 +2608501851,418009810,0.0030651209999632556,311.5216253485141,2827,5691,3,0 +1718397716,294919195,0.0022838530003355118,316.4427340861574,2827,5691,3,0 +405229458,748845494,0.0025572689992259257,241.74032174316505,2827,5691,3,0 +5726327175,5576939249,0.0016318019988830201,133.7762557564627,2827,5691,3,0 diff --git a/evaluation/results/example/queries/gasstation.csv b/evaluation/results/example/queries/gasstation.csv index 3f1a638..8a55fad 100644 --- a/evaluation/results/example/queries/gasstation.csv +++ b/evaluation/results/example/queries/gasstation.csv @@ -1,24 +1,33 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,time_contracted_graph,time_state_graph -318261951,318261959,0.038180532996193506,172.45882045633869,2827,5691,3,0.037711901000875514,0.00019447699742158875 -1828254502,2600722301,0.03250095799739938,267.023987254795,2827,5691,3,0.030721290000656154,0.0001709889984340407 -6448459779,563188710,0.0537844359932933,499.28016704624633,2827,5691,3,0.03073318299720995,0.00015049200010253116 -34053445,7030617900,0.03731665799568873,197.60092044964952,2827,5691,3,0.029835863002517726,0.00014812199515290558 -7140363787,365065389,0.16060936499707168,5289.464871890885,2827,5691,3,0.029732053997577168,0.0001641850030864589 -34053436,574510655,0.13449935099924915,12493.937351844768,2827,5691,3,0.03673829699982889,0.0001338760048383847 -4016874617,600866945,0.03444541599310469,336.22355324649334,2827,5691,3,0.025150192996079568,0.0001335359993390739 -2604893830,317840526,0.033937345004233066,309.94330930385564,2827,5691,3,0.030045136001717765,0.00017759900219971314 -358407314,408478842,0.05122477700206218,401.91530793157204,2827,5691,3,0.037094525003340095,0.00016986099944915622 -7031902220,7413975520,0.05967648500518408,564.4893406225968,2827,5691,3,0.03245272000640398,0.00014979099796619266 -7172883308,294919117,0.03263318400422577,170.233971842473,2827,5691,3,0.031021587004943285,0.00014976900274632499 -1253890916,563194893,0.0370539380091941,391.1747845270358,2827,5691,3,0.026461945002665743,0.0001331370003754273 -2598988057,1718397716,0.07217752800352173,546.5151867025655,2827,5691,3,0.03469335199770285,0.000258364001638256 -4033695046,3462099364,0.0765392429966596,407.49923848865484,2827,5691,3,0.05154037800093647,0.00022893399727763608 -7031881626,6417387130,0.031294264997995924,156.7057004635975,2827,5691,3,0.02944477099663345,0.00013357999705476686 -600858466,418009803,0.03277176600386156,338.1322944383446,2827,5691,3,0.024690256999747362,0.000133293004182633 -563191187,600866946,0.03260277200752171,296.72303474174004,2827,5691,3,0.025442889003898017,0.0001829210013966076 -549943303,110236457,0.19823851800174452,16061.351333843417,2827,5691,3,0.03400557600252796,0.00016302099538734183 -2360479288,574505822,0.06603433399141068,434.8168387633591,2827,5691,3,0.047148549994744826,0.0002223939955001697 -549931427,6448462029,0.04602842399617657,282.12944542993813,2827,5691,3,0.039396102001774125,0.00015461699513252825 -34053441,1505992703,0.02921961199172074,105.81963664036086,2827,5691,3,0.027504672994837165,0.0001335929991910234 -1656016522,268979982,0.03408875299646752,550.8666195183011,2827,5691,3,0.02586048300145194,0.00013299999409355223 -4955446065,5110912270,0.11530301200400572,None,2827,5691,3,0.028086596001230646,0.00025582600210327655 +418009800,574457854,0.016529435999473208,513.3867017835531,2827,5691,1,9.77930012595607e-05,2.879800013033673e-05 +1934189643,1672267862,0.024617869001303916,None,2827,5691,1,None,None +4955445788,2608597329,0.006554030000188504,468.61012521592113,2827,5691,1,None,None +3111465599,426948327,0.023431165000147303,733.6313989681807,2827,5691,1,None,None +426930250,360747525,0.010238357999696746,730.4096032452347,2827,5691,1,None,None +2626105675,574449298,0.017239513999811606,581.5878060414734,2827,5691,1,None,None +2608501851,418009810,0.009257375000743195,311.5216253485141,2827,5691,1,None,None +1718397716,294919195,0.00842110699886689,316.4427340861574,2827,5691,1,None,None +405229458,748845494,0.007098027999745682,241.74032174316505,2827,5691,1,None,None +5726327175,5576939249,0.005705544999727863,133.7762557564627,2827,5691,1,None,None +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,time_contracted_graph,time_state_graph +418009800,574457854,0.016138078000949463,513.3867017835531,2827,5691,2,0.004825021000215202,6.158799988043029e-05 +1934189643,1672267862,0.026505159999942407,None,2827,5691,2,None,None +4955445788,2608597329,0.006831624999904307,468.61012521592113,2827,5691,2,None,None +3111465599,426948327,0.022835116998976446,733.6313989681807,2827,5691,2,None,None +426930250,360747525,0.010438203999001416,730.4096032452347,2827,5691,2,None,None +2626105675,574449298,0.015608510999300051,581.5878060414734,2827,5691,2,None,None +2608501851,418009810,0.0089906039993366,311.5216253485141,2827,5691,2,None,None +1718397716,294919195,0.007416918999297195,316.4427340861574,2827,5691,2,None,None +405229458,748845494,0.007365741999819875,241.74032174316505,2827,5691,2,None,None +5726327175,5576939249,0.005357400001230417,133.7762557564627,2827,5691,2,None,None +start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,time_contracted_graph,time_state_graph +418009800,574457854,0.016169999000339885,513.3867017835531,2827,5691,3,0.03335488100128714,0.00013285199929669034 +1934189643,1672267862,0.024665127999469405,None,2827,5691,3,None,None +4955445788,2608597329,0.006551911999849835,468.61012521592113,2827,5691,3,None,None +3111465599,426948327,0.022852780000903294,733.6313989681807,2827,5691,3,None,None +426930250,360747525,0.01021414099886897,730.4096032452347,2827,5691,3,None,None +2626105675,574449298,0.015425386000060826,581.5878060414734,2827,5691,3,None,None +2608501851,418009810,0.009126294000452617,311.5216253485141,2827,5691,3,None,None +1718397716,294919195,0.007759873000395601,316.4427340861574,2827,5691,3,None,None +405229458,748845494,0.00701812700026494,241.74032174316505,2827,5691,3,None,None +5726327175,5576939249,0.005257716000414803,133.7762557564627,2827,5691,3,None,None diff --git a/evaluation/run.py b/evaluation/run.py index 95733d8..5e1bb2f 100644 --- a/evaluation/run.py +++ b/evaluation/run.py @@ -10,7 +10,9 @@ 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 lib.queries import ( + gasstation_query, charge_query, classic_query, astar_query, CACHE +) base = Path(__file__).parent @@ -22,14 +24,21 @@ def query_benchmark(graphs, conf, result_dir): charging_stations = json.load(f) query_conf = [ - # Query(query_function=gasstation_query, - # filename='gasstation.csv', - # row_dataclass=GasstationQueryRow), + Query(query_function=gasstation_query, + filename='gasstation.csv', + row_dataclass=GasstationQueryRow), Query(charge_query, 'charge.csv', ChargeQueryRow), Query(classic_query, 'classic.csv', ClassicQueryRow), Query(astar_query, 'astar.csv', AStarQueryRow) ] + # Remove existing results + for _, filename, _ in query_conf: + try: + result_dir.joinpath(filename).unlink() + except FileNotFoundError: + pass + for map_name, G in zip(conf['maps'], graphs): nodes = random.sample(list(G.nodes), k=2 * conf['queries_per_setup']) for setup in conf['setups']: @@ -43,11 +52,15 @@ def query_benchmark(graphs, conf, result_dir): func.__name__, map_name )) - with result_dir.joinpath(filename).open('w') as f: + with result_dir.joinpath(filename).open('a') as f: write_head(f, row_class) for s, t in zip(start_nodes, target_nodes): write_row(f, func(G, setup, s, t)) + # Delete cached graphs + for key in list(CACHE.keys()): + del CACHE[key] + def insert_charging_stations(graph, number, charging_stations): start = perf_counter() -- GitLab