Add queueing example model
This commit is contained in:
parent
2ca0c68e31
commit
d4aa028d4f
9 changed files with 825 additions and 0 deletions
29
examples/queueing/collector.py
Normal file
29
examples/queueing/collector.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
from pypdevs.DEVS import AtomicDEVS
|
||||||
|
|
||||||
|
# Define the state of the collector as a structured object
|
||||||
|
class CollectorState(object):
|
||||||
|
def __init__(self):
|
||||||
|
# Contains received events and simulation time
|
||||||
|
self.events = []
|
||||||
|
self.current_time = 0.0
|
||||||
|
|
||||||
|
class Collector(AtomicDEVS):
|
||||||
|
def __init__(self):
|
||||||
|
AtomicDEVS.__init__(self, "Collector")
|
||||||
|
self.state = CollectorState()
|
||||||
|
# Has only one input port
|
||||||
|
self.in_event = self.addInPort("in_event")
|
||||||
|
|
||||||
|
def extTransition(self, inputs):
|
||||||
|
# Update simulation time
|
||||||
|
self.state.current_time += self.elapsed
|
||||||
|
# Calculate time in queue
|
||||||
|
evt = inputs[self.in_event]
|
||||||
|
time = self.state.current_time - evt.creation_time - evt.processing_time
|
||||||
|
inputs[self.in_event].queueing_time = max(0.0, time)
|
||||||
|
# Add incoming event to received events
|
||||||
|
self.state.events.append(inputs[self.in_event])
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
# Don't define anything else, as we only store events.
|
||||||
|
# Collector has no behaviour of its own.
|
||||||
45
examples/queueing/experiment.py
Normal file
45
examples/queueing/experiment.py
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
from pypdevs.simulator import Simulator
|
||||||
|
import random
|
||||||
|
|
||||||
|
# Import the model we experiment with
|
||||||
|
from system import QueueSystem
|
||||||
|
|
||||||
|
# Configuration:
|
||||||
|
# 1) number of customers to simulate
|
||||||
|
num = 500
|
||||||
|
# 2) average time between two customers
|
||||||
|
time = 30.0
|
||||||
|
# 3) average size of customer
|
||||||
|
size = 20.0
|
||||||
|
# 4) efficiency of processors (products/second)
|
||||||
|
speed = 0.5
|
||||||
|
# 5) maximum number of processors used
|
||||||
|
max_processors = 10
|
||||||
|
# End of configuration
|
||||||
|
|
||||||
|
# Store all results for output to file
|
||||||
|
values = []
|
||||||
|
# Loop over different configurations
|
||||||
|
for i in range(1, max_processors):
|
||||||
|
# Make sure each of them simulates exactly the same workload
|
||||||
|
random.seed(1)
|
||||||
|
# Set up the system
|
||||||
|
procs = [speed] * i
|
||||||
|
m = QueueSystem(mu=1.0/time, size=size, num=num, procs=procs)
|
||||||
|
|
||||||
|
# PythonPDEVS specific setup and configuration
|
||||||
|
sim = Simulator(m)
|
||||||
|
sim.setClassicDEVS()
|
||||||
|
sim.simulate()
|
||||||
|
|
||||||
|
# Gather information for output
|
||||||
|
evt_list = m.collector.state.events
|
||||||
|
values.append([e.queueing_time for e in evt_list])
|
||||||
|
|
||||||
|
# Write data to file
|
||||||
|
with open('output.csv', 'w') as f:
|
||||||
|
for i in range(num):
|
||||||
|
f.write("%s" % i)
|
||||||
|
for j in range(len(values)):
|
||||||
|
f.write(", %5f" % (values[j][i]))
|
||||||
|
f.write("\n")
|
||||||
50
examples/queueing/generator.py
Normal file
50
examples/queueing/generator.py
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
from pypdevs.DEVS import AtomicDEVS
|
||||||
|
from job import Job
|
||||||
|
import random
|
||||||
|
|
||||||
|
# Define the state of the generator as a structured object
|
||||||
|
class GeneratorState:
|
||||||
|
def __init__(self, gen_num):
|
||||||
|
# Current simulation time (statistics)
|
||||||
|
self.current_time = 0.0
|
||||||
|
# Remaining time until generation of new event
|
||||||
|
self.remaining = 0.0
|
||||||
|
# Counter on how many events to generate still
|
||||||
|
self.to_generate = gen_num
|
||||||
|
|
||||||
|
class Generator(AtomicDEVS):
|
||||||
|
def __init__(self, gen_param, size_param, gen_num):
|
||||||
|
AtomicDEVS.__init__(self, "Generator")
|
||||||
|
# Output port for the event
|
||||||
|
self.out_event = self.addOutPort("out_event")
|
||||||
|
# Define the state
|
||||||
|
self.state = GeneratorState(gen_num)
|
||||||
|
|
||||||
|
# Parameters defining the generator's behaviour
|
||||||
|
self.gen_param = gen_param
|
||||||
|
self.size_param = size_param
|
||||||
|
|
||||||
|
def intTransition(self):
|
||||||
|
# Update simulation time
|
||||||
|
self.state.current_time += self.timeAdvance()
|
||||||
|
# Update number of generated events
|
||||||
|
self.state.to_generate -= 1
|
||||||
|
if self.state.to_generate == 0:
|
||||||
|
# Already generated enough events, so stop
|
||||||
|
self.state.remaining = float('inf')
|
||||||
|
else:
|
||||||
|
# Still have to generate events, so sample for new duration
|
||||||
|
self.state.remaining = random.expovariate(self.gen_param)
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
def timeAdvance(self):
|
||||||
|
# Return remaining time; infinity when generated enough
|
||||||
|
return self.state.remaining
|
||||||
|
|
||||||
|
def outputFnc(self):
|
||||||
|
# Determine size of the event to generate
|
||||||
|
size = max(1, int(random.gauss(self.size_param, 5)))
|
||||||
|
# Calculate current time (note the addition!)
|
||||||
|
creation = self.state.current_time + self.state.remaining
|
||||||
|
# Output the new event on the output port
|
||||||
|
return {self.out_event: Job(size, creation)}
|
||||||
5
examples/queueing/job.py
Normal file
5
examples/queueing/job.py
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
class Job:
|
||||||
|
def __init__(self, size, creation_time):
|
||||||
|
# Jobs have a size and creation_time parameter
|
||||||
|
self.size = size
|
||||||
|
self.creation_time = creation_time
|
||||||
500
examples/queueing/output.csv
Normal file
500
examples/queueing/output.csv
Normal file
|
|
@ -0,0 +1,500 @@
|
||||||
|
0, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
1, 30.710932, 1.000000, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
2, 96.877021, 21.877021, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
3, 114.245505, 35.534573, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
4, 128.607899, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
5, 135.414171, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
6, 179.404614, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
7, 222.720062, 27.305891, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
8, 243.365633, 5.961019, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
9, 236.856757, 1.067971, 1.067971, 1.067971, 1.067971, 1.067971, 1.067971, 1.067971, 1.067971
|
||||||
|
10, 318.924728, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
11, 307.944837, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
12, 354.545437, 1.000000, 1.000000, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
13, 416.661313, 55.596900, 1.115876, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
14, 480.142337, 46.716476, 39.197500, 1.115876, 1.115876, 1.115876, 1.115876, 1.115876, 1.115876
|
||||||
|
15, 521.180979, 96.635542, 47.635542, 31.236142, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
16, 578.306256, 94.361419, 48.760819, 34.163920, 23.361419, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
17, 631.040773, 146.444217, 62.095936, 29.495336, 7.002271, 1.000001, 1.000001, 1.348282, 1.348282
|
||||||
|
18, 701.389054, 143.495336, 70.002271, 37.843617, 23.898437, 13.095936, 12.444217, 1.000001, 1.000001
|
||||||
|
19, 737.547708, 182.602871, 93.843617, 46.602871, 28.843617, 23.246718, 1.000001, 1.000001, 1.000001
|
||||||
|
20, 780.377315, 177.432478, 108.966522, 58.966522, 10.196337, 6.330981, 1.000001, 1.000001, 1.000001
|
||||||
|
21, 855.511959, 221.567122, 95.432478, 51.831271, 34.567122, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
22, 902.376708, 240.431871, 107.831271, 49.234979, 33.831271, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
23, 876.703303, 185.758466, 73.157866, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
24, 905.252307, 203.462508, 54.861908, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
25, 961.407345, 198.307470, 59.307470, 6.706870, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
26, 981.835910, 206.777941, 54.177341, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
27, 1035.722778, 223.891073, 64.290473, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
28, 1056.047752, 227.102915, 41.102915, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
29, 1075.151472, 203.206635, 26.606035, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
30, 1120.102328, 230.157491, 27.556891, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
31, 1148.677516, 211.732679, 7.732679, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
32, 1186.007038, 225.062201, 1.461601, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
33, 1217.702724, 227.757887, 1.157287, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
34, 1239.490515, 211.545678, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
35, 1270.308201, 229.363364, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
36, 1328.407567, 241.462730, 1.862130, 1.099368, 1.099368, 1.099368, 1.099368, 1.099368, 1.099368
|
||||||
|
37, 1280.838201, 164.893364, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
38, 1318.856392, 166.911555, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
39, 1352.927362, 181.982525, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
40, 1295.277854, 80.333017, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
41, 1297.232309, 65.287472, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
42, 1336.306461, 74.361624, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003
|
||||||
|
43, 1345.438546, 78.493709, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
44, 1384.001160, 65.056323, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
45, 1348.523269, 29.406667, 1.828237, 1.828237, 1.828237, 1.828237, 1.828237, 1.828237, 1.828237
|
||||||
|
46, 1421.351504, 22.578432, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
47, 1419.157504, 27.212667, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
48, 1419.687152, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
49, 1459.965011, 3.020174, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
50, 1492.306495, 10.042602, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
51, 1545.987439, 24.619345, 1.334144, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
52, 1606.299153, 70.354316, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
53, 1642.060635, 58.373485, 24.352613, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
54, 1688.317622, 93.372785, 34.754142, 22.011129, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
55, 1706.880119, 76.192969, 6.892682, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
56, 1745.497315, 93.552478, 24.532306, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
57, 1806.645640, 108.958490, 28.339147, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
58, 1841.300286, 95.762235, 13.312849, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
59, 1864.449385, 128.355449, 11.484376, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
60, 1860.593404, 91.906254, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
61, 1886.049134, 67.104297, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
62, 1962.442039, 114.754889, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
63, 1981.175190, 101.230353, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
64, 2033.562354, 124.875204, 11.120317, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
65, 2091.895175, 140.950338, 13.846043, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
66, 2158.733683, 181.046533, 38.558494, 11.684551, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
67, 2220.210771, 202.265934, 65.600305, 33.035582, 6.161639, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
68, 2281.649437, 232.962287, 61.768734, 42.087084, 23.474248, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
69, 2326.991120, 252.046283, 78.815931, 41.095946, 30.428767, 11.815931, 1.000001, 1.000001, 1.000001
|
||||||
|
70, 2356.730555, 259.043405, 76.292052, 32.681423, 6.446010, 11.168202, 1.000001, 1.000001, 1.000001
|
||||||
|
71, 2409.341184, 265.396347, 91.681423, 47.165995, 21.835381, 5.446010, 1.000001, 1.000001, 1.000001
|
||||||
|
72, 2464.092084, 305.404934, 85.916895, 26.789311, 9.084962, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
73, 2519.684485, 298.739648, 109.598183, 45.529731, 14.042952, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
74, 2585.647315, 353.960165, 109.635353, 50.598183, 5.509296, 1.368865, 1.368865, 1.368865, 1.368865
|
||||||
|
75, 2630.016179, 364.071342, 133.840990, 72.840990, 32.121005, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
76, 2678.475398, 397.788248, 153.426266, 52.604216, 38.580224, 27.913045, 1.828084, 1.828084, 1.828084
|
||||||
|
77, 2742.236667, 407.291830, 140.478159, 91.580224, 19.604216, 1.000002, 12.506113, 1.000001, 1.000001
|
||||||
|
78, 2778.653348, 424.966198, 169.187535, 87.674314, 21.001243, 3.006034, 1.000001, 1.000001, 1.000001
|
||||||
|
79, 2826.176432, 436.231595, 173.127300, 72.001243, 47.674314, 25.341493, 1.000002, 1.000002, 1.000002
|
||||||
|
80, 2763.788007, 366.266162, 79.161867, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
81, 2819.210999, 361.100857, 76.612818, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
82, 2836.844084, 383.899247, 71.794952, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
83, 2874.219197, 373.532047, 85.170065, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
84, 2913.314677, 391.369840, 59.139488, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
85, 2877.144605, 309.457455, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
86, 2877.632866, 292.688029, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
87, 2919.485141, 298.797991, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
88, 2914.436511, 250.491674, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
89, 2964.711576, 285.024426, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
90, 3013.456083, 300.511246, 1.744509, 1.744509, 1.744509, 1.744509, 1.744509, 1.744509, 1.744509
|
||||||
|
91, 3025.109620, 282.422470, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
92, 2985.845341, 213.900504, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
93, 2980.146458, 182.459308, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
94, 2927.914924, 98.970087, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
95, 2970.671971, 115.984821, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
96, 3006.889802, 128.944965, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
97, 3054.870562, 135.183412, 13.955640, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
98, 3123.395999, 170.451162, 13.724029, 7.481077, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
99, 3183.863594, 193.176444, 31.973793, 3.191624, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
100, 3232.081181, 210.136344, 51.166259, 11.191380, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
101, 3214.099993, 172.412843, 10.662432, 1.452241, 1.452241, 1.452241, 1.452241, 1.452241, 1.452241
|
||||||
|
102, 3292.552233, 191.607396, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
103, 3225.153101, 78.413921, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
104, 3248.358758, 120.465951, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
105, 3271.691114, 101.746277, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
106, 3282.141652, 55.454502, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
107, 3286.929399, 25.385124, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
108, 3309.072274, 47.984562, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
109, 3332.049988, 48.362838, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
110, 3356.269672, 23.324835, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
111, 3348.700222, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
112, 3404.515623, 8.570786, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
113, 3410.325138, 1.624917, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
114, 3443.554035, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
115, 3437.937003, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
116, 3477.148095, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
117, 3553.785320, 35.848318, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
118, 3584.751956, 53.603862, 11.814954, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
119, 3645.471644, 64.534642, 29.686325, 9.534642, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
120, 3646.136464, 52.693177, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
121, 3698.630179, 53.988370, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
122, 3710.980322, 65.043320, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
123, 3746.606645, 52.458551, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
124, 3790.009614, 29.433048, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
125, 3790.581142, 93.072612, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
126, 3828.646990, 58.972022, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
127, 3887.909024, 67.498896, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
128, 3896.513065, 67.576063, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
129, 3924.215741, 47.067647, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
130, 3980.330882, 92.393880, 1.000002, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
131, 4054.105486, 101.957392, 24.592423, 1.000002, 1.000002, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
132, 4118.886850, 163.054800, 47.671111, 16.373787, 1.000001, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
133, 4186.202894, 157.949848, 62.872014, 43.987155, 12.689831, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
134, 4239.707432, 216.559338, 80.194369, 56.601947, 38.491693, 7.194369, 1.000001, 1.000001, 1.000001
|
||||||
|
135, 4297.451996, 216.514994, 40.626853, 2.444670, 1.000001, 35.236257, 3.938933, 1.000001, 1.000001
|
||||||
|
136, 4301.957733, 201.809639, 106.236257, 54.346511, 53.346511, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
137, 4270.977343, 149.040341, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
138, 4339.532140, 160.384046, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
139, 4395.367019, 184.548013, 25.151280, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
140, 4434.696107, 214.430017, 25.163968, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
141, 4374.185772, 121.738638, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
142, 4424.675640, 124.037678, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
143, 4464.400744, 161.463742, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
144, 4515.449711, 161.301617, 38.263940, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
145, 4493.455782, 107.518780, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
146, 4536.913812, 135.765718, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
147, 4482.623710, 33.686708, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
148, 4532.137251, 57.989157, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
149, 4578.141130, 74.204128, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
150, 4601.740588, 80.592494, 18.116879, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
151, 4656.194473, 95.257471, 21.057223, 15.570764, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
152, 4713.306553, 125.158459, 12.169303, 11.169303, 5.682844, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
153, 4752.639061, 120.702059, 31.015352, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
154, 4780.699284, 133.551190, 9.569612, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
155, 4838.706862, 137.769860, 15.562034, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
156, 4883.815800, 179.667706, 36.192091, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
157, 4869.627422, 115.690420, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
158, 4935.806532, 154.658438, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
159, 4962.853896, 155.916894, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
160, 5006.666466, 154.518372, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
161, 5059.284599, 191.347597, 5.657178, 3.404881, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
162, 5120.032302, 204.884208, 34.178407, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
163, 5174.689246, 249.752244, 49.022781, 31.835351, 1.061825, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
164, 5203.422087, 229.273993, 33.794666, 18.755622, 1.568192, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
165, 5238.029308, 204.324752, 38.175413, 7.401887, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
166, 5255.472846, 258.092306, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
167, 5274.932902, 223.784808, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
168, 5341.525643, 225.588641, 5.671748, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
169, 5361.614365, 245.466271, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003
|
||||||
|
170, 5294.830750, 120.682656, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003
|
||||||
|
171, 5354.439797, 175.291703, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
172, 5385.771275, 158.623181, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003, 1.000003
|
||||||
|
173, 5385.509976, 139.361882, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
174, 5435.926605, 153.778511, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
175, 5487.529672, 178.381578, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
176, 5476.511026, 135.362932, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
177, 5488.398556, 112.250462, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
178, 5486.264081, 106.115987, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
179, 5526.261349, 93.113255, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
180, 5576.105762, 134.223571, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
181, 5624.371665, 140.957668, 27.107586, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
182, 5667.374193, 163.319500, 23.361833, 16.206247, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
183, 5720.467594, 177.226099, 40.112846, 25.110114, 1.203515, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
184, 5752.081748, 191.822600, 22.817669, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
185, 5803.970694, 194.933654, 39.864933, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
186, 5842.565664, 230.417570, 42.304317, 20.304317, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
187, 5870.374699, 203.226605, 31.110620, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
188, 5917.203919, 242.055825, 31.098158, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
189, 5961.051400, 236.903306, 40.790053, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
190, 6015.586511, 281.438417, 60.322432, 14.325164, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
191, 6027.615269, 238.467175, 17.509508, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
192, 6077.400433, 278.252339, 27.139086, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
193, 6118.421655, 280.273561, 59.090736, 2.935150, 1.774842, 1.774842, 1.774842, 1.774842, 1.774842
|
||||||
|
194, 6187.196497, 319.048403, 49.157576, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
195, 6204.801132, 317.653038, 36.539785, 10.400699, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
196, 6244.496605, 319.348511, 59.390844, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
197, 6289.327589, 349.179495, 61.063510, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
198, 6313.827391, 343.679297, 47.566044, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
199, 6350.883980, 357.735886, 67.778219, 5.483547, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
200, 6387.226771, 356.078677, 50.308589, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
201, 6456.569936, 384.421842, 44.962692, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
202, 6472.380980, 394.232886, 63.275219, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
203, 6513.876730, 378.728636, 44.615383, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
204, 6511.905990, 372.757896, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
205, 6516.536095, 312.388001, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
206, 6580.325733, 362.239604, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
207, 6619.387698, 366.177639, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
208, 6624.139973, 310.795826, 3.814239, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
209, 6624.943920, 366.991879, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
210, 6603.868143, 293.902460, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
211, 6671.050554, 289.720049, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
212, 6719.396266, 342.248172, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
213, 6739.862701, 305.714607, 7.029724, 5.205906, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
214, 6811.256461, 361.108367, 15.388317, 2.557847, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
215, 6851.425991, 364.277897, 6.812146, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
216, 6874.714347, 379.566253, 30.318080, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
217, 6942.467532, 386.319438, 32.599388, 22.416977, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
218, 6896.216958, 330.729031, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
219, 6951.877125, 328.068864, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
220, 6925.668952, 265.670075, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
221, 6945.818169, 304.520858, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
222, 6949.476487, 252.661603, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
223, 6982.809697, 269.328393, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
224, 6952.377291, 176.536548, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
225, 6972.684642, 222.229197, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
226, 7014.666911, 218.518817, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
227, 7075.615332, 221.467238, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
228, 7070.746426, 207.598332, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
229, 7108.206729, 189.058635, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
230, 7151.467912, 229.319818, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
231, 7209.908710, 223.760616, 14.162283, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
232, 7233.370619, 229.893626, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
233, 7283.041720, 246.222525, 0.999998, 1.362227, 1.362227, 1.362227, 1.362227, 1.362227, 1.362227
|
||||||
|
234, 7343.403949, 290.255855, 19.657522, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
235, 7340.289166, 241.141072, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
236, 7384.346113, 280.198019, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
237, 7431.771934, 275.623840, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
238, 7478.334228, 301.186134, 9.045061, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
239, 7490.358573, 275.210479, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
240, 7515.748317, 263.600223, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
241, 7568.500338, 280.352244, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
242, 7567.424991, 258.276897, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
243, 7613.925935, 264.777841, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
244, 7650.901694, 294.753600, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
245, 7722.132364, 297.984270, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
246, 7751.869923, 324.721829, 33.707371, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
247, 7743.922928, 284.774834, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
248, 7687.982206, 207.834112, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
249, 7729.482682, 203.334588, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
250, 7787.296311, 238.148217, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
251, 7815.747971, 238.599877, 8.765763, 8.740411, 1.974646, 1.974646, 1.974646, 1.974646, 1.974646
|
||||||
|
252, 7874.722619, 266.574525, 29.426306, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
253, 7912.815983, 286.667889, 25.333299, 18.519670, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
254, 7960.521062, 289.372968, 31.888863, 10.038378, 3.224749, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
255, 8003.185176, 314.037082, 41.538854, 11.202968, 0.999997, 0.999997, 0.999997, 0.999997, 0.999997
|
||||||
|
256, 8016.889715, 300.741621, 21.407031, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
257, 8071.773219, 327.625125, 43.034840, 11.534364, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
258, 8127.017048, 345.868954, 45.476906, 14.476906, 1.883502, 1.883502, 1.883502, 1.883502, 1.883502
|
||||||
|
259, 8116.960302, 329.812208, 13.477618, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
260, 8144.500959, 314.352865, 11.518751, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
261, 8161.520486, 303.372392, 1.832023, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
262, 8204.744067, 315.595973, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
263, 8252.814231, 335.666137, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
264, 8278.213035, 358.064941, 27.230827, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
265, 8315.851502, 347.703408, 14.869294, 13.037269, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
266, 8366.745739, 395.597645, 30.001670, 14.225251, 12.931506, 1.894235, 1.894235, 1.894235, 1.894235
|
||||||
|
267, 8402.157210, 383.009116, 0.999998, 14.413141, 0.999997, 0.999997, 0.999997, 0.999997, 0.999997
|
||||||
|
268, 8409.905779, 371.757685, 49.175002, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
269, 8386.449007, 322.300913, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
270, 8396.007001, 306.858907, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
271, 8408.327832, 301.179738, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
272, 8437.940510, 287.792416, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
273, 8461.172718, 301.024624, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
274, 8484.040976, 280.892882, 0.999997, 0.999997, 0.999997, 0.999997, 0.999997, 0.999997, 0.999997
|
||||||
|
275, 8504.864630, 267.716536, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
276, 8514.098705, 257.950611, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
277, 8566.200588, 264.052494, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
278, 8603.981049, 278.258843, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998
|
||||||
|
279, 8635.406937, 300.832955, 15.206348, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
280, 8671.458222, 308.427336, 8.594379, 7.200868, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
281, 8717.575430, 314.310128, 15.359515, 1.000000, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
282, 8767.181919, 358.033825, 30.981330, 10.257633, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
283, 8793.705432, 342.557338, 41.724381, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
284, 8839.542035, 371.393941, 30.443328, 20.560984, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
285, 8877.314695, 367.166601, 23.114106, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
286, 8848.680866, 321.532772, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
287, 8870.650845, 303.502751, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
288, 8893.785222, 315.637128, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
289, 8889.631861, 261.483767, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
290, 8947.228766, 302.080672, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
291, 9002.009161, 296.861067, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
292, 9057.233302, 343.085208, 22.601442, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
293, 9094.695648, 346.547554, 36.466883, 17.063788, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
294, 9121.936941, 348.788847, 18.873594, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
295, 9167.505454, 364.357360, 18.927780, 4.708176, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
296, 9182.282853, 366.134759, 26.054088, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
297, 9237.607435, 373.459341, 27.975575, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
298, 9263.821181, 374.673087, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
299, 9321.278032, 392.129938, 27.049267, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
300, 9274.726745, 344.648340, 1.069689, 1.069689, 1.069689, 1.069689, 1.069689, 1.069689, 1.069689
|
||||||
|
301, 9328.796434, 332.578651, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
302, 9300.900338, 316.752244, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
303, 9336.943698, 300.795604, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
304, 9346.930420, 281.286444, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
305, 9378.434538, 309.782326, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
306, 9426.002205, 262.548653, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
307, 9423.696747, 328.854111, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
308, 9443.610802, 282.462708, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
309, 9474.176851, 265.028757, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
310, 9524.700274, 308.552180, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
311, 9582.260535, 302.112441, 13.649733, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
312, 9613.506090, 324.357996, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
313, 9636.479864, 295.331770, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
314, 9700.543149, 336.395055, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
315, 9747.203578, 339.055484, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
316, 9811.043622, 379.895528, 41.563759, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
317, 9844.740805, 375.592711, 17.197658, 14.260942, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
318, 9841.827514, 347.679420, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
319, 9866.313382, 336.165288, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
320, 9878.705899, 321.557805, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
321, 9939.129176, 335.981082, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
322, 9941.548728, 327.400634, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
323, 10009.546465, 335.398371, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
324, 10065.236405, 380.088311, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
325, 10110.697165, 385.549071, 17.222561, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
326, 10163.789239, 417.641145, 46.460761, 14.220298, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
327, 10202.769025, 412.620931, 40.240512, 10.078385, 12.532621, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
328, 10244.624849, 427.462862, 39.374552, 38.552835, 7.076122, 5.388445, 1.000000, 1.000000, 1.000000
|
||||||
|
329, 10276.610956, 449.476755, 59.078385, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
330, 10255.543081, 361.493011, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
331, 10270.641105, 406.394987, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
332, 10271.170212, 362.022118, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
333, 10300.127064, 336.978970, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
334, 10293.786995, 315.638901, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
335, 10294.152901, 288.004807, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
336, 10362.196999, 311.048905, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
337, 10418.491130, 351.343036, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
338, 10444.699289, 334.551195, 23.031027, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
339, 10509.522156, 373.374062, 24.502291, 7.639307, 3.301078, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
340, 10553.875626, 380.727532, 8.722726, 20.325158, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
341, 10623.792207, 416.644113, 66.301078, 4.384497, 5.755849, 1.417620, 1.000001, 1.000001, 1.000001
|
||||||
|
342, 10662.908749, 448.760655, 67.711751, 37.166617, 1.678628, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
343, 10714.319517, 446.171423, 67.166617, 44.209461, 32.797362, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
344, 10767.571774, 496.423680, 92.080645, 48.374776, 30.049619, 26.779568, 1.000002, 1.000002, 1.000002
|
||||||
|
345, 10798.128773, 468.980679, 49.026466, 28.637644, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
346, 10818.179366, 456.399661, 84.931775, 19.026466, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
347, 10838.547755, 486.031272, 49.056626, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
348, 10866.733521, 484.585427, 54.580621, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
349, 10878.950074, 460.801980, 26.753076, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
350, 10911.594678, 466.662362, 19.751844, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
351, 10965.810456, 488.446584, 38.103549, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
352, 11021.904744, 522.756650, 31.657556, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
353, 11048.749625, 507.601531, 46.596725, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
354, 11099.867672, 547.719578, 55.376543, 18.272996, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
355, 11146.197044, 552.048950, 57.044144, 19.292301, 11.602368, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
356, 11151.562818, 530.414724, 27.409918, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
357, 11161.057452, 519.909358, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
358, 11187.264016, 499.115922, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
359, 11235.570259, 537.422165, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
360, 11166.170328, 435.022234, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
361, 11181.328768, 410.180674, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
362, 11202.979157, 392.831063, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
363, 11217.670804, 381.522710, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
364, 11259.671579, 388.523485, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
365, 11299.443234, 405.550802, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
366, 11357.698896, 422.295140, 18.027317, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
367, 11397.613755, 445.465661, 3.942952, 2.942176, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
368, 11421.719914, 428.571820, 7.276681, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
369, 11460.417659, 447.269565, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
370, 11516.575921, 464.427827, 2.905118, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
371, 11576.532173, 502.384079, 42.088940, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
372, 11616.985418, 509.837324, 44.136584, 21.265505, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
373, 11671.807387, 538.659293, 41.567760, 37.275215, 17.087474, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
374, 11675.327565, 531.318314, 36.795605, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
375, 11731.466408, 517.179471, 30.884332, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
376, 11755.873701, 555.725607, 21.456043, 1.153788, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
377, 11804.854575, 544.706481, 31.709928, 1.322403, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
378, 11865.449807, 578.979492, 49.183772, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
379, 11904.127586, 592.301713, 46.006574, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
380, 11935.810098, 610.662004, 63.392440, 8.090185, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
381, 11856.048149, 494.900055, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
382, 11868.925374, 484.765781, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
383, 11912.913875, 492.777280, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
384, 11891.775935, 463.503057, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
385, 11951.651151, 463.627841, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
386, 11990.773327, 502.625233, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
387, 12033.062348, 496.914254, 27.411199, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
388, 12066.399023, 498.660366, 8.623089, 1.747874, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
389, 12111.808460, 519.250929, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
390, 12165.517425, 552.369331, 17.866276, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
391, 12210.713314, 541.565220, 1.493843, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
392, 12238.302301, 556.154207, 30.937380, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
393, 12280.470590, 564.322496, 16.819441, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
394, 12265.722180, 524.574086, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
395, 12318.582257, 547.434163, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
396, 12269.091460, 460.943366, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
397, 12229.317845, 419.169751, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
398, 12187.367947, 316.219853, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
399, 12179.725068, 300.576974, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
400, 12170.236074, 260.087980, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
401, 12213.523424, 265.375330, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
402, 12135.747743, 156.599649, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
403, 12157.558357, 146.410263, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
404, 12189.095694, 162.493824, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
405, 12246.641918, 164.947600, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
406, 12282.901276, 198.242797, 1.000001, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
407, 12350.390891, 198.753182, 29.477633, 1.000001, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
408, 12404.573326, 252.425232, 31.748974, 26.931409, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
409, 12388.381084, 190.232990, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
410, 12431.258776, 230.110682, 7.163083, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
411, 12476.716660, 231.568566, 7.074743, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
412, 12542.581754, 272.433660, 39.200672, 1.000001, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
413, 12592.188789, 294.040695, 46.093096, 30.827962, 1.000001, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
414, 12640.086737, 312.938643, 60.444820, 35.807707, 26.705655, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
415, 12688.634267, 339.486173, 77.253185, 39.052515, 28.375492, 24.253185, 1.000002, 1.000002, 1.000002
|
||||||
|
416, 12737.366317, 359.218223, 101.012557, 49.649658, 38.465687, 31.072722, 20.395699, 1.000002, 1.000002
|
||||||
|
417, 12800.654474, 382.506380, 89.270624, 71.395699, 36.784565, 26.107542, 21.985235, 16.273392, 1.000002
|
||||||
|
418, 12790.275477, 363.127383, 60.894395, 13.894395, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
419, 12802.832224, 315.684130, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
420, 12826.667178, 338.519084, 34.190307, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
421, 12854.322261, 312.174167, 8.941179, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
422, 12875.138018, 305.989924, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
423, 12910.364648, 299.216554, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
424, 12939.775421, 289.808378, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
425, 12977.956472, 317.627327, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
426, 12980.490992, 292.342898, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
427, 13040.745505, 298.597411, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002, 1.000002
|
||||||
|
428, 13058.540274, 296.363363, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
429, 13099.511457, 311.392180, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
430, 13132.998949, 310.495627, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
431, 13179.643721, 329.850855, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
432, 13227.415339, 358.267245, 6.903883, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
433, 13288.102577, 368.954483, 40.103629, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
434, 13328.429989, 408.281895, 31.786269, 29.431041, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
435, 13383.593466, 405.445372, 53.082010, 27.949746, 25.594518, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
436, 13431.779274, 347.632083, 65.780326, 26.676698, 17.135554, 14.780326, 1.000000, 1.000000, 1.000000
|
||||||
|
437, 13398.780177, 452.631180, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
438, 13424.286134, 373.138040, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
439, 13450.913280, 373.765186, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
440, 13482.484039, 389.593241, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
441, 13537.741335, 376.335945, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
442, 13544.916584, 396.768490, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
443, 13580.740713, 380.592619, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
444, 13621.264632, 406.116538, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
445, 13648.927727, 415.779633, 5.011142, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
446, 13669.554875, 403.406781, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
447, 13721.519876, 411.371782, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
448, 13766.736656, 441.588562, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
449, 13740.028245, 388.880151, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
450, 13779.797780, 381.649686, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
451, 13802.606696, 372.458602, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
452, 13835.099865, 389.951771, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
453, 13864.113157, 390.965063, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
454, 13885.600572, 377.452478, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
455, 13918.328212, 394.180118, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
456, 13975.611971, 406.463877, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
457, 14028.062054, 453.249016, 29.461482, 1.450083, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
458, 14091.397110, 450.913960, 47.785139, 23.796538, 1.450083, 1.450083, 1.450083, 1.450083, 1.450083
|
||||||
|
459, 14123.680092, 477.377685, 25.351880, 15.197567, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
460, 14192.525779, 485.531998, 55.925207, 6.280471, 10.913808, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
461, 14237.892442, 522.744348, 48.280471, 21.068121, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
462, 14256.535591, 492.387497, 32.207379, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
463, 14268.518396, 496.370302, 15.917824, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
464, 14299.564450, 484.416356, 1.952479, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
465, 14249.834508, 420.686414, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
466, 14261.052063, 396.903969, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
467, 14224.152514, 330.004420, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
468, 14279.341619, 352.193525, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
469, 14326.736108, 365.588014, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
470, 14296.533943, 308.385849, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
471, 14289.595331, 298.645530, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
472, 14355.793624, 281.447237, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
473, 14366.865316, 309.717222, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
474, 14382.926911, 300.778817, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
475, 14325.128282, 239.713525, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
476, 14400.861619, 220.980188, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
477, 14418.451714, 257.303620, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
478, 14471.662815, 259.514721, 14.801197, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
479, 14511.061578, 290.913484, 19.933296, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
480, 14532.769465, 251.621371, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
481, 14569.884312, 278.736218, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
482, 14614.147395, 285.999301, 5.019113, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
483, 14652.692663, 312.544569, 24.923198, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
484, 14700.425438, 303.277344, 13.541126, 3.655973, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
485, 14707.726312, 307.222448, 11.601077, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
486, 14761.370542, 302.578218, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
487, 14797.631200, 327.417580, 10.746888, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999
|
||||||
|
488, 14850.565674, 343.483106, 25.796209, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
489, 14746.472666, 241.109273, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
490, 14807.257367, 223.324572, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
491, 14822.647100, 256.499006, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
492, 14876.399283, 253.251189, 9.141916, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
493, 14917.434818, 290.286724, 10.962152, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
494, 14968.176855, 294.028761, 34.529755, 10.704189, 1.742037, 1.742037, 1.742037, 1.742037, 1.742037
|
||||||
|
495, 14965.141927, 262.993833, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
496, 14920.231915, 187.083821, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
497, 14961.823898, 200.675804, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001, 1.000001
|
||||||
|
498, 14992.028499, 185.880405, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
499, 15045.398999, 221.250905, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
|
||||||
|
42
examples/queueing/plot
Normal file
42
examples/queueing/plot
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
set terminal svg
|
||||||
|
set out 'queueing_evolution.svg'
|
||||||
|
|
||||||
|
set title "Queueing times"
|
||||||
|
set xlabel "Customer #"
|
||||||
|
set ylabel "Seconds"
|
||||||
|
unset xlabel
|
||||||
|
unset xtics
|
||||||
|
set key title "Processors"
|
||||||
|
set key bottom center out
|
||||||
|
set key horizontal
|
||||||
|
|
||||||
|
set style line 1 lw 4
|
||||||
|
set style line 2 lw 4
|
||||||
|
set style line 3 lw 4
|
||||||
|
set style line 4 lw 4
|
||||||
|
|
||||||
|
set yrange [0:450]
|
||||||
|
set xrange [0:500]
|
||||||
|
set style fill solid
|
||||||
|
|
||||||
|
plot 'output.csv' using 1:3 title "2" w boxes ls 1, \
|
||||||
|
'' using 1:4 title "3" w boxes ls 2, \
|
||||||
|
'' using 1:5 title "4" w boxes ls 3, \
|
||||||
|
'' using 1:6 title "5" w boxes ls 4
|
||||||
|
|
||||||
|
set out 'queueing_boxplot.svg'
|
||||||
|
set style fill solid 0.25 border -1
|
||||||
|
set style boxplot outliers pointtype 7
|
||||||
|
set style data boxplot
|
||||||
|
set key off
|
||||||
|
|
||||||
|
set xlabel "Processors"
|
||||||
|
unset xrange
|
||||||
|
unset yrange
|
||||||
|
|
||||||
|
set xtics ('2' 1, '3' 2, '4' 3, '5' 4)
|
||||||
|
|
||||||
|
plot 'output.csv' using (1):3 title "2", \
|
||||||
|
'' using (2):4 title "3", \
|
||||||
|
'' using (3):5 title "4", \
|
||||||
|
'' using (4):6 title "5"
|
||||||
46
examples/queueing/processor.py
Normal file
46
examples/queueing/processor.py
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
from pypdevs.DEVS import AtomicDEVS
|
||||||
|
|
||||||
|
# Define the state of the processor as a structured object
|
||||||
|
class ProcessorState(object):
|
||||||
|
def __init__(self):
|
||||||
|
# State only contains the current event
|
||||||
|
self.evt = None
|
||||||
|
|
||||||
|
class Processor(AtomicDEVS):
|
||||||
|
def __init__(self, nr, proc_param):
|
||||||
|
AtomicDEVS.__init__(self, "Processor_%i" % nr)
|
||||||
|
|
||||||
|
self.state = ProcessorState()
|
||||||
|
self.in_proc = self.addInPort("in_proc")
|
||||||
|
self.out_proc = self.addOutPort("out_proc")
|
||||||
|
self.out_finished = self.addOutPort("out_finished")
|
||||||
|
|
||||||
|
# Define the parameters of the model
|
||||||
|
self.speed = proc_param
|
||||||
|
self.nr = nr
|
||||||
|
|
||||||
|
def intTransition(self):
|
||||||
|
# Just clear processing event
|
||||||
|
self.state.evt = None
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
def extTransition(self, inputs):
|
||||||
|
# Received a new event, so start processing it
|
||||||
|
self.state.evt = inputs[self.in_proc]
|
||||||
|
# Calculate how long it will be processed
|
||||||
|
time = 20.0 + max(1.0, self.state.evt.size / self.speed)
|
||||||
|
self.state.evt.processing_time = time
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
def timeAdvance(self):
|
||||||
|
if self.state.evt:
|
||||||
|
# Currently processing, so wait for that
|
||||||
|
return self.state.evt.processing_time
|
||||||
|
else:
|
||||||
|
# Idle, so don't do anything
|
||||||
|
return float('inf')
|
||||||
|
|
||||||
|
def outputFnc(self):
|
||||||
|
# Output the processed event and signal as finished
|
||||||
|
return {self.out_proc: self.state.evt,
|
||||||
|
self.out_finished: self.nr}
|
||||||
75
examples/queueing/queue.py
Normal file
75
examples/queueing/queue.py
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
from pypdevs.DEVS import AtomicDEVS
|
||||||
|
|
||||||
|
# Define the state of the queue as a structured object
|
||||||
|
class QueueState:
|
||||||
|
def __init__(self, outputs):
|
||||||
|
# Keep a list of all idle processors
|
||||||
|
self.idle_procs = range(outputs)
|
||||||
|
# Keep a list that is the actual queue data structure
|
||||||
|
self.queue = []
|
||||||
|
# Keep the process that is currently being processed
|
||||||
|
self.processing = None
|
||||||
|
# Time remaining for this event
|
||||||
|
self.remaining_time = float("inf")
|
||||||
|
|
||||||
|
class Queue(AtomicDEVS):
|
||||||
|
def __init__(self, outputs):
|
||||||
|
AtomicDEVS.__init__(self, "Queue")
|
||||||
|
# Fix the time needed to process a single event
|
||||||
|
self.processing_time = 1.0
|
||||||
|
self.state = QueueState(outputs)
|
||||||
|
|
||||||
|
# Create 'outputs' output ports
|
||||||
|
# 'outputs' is a structural parameter!
|
||||||
|
self.out_proc = []
|
||||||
|
for i in range(outputs):
|
||||||
|
self.out_proc.append(self.addOutPort("proc_%i" % i))
|
||||||
|
|
||||||
|
# Add the other ports: incoming events and finished event
|
||||||
|
self.in_event = self.addInPort("in_event")
|
||||||
|
self.in_finish = self.addInPort("in_finish")
|
||||||
|
|
||||||
|
def intTransition(self):
|
||||||
|
# Is only called when we are outputting an event
|
||||||
|
# Pop the first idle processor and clear processing event
|
||||||
|
self.state.idle_procs.pop(0)
|
||||||
|
if self.state.queue and self.state.idle_procs:
|
||||||
|
# There are still queued elements, so continue
|
||||||
|
self.state.processing = self.state.queue.pop(0)
|
||||||
|
self.state.remaining_time = self.processing_time
|
||||||
|
else:
|
||||||
|
# No events left to process, so become idle
|
||||||
|
self.state.processing = None
|
||||||
|
self.state.remaining_time = float("inf")
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
def extTransition(self, inputs):
|
||||||
|
# Update the remaining time of this job
|
||||||
|
self.state.remaining_time -= self.elapsed
|
||||||
|
# Several possibilities
|
||||||
|
if self.in_finish in inputs:
|
||||||
|
# Processing a "finished" event, so mark proc as idle
|
||||||
|
self.state.idle_procs.append(inputs[self.in_finish])
|
||||||
|
if not self.state.processing and self.state.queue:
|
||||||
|
# Process first task in queue
|
||||||
|
self.state.processing = self.state.queue.pop(0)
|
||||||
|
self.state.remaining_time = self.processing_time
|
||||||
|
elif self.in_event in inputs:
|
||||||
|
# Processing an incoming event
|
||||||
|
if self.state.idle_procs and not self.state.processing:
|
||||||
|
# Process when idle processors
|
||||||
|
self.state.processing = inputs[self.in_event]
|
||||||
|
self.state.remaining_time = self.processing_time
|
||||||
|
else:
|
||||||
|
# No idle processors, so queue it
|
||||||
|
self.state.queue.append(inputs[self.in_event])
|
||||||
|
return self.state
|
||||||
|
|
||||||
|
def timeAdvance(self):
|
||||||
|
# Just return the remaining time for this event (or infinity else)
|
||||||
|
return self.state.remaining_time
|
||||||
|
|
||||||
|
def outputFnc(self):
|
||||||
|
# Output the event to the processor
|
||||||
|
port = self.out_proc[self.state.idle_procs[0]]
|
||||||
|
return {port: self.state.processing}
|
||||||
33
examples/queueing/system.py
Normal file
33
examples/queueing/system.py
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
from pypdevs.DEVS import CoupledDEVS
|
||||||
|
|
||||||
|
# Import all models to couple
|
||||||
|
from generator import Generator
|
||||||
|
from queue import Queue
|
||||||
|
from processor import Processor
|
||||||
|
from collector import Collector
|
||||||
|
|
||||||
|
class QueueSystem(CoupledDEVS):
|
||||||
|
def __init__(self, mu, size, num, procs):
|
||||||
|
CoupledDEVS.__init__(self, "QueueSystem")
|
||||||
|
|
||||||
|
# Define all atomic submodels of which there are only one
|
||||||
|
generator = self.addSubModel(Generator(mu, size, num))
|
||||||
|
queue = self.addSubModel(Queue(len(procs)))
|
||||||
|
collector = self.addSubModel(Collector())
|
||||||
|
|
||||||
|
self.connectPorts(generator.out_event, queue.in_event)
|
||||||
|
|
||||||
|
# Instantiate desired number of processors and connect
|
||||||
|
processors = []
|
||||||
|
for i, param in enumerate(procs):
|
||||||
|
processors.append(self.addSubModel(
|
||||||
|
Processor(i, param)))
|
||||||
|
self.connectPorts(queue.out_proc[i],
|
||||||
|
processors[i].in_proc)
|
||||||
|
self.connectPorts(processors[i].out_finished,
|
||||||
|
queue.in_finish)
|
||||||
|
self.connectPorts(processors[i].out_proc,
|
||||||
|
collector.in_event)
|
||||||
|
|
||||||
|
# Make it accessible outside of our own scope
|
||||||
|
self.collector = collector
|
||||||
Loading…
Add table
Add a link
Reference in a new issue