diff --git a/evaluation/lib/algorithm.py b/evaluation/lib/algorithm.py new file mode 100644 index 0000000000000000000000000000000000000000..4f50d7747f57b0f7f190aaf8a181adbb3154932f --- /dev/null +++ b/evaluation/lib/algorithm.py @@ -0,0 +1,120 @@ +from heapq import heappush, heappop +from itertools import count + +import networkx as nx +from networkx.algorithms.shortest_paths.weighted import _weight_function + + +def ranked_dijkstra(graph, s, t, weight): + if s == t: + return 0, 0 + weight = _weight_function(graph, weight) + length, rank = _dijkstra_multisource(graph, [s], weight=weight, target=t) + try: + return length[t], rank + except KeyError: + raise nx.NetworkXNoPath( + "Node %s not reachable from %s" % (t, s)) + + +def _dijkstra_multisource(G, sources, weight, pred=None, paths=None, + cutoff=None, target=None): + """Uses Dijkstra's algorithm to find shortest weighted paths + + Parameters + ---------- + G : NetworkX graph + + sources : non-empty iterable of nodes + Starting nodes for paths. If this is just an iterable containing + a single node, then all paths computed by this function will + start from that node. If there are two or more nodes in this + iterable, the computed paths may begin from any one of the start + nodes. + + weight: function + Function with (u, v, data) input that returns that edges weight + + pred: dict of lists, optional(default=None) + dict to store a list of predecessors keyed by that node + If None, predecessors are not stored. + + paths: dict, optional (default=None) + dict to store the path list from source to each node, keyed by node. + If None, paths are not stored. + + target : node label, optional + Ending node for path. Search is halted when target is found. + + cutoff : integer or float, optional + Depth to stop the search. Only return paths with length <= cutoff. + + Returns + ------- + distance : dictionary + A mapping from node to shortest distance to that node from one + of the source nodes. + + Raises + ------ + NodeNotFound + If any of `sources` is not in `G`. + + Notes + ----- + The optional predecessor and path dictionaries can be accessed by + the caller through the original pred and paths objects passed + as arguments. No need to explicitly return pred or paths. + + """ + G_succ = G._succ if G.is_directed() else G._adj + + push = heappush + pop = heappop + dist = {} # dictionary of final distances + seen = {} + # fringe is heapq with 3-tuples (distance,c,node) + # use the count c to avoid comparing nodes (may not be able to) + c = count() + fringe = [] + for source in sources: + if source not in G: + raise nx.NodeNotFound("Source {} not in G".format(source)) + seen[source] = 0 + push(fringe, (0, next(c), source)) + + rank = 0 + while fringe: + (d, _, v) = pop(fringe) + rank += 1 + if v in dist: + continue # already searched this node. + dist[v] = d + if v == target: + break + for u, e in G_succ[v].items(): + cost = weight(v, u, e) + if cost is None: + continue + vu_dist = dist[v] + cost + if cutoff is not None: + if vu_dist > cutoff: + continue + if u in dist: + if vu_dist < dist[u]: + raise ValueError('Contradictory paths found:', + 'negative weights?') + elif u not in seen or vu_dist < seen[u]: + seen[u] = vu_dist + push(fringe, (vu_dist, next(c), u)) + if paths is not None: + paths[u] = paths[v] + [u] + if pred is not None: + pred[u] = [v] + elif vu_dist == seen[u]: + if pred is not None: + pred[u].append(v) + + # The optional predecessor and path dictionaries can be accessed + # by the caller via the pred and paths objects passed as arguments. + return dist, rank diff --git a/evaluation/lib/queries.py b/evaluation/lib/queries.py index cb8acf86c638e4fc851620d6898f119e3b5b1fa8..70bffc05cbd05a3d95803515d7bfcdcc20ece62f 100644 --- a/evaluation/lib/queries.py +++ b/evaluation/lib/queries.py @@ -18,6 +18,7 @@ from lib.T import ( ClassicQueryRow, AStarQueryRow ) +from lib.algorithm import ranked_dijkstra __all__ = [ 'gasstation_query', @@ -31,6 +32,7 @@ CACHE = {} def cached(key): """Cache return value.""" + def decorator(func): def getter(*args, **kwargs): try: @@ -138,9 +140,9 @@ def charge_query(graph, conf, s, t): def classic_query(graph, conf, s, t): start = perf_counter() try: - result = nx.shortest_path_length(graph, s, t, weight=DISTANCE_KEY) + result, rank = ranked_dijkstra(graph, s, t, weight=DISTANCE_KEY) except nx.NetworkXNoPath: - result = None + result, rank = None, None runtime = perf_counter() - start return ClassicQueryRow( @@ -151,7 +153,7 @@ def classic_query(graph, conf, s, t): nodes=len(graph.nodes), edges=len(graph.edges), charging_stations=len(graph.charging_stations), - dijkstra_rank=0 + dijkstra_rank=rank ) diff --git a/evaluation/results/example/queries/astar.csv b/evaluation/results/example/queries/astar.csv index 429da2921931e87ab75256b6106120b236f523b1..dad762a562e1e2c414326efeff45c38508e4be42 100644 --- a/evaluation/results/example/queries/astar.csv +++ b/evaluation/results/example/queries/astar.csv @@ -1,31 +1,31 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations -418009821,6908239938,0.0013994670007377863,182.74421871348966,2827,5691,1 -294919191,549931427,0.001375193998683244,92.76809036038416,2827,5691,1 -473666784,1574635372,0.005434329999843612,468.3819988021434,2827,5691,1 -321209227,6908124636,0.0029110110008332413,229.51616972555465,2827,5691,1 -317841012,292485286,0.01097075899997435,288.05111883053104,2827,5691,1 -2639898838,2611606215,0.007764956000755774,372.67570264869573,2827,5691,1 -360747762,1830470692,0.022057453999877907,1009.4538720402156,2827,5691,1 -2608678897,5023014974,0.01400541699877067,440.0800197153627,2827,5691,1 -360747836,474997352,0.00462288900052954,476.7818535757649,2827,5691,1 -317838183,360747691,0.026331659000788932,888.0361882245362,2827,5691,1 -418009821,6908239938,0.0013213029997132253,182.74421871348966,2827,5691,2 -294919191,549931427,0.0013983109984110342,92.76809036038416,2827,5691,2 -473666784,1574635372,0.005630277000818751,468.3819988021434,2827,5691,2 -321209227,6908124636,0.002878322999094962,229.51616972555465,2827,5691,2 -317841012,292485286,0.01084264000019175,288.05111883053104,2827,5691,2 -2639898838,2611606215,0.007949319999170257,372.67570264869573,2827,5691,2 -360747762,1830470692,0.0222765390008135,1009.4538720402156,2827,5691,2 -2608678897,5023014974,0.01365691200044239,440.0800197153627,2827,5691,2 -360747836,474997352,0.004824731000553584,476.7818535757649,2827,5691,2 -317838183,360747691,0.025847368000540882,888.0361882245362,2827,5691,2 -418009821,6908239938,0.001497091001510853,182.74421871348966,2827,5691,3 -294919191,549931427,0.0014371760007634293,92.76809036038416,2827,5691,3 -473666784,1574635372,0.0056032360007520765,468.3819988021434,2827,5691,3 -321209227,6908124636,0.002890858999307966,229.51616972555465,2827,5691,3 -317841012,292485286,0.0113312590001442,288.05111883053104,2827,5691,3 -2639898838,2611606215,0.008020106999538257,372.67570264869573,2827,5691,3 -360747762,1830470692,0.022059930000978056,1009.4538720402156,2827,5691,3 -2608678897,5023014974,0.013917351001509815,440.0800197153627,2827,5691,3 -360747836,474997352,0.004605366000760114,476.7818535757649,2827,5691,3 -317838183,360747691,0.024814899999910267,888.0361882245362,2827,5691,3 +318014972,7257113601,0.009645116999308812,303.9029199340039,2827,5691,1 +4016874254,469733540,0.006284021001192741,203.4574395036612,2827,5691,1 +34053447,7140363804,0.00964908599962655,325.54326871206933,2827,5691,1 +7030609384,474997016,0.00958121000076062,354.32678807490765,2827,5691,1 +321209228,503294825,0.0187146100015525,531.9688537252507,2827,5691,1 +6001596194,34053443,0.0006074889988667564,None,2827,5691,1 +1778028226,2591134812,0.020385181000165176,730.261875045356,2827,5691,1 +408478761,574727021,0.009288154000387294,565.2289730244942,2827,5691,1 +2379050788,3307706689,0.01078263099952892,384.0706971765939,2827,5691,1 +2635713649,1937172847,0.024944430999312317,686.100743161775,2827,5691,1 +318014972,7257113601,0.009514129000308458,303.9029199340039,2827,5691,2 +4016874254,469733540,0.006327432000034605,203.4574395036612,2827,5691,2 +34053447,7140363804,0.009514243000012357,325.54326871206933,2827,5691,2 +7030609384,474997016,0.009525188999759848,354.32678807490765,2827,5691,2 +321209228,503294825,0.019946009999330272,531.9688537252507,2827,5691,2 +6001596194,34053443,0.000804137000159244,None,2827,5691,2 +1778028226,2591134812,0.0206813710010465,730.261875045356,2827,5691,2 +408478761,574727021,0.009176258001389215,565.2289730244942,2827,5691,2 +2379050788,3307706689,0.010665679999874556,384.0706971765939,2827,5691,2 +2635713649,1937172847,0.024859645000105957,686.100743161775,2827,5691,2 +318014972,7257113601,0.00947512499988079,303.9029199340039,2827,5691,3 +4016874254,469733540,0.006297292000454036,203.4574395036612,2827,5691,3 +34053447,7140363804,0.009648182000091765,325.54326871206933,2827,5691,3 +7030609384,474997016,0.009353209999972023,354.32678807490765,2827,5691,3 +321209228,503294825,0.018495610000172746,531.9688537252507,2827,5691,3 +6001596194,34053443,0.0006244750002224464,None,2827,5691,3 +1778028226,2591134812,0.02025007900010678,730.261875045356,2827,5691,3 +408478761,574727021,0.009084488001462887,565.2289730244942,2827,5691,3 +2379050788,3307706689,0.010748721000709338,384.0706971765939,2827,5691,3 +2635713649,1937172847,0.024342005999642424,686.100743161775,2827,5691,3 diff --git a/evaluation/results/example/queries/charge.csv b/evaluation/results/example/queries/charge.csv index 41e18fb1f2ff2764eef92be5ca63ebb5641b4a56..7d9abe446826e6276a11a0e0667c78a5be64590d 100644 --- a/evaluation/results/example/queries/charge.csv +++ b/evaluation/results/example/queries/charge.csv @@ -1,31 +1,31 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations -418009821,6908239938,0.04698174700024538,182.74421871348966,2828,5691,1 -294919191,549931427,0.018490039999960572,92.76809036038416,2827,5691,1 -473666784,1574635372,0.2812119329992129,None,2828,5691,1 -321209227,6908124636,0.047539414999846485,229.51616972555465,2827,5691,1 -317841012,292485286,0.21624977700048476,None,2828,5691,1 -2639898838,2611606215,0.3115172079997137,None,2827,5691,1 -360747762,1830470692,0.00558476800142671,None,2828,5691,1 -2608678897,5023014974,0.3217249669996818,None,2827,5691,1 -360747836,474997352,0.005810935999761568,None,2828,5691,1 -317838183,360747691,0.38367961200128775,None,2827,5691,1 -418009821,6908239938,0.016021462999560754,182.74421871348966,2828,5691,2 -294919191,549931427,0.044748398000592715,92.76809036038416,2827,5691,2 -473666784,1574635372,0.2832638270010648,None,2828,5691,2 -321209227,6908124636,0.048046101999716484,229.51616972555465,2827,5691,2 -317841012,292485286,0.22368108500086237,None,2828,5691,2 -2639898838,2611606215,0.3065842280011566,None,2827,5691,2 -360747762,1830470692,0.005662692999976571,None,2828,5691,2 -2608678897,5023014974,0.41433843999948294,None,2827,5691,2 -360747836,474997352,0.005746419999923091,None,2828,5691,2 -317838183,360747691,0.5245090529988374,None,2827,5691,2 -418009821,6908239938,0.015582243000608287,182.74421871348966,2828,5691,3 -294919191,549931427,0.043696627999452176,92.76809036038416,2827,5691,3 -473666784,1574635372,0.28800436399978935,None,2828,5691,3 -321209227,6908124636,0.0477621400004864,229.51616972555465,2827,5691,3 -317841012,292485286,0.4295121149989427,None,2828,5691,3 -2639898838,2611606215,0.3081414130010671,None,2827,5691,3 -360747762,1830470692,0.005677651999576483,None,2828,5691,3 -2608678897,5023014974,0.681346660001509,None,2827,5691,3 -360747836,474997352,0.005859867000253871,None,2828,5691,3 -317838183,360747691,0.6626464320015657,None,2827,5691,3 +318014972,7257113601,0.27655807900009677,303.9029199340039,2828,5691,1 +4016874254,469733540,0.1551367569991271,203.4574395036612,2827,5691,1 +34053447,7140363804,0.30442173200026446,None,2828,5691,1 +7030609384,474997016,1.1434802250005305,379.15309214907137,2827,5691,1 +321209228,503294825,0.25744412600033684,None,2828,5691,1 +6001596194,34053443,0.0061631549997400725,None,2827,5691,1 +1778028226,2591134812,0.09009641500051657,None,2828,5691,1 +408478761,574727021,0.04526400699978694,None,2827,5691,1 +2379050788,3307706689,0.2636258339989581,None,2828,5691,1 +2635713649,1937172847,0.2756225490011275,None,2827,5691,1 +318014972,7257113601,0.1915681249993213,303.9029199340039,2828,5691,2 +4016874254,469733540,0.1974113939995732,203.4574395036612,2827,5691,2 +34053447,7140363804,0.5998310439990746,22553.607852962876,2828,5691,2 +7030609384,474997016,1.6561665600002016,379.15309214907137,2827,5691,2 +321209228,503294825,0.1404855580003641,None,2828,5691,2 +6001596194,34053443,0.006048253000699333,None,2827,5691,2 +1778028226,2591134812,0.31593750000138243,None,2828,5691,2 +408478761,574727021,0.01954903200021363,None,2827,5691,2 +2379050788,3307706689,0.15553496400025324,None,2828,5691,2 +2635713649,1937172847,0.7300595910000993,None,2827,5691,2 +318014972,7257113601,0.2780105450001429,303.9029199340039,2828,5691,3 +4016874254,469733540,0.1953965070006234,203.4574395036612,2827,5691,3 +34053447,7140363804,0.5695106439998199,22553.607852962876,2828,5691,3 +7030609384,474997016,1.6730227469997772,379.15309214907137,2827,5691,3 +321209228,503294825,0.25396033600009105,None,2828,5691,3 +6001596194,34053443,0.032242059000054724,None,2827,5691,3 +1778028226,2591134812,0.3155581999999413,None,2828,5691,3 +408478761,574727021,0.01969658100097149,None,2827,5691,3 +2379050788,3307706689,0.2599113149990444,None,2828,5691,3 +2635713649,1937172847,0.7583798939995177,None,2827,5691,3 diff --git a/evaluation/results/example/queries/classic.csv b/evaluation/results/example/queries/classic.csv index e04a6fd1b40c31831677603d47a4884c5d9734d1..dfe787e4017387c1ebb579b8515b3620626d1917 100644 --- a/evaluation/results/example/queries/classic.csv +++ b/evaluation/results/example/queries/classic.csv @@ -1,31 +1,31 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,dijkstra_rank -418009821,6908239938,0.0003779149992624298,182.74421871348966,2827,5691,1,0 -294919191,549931427,0.0003987099989899434,92.76809036038416,2827,5691,1,0 -473666784,1574635372,0.0020754390006914036,468.3819988021434,2827,5691,1,0 -321209227,6908124636,0.0008556659995520022,229.51616972555465,2827,5691,1,0 -317841012,292485286,0.0031003759995655855,288.05111883053104,2827,5691,1,0 -2639898838,2611606215,0.003385711001101299,372.67570264869573,2827,5691,1,0 -360747762,1830470692,0.005332377000740962,1009.4538720402156,2827,5691,1,0 -2608678897,5023014974,0.004551508000076865,440.0800197153627,2827,5691,1,0 -360747836,474997352,0.0015595470013067825,476.7818535757649,2827,5691,1,0 -317838183,360747691,0.005889654999919003,888.0361882245362,2827,5691,1,0 -418009821,6908239938,0.0003629060011007823,182.74421871348966,2827,5691,2,0 -294919191,549931427,0.00042678099998738617,92.76809036038416,2827,5691,2,0 -473666784,1574635372,0.0020605459994840203,468.3819988021434,2827,5691,2,0 -321209227,6908124636,0.0008044229998631636,229.51616972555465,2827,5691,2,0 -317841012,292485286,0.0032580499992036493,288.05111883053104,2827,5691,2,0 -2639898838,2611606215,0.003719599000760354,372.67570264869573,2827,5691,2,0 -360747762,1830470692,0.005591068000285304,1009.4538720402156,2827,5691,2,0 -2608678897,5023014974,0.004538948000117671,440.0800197153627,2827,5691,2,0 -360747836,474997352,0.0016001120002329117,476.7818535757649,2827,5691,2,0 -317838183,360747691,0.006867553000120097,888.0361882245362,2827,5691,2,0 -418009821,6908239938,0.0003596300011849962,182.74421871348966,2827,5691,3,0 -294919191,549931427,0.0003971090009144973,92.76809036038416,2827,5691,3,0 -473666784,1574635372,0.002105782999933581,468.3819988021434,2827,5691,3,0 -321209227,6908124636,0.0009097740003198851,229.51616972555465,2827,5691,3,0 -317841012,292485286,0.003172266000547097,288.05111883053104,2827,5691,3,0 -2639898838,2611606215,0.0034531430010247277,372.67570264869573,2827,5691,3,0 -360747762,1830470692,0.005479954999827896,1009.4538720402156,2827,5691,3,0 -2608678897,5023014974,0.004539076999208191,440.0800197153627,2827,5691,3,0 -360747836,474997352,0.001553107998915948,476.7818535757649,2827,5691,3,0 -317838183,360747691,0.005794718001197907,888.0361882245362,2827,5691,3,0 +318014972,7257113601,0.004932320998705109,303.9029199340039,2827,5691,1,1991 +4016874254,469733540,0.0020626620007533347,203.4574395036612,2827,5691,1,1012 +34053447,7140363804,0.0028764890012098476,325.54326871206933,2827,5691,1,1372 +7030609384,474997016,0.0026195680002274457,354.32678807490765,2827,5691,1,1297 +321209228,503294825,0.00503171300078975,531.9688537252507,2827,5691,1,2278 +6001596194,34053443,0.00010401799954706803,None,2827,5691,1,None +1778028226,2591134812,0.0054988889987726,730.261875045356,2827,5691,1,2522 +408478761,574727021,0.00467671399928804,565.2289730244942,2827,5691,1,2095 +2379050788,3307706689,0.004561318999549258,384.0706971765939,2827,5691,1,2120 +2635713649,1937172847,0.0056830279991118005,686.100743161775,2827,5691,1,2696 +318014972,7257113601,0.005100334999951883,303.9029199340039,2827,5691,2,1991 +4016874254,469733540,0.002235026000562357,203.4574395036612,2827,5691,2,1012 +34053447,7140363804,0.0028103049990022555,325.54326871206933,2827,5691,2,1372 +7030609384,474997016,0.0026100559989572503,354.32678807490765,2827,5691,2,1297 +321209228,503294825,0.004990438999811886,531.9688537252507,2827,5691,2,2278 +6001596194,34053443,0.00014139399900159333,None,2827,5691,2,None +1778028226,2591134812,0.005460116000904236,730.261875045356,2827,5691,2,2522 +408478761,574727021,0.0046940519987401785,565.2289730244942,2827,5691,2,2095 +2379050788,3307706689,0.004553816999759874,384.0706971765939,2827,5691,2,2120 +2635713649,1937172847,0.005745967999246204,686.100743161775,2827,5691,2,2696 +318014972,7257113601,0.004941948000123375,303.9029199340039,2827,5691,3,1991 +4016874254,469733540,0.0021577469997282606,203.4574395036612,2827,5691,3,1012 +34053447,7140363804,0.0028441800004657125,325.54326871206933,2827,5691,3,1372 +7030609384,474997016,0.0026651249991118675,354.32678807490765,2827,5691,3,1297 +321209228,503294825,0.004930135999529739,531.9688537252507,2827,5691,3,2278 +6001596194,34053443,0.00010149400077352766,None,2827,5691,3,None +1778028226,2591134812,0.005449285999929998,730.261875045356,2827,5691,3,2522 +408478761,574727021,0.004721971999970265,565.2289730244942,2827,5691,3,2095 +2379050788,3307706689,0.004648890000680694,384.0706971765939,2827,5691,3,2120 +2635713649,1937172847,0.005686548000085168,686.100743161775,2827,5691,3,2696 diff --git a/evaluation/results/example/queries/gasstation.csv b/evaluation/results/example/queries/gasstation.csv index 10753ebc9f066ae262e3df475a16249cc8ea9264..9f7d15b28f7491813e106615f45c79051ae31ddb 100644 --- a/evaluation/results/example/queries/gasstation.csv +++ b/evaluation/results/example/queries/gasstation.csv @@ -1,31 +1,31 @@ start_node,target_node,query_time,trip_time,nodes,edges,charging_stations,time_contracted_graph,time_state_graph -418009821,6908239938,0.0015042989998619305,182.74421871348966,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -294919191,549931427,0.0014210820008884184,92.76809036038416,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -473666784,1574635372,0.005654513000990846,468.3819988021434,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -321209227,6908124636,0.002979900998980156,229.51616972555465,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -317841012,292485286,0.010838958000022103,288.05111883053104,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -2639898838,2611606215,0.007842952001738013,372.67570264869573,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -360747762,1830470692,0.023959889000252588,1009.4538720402156,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -2608678897,5023014974,0.013893295999878319,440.0800197153627,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -360747836,474997352,0.005398225999670103,476.7818535757649,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -317838183,360747691,0.02491281400034495,888.0361882245362,2827,5691,1,8.900300053937826e-05,2.7534000764717348e-05 -418009821,6908239938,0.0013870740003767423,182.74421871348966,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -294919191,549931427,0.0015598760001012124,92.76809036038416,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -473666784,1574635372,0.0055939130015758565,468.3819988021434,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -321209227,6908124636,0.0029180599995015655,229.51616972555465,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -317841012,292485286,0.010899884999162168,288.05111883053104,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -2639898838,2611606215,0.00826251900070929,372.67570264869573,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -360747762,1830470692,0.022464121000666637,1009.4538720402156,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -2608678897,5023014974,0.0145577660005074,440.0800197153627,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -360747836,474997352,0.00476558900118107,476.7818535757649,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -317838183,360747691,0.02601139000034891,888.0361882245362,2827,5691,2,0.017653894999966724,6.468999890785199e-05 -418009821,6908239938,0.001344002001133049,182.74421871348966,2827,5691,3,0.03282055800082162,0.0001372620008623926 -294919191,549931427,0.001496675999078434,92.76809036038416,2827,5691,3,0.03282055800082162,0.0001372620008623926 -473666784,1574635372,0.0055375779993482865,468.3819988021434,2827,5691,3,0.03282055800082162,0.0001372620008623926 -321209227,6908124636,0.0032612319992040284,229.51616972555465,2827,5691,3,0.03282055800082162,0.0001372620008623926 -317841012,292485286,0.01118872099868895,288.05111883053104,2827,5691,3,0.03282055800082162,0.0001372620008623926 -2639898838,2611606215,0.00899679299982381,372.67570264869573,2827,5691,3,0.03282055800082162,0.0001372620008623926 -360747762,1830470692,0.023903094999695895,1009.4538720402156,2827,5691,3,0.03282055800082162,0.0001372620008623926 -2608678897,5023014974,0.013956917999166762,440.0800197153627,2827,5691,3,0.03282055800082162,0.0001372620008623926 -360747836,474997352,0.004753840001285425,476.7818535757649,2827,5691,3,0.03282055800082162,0.0001372620008623926 -317838183,360747691,0.025178341998980613,888.0361882245362,2827,5691,3,0.03282055800082162,0.0001372620008623926 +318014972,7257113601,0.009924058000251534,303.9029199340039,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +4016874254,469733540,0.006778732999009662,203.4574395036612,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +34053447,7140363804,0.009821476000070106,325.54326871206933,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +7030609384,474997016,0.009490974000073038,354.32678807490765,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +321209228,503294825,0.018831139999747393,531.9688537252507,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +6001596194,34053443,0.0006385369997587986,None,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +1778028226,2591134812,0.020560556000418728,730.261875045356,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +408478761,574727021,0.00982461700004933,565.2289730244942,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +2379050788,3307706689,0.01150487700033409,384.0706971765939,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +2635713649,1937172847,0.02489729199987778,686.100743161775,2827,5691,1,0.00010468700020282995,2.7305000912747346e-05 +318014972,7257113601,0.009617293999326648,303.9029199340039,2827,5691,2,0.00489382700106944,0.00012879600035375915 +4016874254,469733540,0.006334065999908489,203.4574395036612,2827,5691,2,0.00489382700106944,0.00012879600035375915 +34053447,7140363804,0.009545827000692952,325.54326871206933,2827,5691,2,0.00489382700106944,0.00012879600035375915 +7030609384,474997016,0.009233517999746255,354.32678807490765,2827,5691,2,0.00489382700106944,0.00012879600035375915 +321209228,503294825,0.01852785700066306,531.9688537252507,2827,5691,2,0.00489382700106944,0.00012879600035375915 +6001596194,34053443,0.0006094979999033967,None,2827,5691,2,0.00489382700106944,0.00012879600035375915 +1778028226,2591134812,0.020256398000128684,730.261875045356,2827,5691,2,0.00489382700106944,0.00012879600035375915 +408478761,574727021,0.009198958001434221,565.2289730244942,2827,5691,2,0.00489382700106944,0.00012879600035375915 +2379050788,3307706689,0.010785397000290686,384.0706971765939,2827,5691,2,0.00489382700106944,0.00012879600035375915 +2635713649,1937172847,0.02442903199880675,686.100743161775,2827,5691,2,0.00489382700106944,0.00012879600035375915 +318014972,7257113601,0.009560399999827496,303.9029199340039,2827,5691,3,0.03369906199986872,0.00019228500059398357 +4016874254,469733540,0.0063881980004225625,203.4574395036612,2827,5691,3,0.03369906199986872,0.00019228500059398357 +34053447,7140363804,0.009494572999756201,325.54326871206933,2827,5691,3,0.03369906199986872,0.00019228500059398357 +7030609384,474997016,0.009447712000110187,354.32678807490765,2827,5691,3,0.03369906199986872,0.00019228500059398357 +321209228,503294825,0.018636861999766552,531.9688537252507,2827,5691,3,0.03369906199986872,0.00019228500059398357 +6001596194,34053443,0.0006008959990140283,None,2827,5691,3,0.03369906199986872,0.00019228500059398357 +1778028226,2591134812,0.020459575998756918,730.261875045356,2827,5691,3,0.03369906199986872,0.00019228500059398357 +408478761,574727021,0.009150286001386121,565.2289730244942,2827,5691,3,0.03369906199986872,0.00019228500059398357 +2379050788,3307706689,0.010963099000946386,384.0706971765939,2827,5691,3,0.03369906199986872,0.00019228500059398357 +2635713649,1937172847,0.024877044001186732,686.100743161775,2827,5691,3,0.03369906199986872,0.00019228500059398357