6426dfc3192dd6c38643d5e0ca127589ae9f4c0a
[cipher-tools.git] / hillclimbing-results / hillclimbing-experiments.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": null,
6 "metadata": {},
7 "outputs": [],
8 "source": [
9 "import os,sys,inspect\n",
10 "currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n",
11 "parentdir = os.path.dirname(currentdir)\n",
12 "sys.path.insert(0,parentdir) "
13 ]
14 },
15 {
16 "cell_type": "code",
17 "execution_count": 1,
18 "metadata": {},
19 "outputs": [],
20 "source": [
21 "from cipher.caesar import *\n",
22 "from cipher.affine import *\n",
23 "from cipher.keyword_cipher import *\n",
24 "from cipher.vigenere import *\n",
25 "from cipher.playfair import *\n",
26 "from cipher.column_transposition import *\n",
27 "from support.text_prettify import *\n",
28 "from support.plot_frequency_histogram import *"
29 ]
30 },
31 {
32 "cell_type": "code",
33 "execution_count": 2,
34 "metadata": {},
35 "outputs": [],
36 "source": [
37 "# import logger as myl\n",
38 "# import logging\n",
39 "# myl.logger.setLevel(logging.DEBUG)\n",
40 "# mylg = logging.getLogger('cipherbreak')\n",
41 "import logging\n",
42 "from logger import logger\n",
43 "\n",
44 "import re\n",
45 "from datetime import datetime\n",
46 "import pandas as pd\n",
47 "import csv\n",
48 "import matplotlib as mpl\n",
49 "import matplotlib.pyplot as plt\n",
50 "%matplotlib inline"
51 ]
52 },
53 {
54 "cell_type": "code",
55 "execution_count": 3,
56 "metadata": {},
57 "outputs": [
58 {
59 "data": {
60 "text/plain": [
61 "'etoainhsrdlumwycfgpbvkxjqz'"
62 ]
63 },
64 "execution_count": 3,
65 "metadata": {},
66 "output_type": "execute_result"
67 }
68 ],
69 "source": [
70 "plain_alpha = cat(p[0] for p in english_counts.most_common())\n",
71 "plain_alpha"
72 ]
73 },
74 {
75 "cell_type": "code",
76 "execution_count": 4,
77 "metadata": {},
78 "outputs": [
79 {
80 "data": {
81 "text/plain": [
82 "'yearningforrespiteth'"
83 ]
84 },
85 "execution_count": 4,
86 "metadata": {},
87 "output_type": "execute_result"
88 }
89 ],
90 "source": [
91 "pt = sanitise(open('2017/8b.plaintext').read())\n",
92 "pt[:20]"
93 ]
94 },
95 {
96 "cell_type": "code",
97 "execution_count": 5,
98 "metadata": {},
99 "outputs": [],
100 "source": [
101 "def commonest_alphabet(text):\n",
102 " counts = collections.Counter(sanitise(text))\n",
103 " return cat(p[0] for p in counts.most_common())"
104 ]
105 },
106 {
107 "cell_type": "code",
108 "execution_count": 6,
109 "metadata": {},
110 "outputs": [
111 {
112 "data": {
113 "text/plain": [
114 "'etaoinsrhdlumcgfwypvbkxqj'"
115 ]
116 },
117 "execution_count": 6,
118 "metadata": {},
119 "output_type": "execute_result"
120 }
121 ],
122 "source": [
123 "commonest_alphabet(pt)"
124 ]
125 },
126 {
127 "cell_type": "code",
128 "execution_count": 44,
129 "metadata": {},
130 "outputs": [
131 {
132 "data": {
133 "text/plain": [
134 "'guefwqwydaffujhqlulmufanewjjsddufutejtegjlsfwutqwlabuupjewtbuupjqwlanawlmjbqlmxeiyexsjewtlmuxeiutawq'"
135 ]
136 },
137 "execution_count": 44,
138 "metadata": {},
139 "output_type": "execute_result"
140 }
141 ],
142 "source": [
143 "ct_key = list(string.ascii_lowercase)\n",
144 "random.shuffle(ct_key)\n",
145 "ct_key = cat(ct_key)\n",
146 "# ct = keyword_encipher(pt, 'arcanaimperii')\n",
147 "ct = keyword_encipher(pt, ct_key)\n",
148 "ct[:100]"
149 ]
150 },
151 {
152 "cell_type": "code",
153 "execution_count": 45,
154 "metadata": {},
155 "outputs": [
156 {
157 "data": {
158 "text/plain": [
159 "'uleaqwjfmtisnxydbghkvprczo'"
160 ]
161 },
162 "execution_count": 45,
163 "metadata": {},
164 "output_type": "execute_result"
165 }
166 ],
167 "source": [
168 "ct_alpha = commonest_alphabet(ct)\n",
169 "ct_alpha = cat(deduplicate(ct_alpha + string.ascii_lowercase))\n",
170 "ct_alpha"
171 ]
172 },
173 {
174 "cell_type": "code",
175 "execution_count": 9,
176 "metadata": {},
177 "outputs": [],
178 "source": [
179 "logger.setLevel(logging.DEBUG)"
180 ]
181 },
182 {
183 "cell_type": "code",
184 "execution_count": 11,
185 "metadata": {},
186 "outputs": [
187 {
188 "data": {
189 "text/plain": [
190 "('itkabjesqnguhwycmplrvfxdoz', -14681.308607565503)"
191 ]
192 },
193 "execution_count": 11,
194 "metadata": {},
195 "output_type": "execute_result"
196 }
197 ],
198 "source": [
199 "sa_cipher_alphabet, score = simulated_annealing_break(ct, plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha)\n",
200 "sa_cipher_alphabet, score"
201 ]
202 },
203 {
204 "cell_type": "code",
205 "execution_count": 75,
206 "metadata": {},
207 "outputs": [
208 {
209 "data": {
210 "text/plain": [
211 "'arcnimpebdfghjkloqstuvwxyz'"
212 ]
213 },
214 "execution_count": 75,
215 "metadata": {},
216 "output_type": "execute_result"
217 }
218 ],
219 "source": [
220 "cat(p[1] for p in sorted(zip(plain_alpha, sa_cipher_alphabet[0])))"
221 ]
222 },
223 {
224 "cell_type": "code",
225 "execution_count": 10,
226 "metadata": {},
227 "outputs": [
228 {
229 "data": {
230 "text/plain": [
231 "'arcnimpebdfghjkloqstuvwxyz'"
232 ]
233 },
234 "execution_count": 10,
235 "metadata": {},
236 "output_type": "execute_result"
237 }
238 ],
239 "source": [
240 "keyword_cipher_alphabet_of('arcanaimperii')"
241 ]
242 },
243 {
244 "cell_type": "code",
245 "execution_count": 10,
246 "metadata": {},
247 "outputs": [
248 {
249 "name": "stdout",
250 "output_type": "stream",
251 "text": [
252 "cipher.log enigma.log\r\n"
253 ]
254 }
255 ],
256 "source": [
257 "!ls *log"
258 ]
259 },
260 {
261 "cell_type": "code",
262 "execution_count": 15,
263 "metadata": {},
264 "outputs": [
265 {
266 "data": {
267 "text/plain": [
268 "['2018-12-05 18:27:56,697 - cipherbreak - DEBUG - Simulated annealing worker 8: iteration 0, temperature 200, current alphabet itakbjsqenguhcpmwylvrfxodz, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosninychsseapitetreshmonaauccesedoadogatusnedint',\n",
269 " '2018-12-05 18:27:56,698 - cipherbreak - DEBUG - Simulated annealing worker 0: iteration 0, temperature 200, current alphabet itakbjsqenguhcpmwylvrfxodz, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosninycassehkitetresamonhhuccesedohdoghtusnedint',\n",
270 " '2018-12-05 18:27:56,698 - cipherbreak - DEBUG - Simulated annealing worker 2: iteration 0, temperature 200, current alphabet itakbjsqenguhcpmwylvrfxodz, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosnhnycasseiphtetresamoniiuccesedoidogitusnedhnt',\n",
271 " '2018-12-05 18:27:56,698 - cipherbreak - DEBUG - Simulated annealing worker 1: iteration 0, temperature 200, current alphabet itakbjsqenguhcpmwylvrfxodz, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosnhnycasseiphtetresamoniiuccesedoidogitusnedhnt',\n",
272 " '2018-12-05 18:27:56,699 - cipherbreak - DEBUG - Simulated annealing worker 3: iteration 0, temperature 200, current alphabet itakbjsqenguhcpmwyrvlfxodz, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17467.215783229432, best_plaintext geosninycassehvitetresamonhhuccesedohdoghtusnedint']"
273 ]
274 },
275 "execution_count": 15,
276 "metadata": {},
277 "output_type": "execute_result"
278 }
279 ],
280 "source": [
281 "recs = open('cipher.log').read().splitlines()\n",
282 "recs[:5]"
283 ]
284 },
285 {
286 "cell_type": "code",
287 "execution_count": 11,
288 "metadata": {},
289 "outputs": [],
290 "source": [
291 "def log_parse(text):\n",
292 " parts = text.split(' - ')\n",
293 " dt = datetime.strptime(parts[0], \"%Y-%m-%d %H:%M:%S,%f\")\n",
294 " blurb = parts[-1]\n",
295 " worker = int(re.search('worker (\\d+)', blurb).group(1))\n",
296 " iteration = int(re.search('iteration (\\d+)', blurb).group(1))\n",
297 " fitness = float(re.search('fitness (-?\\d+\\.\\d+)', blurb).group(1))\n",
298 " return {'time': dt, 'worker': worker, 'iteration': iteration, 'fitness': fitness}"
299 ]
300 },
301 {
302 "cell_type": "code",
303 "execution_count": 46,
304 "metadata": {},
305 "outputs": [
306 {
307 "data": {
308 "text/plain": [
309 "{'time': datetime.datetime(2018, 12, 5, 18, 27, 56, 697000),\n",
310 " 'worker': 8,\n",
311 " 'iteration': 0,\n",
312 " 'fitness': -17464.568516864027}"
313 ]
314 },
315 "execution_count": 46,
316 "metadata": {},
317 "output_type": "execute_result"
318 }
319 ],
320 "source": [
321 "log_parse(recs[0])"
322 ]
323 },
324 {
325 "cell_type": "code",
326 "execution_count": 47,
327 "metadata": {},
328 "outputs": [
329 {
330 "data": {
331 "text/plain": [
332 "[{'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 557000),\n",
333 " 'worker': 8,\n",
334 " 'iteration': 500,\n",
335 " 'fitness': -19506.212009034196},\n",
336 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 635000),\n",
337 " 'worker': 9,\n",
338 " 'iteration': 500,\n",
339 " 'fitness': -18038.95559884915},\n",
340 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 993000),\n",
341 " 'worker': 5,\n",
342 " 'iteration': 500,\n",
343 " 'fitness': -17327.223609157583},\n",
344 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 995000),\n",
345 " 'worker': 3,\n",
346 " 'iteration': 500,\n",
347 " 'fitness': -18946.41644162794},\n",
348 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 996000),\n",
349 " 'worker': 2,\n",
350 " 'iteration': 500,\n",
351 " 'fitness': -21014.221984327247},\n",
352 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 998000),\n",
353 " 'worker': 7,\n",
354 " 'iteration': 500,\n",
355 " 'fitness': -20093.45361142934},\n",
356 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 998000),\n",
357 " 'worker': 4,\n",
358 " 'iteration': 500,\n",
359 " 'fitness': -20003.348090823332},\n",
360 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 999000),\n",
361 " 'worker': 1,\n",
362 " 'iteration': 500,\n",
363 " 'fitness': -19134.666194684774},\n",
364 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58),\n",
365 " 'worker': 6,\n",
366 " 'iteration': 500,\n",
367 " 'fitness': -18597.23462090166},\n",
368 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 1000),\n",
369 " 'worker': 0,\n",
370 " 'iteration': 500,\n",
371 " 'fitness': -18848.039141799247},\n",
372 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 276000),\n",
373 " 'worker': 8,\n",
374 " 'iteration': 1000,\n",
375 " 'fitness': -19011.452688727233},\n",
376 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 352000),\n",
377 " 'worker': 9,\n",
378 " 'iteration': 1000,\n",
379 " 'fitness': -18741.08747198464},\n",
380 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 954000),\n",
381 " 'worker': 8,\n",
382 " 'iteration': 1500,\n",
383 " 'fitness': -19324.48074341969},\n",
384 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 56000),\n",
385 " 'worker': 9,\n",
386 " 'iteration': 1500,\n",
387 " 'fitness': -19194.180212110503},\n",
388 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 273000),\n",
389 " 'worker': 5,\n",
390 " 'iteration': 1000,\n",
391 " 'fitness': -18079.493977379658},\n",
392 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 275000),\n",
393 " 'worker': 2,\n",
394 " 'iteration': 1000,\n",
395 " 'fitness': -19586.334887748137},\n",
396 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 276000),\n",
397 " 'worker': 7,\n",
398 " 'iteration': 1000,\n",
399 " 'fitness': -19595.283669119322},\n",
400 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 282000),\n",
401 " 'worker': 3,\n",
402 " 'iteration': 1000,\n",
403 " 'fitness': -19556.303534097875},\n",
404 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 283000),\n",
405 " 'worker': 0,\n",
406 " 'iteration': 1000,\n",
407 " 'fitness': -19060.650868638797},\n",
408 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 285000),\n",
409 " 'worker': 6,\n",
410 " 'iteration': 1000,\n",
411 " 'fitness': -19048.945801444726},\n",
412 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 286000),\n",
413 " 'worker': 1,\n",
414 " 'iteration': 1000,\n",
415 " 'fitness': -17780.893262937854},\n",
416 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 288000),\n",
417 " 'worker': 4,\n",
418 " 'iteration': 1000,\n",
419 " 'fitness': -19871.461472608527},\n",
420 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 656000),\n",
421 " 'worker': 8,\n",
422 " 'iteration': 2000,\n",
423 " 'fitness': -18541.60058087154},\n",
424 " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 762000),\n",
425 " 'worker': 9,\n",
426 " 'iteration': 2000,\n",
427 " 'fitness': -18139.230527668664},\n",
428 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 307000),\n",
429 " 'worker': 4,\n",
430 " 'iteration': 1500,\n",
431 " 'fitness': -19615.20233677959},\n",
432 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 341000),\n",
433 " 'worker': 8,\n",
434 " 'iteration': 2500,\n",
435 " 'fitness': -18792.355486875542},\n",
436 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 538000),\n",
437 " 'worker': 5,\n",
438 " 'iteration': 1500,\n",
439 " 'fitness': -19614.656719789735},\n",
440 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 540000),\n",
441 " 'worker': 2,\n",
442 " 'iteration': 1500,\n",
443 " 'fitness': -19420.645677197903},\n",
444 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 547000),\n",
445 " 'worker': 3,\n",
446 " 'iteration': 1500,\n",
447 " 'fitness': -19516.69841398513},\n",
448 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 547000),\n",
449 " 'worker': 7,\n",
450 " 'iteration': 1500,\n",
451 " 'fitness': -19230.947512617677},\n",
452 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 552000),\n",
453 " 'worker': 6,\n",
454 " 'iteration': 1500,\n",
455 " 'fitness': -19062.24295819328},\n",
456 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 555000),\n",
457 " 'worker': 1,\n",
458 " 'iteration': 1500,\n",
459 " 'fitness': -19005.04145812939},\n",
460 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 559000),\n",
461 " 'worker': 0,\n",
462 " 'iteration': 1500,\n",
463 " 'fitness': -19678.103852267177},\n",
464 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 826000),\n",
465 " 'worker': 9,\n",
466 " 'iteration': 2500,\n",
467 " 'fitness': -18554.14253773069},\n",
468 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 996000),\n",
469 " 'worker': 4,\n",
470 " 'iteration': 2000,\n",
471 " 'fitness': -19797.711974806178},\n",
472 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 15000),\n",
473 " 'worker': 8,\n",
474 " 'iteration': 3000,\n",
475 " 'fitness': -18929.774792204666},\n",
476 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 684000),\n",
477 " 'worker': 4,\n",
478 " 'iteration': 2500,\n",
479 " 'fitness': -18404.449071388823},\n",
480 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 727000),\n",
481 " 'worker': 8,\n",
482 " 'iteration': 3500,\n",
483 " 'fitness': -18413.47164984584},\n",
484 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 815000),\n",
485 " 'worker': 2,\n",
486 " 'iteration': 2000,\n",
487 " 'fitness': -18449.545495871713},\n",
488 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 817000),\n",
489 " 'worker': 5,\n",
490 " 'iteration': 2000,\n",
491 " 'fitness': -20293.16285350564},\n",
492 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 821000),\n",
493 " 'worker': 7,\n",
494 " 'iteration': 2000,\n",
495 " 'fitness': -18382.9684664272},\n",
496 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 828000),\n",
497 " 'worker': 3,\n",
498 " 'iteration': 2000,\n",
499 " 'fitness': -19269.277188085696},\n",
500 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 838000),\n",
501 " 'worker': 6,\n",
502 " 'iteration': 2000,\n",
503 " 'fitness': -18034.64907452757},\n",
504 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 838000),\n",
505 " 'worker': 1,\n",
506 " 'iteration': 2000,\n",
507 " 'fitness': -20212.029343114173},\n",
508 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 848000),\n",
509 " 'worker': 0,\n",
510 " 'iteration': 2000,\n",
511 " 'fitness': -18398.93978482426},\n",
512 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 106000),\n",
513 " 'worker': 9,\n",
514 " 'iteration': 3000,\n",
515 " 'fitness': -17022.580186111096},\n",
516 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 370000),\n",
517 " 'worker': 4,\n",
518 " 'iteration': 3000,\n",
519 " 'fitness': -18341.09176296995},\n",
520 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 436000),\n",
521 " 'worker': 8,\n",
522 " 'iteration': 4000,\n",
523 " 'fitness': -17620.87851235687},\n",
524 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 49000),\n",
525 " 'worker': 4,\n",
526 " 'iteration': 3500,\n",
527 " 'fitness': -18629.108009257943},\n",
528 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 79000),\n",
529 " 'worker': 2,\n",
530 " 'iteration': 2500,\n",
531 " 'fitness': -18229.656265246995},\n",
532 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 83000),\n",
533 " 'worker': 5,\n",
534 " 'iteration': 2500,\n",
535 " 'fitness': -19086.384794143425},\n",
536 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 85000),\n",
537 " 'worker': 7,\n",
538 " 'iteration': 2500,\n",
539 " 'fitness': -17864.67484051336},\n",
540 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 95000),\n",
541 " 'worker': 3,\n",
542 " 'iteration': 2500,\n",
543 " 'fitness': -18518.178105852596},\n",
544 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 102000),\n",
545 " 'worker': 8,\n",
546 " 'iteration': 4500,\n",
547 " 'fitness': -18886.480601943767},\n",
548 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 104000),\n",
549 " 'worker': 6,\n",
550 " 'iteration': 2500,\n",
551 " 'fitness': -17969.995425476307},\n",
552 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 109000),\n",
553 " 'worker': 1,\n",
554 " 'iteration': 2500,\n",
555 " 'fitness': -17400.637120062693},\n",
556 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 121000),\n",
557 " 'worker': 0,\n",
558 " 'iteration': 2500,\n",
559 " 'fitness': -18747.729945027986},\n",
560 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 384000),\n",
561 " 'worker': 9,\n",
562 " 'iteration': 3500,\n",
563 " 'fitness': -20705.07819308174},\n",
564 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 786000),\n",
565 " 'worker': 8,\n",
566 " 'iteration': 5000,\n",
567 " 'fitness': -18084.38300999115},\n",
568 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 835000),\n",
569 " 'worker': 2,\n",
570 " 'iteration': 3000,\n",
571 " 'fitness': -18620.50568328267},\n",
572 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 180000),\n",
573 " 'worker': 4,\n",
574 " 'iteration': 4000,\n",
575 " 'fitness': -18336.454140137244},\n",
576 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 361000),\n",
577 " 'worker': 1,\n",
578 " 'iteration': 3000,\n",
579 " 'fitness': -19478.17147468461},\n",
580 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 370000),\n",
581 " 'worker': 7,\n",
582 " 'iteration': 3000,\n",
583 " 'fitness': -17877.74019133228},\n",
584 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 371000),\n",
585 " 'worker': 3,\n",
586 " 'iteration': 3000,\n",
587 " 'fitness': -19048.338653729337},\n",
588 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 376000),\n",
589 " 'worker': 5,\n",
590 " 'iteration': 3000,\n",
591 " 'fitness': -20898.734244859043},\n",
592 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 386000),\n",
593 " 'worker': 6,\n",
594 " 'iteration': 3000,\n",
595 " 'fitness': -16939.27057282322},\n",
596 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 409000),\n",
597 " 'worker': 0,\n",
598 " 'iteration': 3000,\n",
599 " 'fitness': -19854.447324573906},\n",
600 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 533000),\n",
601 " 'worker': 2,\n",
602 " 'iteration': 3500,\n",
603 " 'fitness': -17187.53758324829},\n",
604 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 648000),\n",
605 " 'worker': 8,\n",
606 " 'iteration': 5500,\n",
607 " 'fitness': -18895.743869174006},\n",
608 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 669000),\n",
609 " 'worker': 9,\n",
610 " 'iteration': 4000,\n",
611 " 'fitness': -19501.45392767446},\n",
612 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 26000),\n",
613 " 'worker': 1,\n",
614 " 'iteration': 3500,\n",
615 " 'fitness': -19606.201177583636},\n",
616 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 245000),\n",
617 " 'worker': 2,\n",
618 " 'iteration': 4000,\n",
619 " 'fitness': -18393.7240060119},\n",
620 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 444000),\n",
621 " 'worker': 4,\n",
622 " 'iteration': 4500,\n",
623 " 'fitness': -18387.174172922445},\n",
624 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 635000),\n",
625 " 'worker': 3,\n",
626 " 'iteration': 3500,\n",
627 " 'fitness': -17041.761138586608},\n",
628 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 642000),\n",
629 " 'worker': 7,\n",
630 " 'iteration': 3500,\n",
631 " 'fitness': -17392.748738228944},\n",
632 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 650000),\n",
633 " 'worker': 6,\n",
634 " 'iteration': 3500,\n",
635 " 'fitness': -17330.16526324624},\n",
636 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 667000),\n",
637 " 'worker': 5,\n",
638 " 'iteration': 3500,\n",
639 " 'fitness': -19135.242019282377},\n",
640 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 697000),\n",
641 " 'worker': 0,\n",
642 " 'iteration': 3500,\n",
643 " 'fitness': -17418.19577491629},\n",
644 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 753000),\n",
645 " 'worker': 1,\n",
646 " 'iteration': 4000,\n",
647 " 'fitness': -19393.961211753554},\n",
648 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 934000),\n",
649 " 'worker': 8,\n",
650 " 'iteration': 6000,\n",
651 " 'fitness': -17830.33557166024},\n",
652 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 945000),\n",
653 " 'worker': 9,\n",
654 " 'iteration': 4500,\n",
655 " 'fitness': -17892.435290290625},\n",
656 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 981000),\n",
657 " 'worker': 2,\n",
658 " 'iteration': 4500,\n",
659 " 'fitness': -18698.144154223184},\n",
660 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 435000),\n",
661 " 'worker': 1,\n",
662 " 'iteration': 4500,\n",
663 " 'fitness': -18800.545050055454},\n",
664 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 503000),\n",
665 " 'worker': 0,\n",
666 " 'iteration': 4000,\n",
667 " 'fitness': -16632.42554157389},\n",
668 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 719000),\n",
669 " 'worker': 4,\n",
670 " 'iteration': 5000,\n",
671 " 'fitness': -18280.140281591077},\n",
672 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 912000),\n",
673 " 'worker': 3,\n",
674 " 'iteration': 4000,\n",
675 " 'fitness': -18542.627305858536},\n",
676 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 916000),\n",
677 " 'worker': 7,\n",
678 " 'iteration': 4000,\n",
679 " 'fitness': -18493.69033006823},\n",
680 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 927000),\n",
681 " 'worker': 6,\n",
682 " 'iteration': 4000,\n",
683 " 'fitness': -17393.388119756386},\n",
684 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 953000),\n",
685 " 'worker': 5,\n",
686 " 'iteration': 4000,\n",
687 " 'fitness': -17503.069503416547},\n",
688 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 126000),\n",
689 " 'worker': 1,\n",
690 " 'iteration': 5000,\n",
691 " 'fitness': -17390.336776695618},\n",
692 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 165000),\n",
693 " 'worker': 0,\n",
694 " 'iteration': 4500,\n",
695 " 'fitness': -17634.827628782918},\n",
696 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 200000),\n",
697 " 'worker': 8,\n",
698 " 'iteration': 6500,\n",
699 " 'fitness': -17428.607305695987},\n",
700 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 219000),\n",
701 " 'worker': 9,\n",
702 " 'iteration': 5000,\n",
703 " 'fitness': -18170.02084407561},\n",
704 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 270000),\n",
705 " 'worker': 2,\n",
706 " 'iteration': 5000,\n",
707 " 'fitness': -17827.94293353811},\n",
708 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 856000),\n",
709 " 'worker': 5,\n",
710 " 'iteration': 4500,\n",
711 " 'fitness': -18082.931621876454},\n",
712 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 983000),\n",
713 " 'worker': 4,\n",
714 " 'iteration': 5500,\n",
715 " 'fitness': -18595.65422981538},\n",
716 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 62000),\n",
717 " 'worker': 1,\n",
718 " 'iteration': 5500,\n",
719 " 'fitness': -17193.700008245654},\n",
720 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 183000),\n",
721 " 'worker': 3,\n",
722 " 'iteration': 4500,\n",
723 " 'fitness': -19429.72065240524},\n",
724 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 185000),\n",
725 " 'worker': 7,\n",
726 " 'iteration': 4500,\n",
727 " 'fitness': -18511.027065967108},\n",
728 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 195000),\n",
729 " 'worker': 6,\n",
730 " 'iteration': 4500,\n",
731 " 'fitness': -17859.105332243653},\n",
732 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 442000),\n",
733 " 'worker': 0,\n",
734 " 'iteration': 5000,\n",
735 " 'fitness': -18033.2447620835},\n",
736 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 487000),\n",
737 " 'worker': 8,\n",
738 " 'iteration': 7000,\n",
739 " 'fitness': -16984.79188180881},\n",
740 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 489000),\n",
741 " 'worker': 9,\n",
742 " 'iteration': 5500,\n",
743 " 'fitness': -18378.049112148143},\n",
744 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 533000),\n",
745 " 'worker': 2,\n",
746 " 'iteration': 5500,\n",
747 " 'fitness': -17716.896348117207},\n",
748 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 592000),\n",
749 " 'worker': 5,\n",
750 " 'iteration': 5000,\n",
751 " 'fitness': -20390.806341044932},\n",
752 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 798000),\n",
753 " 'worker': 1,\n",
754 " 'iteration': 6000,\n",
755 " 'fitness': -18116.594707989414},\n",
756 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 260000),\n",
757 " 'worker': 4,\n",
758 " 'iteration': 6000,\n",
759 " 'fitness': -18894.618827025028},\n",
760 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 376000),\n",
761 " 'worker': 5,\n",
762 " 'iteration': 5500,\n",
763 " 'fitness': -19739.451268522404},\n",
764 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 459000),\n",
765 " 'worker': 3,\n",
766 " 'iteration': 5000,\n",
767 " 'fitness': -18602.940996743786},\n",
768 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 467000),\n",
769 " 'worker': 7,\n",
770 " 'iteration': 5000,\n",
771 " 'fitness': -17799.05403285316},\n",
772 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 474000),\n",
773 " 'worker': 6,\n",
774 " 'iteration': 5000,\n",
775 " 'fitness': -16545.601685561487},\n",
776 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 695000),\n",
777 " 'worker': 1,\n",
778 " 'iteration': 6500,\n",
779 " 'fitness': -15521.23314383998},\n",
780 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 705000),\n",
781 " 'worker': 0,\n",
782 " 'iteration': 5500,\n",
783 " 'fitness': -16848.17732266875},\n",
784 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 750000),\n",
785 " 'worker': 8,\n",
786 " 'iteration': 7500,\n",
787 " 'fitness': -17651.668173724873},\n",
788 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 766000),\n",
789 " 'worker': 9,\n",
790 " 'iteration': 6000,\n",
791 " 'fitness': -17678.75330561347},\n",
792 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 815000),\n",
793 " 'worker': 2,\n",
794 " 'iteration': 6000,\n",
795 " 'fitness': -17889.376509552665},\n",
796 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 524000),\n",
797 " 'worker': 4,\n",
798 " 'iteration': 6500,\n",
799 " 'fitness': -18659.056280723984},\n",
800 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 613000),\n",
801 " 'worker': 9,\n",
802 " 'iteration': 6500,\n",
803 " 'fitness': -17650.74134056951},\n",
804 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 620000),\n",
805 " 'worker': 2,\n",
806 " 'iteration': 6500,\n",
807 " 'fitness': -18187.980824614297},\n",
808 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 655000),\n",
809 " 'worker': 5,\n",
810 " 'iteration': 6000,\n",
811 " 'fitness': -18529.548428506027},\n",
812 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 721000),\n",
813 " 'worker': 3,\n",
814 " 'iteration': 5500,\n",
815 " 'fitness': -18410.71610809687},\n",
816 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 733000),\n",
817 " 'worker': 6,\n",
818 " 'iteration': 5500,\n",
819 " 'fitness': -16826.458193958388},\n",
820 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 736000),\n",
821 " 'worker': 7,\n",
822 " 'iteration': 5500,\n",
823 " 'fitness': -18002.74242422733},\n",
824 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 966000),\n",
825 " 'worker': 1,\n",
826 " 'iteration': 7000,\n",
827 " 'fitness': -16047.53530288506},\n",
828 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 977000),\n",
829 " 'worker': 0,\n",
830 " 'iteration': 6000,\n",
831 " 'fitness': -16154.124706442182},\n",
832 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 22000),\n",
833 " 'worker': 8,\n",
834 " 'iteration': 8000,\n",
835 " 'fitness': -16817.91911998762},\n",
836 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 287000),\n",
837 " 'worker': 9,\n",
838 " 'iteration': 7000,\n",
839 " 'fitness': -17358.130163552203},\n",
840 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 324000),\n",
841 " 'worker': 2,\n",
842 " 'iteration': 7000,\n",
843 " 'fitness': -16861.63470732543},\n",
844 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 799000),\n",
845 " 'worker': 4,\n",
846 " 'iteration': 7000,\n",
847 " 'fitness': -17953.192243685102},\n",
848 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 914000),\n",
849 " 'worker': 5,\n",
850 " 'iteration': 6500,\n",
851 " 'fitness': -17889.94069028997},\n",
852 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 944000),\n",
853 " 'worker': 9,\n",
854 " 'iteration': 7500,\n",
855 " 'fitness': -17143.640914346324},\n",
856 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 994000),\n",
857 " 'worker': 3,\n",
858 " 'iteration': 6000,\n",
859 " 'fitness': -18536.570483679698},\n",
860 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 998000),\n",
861 " 'worker': 2,\n",
862 " 'iteration': 7500,\n",
863 " 'fitness': -16539.514654309765},\n",
864 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 4000),\n",
865 " 'worker': 6,\n",
866 " 'iteration': 6000,\n",
867 " 'fitness': -16679.173786884076},\n",
868 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 12000),\n",
869 " 'worker': 7,\n",
870 " 'iteration': 6000,\n",
871 " 'fitness': -18175.711713672594},\n",
872 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 225000),\n",
873 " 'worker': 1,\n",
874 " 'iteration': 7500,\n",
875 " 'fitness': -16452.52144633103},\n",
876 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 233000),\n",
877 " 'worker': 0,\n",
878 " 'iteration': 6500,\n",
879 " 'fitness': -16452.404246043414},\n",
880 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 289000),\n",
881 " 'worker': 8,\n",
882 " 'iteration': 8500,\n",
883 " 'fitness': -17006.474846719855},\n",
884 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 641000),\n",
885 " 'worker': 9,\n",
886 " 'iteration': 8000,\n",
887 " 'fitness': -16614.803388816013},\n",
888 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 901000),\n",
889 " 'worker': 0,\n",
890 " 'iteration': 7000,\n",
891 " 'fitness': -16677.326420272075},\n",
892 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 58000),\n",
893 " 'worker': 4,\n",
894 " 'iteration': 7500,\n",
895 " 'fitness': -18339.282467115518},\n",
896 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 72000),\n",
897 " 'worker': 2,\n",
898 " 'iteration': 8000,\n",
899 " 'fitness': -17301.8417114411},\n",
900 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 182000),\n",
901 " 'worker': 5,\n",
902 " 'iteration': 7000,\n",
903 " 'fitness': -17334.537156849256},\n",
904 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 261000),\n",
905 " 'worker': 3,\n",
906 " 'iteration': 6500,\n",
907 " 'fitness': -18031.285622561743},\n",
908 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 268000),\n",
909 " 'worker': 6,\n",
910 " 'iteration': 6500,\n",
911 " 'fitness': -16422.7375527152},\n",
912 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 279000),\n",
913 " 'worker': 7,\n",
914 " 'iteration': 6500,\n",
915 " 'fitness': -17504.187460278605},\n",
916 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 326000),\n",
917 " 'worker': 9,\n",
918 " 'iteration': 8500,\n",
919 " 'fitness': -16971.464100835325},\n",
920 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 493000),\n",
921 " 'worker': 1,\n",
922 " 'iteration': 8000,\n",
923 " 'fitness': -15773.499250805828},\n",
924 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 555000),\n",
925 " 'worker': 8,\n",
926 " 'iteration': 9000,\n",
927 " 'fitness': -15226.057813342175},\n",
928 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 575000),\n",
929 " 'worker': 0,\n",
930 " 'iteration': 7500,\n",
931 " 'fitness': -17240.73733527656},\n",
932 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 994000),\n",
933 " 'worker': 9,\n",
934 " 'iteration': 9000,\n",
935 " 'fitness': -16049.627773653003},\n",
936 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 267000),\n",
937 " 'worker': 0,\n",
938 " 'iteration': 8000,\n",
939 " 'fitness': -17538.610976751468},\n",
940 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 331000),\n",
941 " 'worker': 2,\n",
942 " 'iteration': 8500,\n",
943 " 'fitness': -15999.749156327724},\n",
944 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 333000),\n",
945 " 'worker': 4,\n",
946 " 'iteration': 8000,\n",
947 " 'fitness': -18309.78608355871},\n",
948 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 442000),\n",
949 " 'worker': 5,\n",
950 " 'iteration': 7500,\n",
951 " 'fitness': -16256.00720008966},\n",
952 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 528000),\n",
953 " 'worker': 3,\n",
954 " 'iteration': 7000,\n",
955 " 'fitness': -17581.20303046428},\n",
956 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 534000),\n",
957 " 'worker': 6,\n",
958 " 'iteration': 7000,\n",
959 " 'fitness': -16925.788998820055},\n",
960 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 554000),\n",
961 " 'worker': 7,\n",
962 " 'iteration': 7000,\n",
963 " 'fitness': -18572.05453072059},\n",
964 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 678000),\n",
965 " 'worker': 9,\n",
966 " 'iteration': 9500,\n",
967 " 'fitness': -15830.921286816676},\n",
968 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 752000),\n",
969 " 'worker': 1,\n",
970 " 'iteration': 8500,\n",
971 " 'fitness': -16599.40684997735},\n",
972 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 807000),\n",
973 " 'worker': 8,\n",
974 " 'iteration': 9500,\n",
975 " 'fitness': -17117.33019989978},\n",
976 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 176000),\n",
977 " 'worker': 0,\n",
978 " 'iteration': 8500,\n",
979 " 'fitness': -16889.43933685168},\n",
980 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 247000),\n",
981 " 'worker': 5,\n",
982 " 'iteration': 8000,\n",
983 " 'fitness': -16374.072710564345},\n",
984 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 488000),\n",
985 " 'worker': 9,\n",
986 " 'iteration': 10000,\n",
987 " 'fitness': -16153.189088061568},\n",
988 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 590000),\n",
989 " 'worker': 4,\n",
990 " 'iteration': 8500,\n",
991 " 'fitness': -17260.794949962612},\n",
992 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 600000),\n",
993 " 'worker': 2,\n",
994 " 'iteration': 9000,\n",
995 " 'fitness': -16764.03048646914},\n",
996 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 791000),\n",
997 " 'worker': 3,\n",
998 " 'iteration': 7500,\n",
999 " 'fitness': -17960.814964208697},\n",
1000 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 807000),\n",
1001 " 'worker': 6,\n",
1002 " 'iteration': 7500,\n",
1003 " 'fitness': -16817.494896507043},\n",
1004 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 818000),\n",
1005 " 'worker': 7,\n",
1006 " 'iteration': 7500,\n",
1007 " 'fitness': -17811.92361311319},\n",
1008 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 918000),\n",
1009 " 'worker': 0,\n",
1010 " 'iteration': 9000,\n",
1011 " 'fitness': -15703.685929976222},\n",
1012 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 921000),\n",
1013 " 'worker': 5,\n",
1014 " 'iteration': 8500,\n",
1015 " 'fitness': -15528.756041988652},\n",
1016 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 45000),\n",
1017 " 'worker': 1,\n",
1018 " 'iteration': 9000,\n",
1019 " 'fitness': -15689.40995208135},\n",
1020 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 76000),\n",
1021 " 'worker': 8,\n",
1022 " 'iteration': 10000,\n",
1023 " 'fitness': -15898.65336137873},\n",
1024 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 744000),\n",
1025 " 'worker': 9,\n",
1026 " 'iteration': 10500,\n",
1027 " 'fitness': -15544.678618934651},\n",
1028 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 792000),\n",
1029 " 'worker': 0,\n",
1030 " 'iteration': 9500,\n",
1031 " 'fitness': -16813.40458563439},\n",
1032 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 827000),\n",
1033 " 'worker': 5,\n",
1034 " 'iteration': 9000,\n",
1035 " 'fitness': -15269.089304752624},\n",
1036 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 856000),\n",
1037 " 'worker': 4,\n",
1038 " 'iteration': 9000,\n",
1039 " 'fitness': -16424.939130016453},\n",
1040 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 866000),\n",
1041 " 'worker': 2,\n",
1042 " 'iteration': 9500,\n",
1043 " 'fitness': -15617.851287894646},\n",
1044 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 64000),\n",
1045 " 'worker': 3,\n",
1046 " 'iteration': 8000,\n",
1047 " 'fitness': -17258.223976007055},\n",
1048 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 79000),\n",
1049 " 'worker': 6,\n",
1050 " 'iteration': 8000,\n",
1051 " 'fitness': -16706.30829529822},\n",
1052 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 91000),\n",
1053 " 'worker': 7,\n",
1054 " 'iteration': 8000,\n",
1055 " 'fitness': -16172.10089134246},\n",
1056 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 309000),\n",
1057 " 'worker': 1,\n",
1058 " 'iteration': 9500,\n",
1059 " 'fitness': -15278.98850746955},\n",
1060 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 337000),\n",
1061 " 'worker': 8,\n",
1062 " 'iteration': 10500,\n",
1063 " 'fitness': -15970.498815455323},\n",
1064 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 484000),\n",
1065 " 'worker': 0,\n",
1066 " 'iteration': 10000,\n",
1067 " 'fitness': -16965.959540158852},\n",
1068 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 497000),\n",
1069 " 'worker': 5,\n",
1070 " 'iteration': 9500,\n",
1071 " 'fitness': -16171.253641185343},\n",
1072 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 7000),\n",
1073 " 'worker': 9,\n",
1074 " 'iteration': 11000,\n",
1075 " 'fitness': -15481.776383794944},\n",
1076 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 106000),\n",
1077 " 'worker': 4,\n",
1078 " 'iteration': 9500,\n",
1079 " 'fitness': -16114.148485332731},\n",
1080 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 133000),\n",
1081 " 'worker': 2,\n",
1082 " 'iteration': 10000,\n",
1083 " 'fitness': -15897.207732365574},\n",
1084 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 198000),\n",
1085 " 'worker': 5,\n",
1086 " 'iteration': 10000,\n",
1087 " 'fitness': -15976.32225367706},\n",
1088 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 239000),\n",
1089 " 'worker': 0,\n",
1090 " 'iteration': 10500,\n",
1091 " 'fitness': -16419.503701784342},\n",
1092 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 324000),\n",
1093 " 'worker': 3,\n",
1094 " 'iteration': 8500,\n",
1095 " 'fitness': -18014.381767746403},\n",
1096 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 340000),\n",
1097 " 'worker': 6,\n",
1098 " 'iteration': 8500,\n",
1099 " 'fitness': -16178.495320022208},\n",
1100 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 345000),\n",
1101 " 'worker': 7,\n",
1102 " 'iteration': 8500,\n",
1103 " 'fitness': -15721.917263183206},\n",
1104 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 584000),\n",
1105 " 'worker': 1,\n",
1106 " 'iteration': 10000,\n",
1107 " 'fitness': -15166.897915355234},\n",
1108 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 601000),\n",
1109 " 'worker': 8,\n",
1110 " 'iteration': 11000,\n",
1111 " 'fitness': -15495.913965599955},\n",
1112 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 20000),\n",
1113 " 'worker': 0,\n",
1114 " 'iteration': 11000,\n",
1115 " 'fitness': -16055.595445458615},\n",
1116 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 46000),\n",
1117 " 'worker': 5,\n",
1118 " 'iteration': 10500,\n",
1119 " 'fitness': -16352.652198437934},\n",
1120 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 263000),\n",
1121 " 'worker': 9,\n",
1122 " 'iteration': 11500,\n",
1123 " 'fitness': -15910.295343982507},\n",
1124 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 375000),\n",
1125 " 'worker': 4,\n",
1126 " 'iteration': 10000,\n",
1127 " 'fitness': -15442.82645508135},\n",
1128 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 389000),\n",
1129 " 'worker': 2,\n",
1130 " 'iteration': 10500,\n",
1131 " 'fitness': -15805.574304375701},\n",
1132 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 597000),\n",
1133 " 'worker': 3,\n",
1134 " 'iteration': 9000,\n",
1135 " 'fitness': -17576.045133748434},\n",
1136 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 611000),\n",
1137 " 'worker': 6,\n",
1138 " 'iteration': 9000,\n",
1139 " 'fitness': -15855.870210506502},\n",
1140 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 614000),\n",
1141 " 'worker': 7,\n",
1142 " 'iteration': 9000,\n",
1143 " 'fitness': -16943.864439542413},\n",
1144 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 691000),\n",
1145 " 'worker': 0,\n",
1146 " 'iteration': 11500,\n",
1147 " 'fitness': -15555.725375024595},\n",
1148 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 729000),\n",
1149 " 'worker': 5,\n",
1150 " 'iteration': 11000,\n",
1151 " 'fitness': -15611.291563558481},\n",
1152 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 845000),\n",
1153 " 'worker': 1,\n",
1154 " 'iteration': 10500,\n",
1155 " 'fitness': -15877.554815426058},\n",
1156 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 849000),\n",
1157 " 'worker': 8,\n",
1158 " 'iteration': 11500,\n",
1159 " 'fitness': -15316.43445909589},\n",
1160 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 382000),\n",
1161 " 'worker': 0,\n",
1162 " 'iteration': 12000,\n",
1163 " 'fitness': -15931.767571476821},\n",
1164 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 420000),\n",
1165 " 'worker': 5,\n",
1166 " 'iteration': 11500,\n",
1167 " 'fitness': -15532.023378075712},\n",
1168 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 523000),\n",
1169 " 'worker': 9,\n",
1170 " 'iteration': 12000,\n",
1171 " 'fitness': -15182.326272203387},\n",
1172 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 545000),\n",
1173 " 'worker': 4,\n",
1174 " 'iteration': 10500,\n",
1175 " 'fitness': -15992.144134516864},\n",
1176 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 653000),\n",
1177 " 'worker': 2,\n",
1178 " 'iteration': 11000,\n",
1179 " 'fitness': -15948.179868074802},\n",
1180 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 854000),\n",
1181 " 'worker': 3,\n",
1182 " 'iteration': 9500,\n",
1183 " 'fitness': -16698.55512123499},\n",
1184 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 867000),\n",
1185 " 'worker': 6,\n",
1186 " 'iteration': 9500,\n",
1187 " 'fitness': -15737.678737800343},\n",
1188 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 870000),\n",
1189 " 'worker': 7,\n",
1190 " 'iteration': 9500,\n",
1191 " 'fitness': -16180.902687655534},\n",
1192 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 99000),\n",
1193 " 'worker': 5,\n",
1194 " 'iteration': 12000,\n",
1195 " 'fitness': -15522.1739409343},\n",
1196 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 111000),\n",
1197 " 'worker': 8,\n",
1198 " 'iteration': 12000,\n",
1199 " 'fitness': -15415.186441688731},\n",
1200 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 115000),\n",
1201 " 'worker': 1,\n",
1202 " 'iteration': 11000,\n",
1203 " 'fitness': -15611.885500014081},\n",
1204 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 208000),\n",
1205 " 'worker': 4,\n",
1206 " 'iteration': 11000,\n",
1207 " 'fitness': -15870.803780938573},\n",
1208 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 562000),\n",
1209 " 'worker': 0,\n",
1210 " 'iteration': 12500,\n",
1211 " 'fitness': -15149.982360435166},\n",
1212 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 773000),\n",
1213 " 'worker': 9,\n",
1214 " 'iteration': 12500,\n",
1215 " 'fitness': -15175.194651961283},\n",
1216 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 774000),\n",
1217 " 'worker': 5,\n",
1218 " 'iteration': 12500,\n",
1219 " 'fitness': -15479.452140178499},\n",
1220 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 867000),\n",
1221 " 'worker': 4,\n",
1222 " 'iteration': 11500,\n",
1223 " 'fitness': -15683.571040993067},\n",
1224 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 905000),\n",
1225 " 'worker': 2,\n",
1226 " 'iteration': 11500,\n",
1227 " 'fitness': -15285.330433802024},\n",
1228 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 117000),\n",
1229 " 'worker': 3,\n",
1230 " 'iteration': 10000,\n",
1231 " 'fitness': -16140.718106173423},\n",
1232 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 131000),\n",
1233 " 'worker': 6,\n",
1234 " 'iteration': 10000,\n",
1235 " 'fitness': -15532.23903357282},\n",
1236 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 137000),\n",
1237 " 'worker': 7,\n",
1238 " 'iteration': 10000,\n",
1239 " 'fitness': -16454.16864218011},\n",
1240 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 361000),\n",
1241 " 'worker': 8,\n",
1242 " 'iteration': 12500,\n",
1243 " 'fitness': -15451.09375070572},\n",
1244 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 374000),\n",
1245 " 'worker': 1,\n",
1246 " 'iteration': 11500,\n",
1247 " 'fitness': -14953.309532478948},\n",
1248 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 474000),\n",
1249 " 'worker': 5,\n",
1250 " 'iteration': 13000,\n",
1251 " 'fitness': -15659.15259443666},\n",
1252 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 582000),\n",
1253 " 'worker': 4,\n",
1254 " 'iteration': 12000,\n",
1255 " 'fitness': -15869.087172295838},\n",
1256 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 837000),\n",
1257 " 'worker': 0,\n",
1258 " 'iteration': 13000,\n",
1259 " 'fitness': -15417.420509588284},\n",
1260 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 35000),\n",
1261 " 'worker': 9,\n",
1262 " 'iteration': 13000,\n",
1263 " 'fitness': -14755.133509144218},\n",
1264 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 134000),\n",
1265 " 'worker': 5,\n",
1266 " 'iteration': 13500,\n",
1267 " 'fitness': -14696.82992865629},\n",
1268 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 169000),\n",
1269 " 'worker': 2,\n",
1270 " 'iteration': 12000,\n",
1271 " 'fitness': -15646.531721637635},\n",
1272 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 274000),\n",
1273 " 'worker': 4,\n",
1274 " 'iteration': 12500,\n",
1275 " 'fitness': -15210.315534893452},\n",
1276 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 372000),\n",
1277 " 'worker': 3,\n",
1278 " 'iteration': 10500,\n",
1279 " 'fitness': -15694.77409965568},\n",
1280 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 378000),\n",
1281 " 'worker': 7,\n",
1282 " 'iteration': 10500,\n",
1283 " 'fitness': -15259.729176088413},\n",
1284 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 393000),\n",
1285 " 'worker': 6,\n",
1286 " 'iteration': 10500,\n",
1287 " 'fitness': -17056.42671837105},\n",
1288 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 623000),\n",
1289 " 'worker': 8,\n",
1290 " 'iteration': 13000,\n",
1291 " 'fitness': -14753.192978629439},\n",
1292 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 646000),\n",
1293 " 'worker': 1,\n",
1294 " 'iteration': 12000,\n",
1295 " 'fitness': -15288.147896117103},\n",
1296 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 105000),\n",
1297 " 'worker': 4,\n",
1298 " 'iteration': 13000,\n",
1299 " 'fitness': -15060.603210355042},\n",
1300 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 114000),\n",
1301 " 'worker': 0,\n",
1302 " 'iteration': 13500,\n",
1303 " 'fitness': -15007.5508773021},\n",
1304 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 205000),\n",
1305 " 'worker': 5,\n",
1306 " 'iteration': 14000,\n",
1307 " 'fitness': -14938.424693950374},\n",
1308 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 290000),\n",
1309 " 'worker': 7,\n",
1310 " 'iteration': 11000,\n",
1311 " 'fitness': -15771.680706420595},\n",
1312 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 293000),\n",
1313 " 'worker': 9,\n",
1314 " 'iteration': 13500,\n",
1315 " 'fitness': -14976.114071536189},\n",
1316 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 431000),\n",
1317 " 'worker': 2,\n",
1318 " 'iteration': 12500,\n",
1319 " 'fitness': -15400.307210930276},\n",
1320 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 643000),\n",
1321 " 'worker': 3,\n",
1322 " 'iteration': 11000,\n",
1323 " 'fitness': -15905.972572862838},\n",
1324 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 675000),\n",
1325 " 'worker': 6,\n",
1326 " 'iteration': 11000,\n",
1327 " 'fitness': -16446.158550232558},\n",
1328 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 876000),\n",
1329 " 'worker': 8,\n",
1330 " 'iteration': 13500,\n",
1331 " 'fitness': -14781.142456953165},\n",
1332 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 914000),\n",
1333 " 'worker': 1,\n",
1334 " 'iteration': 12500,\n",
1335 " 'fitness': -14981.672242306711},\n",
1336 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 20000),\n",
1337 " 'worker': 7,\n",
1338 " 'iteration': 11500,\n",
1339 " 'fitness': -16164.260679369723},\n",
1340 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 44000),\n",
1341 " 'worker': 4,\n",
1342 " 'iteration': 13500,\n",
1343 " 'fitness': -15069.41761792247},\n",
1344 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 403000),\n",
1345 " 'worker': 0,\n",
1346 " 'iteration': 14000,\n",
1347 " 'fitness': -14876.118543452645},\n",
1348 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 458000),\n",
1349 " 'worker': 5,\n",
1350 " 'iteration': 14500,\n",
1351 " 'fitness': -14961.285575467244},\n",
1352 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 572000),\n",
1353 " 'worker': 9,\n",
1354 " 'iteration': 14000,\n",
1355 " 'fitness': -14863.556266989302},\n",
1356 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 705000),\n",
1357 " 'worker': 2,\n",
1358 " 'iteration': 13000,\n",
1359 " 'fitness': -14977.415942610598},\n",
1360 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 904000),\n",
1361 " 'worker': 3,\n",
1362 " 'iteration': 11500,\n",
1363 " 'fitness': -14993.584839523564},\n",
1364 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 906000),\n",
1365 " 'worker': 7,\n",
1366 " 'iteration': 12000,\n",
1367 " 'fitness': -15141.475802739613},\n",
1368 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 944000),\n",
1369 " 'worker': 6,\n",
1370 " 'iteration': 11500,\n",
1371 " 'fitness': -16009.08750955859},\n",
1372 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 145000),\n",
1373 " 'worker': 8,\n",
1374 " 'iteration': 14000,\n",
1375 " 'fitness': -14827.099904866538},\n",
1376 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 194000),\n",
1377 " 'worker': 4,\n",
1378 " 'iteration': 14000,\n",
1379 " 'fitness': -15116.224925495997},\n",
1380 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 202000),\n",
1381 " 'worker': 1,\n",
1382 " 'iteration': 13000,\n",
1383 " 'fitness': -15149.029029083624},\n",
1384 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 686000),\n",
1385 " 'worker': 0,\n",
1386 " 'iteration': 14500,\n",
1387 " 'fitness': -14758.523310234728},\n",
1388 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 725000),\n",
1389 " 'worker': 5,\n",
1390 " 'iteration': 15000,\n",
1391 " 'fitness': -14781.142456953165},\n",
1392 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 830000),\n",
1393 " 'worker': 9,\n",
1394 " 'iteration': 14500,\n",
1395 " 'fitness': -14758.523310234728},\n",
1396 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 960000),\n",
1397 " 'worker': 2,\n",
1398 " 'iteration': 13500,\n",
1399 " 'fitness': -14813.046812753024},\n",
1400 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 61000),\n",
1401 " 'worker': 7,\n",
1402 " 'iteration': 12500,\n",
1403 " 'fitness': -15340.860844544492},\n",
1404 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 170000),\n",
1405 " 'worker': 3,\n",
1406 " 'iteration': 12000,\n",
1407 " 'fitness': -15305.374336482708},\n",
1408 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 226000),\n",
1409 " 'worker': 6,\n",
1410 " 'iteration': 12000,\n",
1411 " 'fitness': -15573.850829771378},\n",
1412 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 309000),\n",
1413 " 'worker': 4,\n",
1414 " 'iteration': 14500,\n",
1415 " 'fitness': -15004.196963177967},\n",
1416 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 445000),\n",
1417 " 'worker': 8,\n",
1418 " 'iteration': 14500,\n",
1419 " 'fitness': -14968.808339959272},\n",
1420 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 465000),\n",
1421 " 'worker': 1,\n",
1422 " 'iteration': 13500,\n",
1423 " 'fitness': -15189.679227108176},\n",
1424 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 972000),\n",
1425 " 'worker': 0,\n",
1426 " 'iteration': 15000,\n",
1427 " 'fitness': -14700.923210187424},\n",
1428 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 982000),\n",
1429 " 'worker': 5,\n",
1430 " 'iteration': 15500,\n",
1431 " 'fitness': -14696.82992865629},\n",
1432 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 158000),\n",
1433 " 'worker': 9,\n",
1434 " 'iteration': 15000,\n",
1435 " 'fitness': -15026.706407974296},\n",
1436 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 257000),\n",
1437 " 'worker': 2,\n",
1438 " 'iteration': 14000,\n",
1439 " 'fitness': -14698.864981580778},\n",
1440 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 341000),\n",
1441 " 'worker': 4,\n",
1442 " 'iteration': 15000,\n",
1443 " 'fitness': -14739.612188053427},\n",
1444 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 368000),\n",
1445 " 'worker': 7,\n",
1446 " 'iteration': 13000,\n",
1447 " 'fitness': -15327.626863056204},\n",
1448 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 441000),\n",
1449 " 'worker': 3,\n",
1450 " 'iteration': 12500,\n",
1451 " 'fitness': -15100.949728117137},\n",
1452 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 491000),\n",
1453 " 'worker': 6,\n",
1454 " 'iteration': 12500,\n",
1455 " 'fitness': -14909.17876099893},\n",
1456 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 750000),\n",
1457 " 'worker': 1,\n",
1458 " 'iteration': 14000,\n",
1459 " 'fitness': -15309.029815268066},\n",
1460 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 765000),\n",
1461 " 'worker': 8,\n",
1462 " 'iteration': 15000,\n",
1463 " 'fitness': -14900.16872092433},\n",
1464 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 232000),\n",
1465 " 'worker': 0,\n",
1466 " 'iteration': 15500,\n",
1467 " 'fitness': -14696.82992865629},\n",
1468 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 250000),\n",
1469 " 'worker': 5,\n",
1470 " 'iteration': 16000,\n",
1471 " 'fitness': -14767.359551554202},\n",
1472 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 411000),\n",
1473 " 'worker': 9,\n",
1474 " 'iteration': 15500,\n",
1475 " 'fitness': -14689.84155926745},\n",
1476 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 412000),\n",
1477 " 'worker': 4,\n",
1478 " 'iteration': 15500,\n",
1479 " 'fitness': -14698.864981580778},\n",
1480 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 521000),\n",
1481 " 'worker': 2,\n",
1482 " 'iteration': 14500,\n",
1483 " 'fitness': -14696.82992865629},\n",
1484 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 655000),\n",
1485 " 'worker': 7,\n",
1486 " 'iteration': 13500,\n",
1487 " 'fitness': -15470.913319339978},\n",
1488 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 704000),\n",
1489 " 'worker': 3,\n",
1490 " 'iteration': 13000,\n",
1491 " 'fitness': -14689.84155926745},\n",
1492 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 759000),\n",
1493 " 'worker': 6,\n",
1494 " 'iteration': 13000,\n",
1495 " 'fitness': -14818.384022705113},\n",
1496 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 11000),\n",
1497 " 'worker': 1,\n",
1498 " 'iteration': 14500,\n",
1499 " 'fitness': -14939.247773294534},\n",
1500 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 64000),\n",
1501 " 'worker': 8,\n",
1502 " 'iteration': 15500,\n",
1503 " 'fitness': -14696.82992865629},\n",
1504 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 501000),\n",
1505 " 'worker': 0,\n",
1506 " 'iteration': 16000,\n",
1507 " 'fitness': -14689.84155926745},\n",
1508 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 504000),\n",
1509 " 'worker': 5,\n",
1510 " 'iteration': 16500,\n",
1511 " 'fitness': -14698.864981580778},\n",
1512 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 676000),\n",
1513 " 'worker': 9,\n",
1514 " 'iteration': 16000,\n",
1515 " 'fitness': -14696.82992865629},\n",
1516 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 693000),\n",
1517 " 'worker': 4,\n",
1518 " 'iteration': 16000,\n",
1519 " 'fitness': -14681.308607565503},\n",
1520 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 782000),\n",
1521 " 'worker': 2,\n",
1522 " 'iteration': 15000,\n",
1523 " 'fitness': -14681.308607565503},\n",
1524 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 956000),\n",
1525 " 'worker': 7,\n",
1526 " 'iteration': 14000,\n",
1527 " 'fitness': -15019.728235593766},\n",
1528 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 958000),\n",
1529 " 'worker': 3,\n",
1530 " 'iteration': 13500,\n",
1531 " 'fitness': -15374.657983398703},\n",
1532 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 16000),\n",
1533 " 'worker': 6,\n",
1534 " 'iteration': 13500,\n",
1535 " 'fitness': -15025.874342597837},\n",
1536 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 278000),\n",
1537 " 'worker': 1,\n",
1538 " 'iteration': 15000,\n",
1539 " 'fitness': -14700.923210187424},\n",
1540 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 326000),\n",
1541 " 'worker': 8,\n",
1542 " 'iteration': 16000,\n",
1543 " 'fitness': -14681.308607565503},\n",
1544 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 755000),\n",
1545 " 'worker': 0,\n",
1546 " 'iteration': 16500,\n",
1547 " 'fitness': -14700.923210187424},\n",
1548 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 765000),\n",
1549 " 'worker': 5,\n",
1550 " 'iteration': 17000,\n",
1551 " 'fitness': -14681.308607565503},\n",
1552 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 931000),\n",
1553 " 'worker': 9,\n",
1554 " 'iteration': 16500,\n",
1555 " 'fitness': -14698.864981580778},\n",
1556 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 946000),\n",
1557 " 'worker': 4,\n",
1558 " 'iteration': 16500,\n",
1559 " 'fitness': -14681.308607565503},\n",
1560 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 31000),\n",
1561 " 'worker': 2,\n",
1562 " 'iteration': 15500,\n",
1563 " 'fitness': -14698.864981580778},\n",
1564 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 203000),\n",
1565 " 'worker': 7,\n",
1566 " 'iteration': 14500,\n",
1567 " 'fitness': -15131.743534205201},\n",
1568 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 221000),\n",
1569 " 'worker': 3,\n",
1570 " 'iteration': 14000,\n",
1571 " 'fitness': -15436.793571633094},\n",
1572 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 282000),\n",
1573 " 'worker': 6,\n",
1574 " 'iteration': 14000,\n",
1575 " 'fitness': -14855.72679572798},\n",
1576 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 535000),\n",
1577 " 'worker': 1,\n",
1578 " 'iteration': 15500,\n",
1579 " 'fitness': -14827.099904866538},\n",
1580 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 578000),\n",
1581 " 'worker': 8,\n",
1582 " 'iteration': 16500,\n",
1583 " 'fitness': -14681.308607565503},\n",
1584 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 22000),\n",
1585 " 'worker': 0,\n",
1586 " 'iteration': 17000,\n",
1587 " 'fitness': -14681.308607565503},\n",
1588 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 23000),\n",
1589 " 'worker': 5,\n",
1590 " 'iteration': 17500,\n",
1591 " 'fitness': -14689.84155926745},\n",
1592 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 195000),\n",
1593 " 'worker': 9,\n",
1594 " 'iteration': 17000,\n",
1595 " 'fitness': -14689.84155926745},\n",
1596 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 210000),\n",
1597 " 'worker': 4,\n",
1598 " 'iteration': 17000,\n",
1599 " 'fitness': -14739.612188053427},\n",
1600 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 293000),\n",
1601 " 'worker': 2,\n",
1602 " 'iteration': 16000,\n",
1603 " 'fitness': -14681.308607565503},\n",
1604 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 464000),\n",
1605 " 'worker': 7,\n",
1606 " 'iteration': 15000,\n",
1607 " 'fitness': -14902.507624188043},\n",
1608 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 476000),\n",
1609 " 'worker': 3,\n",
1610 " 'iteration': 14500,\n",
1611 " 'fitness': -14681.308607565503},\n",
1612 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 539000),\n",
1613 " 'worker': 6,\n",
1614 " 'iteration': 14500,\n",
1615 " 'fitness': -15015.681704727132},\n",
1616 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 801000),\n",
1617 " 'worker': 1,\n",
1618 " 'iteration': 16000,\n",
1619 " 'fitness': -14689.84155926745},\n",
1620 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 841000),\n",
1621 " 'worker': 8,\n",
1622 " 'iteration': 17000,\n",
1623 " 'fitness': -14696.82992865629},\n",
1624 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 276000),\n",
1625 " 'worker': 0,\n",
1626 " 'iteration': 17500,\n",
1627 " 'fitness': -14681.308607565503},\n",
1628 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 285000),\n",
1629 " 'worker': 5,\n",
1630 " 'iteration': 18000,\n",
1631 " 'fitness': -14681.308607565503},\n",
1632 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 458000),\n",
1633 " 'worker': 9,\n",
1634 " 'iteration': 17500,\n",
1635 " 'fitness': -14700.923210187424},\n",
1636 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 474000),\n",
1637 " 'worker': 4,\n",
1638 " 'iteration': 17500,\n",
1639 " 'fitness': -14681.308607565503},\n",
1640 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 538000),\n",
1641 " 'worker': 2,\n",
1642 " 'iteration': 16500,\n",
1643 " 'fitness': -14689.84155926745},\n",
1644 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 719000),\n",
1645 " 'worker': 7,\n",
1646 " 'iteration': 15500,\n",
1647 " 'fitness': -14865.21908397404},\n",
1648 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 735000),\n",
1649 " 'worker': 3,\n",
1650 " 'iteration': 15000,\n",
1651 " 'fitness': -14778.1362419798},\n",
1652 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 806000),\n",
1653 " 'worker': 6,\n",
1654 " 'iteration': 15000,\n",
1655 " 'fitness': -14890.36011820834},\n",
1656 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 901000),\n",
1657 " 'worker': 1,\n",
1658 " 'iteration': 16500,\n",
1659 " 'fitness': -14681.308607565503},\n",
1660 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 94000),\n",
1661 " 'worker': 8,\n",
1662 " 'iteration': 17500,\n",
1663 " 'fitness': -14681.308607565503},\n",
1664 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 305000),\n",
1665 " 'worker': 9,\n",
1666 " 'iteration': 18000,\n",
1667 " 'fitness': -14681.308607565503},\n",
1668 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 538000),\n",
1669 " 'worker': 5,\n",
1670 " 'iteration': 18500,\n",
1671 " 'fitness': -14681.308607565503},\n",
1672 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 542000),\n",
1673 " 'worker': 0,\n",
1674 " 'iteration': 18000,\n",
1675 " 'fitness': -14689.84155926745},\n",
1676 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 542000),\n",
1677 " 'worker': 4,\n",
1678 " 'iteration': 18000,\n",
1679 " 'fitness': -14681.308607565503},\n",
1680 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 800000),\n",
1681 " 'worker': 2,\n",
1682 " 'iteration': 17000,\n",
1683 " 'fitness': -14689.84155926745},\n",
1684 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 983000),\n",
1685 " 'worker': 3,\n",
1686 " 'iteration': 15500,\n",
1687 " 'fitness': -14758.523310234728},\n",
1688 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 987000),\n",
1689 " 'worker': 7,\n",
1690 " 'iteration': 16000,\n",
1691 " 'fitness': -14696.82992865629},\n",
1692 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 65000),\n",
1693 " 'worker': 6,\n",
1694 " 'iteration': 15500,\n",
1695 " 'fitness': -14696.82992865629},\n",
1696 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 77000),\n",
1697 " 'worker': 9,\n",
1698 " 'iteration': 18500,\n",
1699 " 'fitness': -14681.308607565503},\n",
1700 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 161000),\n",
1701 " 'worker': 1,\n",
1702 " 'iteration': 17000,\n",
1703 " 'fitness': -14689.84155926745},\n",
1704 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 361000),\n",
1705 " 'worker': 8,\n",
1706 " 'iteration': 18000,\n",
1707 " 'fitness': -14681.308607565503},\n",
1708 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 719000),\n",
1709 " 'worker': 4,\n",
1710 " 'iteration': 18500,\n",
1711 " 'fitness': -14681.308607565503},\n",
1712 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 802000),\n",
1713 " 'worker': 5,\n",
1714 " 'iteration': 19000,\n",
1715 " 'fitness': -14681.308607565503},\n",
1716 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 815000),\n",
1717 " 'worker': 0,\n",
1718 " 'iteration': 18500,\n",
1719 " 'fitness': -14681.308607565503},\n",
1720 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 877000),\n",
1721 " 'worker': 9,\n",
1722 " 'iteration': 19000,\n",
1723 " 'fitness': -14681.308607565503},\n",
1724 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 49000),\n",
1725 " 'worker': 2,\n",
1726 " 'iteration': 17500,\n",
1727 " 'fitness': -14681.308607565503},\n",
1728 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 244000),\n",
1729 " 'worker': 3,\n",
1730 " 'iteration': 16000,\n",
1731 " 'fitness': -14700.923210187424},\n",
1732 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 278000),\n",
1733 " 'worker': 7,\n",
1734 " 'iteration': 16500,\n",
1735 " 'fitness': -14698.864981580778},\n",
1736 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 331000),\n",
1737 " 'worker': 6,\n",
1738 " 'iteration': 16000,\n",
1739 " 'fitness': -14681.308607565503},\n",
1740 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 414000),\n",
1741 " 'worker': 1,\n",
1742 " 'iteration': 17500,\n",
1743 " 'fitness': -14681.308607565503},\n",
1744 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 617000),\n",
1745 " 'worker': 8,\n",
1746 " 'iteration': 18500,\n",
1747 " 'fitness': -14681.308607565503},\n",
1748 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 618000),\n",
1749 " 'worker': 9,\n",
1750 " 'iteration': 19500,\n",
1751 " 'fitness': -14681.308607565503},\n",
1752 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 895000),\n",
1753 " 'worker': 4,\n",
1754 " 'iteration': 19000,\n",
1755 " 'fitness': -14681.308607565503},\n",
1756 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 58000),\n",
1757 " 'worker': 5,\n",
1758 " 'iteration': 19500,\n",
1759 " 'fitness': -14681.308607565503},\n",
1760 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 77000),\n",
1761 " 'worker': 0,\n",
1762 " 'iteration': 19000,\n",
1763 " 'fitness': -14681.308607565503},\n",
1764 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 308000),\n",
1765 " 'worker': 2,\n",
1766 " 'iteration': 18000,\n",
1767 " 'fitness': -14681.308607565503},\n",
1768 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 492000),\n",
1769 " 'worker': 3,\n",
1770 " 'iteration': 16500,\n",
1771 " 'fitness': -14681.308607565503},\n",
1772 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 545000),\n",
1773 " 'worker': 7,\n",
1774 " 'iteration': 17000,\n",
1775 " 'fitness': -14689.84155926745},\n",
1776 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 586000),\n",
1777 " 'worker': 6,\n",
1778 " 'iteration': 16500,\n",
1779 " 'fitness': -14767.359551554202},\n",
1780 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 679000),\n",
1781 " 'worker': 1,\n",
1782 " 'iteration': 18000,\n",
1783 " 'fitness': -14681.308607565503},\n",
1784 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 878000),\n",
1785 " 'worker': 8,\n",
1786 " 'iteration': 19000,\n",
1787 " 'fitness': -14681.308607565503},\n",
1788 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 910000),\n",
1789 " 'worker': 4,\n",
1790 " 'iteration': 19500,\n",
1791 " 'fitness': -14681.308607565503},\n",
1792 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 324000),\n",
1793 " 'worker': 0,\n",
1794 " 'iteration': 19500,\n",
1795 " 'fitness': -14681.308607565503},\n",
1796 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 556000),\n",
1797 " 'worker': 2,\n",
1798 " 'iteration': 18500,\n",
1799 " 'fitness': -14681.308607565503},\n",
1800 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 749000),\n",
1801 " 'worker': 3,\n",
1802 " 'iteration': 17000,\n",
1803 " 'fitness': -14696.82992865629},\n",
1804 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 797000),\n",
1805 " 'worker': 7,\n",
1806 " 'iteration': 17500,\n",
1807 " 'fitness': -14681.308607565503},\n",
1808 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 848000),\n",
1809 " 'worker': 6,\n",
1810 " 'iteration': 17000,\n",
1811 " 'fitness': -14758.523310234728},\n",
1812 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 916000),\n",
1813 " 'worker': 1,\n",
1814 " 'iteration': 18500,\n",
1815 " 'fitness': -14681.308607565503},\n",
1816 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 70000),\n",
1817 " 'worker': 8,\n",
1818 " 'iteration': 19500,\n",
1819 " 'fitness': -14681.308607565503},\n",
1820 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 437000),\n",
1821 " 'worker': 2,\n",
1822 " 'iteration': 19000,\n",
1823 " 'fitness': -14681.308607565503},\n",
1824 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 481000),\n",
1825 " 'worker': 7,\n",
1826 " 'iteration': 18000,\n",
1827 " 'fitness': -14681.308607565503},\n",
1828 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 555000),\n",
1829 " 'worker': 1,\n",
1830 " 'iteration': 19000,\n",
1831 " 'fitness': -14681.308607565503},\n",
1832 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 880000),\n",
1833 " 'worker': 3,\n",
1834 " 'iteration': 17500,\n",
1835 " 'fitness': -14681.308607565503},\n",
1836 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 931000),\n",
1837 " 'worker': 6,\n",
1838 " 'iteration': 17500,\n",
1839 " 'fitness': -14681.308607565503},\n",
1840 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 57000),\n",
1841 " 'worker': 2,\n",
1842 " 'iteration': 19500,\n",
1843 " 'fitness': -14681.308607565503},\n",
1844 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 100000),\n",
1845 " 'worker': 7,\n",
1846 " 'iteration': 18500,\n",
1847 " 'fitness': -14681.308607565503},\n",
1848 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 178000),\n",
1849 " 'worker': 1,\n",
1850 " 'iteration': 19500,\n",
1851 " 'fitness': -14681.308607565503},\n",
1852 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 517000),\n",
1853 " 'worker': 3,\n",
1854 " 'iteration': 18000,\n",
1855 " 'fitness': -14681.308607565503},\n",
1856 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 574000),\n",
1857 " 'worker': 6,\n",
1858 " 'iteration': 18000,\n",
1859 " 'fitness': -14681.308607565503},\n",
1860 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 745000),\n",
1861 " 'worker': 7,\n",
1862 " 'iteration': 19000,\n",
1863 " 'fitness': -14681.308607565503},\n",
1864 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 129000),\n",
1865 " 'worker': 3,\n",
1866 " 'iteration': 18500,\n",
1867 " 'fitness': -14681.308607565503},\n",
1868 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 187000),\n",
1869 " 'worker': 6,\n",
1870 " 'iteration': 18500,\n",
1871 " 'fitness': -14681.308607565503},\n",
1872 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 367000),\n",
1873 " 'worker': 7,\n",
1874 " 'iteration': 19500,\n",
1875 " 'fitness': -14681.308607565503},\n",
1876 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 753000),\n",
1877 " 'worker': 3,\n",
1878 " 'iteration': 19000,\n",
1879 " 'fitness': -14681.308607565503},\n",
1880 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 810000),\n",
1881 " 'worker': 6,\n",
1882 " 'iteration': 19000,\n",
1883 " 'fitness': -14681.308607565503},\n",
1884 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 43, 363000),\n",
1885 " 'worker': 3,\n",
1886 " 'iteration': 19500,\n",
1887 " 'fitness': -14681.308607565503},\n",
1888 " {'time': datetime.datetime(2018, 12, 5, 18, 28, 43, 416000),\n",
1889 " 'worker': 6,\n",
1890 " 'iteration': 19500,\n",
1891 " 'fitness': -14681.308607565503},\n",
1892 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 305000),\n",
1893 " 'worker': 7,\n",
1894 " 'iteration': 0,\n",
1895 " 'fitness': -17064.948772927888},\n",
1896 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1897 " 'worker': 1,\n",
1898 " 'iteration': 0,\n",
1899 " 'fitness': -17464.568516864027},\n",
1900 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1901 " 'worker': 2,\n",
1902 " 'iteration': 0,\n",
1903 " 'fitness': -17464.568516864027},\n",
1904 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1905 " 'worker': 0,\n",
1906 " 'iteration': 0,\n",
1907 " 'fitness': -17464.568516864027},\n",
1908 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1909 " 'worker': 3,\n",
1910 " 'iteration': 0,\n",
1911 " 'fitness': -17464.568516864027},\n",
1912 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1913 " 'worker': 4,\n",
1914 " 'iteration': 0,\n",
1915 " 'fitness': -17464.568516864027},\n",
1916 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1917 " 'worker': 5,\n",
1918 " 'iteration': 0,\n",
1919 " 'fitness': -17536.258720447695},\n",
1920 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
1921 " 'worker': 6,\n",
1922 " 'iteration': 0,\n",
1923 " 'fitness': -17489.373605685694},\n",
1924 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 308000),\n",
1925 " 'worker': 8,\n",
1926 " 'iteration': 0,\n",
1927 " 'fitness': -17464.568516864027},\n",
1928 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 308000),\n",
1929 " 'worker': 9,\n",
1930 " 'iteration': 0,\n",
1931 " 'fitness': -17464.568516864027},\n",
1932 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 483000),\n",
1933 " 'worker': 7,\n",
1934 " 'iteration': 500,\n",
1935 " 'fitness': -20011.926080833462},\n",
1936 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 584000),\n",
1937 " 'worker': 8,\n",
1938 " 'iteration': 500,\n",
1939 " 'fitness': -18720.58237892333},\n",
1940 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 586000),\n",
1941 " 'worker': 2,\n",
1942 " 'iteration': 500,\n",
1943 " 'fitness': -20221.715741201548},\n",
1944 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 641000),\n",
1945 " 'worker': 6,\n",
1946 " 'iteration': 500,\n",
1947 " 'fitness': -20971.93227245418},\n",
1948 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 650000),\n",
1949 " 'worker': 1,\n",
1950 " 'iteration': 500,\n",
1951 " 'fitness': -17958.557690043537},\n",
1952 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 653000),\n",
1953 " 'worker': 0,\n",
1954 " 'iteration': 500,\n",
1955 " 'fitness': -19456.419361176002},\n",
1956 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 668000),\n",
1957 " 'worker': 9,\n",
1958 " 'iteration': 500,\n",
1959 " 'fitness': -18794.76060121247},\n",
1960 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 690000),\n",
1961 " 'worker': 5,\n",
1962 " 'iteration': 500,\n",
1963 " 'fitness': -19179.138598606725},\n",
1964 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 711000),\n",
1965 " 'worker': 3,\n",
1966 " 'iteration': 500,\n",
1967 " 'fitness': -17988.766735978654},\n",
1968 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 717000),\n",
1969 " 'worker': 4,\n",
1970 " 'iteration': 500,\n",
1971 " 'fitness': -18970.09109208436},\n",
1972 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 663000),\n",
1973 " 'worker': 0,\n",
1974 " 'iteration': 1000,\n",
1975 " 'fitness': -19192.661068367157},\n",
1976 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 812000),\n",
1977 " 'worker': 7,\n",
1978 " 'iteration': 1000,\n",
1979 " 'fitness': -18440.462795548294},\n",
1980 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 907000),\n",
1981 " 'worker': 2,\n",
1982 " 'iteration': 1000,\n",
1983 " 'fitness': -19208.61349253221},\n",
1984 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 913000),\n",
1985 " 'worker': 8,\n",
1986 " 'iteration': 1000,\n",
1987 " 'fitness': -21074.221350148688},\n",
1988 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 967000),\n",
1989 " 'worker': 1,\n",
1990 " 'iteration': 1000,\n",
1991 " 'fitness': -19380.999140599124},\n",
1992 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 977000),\n",
1993 " 'worker': 9,\n",
1994 " 'iteration': 1000,\n",
1995 " 'fitness': -17994.519054935667},\n",
1996 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 979000),\n",
1997 " 'worker': 6,\n",
1998 " 'iteration': 1000,\n",
1999 " 'fitness': -19306.156116067286},\n",
2000 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 32000),\n",
2001 " 'worker': 5,\n",
2002 " 'iteration': 1000,\n",
2003 " 'fitness': -20337.97301214875},\n",
2004 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 35000),\n",
2005 " 'worker': 3,\n",
2006 " 'iteration': 1000,\n",
2007 " 'fitness': -19975.76171434862},\n",
2008 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 44000),\n",
2009 " 'worker': 4,\n",
2010 " 'iteration': 1000,\n",
2011 " 'fitness': -19476.28521852281},\n",
2012 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 684000),\n",
2013 " 'worker': 0,\n",
2014 " 'iteration': 1500,\n",
2015 " 'fitness': -21362.030853695927},\n",
2016 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 186000),\n",
2017 " 'worker': 1,\n",
2018 " 'iteration': 1500,\n",
2019 " 'fitness': -17714.641624264746},\n",
2020 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 229000),\n",
2021 " 'worker': 7,\n",
2022 " 'iteration': 1500,\n",
2023 " 'fitness': -18542.121696900136},\n",
2024 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 233000),\n",
2025 " 'worker': 2,\n",
2026 " 'iteration': 1500,\n",
2027 " 'fitness': -20058.056128897606},\n",
2028 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 289000),\n",
2029 " 'worker': 8,\n",
2030 " 'iteration': 1500,\n",
2031 " 'fitness': -19942.833685138357},\n",
2032 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 291000),\n",
2033 " 'worker': 9,\n",
2034 " 'iteration': 1500,\n",
2035 " 'fitness': -17125.250461558895},\n",
2036 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 357000),\n",
2037 " 'worker': 3,\n",
2038 " 'iteration': 1500,\n",
2039 " 'fitness': -20433.11384868423},\n",
2040 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 382000),\n",
2041 " 'worker': 4,\n",
2042 " 'iteration': 1500,\n",
2043 " 'fitness': -19266.8556439343},\n",
2044 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 454000),\n",
2045 " 'worker': 5,\n",
2046 " 'iteration': 1500,\n",
2047 " 'fitness': -19485.148402491643},\n",
2048 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 600000),\n",
2049 " 'worker': 6,\n",
2050 " 'iteration': 1500,\n",
2051 " 'fitness': -18819.539234026674},\n",
2052 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 103000),\n",
2053 " 'worker': 0,\n",
2054 " 'iteration': 2000,\n",
2055 " 'fitness': -19439.674465428758},\n",
2056 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 477000),\n",
2057 " 'worker': 1,\n",
2058 " 'iteration': 2000,\n",
2059 " 'fitness': -19958.84007847232},\n",
2060 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 602000),\n",
2061 " 'worker': 2,\n",
2062 " 'iteration': 2000,\n",
2063 " 'fitness': -19670.81172833396},\n",
2064 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 713000),\n",
2065 " 'worker': 9,\n",
2066 " 'iteration': 2000,\n",
2067 " 'fitness': -17142.009059028445},\n",
2068 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 726000),\n",
2069 " 'worker': 8,\n",
2070 " 'iteration': 2000,\n",
2071 " 'fitness': -19683.9963358193},\n",
2072 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 730000),\n",
2073 " 'worker': 7,\n",
2074 " 'iteration': 2000,\n",
2075 " 'fitness': -17340.009861643404},\n",
2076 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 762000),\n",
2077 " 'worker': 3,\n",
2078 " 'iteration': 2000,\n",
2079 " 'fitness': -19369.723029067667},\n",
2080 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 863000),\n",
2081 " 'worker': 4,\n",
2082 " 'iteration': 2000,\n",
2083 " 'fitness': -19034.682763381767},\n",
2084 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 930000),\n",
2085 " 'worker': 5,\n",
2086 " 'iteration': 2000,\n",
2087 " 'fitness': -19724.425130764797},\n",
2088 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 121000),\n",
2089 " 'worker': 6,\n",
2090 " 'iteration': 2000,\n",
2091 " 'fitness': -19113.68657413882},\n",
2092 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 676000),\n",
2093 " 'worker': 0,\n",
2094 " 'iteration': 2500,\n",
2095 " 'fitness': -19494.92220907886},\n",
2096 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 899000),\n",
2097 " 'worker': 1,\n",
2098 " 'iteration': 2500,\n",
2099 " 'fitness': -17619.247219933895},\n",
2100 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 951000),\n",
2101 " 'worker': 8,\n",
2102 " 'iteration': 2500,\n",
2103 " 'fitness': -18733.49038445007},\n",
2104 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 967000),\n",
2105 " 'worker': 2,\n",
2106 " 'iteration': 2500,\n",
2107 " 'fitness': -19275.265763427655},\n",
2108 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 54000),\n",
2109 " 'worker': 9,\n",
2110 " 'iteration': 2500,\n",
2111 " 'fitness': -18403.8355946094},\n",
2112 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 88000),\n",
2113 " 'worker': 3,\n",
2114 " 'iteration': 2500,\n",
2115 " 'fitness': -19514.81650956374},\n",
2116 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 149000),\n",
2117 " 'worker': 7,\n",
2118 " 'iteration': 2500,\n",
2119 " 'fitness': -18321.512123184442},\n",
2120 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 167000),\n",
2121 " 'worker': 5,\n",
2122 " 'iteration': 2500,\n",
2123 " 'fitness': -18757.70142762439},\n",
2124 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 242000),\n",
2125 " 'worker': 4,\n",
2126 " 'iteration': 2500,\n",
2127 " 'fitness': -19803.012956369163},\n",
2128 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 469000),\n",
2129 " 'worker': 6,\n",
2130 " 'iteration': 2500,\n",
2131 " 'fitness': -20912.58774667283},\n",
2132 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 862000),\n",
2133 " 'worker': 0,\n",
2134 " 'iteration': 3000,\n",
2135 " 'fitness': -19409.258503714384},\n",
2136 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 315000),\n",
2137 " 'worker': 1,\n",
2138 " 'iteration': 3000,\n",
2139 " 'fitness': -18872.173637934306},\n",
2140 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 329000),\n",
2141 " 'worker': 2,\n",
2142 " 'iteration': 3000,\n",
2143 " 'fitness': -20509.129709514265},\n",
2144 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 348000),\n",
2145 " 'worker': 8,\n",
2146 " 'iteration': 3000,\n",
2147 " 'fitness': -17321.155277579343},\n",
2148 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 421000),\n",
2149 " 'worker': 3,\n",
2150 " 'iteration': 3000,\n",
2151 " 'fitness': -19427.389011059782},\n",
2152 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 467000),\n",
2153 " 'worker': 9,\n",
2154 " 'iteration': 3000,\n",
2155 " 'fitness': -19207.343443988215},\n",
2156 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 480000),\n",
2157 " 'worker': 4,\n",
2158 " 'iteration': 3000,\n",
2159 " 'fitness': -18721.56447624704},\n",
2160 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 518000),\n",
2161 " 'worker': 5,\n",
2162 " 'iteration': 3000,\n",
2163 " 'fitness': -18572.50782004681},\n",
2164 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 531000),\n",
2165 " 'worker': 7,\n",
2166 " 'iteration': 3000,\n",
2167 " 'fitness': -19691.162343454114},\n",
2168 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 731000),\n",
2169 " 'worker': 6,\n",
2170 " 'iteration': 3000,\n",
2171 " 'fitness': -18979.35240339668},\n",
2172 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 191000),\n",
2173 " 'worker': 0,\n",
2174 " 'iteration': 3500,\n",
2175 " 'fitness': -19375.464976830353},\n",
2176 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 562000),\n",
2177 " 'worker': 5,\n",
2178 " 'iteration': 3500,\n",
2179 " 'fitness': -17050.915692093513},\n",
2180 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 634000),\n",
2181 " 'worker': 1,\n",
2182 " 'iteration': 3500,\n",
2183 " 'fitness': -19343.737531858267},\n",
2184 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 656000),\n",
2185 " 'worker': 2,\n",
2186 " 'iteration': 3500,\n",
2187 " 'fitness': -18634.214126420095},\n",
2188 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 670000),\n",
2189 " 'worker': 8,\n",
2190 " 'iteration': 3500,\n",
2191 " 'fitness': -17754.52887821668},\n",
2192 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 733000),\n",
2193 " 'worker': 3,\n",
2194 " 'iteration': 3500,\n",
2195 " 'fitness': -19132.250603393244},\n",
2196 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 783000),\n",
2197 " 'worker': 4,\n",
2198 " 'iteration': 3500,\n",
2199 " 'fitness': -19196.35892101146},\n",
2200 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 816000),\n",
2201 " 'worker': 9,\n",
2202 " 'iteration': 3500,\n",
2203 " 'fitness': -19002.690919176286},\n",
2204 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 863000),\n",
2205 " 'worker': 7,\n",
2206 " 'iteration': 3500,\n",
2207 " 'fitness': -19133.298070206092},\n",
2208 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 868000),\n",
2209 " 'worker': 6,\n",
2210 " 'iteration': 3500,\n",
2211 " 'fitness': -19757.791544465104},\n",
2212 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 468000),\n",
2213 " 'worker': 0,\n",
2214 " 'iteration': 4000,\n",
2215 " 'fitness': -18553.631818438087},\n",
2216 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 701000),\n",
2217 " 'worker': 5,\n",
2218 " 'iteration': 4000,\n",
2219 " 'fitness': -16989.573092675015},\n",
2220 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 967000),\n",
2221 " 'worker': 6,\n",
2222 " 'iteration': 4000,\n",
2223 " 'fitness': -18738.132464822625},\n",
2224 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 975000),\n",
2225 " 'worker': 2,\n",
2226 " 'iteration': 4000,\n",
2227 " 'fitness': -18180.86838796417},\n",
2228 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 984000),\n",
2229 " 'worker': 1,\n",
2230 " 'iteration': 4000,\n",
2231 " 'fitness': -18858.92834820425},\n",
2232 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 995000),\n",
2233 " 'worker': 8,\n",
2234 " 'iteration': 4000,\n",
2235 " 'fitness': -16734.063130383078},\n",
2236 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 46000),\n",
2237 " 'worker': 3,\n",
2238 " 'iteration': 4000,\n",
2239 " 'fitness': -17763.14484564346},\n",
2240 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 113000),\n",
2241 " 'worker': 4,\n",
2242 " 'iteration': 4000,\n",
2243 " 'fitness': -18163.721019481505},\n",
2244 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 160000),\n",
2245 " 'worker': 9,\n",
2246 " 'iteration': 4000,\n",
2247 " 'fitness': -19530.52326303019},\n",
2248 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 211000),\n",
2249 " 'worker': 7,\n",
2250 " 'iteration': 4000,\n",
2251 " 'fitness': -17672.714496294167},\n",
2252 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 331000),\n",
2253 " 'worker': 0,\n",
2254 " 'iteration': 4500,\n",
2255 " 'fitness': -18842.347858107038},\n",
2256 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 12000),\n",
2257 " 'worker': 5,\n",
2258 " 'iteration': 4500,\n",
2259 " 'fitness': -17109.64535862546},\n",
2260 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 130000),\n",
2261 " 'worker': 6,\n",
2262 " 'iteration': 4500,\n",
2263 " 'fitness': -19746.393461068335},\n",
2264 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 284000),\n",
2265 " 'worker': 2,\n",
2266 " 'iteration': 4500,\n",
2267 " 'fitness': -17870.85254780358},\n",
2268 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 310000),\n",
2269 " 'worker': 8,\n",
2270 " 'iteration': 4500,\n",
2271 " 'fitness': -16373.62611877824},\n",
2272 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 320000),\n",
2273 " 'worker': 1,\n",
2274 " 'iteration': 4500,\n",
2275 " 'fitness': -18999.185125551114},\n",
2276 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 359000),\n",
2277 " 'worker': 3,\n",
2278 " 'iteration': 4500,\n",
2279 " 'fitness': -19515.749071948336},\n",
2280 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 396000),\n",
2281 " 'worker': 0,\n",
2282 " 'iteration': 5000,\n",
2283 " 'fitness': -19347.171864885633},\n",
2284 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 438000),\n",
2285 " 'worker': 4,\n",
2286 " 'iteration': 4500,\n",
2287 " 'fitness': -17635.78592431806},\n",
2288 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 477000),\n",
2289 " 'worker': 9,\n",
2290 " 'iteration': 4500,\n",
2291 " 'fitness': -19750.17321013555},\n",
2292 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 525000),\n",
2293 " 'worker': 7,\n",
2294 " 'iteration': 4500,\n",
2295 " 'fitness': -19314.5595862402},\n",
2296 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 963000),\n",
2297 " 'worker': 6,\n",
2298 " 'iteration': 5000,\n",
2299 " 'fitness': -17726.01705706373},\n",
2300 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 163000),\n",
2301 " 'worker': 0,\n",
2302 " 'iteration': 5500,\n",
2303 " 'fitness': -18460.352807643045},\n",
2304 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 328000),\n",
2305 " 'worker': 5,\n",
2306 " 'iteration': 5000,\n",
2307 " 'fitness': -17586.309577218046},\n",
2308 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 605000),\n",
2309 " 'worker': 8,\n",
2310 " 'iteration': 5000,\n",
2311 " 'fitness': -16458.461467144996},\n",
2312 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 626000),\n",
2313 " 'worker': 2,\n",
2314 " 'iteration': 5000,\n",
2315 " 'fitness': -18053.662807774603},\n",
2316 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 633000),\n",
2317 " 'worker': 1,\n",
2318 " 'iteration': 5000,\n",
2319 " 'fitness': -17556.989179356522},\n",
2320 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 665000),\n",
2321 " 'worker': 3,\n",
2322 " 'iteration': 5000,\n",
2323 " 'fitness': -16565.51797668411},\n",
2324 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 755000),\n",
2325 " 'worker': 6,\n",
2326 " 'iteration': 5500,\n",
2327 " 'fitness': -18771.2540141021},\n",
2328 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 756000),\n",
2329 " 'worker': 4,\n",
2330 " 'iteration': 5000,\n",
2331 " 'fitness': -16790.05625163381},\n",
2332 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 791000),\n",
2333 " 'worker': 9,\n",
2334 " 'iteration': 5000,\n",
2335 " 'fitness': -19310.352955589842},\n",
2336 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 840000),\n",
2337 " 'worker': 7,\n",
2338 " 'iteration': 5000,\n",
2339 " 'fitness': -17269.433973269734},\n",
2340 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 981000),\n",
2341 " 'worker': 0,\n",
2342 " 'iteration': 6000,\n",
2343 " 'fitness': -18814.96821348566},\n",
2344 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 639000),\n",
2345 " 'worker': 5,\n",
2346 " 'iteration': 5500,\n",
2347 " 'fitness': -17610.98134319619},\n",
2348 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 852000),\n",
2349 " 'worker': 6,\n",
2350 " 'iteration': 6000,\n",
2351 " 'fitness': -18747.634629002703},\n",
2352 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 940000),\n",
2353 " 'worker': 8,\n",
2354 " 'iteration': 5500,\n",
2355 " 'fitness': -16072.713130144652},\n",
2356 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 941000),\n",
2357 " 'worker': 1,\n",
2358 " 'iteration': 5500,\n",
2359 " 'fitness': -17447.21951963203},\n",
2360 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 950000),\n",
2361 " 'worker': 2,\n",
2362 " 'iteration': 5500,\n",
2363 " 'fitness': -17879.626209735092},\n",
2364 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 974000),\n",
2365 " 'worker': 3,\n",
2366 " 'iteration': 5500,\n",
2367 " 'fitness': -17184.11615532316},\n",
2368 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 68000),\n",
2369 " 'worker': 4,\n",
2370 " 'iteration': 5500,\n",
2371 " 'fitness': -17654.84898582997},\n",
2372 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 106000),\n",
2373 " 'worker': 9,\n",
2374 " 'iteration': 5500,\n",
2375 " 'fitness': -17503.410891164338},\n",
2376 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 160000),\n",
2377 " 'worker': 7,\n",
2378 " 'iteration': 5500,\n",
2379 " 'fitness': -16720.074082517604},\n",
2380 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 198000),\n",
2381 " 'worker': 0,\n",
2382 " 'iteration': 6500,\n",
2383 " 'fitness': -18298.223867411583},\n",
2384 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 766000),\n",
2385 " 'worker': 5,\n",
2386 " 'iteration': 6000,\n",
2387 " 'fitness': -18553.826194757083},\n",
2388 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 973000),\n",
2389 " 'worker': 1,\n",
2390 " 'iteration': 6000,\n",
2391 " 'fitness': -16807.054548173965},\n",
2392 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 176000),\n",
2393 " 'worker': 6,\n",
2394 " 'iteration': 6500,\n",
2395 " 'fitness': -19078.385403827335},\n",
2396 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 267000),\n",
2397 " 'worker': 2,\n",
2398 " 'iteration': 6000,\n",
2399 " 'fitness': -17462.57956085574},\n",
2400 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 268000),\n",
2401 " 'worker': 8,\n",
2402 " 'iteration': 6000,\n",
2403 " 'fitness': -17724.567503651004},\n",
2404 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 291000),\n",
2405 " 'worker': 3,\n",
2406 " 'iteration': 6000,\n",
2407 " 'fitness': -17136.71456663387},\n",
2408 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 396000),\n",
2409 " 'worker': 4,\n",
2410 " 'iteration': 6000,\n",
2411 " 'fitness': -17222.7418938044},\n",
2412 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 422000),\n",
2413 " 'worker': 9,\n",
2414 " 'iteration': 6000,\n",
2415 " 'fitness': -17163.013191063783},\n",
2416 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 486000),\n",
2417 " 'worker': 7,\n",
2418 " 'iteration': 6000,\n",
2419 " 'fitness': -15923.583455585313},\n",
2420 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 534000),\n",
2421 " 'worker': 0,\n",
2422 " 'iteration': 7000,\n",
2423 " 'fitness': -17555.99144953487},\n",
2424 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 594000),\n",
2425 " 'worker': 5,\n",
2426 " 'iteration': 6500,\n",
2427 " 'fitness': -16095.3325939862},\n",
2428 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 758000),\n",
2429 " 'worker': 1,\n",
2430 " 'iteration': 6500,\n",
2431 " 'fitness': -17598.30468566638},\n",
2432 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 362000),\n",
2433 " 'worker': 5,\n",
2434 " 'iteration': 7000,\n",
2435 " 'fitness': -17155.508484406248},\n",
2436 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 494000),\n",
2437 " 'worker': 6,\n",
2438 " 'iteration': 7000,\n",
2439 " 'fitness': -17373.945618134694},\n",
2440 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 543000),\n",
2441 " 'worker': 1,\n",
2442 " 'iteration': 7000,\n",
2443 " 'fitness': -18716.93812649565},\n",
2444 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 559000),\n",
2445 " 'worker': 2,\n",
2446 " 'iteration': 6500,\n",
2447 " 'fitness': -17132.098624244063},\n",
2448 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 564000),\n",
2449 " 'worker': 8,\n",
2450 " 'iteration': 6500,\n",
2451 " 'fitness': -16212.897757753763},\n",
2452 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 588000),\n",
2453 " 'worker': 3,\n",
2454 " 'iteration': 6500,\n",
2455 " 'fitness': -18532.2474041536},\n",
2456 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 694000),\n",
2457 " 'worker': 4,\n",
2458 " 'iteration': 6500,\n",
2459 " 'fitness': -17839.708378581247},\n",
2460 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 714000),\n",
2461 " 'worker': 9,\n",
2462 " 'iteration': 6500,\n",
2463 " 'fitness': -16941.399876819683},\n",
2464 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 780000),\n",
2465 " 'worker': 7,\n",
2466 " 'iteration': 6500,\n",
2467 " 'fitness': -17068.075735363327},\n",
2468 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 825000),\n",
2469 " 'worker': 0,\n",
2470 " 'iteration': 7500,\n",
2471 " 'fitness': -17280.01016268159},\n",
2472 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 335000),\n",
2473 " 'worker': 5,\n",
2474 " 'iteration': 7500,\n",
2475 " 'fitness': -16308.943529035794},\n",
2476 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 345000),\n",
2477 " 'worker': 1,\n",
2478 " 'iteration': 7500,\n",
2479 " 'fitness': -17767.950488886243},\n",
2480 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 476000),\n",
2481 " 'worker': 8,\n",
2482 " 'iteration': 7000,\n",
2483 " 'fitness': -17878.68094126451},\n",
2484 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 798000),\n",
2485 " 'worker': 6,\n",
2486 " 'iteration': 7500,\n",
2487 " 'fitness': -16851.996781322716},\n",
2488 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 880000),\n",
2489 " 'worker': 2,\n",
2490 " 'iteration': 7000,\n",
2491 " 'fitness': -16658.854021932362},\n",
2492 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 896000),\n",
2493 " 'worker': 3,\n",
2494 " 'iteration': 7000,\n",
2495 " 'fitness': -16257.617448235551},\n",
2496 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 3000),\n",
2497 " 'worker': 4,\n",
2498 " 'iteration': 7000,\n",
2499 " 'fitness': -16307.070462677171},\n",
2500 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 16000),\n",
2501 " 'worker': 9,\n",
2502 " 'iteration': 7000,\n",
2503 " 'fitness': -16395.145359446204},\n",
2504 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 89000),\n",
2505 " 'worker': 7,\n",
2506 " 'iteration': 7000,\n",
2507 " 'fitness': -16377.420100014382},\n",
2508 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 93000),\n",
2509 " 'worker': 1,\n",
2510 " 'iteration': 8000,\n",
2511 " 'fitness': -18326.355874175948},\n",
2512 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 129000),\n",
2513 " 'worker': 0,\n",
2514 " 'iteration': 8000,\n",
2515 " 'fitness': -17208.764190910104},\n",
2516 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 191000),\n",
2517 " 'worker': 8,\n",
2518 " 'iteration': 7500,\n",
2519 " 'fitness': -17878.188388548733},\n",
2520 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 638000),\n",
2521 " 'worker': 5,\n",
2522 " 'iteration': 8000,\n",
2523 " 'fitness': -15999.453933213032},\n",
2524 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 827000),\n",
2525 " 'worker': 1,\n",
2526 " 'iteration': 8500,\n",
2527 " 'fitness': -17936.125618392205},\n",
2528 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 943000),\n",
2529 " 'worker': 8,\n",
2530 " 'iteration': 8000,\n",
2531 " 'fitness': -17506.631134173378},\n",
2532 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 100000),\n",
2533 " 'worker': 6,\n",
2534 " 'iteration': 8000,\n",
2535 " 'fitness': -17566.086945631425},\n",
2536 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 176000),\n",
2537 " 'worker': 2,\n",
2538 " 'iteration': 7500,\n",
2539 " 'fitness': -15570.94946286388},\n",
2540 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 182000),\n",
2541 " 'worker': 3,\n",
2542 " 'iteration': 7500,\n",
2543 " 'fitness': -16553.28915763965},\n",
2544 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 302000),\n",
2545 " 'worker': 4,\n",
2546 " 'iteration': 7500,\n",
2547 " 'fitness': -16501.180389660924},\n",
2548 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 303000),\n",
2549 " 'worker': 9,\n",
2550 " 'iteration': 7500,\n",
2551 " 'fitness': -16250.722025520972},\n",
2552 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 381000),\n",
2553 " 'worker': 7,\n",
2554 " 'iteration': 7500,\n",
2555 " 'fitness': -17268.919774722508},\n",
2556 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 419000),\n",
2557 " 'worker': 0,\n",
2558 " 'iteration': 8500,\n",
2559 " 'fitness': -17048.836849959105},\n",
2560 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 581000),\n",
2561 " 'worker': 1,\n",
2562 " 'iteration': 9000,\n",
2563 " 'fitness': -17810.016087094227},\n",
2564 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 678000),\n",
2565 " 'worker': 8,\n",
2566 " 'iteration': 8500,\n",
2567 " 'fitness': -18752.845284275703},\n",
2568 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 927000),\n",
2569 " 'worker': 5,\n",
2570 " 'iteration': 8500,\n",
2571 " 'fitness': -16175.607528275586},\n",
2572 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 321000),\n",
2573 " 'worker': 1,\n",
2574 " 'iteration': 9500,\n",
2575 " 'fitness': -16721.142895272147},\n",
2576 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 396000),\n",
2577 " 'worker': 6,\n",
2578 " 'iteration': 8500,\n",
2579 " 'fitness': -17123.34118469316},\n",
2580 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 439000),\n",
2581 " 'worker': 8,\n",
2582 " 'iteration': 9000,\n",
2583 " 'fitness': -17206.462551935492},\n",
2584 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 480000),\n",
2585 " 'worker': 2,\n",
2586 " 'iteration': 8000,\n",
2587 " 'fitness': -16055.229264463589},\n",
2588 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 481000),\n",
2589 " 'worker': 3,\n",
2590 " 'iteration': 8000,\n",
2591 " 'fitness': -15971.124638912872},\n",
2592 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 601000),\n",
2593 " 'worker': 9,\n",
2594 " 'iteration': 8000,\n",
2595 " 'fitness': -16750.905525795755},\n",
2596 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 604000),\n",
2597 " 'worker': 4,\n",
2598 " 'iteration': 8000,\n",
2599 " 'fitness': -16221.64902996803},\n",
2600 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 687000),\n",
2601 " 'worker': 7,\n",
2602 " 'iteration': 8000,\n",
2603 " 'fitness': -16168.508201710261},\n",
2604 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 718000),\n",
2605 " 'worker': 0,\n",
2606 " 'iteration': 9000,\n",
2607 " 'fitness': -17309.88570310366},\n",
2608 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 225000),\n",
2609 " 'worker': 5,\n",
2610 " 'iteration': 9000,\n",
2611 " 'fitness': -16630.758677893176},\n",
2612 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 306000),\n",
2613 " 'worker': 1,\n",
2614 " 'iteration': 10000,\n",
2615 " 'fitness': -16458.37817939503},\n",
2616 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 341000),\n",
2617 " 'worker': 8,\n",
2618 " 'iteration': 9500,\n",
2619 " 'fitness': -18115.910872797052},\n",
2620 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 707000),\n",
2621 " 'worker': 6,\n",
2622 " 'iteration': 9000,\n",
2623 " 'fitness': -18076.206333573326},\n",
2624 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 765000),\n",
2625 " 'worker': 3,\n",
2626 " 'iteration': 8500,\n",
2627 " 'fitness': -16554.325053408993},\n",
2628 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 773000),\n",
2629 " 'worker': 2,\n",
2630 " 'iteration': 8500,\n",
2631 " 'fitness': -16358.06215804406},\n",
2632 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 890000),\n",
2633 " 'worker': 9,\n",
2634 " 'iteration': 8500,\n",
2635 " 'fitness': -17732.5396101792},\n",
2636 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 904000),\n",
2637 " 'worker': 4,\n",
2638 " 'iteration': 8500,\n",
2639 " 'fitness': -17404.41627980615},\n",
2640 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 981000),\n",
2641 " 'worker': 7,\n",
2642 " 'iteration': 8500,\n",
2643 " 'fitness': -17044.235539199384},\n",
2644 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 2000),\n",
2645 " 'worker': 5,\n",
2646 " 'iteration': 9500,\n",
2647 " 'fitness': -16157.472136689625},\n",
2648 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 30000),\n",
2649 " 'worker': 0,\n",
2650 " 'iteration': 9500,\n",
2651 " 'fitness': -15935.254778228882},\n",
2652 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 63000),\n",
2653 " 'worker': 1,\n",
2654 " 'iteration': 10500,\n",
2655 " 'fitness': -15790.70127875513},\n",
2656 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 650000),\n",
2657 " 'worker': 8,\n",
2658 " 'iteration': 10000,\n",
2659 " 'fitness': -18568.583229449458},\n",
2660 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 731000),\n",
2661 " 'worker': 2,\n",
2662 " 'iteration': 9000,\n",
2663 " 'fitness': -15423.7885269577},\n",
2664 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 743000),\n",
2665 " 'worker': 5,\n",
2666 " 'iteration': 10000,\n",
2667 " 'fitness': -15907.693594558705},\n",
2668 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54),\n",
2669 " 'worker': 6,\n",
2670 " 'iteration': 9500,\n",
2671 " 'fitness': -16802.56684951041},\n",
2672 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 60000),\n",
2673 " 'worker': 3,\n",
2674 " 'iteration': 9000,\n",
2675 " 'fitness': -16145.569612905003},\n",
2676 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 188000),\n",
2677 " 'worker': 9,\n",
2678 " 'iteration': 9000,\n",
2679 " 'fitness': -16435.36881207485},\n",
2680 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 213000),\n",
2681 " 'worker': 4,\n",
2682 " 'iteration': 9000,\n",
2683 " 'fitness': -15597.017179474158},\n",
2684 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 223000),\n",
2685 " 'worker': 1,\n",
2686 " 'iteration': 11000,\n",
2687 " 'fitness': -15864.058756356626},\n",
2688 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 291000),\n",
2689 " 'worker': 7,\n",
2690 " 'iteration': 9000,\n",
2691 " 'fitness': -17089.426146020563},\n",
2692 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 328000),\n",
2693 " 'worker': 0,\n",
2694 " 'iteration': 10000,\n",
2695 " 'fitness': -15694.589651580845},\n",
2696 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 467000),\n",
2697 " 'worker': 2,\n",
2698 " 'iteration': 9500,\n",
2699 " 'fitness': -15490.089700212742},\n",
2700 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 661000),\n",
2701 " 'worker': 5,\n",
2702 " 'iteration': 10500,\n",
2703 " 'fitness': -15331.448882458491},\n",
2704 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 950000),\n",
2705 " 'worker': 8,\n",
2706 " 'iteration': 10500,\n",
2707 " 'fitness': -18254.79538782754},\n",
2708 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 983000),\n",
2709 " 'worker': 1,\n",
2710 " 'iteration': 11500,\n",
2711 " 'fitness': -15453.810944913927},\n",
2712 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 215000),\n",
2713 " 'worker': 2,\n",
2714 " 'iteration': 10000,\n",
2715 " 'fitness': -15788.27615253343},\n",
2716 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 315000),\n",
2717 " 'worker': 6,\n",
2718 " 'iteration': 10000,\n",
2719 " 'fitness': -15387.352075338764},\n",
2720 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 345000),\n",
2721 " 'worker': 3,\n",
2722 " 'iteration': 9500,\n",
2723 " 'fitness': -16906.638018393314},\n",
2724 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 472000),\n",
2725 " 'worker': 9,\n",
2726 " 'iteration': 9500,\n",
2727 " 'fitness': -16910.471933948906},\n",
2728 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 502000),\n",
2729 " 'worker': 4,\n",
2730 " 'iteration': 9500,\n",
2731 " 'fitness': -15838.845009907493},\n",
2732 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 584000),\n",
2733 " 'worker': 7,\n",
2734 " 'iteration': 9500,\n",
2735 " 'fitness': -16236.663760999885},\n",
2736 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 608000),\n",
2737 " 'worker': 0,\n",
2738 " 'iteration': 10500,\n",
2739 " 'fitness': -15582.878773613726},\n",
2740 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 744000),\n",
2741 " 'worker': 1,\n",
2742 " 'iteration': 12000,\n",
2743 " 'fitness': -15857.712951845626},\n",
2744 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 963000),\n",
2745 " 'worker': 5,\n",
2746 " 'iteration': 11000,\n",
2747 " 'fitness': -15224.34418167227},\n",
2748 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 990000),\n",
2749 " 'worker': 2,\n",
2750 " 'iteration': 10500,\n",
2751 " 'fitness': -15510.124537814698},\n",
2752 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 259000),\n",
2753 " 'worker': 8,\n",
2754 " 'iteration': 11000,\n",
2755 " 'fitness': -16684.797395049696},\n",
2756 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 509000),\n",
2757 " 'worker': 1,\n",
2758 " 'iteration': 12500,\n",
2759 " 'fitness': -15899.290135264084},\n",
2760 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 606000),\n",
2761 " 'worker': 6,\n",
2762 " 'iteration': 10500,\n",
2763 " 'fitness': -16982.897162746085},\n",
2764 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 643000),\n",
2765 " 'worker': 3,\n",
2766 " 'iteration': 10000,\n",
2767 " 'fitness': -15880.24335549858},\n",
2768 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 726000),\n",
2769 " 'worker': 2,\n",
2770 " 'iteration': 11000,\n",
2771 " 'fitness': -15618.302247103386},\n",
2772 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 769000),\n",
2773 " 'worker': 9,\n",
2774 " 'iteration': 10000,\n",
2775 " 'fitness': -15910.365820786265},\n",
2776 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 803000),\n",
2777 " 'worker': 4,\n",
2778 " 'iteration': 10000,\n",
2779 " 'fitness': -16076.436195135359},\n",
2780 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 886000),\n",
2781 " 'worker': 7,\n",
2782 " 'iteration': 10000,\n",
2783 " 'fitness': -15601.565064812852},\n",
2784 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 900000),\n",
2785 " 'worker': 0,\n",
2786 " 'iteration': 11000,\n",
2787 " 'fitness': -15314.579171383004},\n",
2788 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 250000),\n",
2789 " 'worker': 1,\n",
2790 " 'iteration': 13000,\n",
2791 " 'fitness': -15114.676681414347},\n",
2792 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 252000),\n",
2793 " 'worker': 5,\n",
2794 " 'iteration': 11500,\n",
2795 " 'fitness': -15681.437564457789},\n",
2796 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 554000),\n",
2797 " 'worker': 8,\n",
2798 " 'iteration': 11500,\n",
2799 " 'fitness': -16874.11729892052},\n",
2800 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 651000),\n",
2801 " 'worker': 2,\n",
2802 " 'iteration': 11500,\n",
2803 " 'fitness': -15088.705999484571},\n",
2804 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 926000),\n",
2805 " 'worker': 3,\n",
2806 " 'iteration': 10500,\n",
2807 " 'fitness': -15500.632495571637},\n",
2808 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 931000),\n",
2809 " 'worker': 6,\n",
2810 " 'iteration': 11000,\n",
2811 " 'fitness': -16376.982856570163},\n",
2812 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 990000),\n",
2813 " 'worker': 1,\n",
2814 " 'iteration': 13500,\n",
2815 " 'fitness': -14758.523310234728},\n",
2816 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 22000),\n",
2817 " 'worker': 5,\n",
2818 " 'iteration': 12000,\n",
2819 " 'fitness': -15581.876640395263},\n",
2820 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 53000),\n",
2821 " 'worker': 9,\n",
2822 " 'iteration': 10500,\n",
2823 " 'fitness': -15936.659326834395},\n",
2824 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 94000),\n",
2825 " 'worker': 4,\n",
2826 " 'iteration': 10500,\n",
2827 " 'fitness': -16394.41556159084},\n",
2828 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 179000),\n",
2829 " 'worker': 0,\n",
2830 " 'iteration': 11500,\n",
2831 " 'fitness': -14942.449992115211},\n",
2832 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 190000),\n",
2833 " 'worker': 7,\n",
2834 " 'iteration': 10500,\n",
2835 " 'fitness': -15356.809574891702},\n",
2836 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 748000),\n",
2837 " 'worker': 5,\n",
2838 " 'iteration': 12500,\n",
2839 " 'fitness': -15276.710353852186},\n",
2840 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 766000),\n",
2841 " 'worker': 1,\n",
2842 " 'iteration': 14000,\n",
2843 " 'fitness': -15162.08405060763},\n",
2844 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 854000),\n",
2845 " 'worker': 8,\n",
2846 " 'iteration': 12000,\n",
2847 " 'fitness': -15741.267175116936},\n",
2848 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 946000),\n",
2849 " 'worker': 2,\n",
2850 " 'iteration': 12000,\n",
2851 " 'fitness': -15368.482505196353},\n",
2852 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 221000),\n",
2853 " 'worker': 6,\n",
2854 " 'iteration': 11500,\n",
2855 " 'fitness': -15691.10227685781},\n",
2856 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 222000),\n",
2857 " 'worker': 3,\n",
2858 " 'iteration': 11000,\n",
2859 " 'fitness': -15197.534159786483},\n",
2860 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 346000),\n",
2861 " 'worker': 9,\n",
2862 " 'iteration': 11000,\n",
2863 " 'fitness': -15246.633563963847},\n",
2864 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 391000),\n",
2865 " 'worker': 4,\n",
2866 " 'iteration': 11000,\n",
2867 " 'fitness': -15207.373029629109},\n",
2868 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 467000),\n",
2869 " 'worker': 0,\n",
2870 " 'iteration': 12000,\n",
2871 " 'fitness': -15471.335261220765},\n",
2872 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 488000),\n",
2873 " 'worker': 7,\n",
2874 " 'iteration': 11000,\n",
2875 " 'fitness': -15123.146456093333},\n",
2876 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 495000),\n",
2877 " 'worker': 5,\n",
2878 " 'iteration': 13000,\n",
2879 " 'fitness': -15369.523244430631},\n",
2880 " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 496000),\n",
2881 " 'worker': 1,\n",
2882 " 'iteration': 14500,\n",
2883 " 'fitness': -14703.30465175159},\n",
2884 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 141000),\n",
2885 " 'worker': 8,\n",
2886 " 'iteration': 12500,\n",
2887 " 'fitness': -15978.29558113683},\n",
2888 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 202000),\n",
2889 " 'worker': 5,\n",
2890 " 'iteration': 13500,\n",
2891 " 'fitness': -15210.248129074906},\n",
2892 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 228000),\n",
2893 " 'worker': 2,\n",
2894 " 'iteration': 12500,\n",
2895 " 'fitness': -15070.932598973135},\n",
2896 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 236000),\n",
2897 " 'worker': 1,\n",
2898 " 'iteration': 15000,\n",
2899 " 'fitness': -14696.82992865629},\n",
2900 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 501000),\n",
2901 " 'worker': 3,\n",
2902 " 'iteration': 11500,\n",
2903 " 'fitness': -15417.87854337438},\n",
2904 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 513000),\n",
2905 " 'worker': 6,\n",
2906 " 'iteration': 12000,\n",
2907 " 'fitness': -15497.453865796844},\n",
2908 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 622000),\n",
2909 " 'worker': 9,\n",
2910 " 'iteration': 11500,\n",
2911 " 'fitness': -15256.022958715765},\n",
2912 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 674000),\n",
2913 " 'worker': 4,\n",
2914 " 'iteration': 11500,\n",
2915 " 'fitness': -15448.106606929205},\n",
2916 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 743000),\n",
2917 " 'worker': 0,\n",
2918 " 'iteration': 12500,\n",
2919 " 'fitness': -14977.106397283767},\n",
2920 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 775000),\n",
2921 " 'worker': 7,\n",
2922 " 'iteration': 11500,\n",
2923 " 'fitness': -16115.80710224294},\n",
2924 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 945000),\n",
2925 " 'worker': 1,\n",
2926 " 'iteration': 15500,\n",
2927 " 'fitness': -14753.192978629439},\n",
2928 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 951000),\n",
2929 " 'worker': 5,\n",
2930 " 'iteration': 14000,\n",
2931 " 'fitness': -14993.717806464269},\n",
2932 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 441000),\n",
2933 " 'worker': 8,\n",
2934 " 'iteration': 13000,\n",
2935 " 'fitness': -15566.600288230786},\n",
2936 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 518000),\n",
2937 " 'worker': 2,\n",
2938 " 'iteration': 13000,\n",
2939 " 'fitness': -15120.200192040631},\n",
2940 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 685000),\n",
2941 " 'worker': 4,\n",
2942 " 'iteration': 12000,\n",
2943 " 'fitness': -14893.816656932617},\n",
2944 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 698000),\n",
2945 " 'worker': 1,\n",
2946 " 'iteration': 16000,\n",
2947 " 'fitness': -14698.864981580778},\n",
2948 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 797000),\n",
2949 " 'worker': 3,\n",
2950 " 'iteration': 12000,\n",
2951 " 'fitness': -15697.580890996342},\n",
2952 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 806000),\n",
2953 " 'worker': 6,\n",
2954 " 'iteration': 12500,\n",
2955 " 'fitness': -15437.324954281872},\n",
2956 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 923000),\n",
2957 " 'worker': 9,\n",
2958 " 'iteration': 12000,\n",
2959 " 'fitness': -14985.884198039563},\n",
2960 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 33000),\n",
2961 " 'worker': 0,\n",
2962 " 'iteration': 13000,\n",
2963 " 'fitness': -14954.236485580337},\n",
2964 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 45000),\n",
2965 " 'worker': 5,\n",
2966 " 'iteration': 14500,\n",
2967 " 'fitness': -14798.207889316744},\n",
2968 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 79000),\n",
2969 " 'worker': 7,\n",
2970 " 'iteration': 12000,\n",
2971 " 'fitness': -15218.980965385977},\n",
2972 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 720000),\n",
2973 " 'worker': 8,\n",
2974 " 'iteration': 13500,\n",
2975 " 'fitness': -15307.30604779866},\n",
2976 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 750000),\n",
2977 " 'worker': 1,\n",
2978 " 'iteration': 16500,\n",
2979 " 'fitness': -14772.059055189866},\n",
2980 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 810000),\n",
2981 " 'worker': 2,\n",
2982 " 'iteration': 13500,\n",
2983 " 'fitness': -15509.930069578795},\n",
2984 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 842000),\n",
2985 " 'worker': 4,\n",
2986 " 'iteration': 12500,\n",
2987 " 'fitness': -15078.39977289335},\n",
2988 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 83000),\n",
2989 " 'worker': 3,\n",
2990 " 'iteration': 12500,\n",
2991 " 'fitness': -15258.335326596824},\n",
2992 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 119000),\n",
2993 " 'worker': 6,\n",
2994 " 'iteration': 13000,\n",
2995 " 'fitness': -14848.550016511359},\n",
2996 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 218000),\n",
2997 " 'worker': 9,\n",
2998 " 'iteration': 12500,\n",
2999 " 'fitness': -14689.84155926745},\n",
3000 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 314000),\n",
3001 " 'worker': 0,\n",
3002 " 'iteration': 13500,\n",
3003 " 'fitness': -14762.142170684896},\n",
3004 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 350000),\n",
3005 " 'worker': 5,\n",
3006 " 'iteration': 15000,\n",
3007 " 'fitness': -14696.82992865629},\n",
3008 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 376000),\n",
3009 " 'worker': 7,\n",
3010 " 'iteration': 12500,\n",
3011 " 'fitness': -15026.934771143106},\n",
3012 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 19000),\n",
3013 " 'worker': 8,\n",
3014 " 'iteration': 14000,\n",
3015 " 'fitness': -14689.84155926745},\n",
3016 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 39000),\n",
3017 " 'worker': 1,\n",
3018 " 'iteration': 17000,\n",
3019 " 'fitness': -14681.308607565503},\n",
3020 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 104000),\n",
3021 " 'worker': 2,\n",
3022 " 'iteration': 14000,\n",
3023 " 'fitness': -14689.84155926745},\n",
3024 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 139000),\n",
3025 " 'worker': 4,\n",
3026 " 'iteration': 13000,\n",
3027 " 'fitness': -14909.800865024245},\n",
3028 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 378000),\n",
3029 " 'worker': 3,\n",
3030 " 'iteration': 13000,\n",
3031 " 'fitness': -15115.91350339263},\n",
3032 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 400000),\n",
3033 " 'worker': 6,\n",
3034 " 'iteration': 13500,\n",
3035 " 'fitness': -15039.58557529451},\n",
3036 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 515000),\n",
3037 " 'worker': 9,\n",
3038 " 'iteration': 13000,\n",
3039 " 'fitness': -14822.625860493024},\n",
3040 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 605000),\n",
3041 " 'worker': 0,\n",
3042 " 'iteration': 14000,\n",
3043 " 'fitness': -14932.523831654122},\n",
3044 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 638000),\n",
3045 " 'worker': 5,\n",
3046 " 'iteration': 15500,\n",
3047 " 'fitness': -14689.84155926745},\n",
3048 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 681000),\n",
3049 " 'worker': 7,\n",
3050 " 'iteration': 13000,\n",
3051 " 'fitness': -15166.683262976208},\n",
3052 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 311000),\n",
3053 " 'worker': 8,\n",
3054 " 'iteration': 14500,\n",
3055 " 'fitness': -14696.82992865629},\n",
3056 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 320000),\n",
3057 " 'worker': 1,\n",
3058 " 'iteration': 17500,\n",
3059 " 'fitness': -14681.308607565503},\n",
3060 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 394000),\n",
3061 " 'worker': 2,\n",
3062 " 'iteration': 14500,\n",
3063 " 'fitness': -14698.864981580778},\n",
3064 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 439000),\n",
3065 " 'worker': 4,\n",
3066 " 'iteration': 13500,\n",
3067 " 'fitness': -15057.5152032743},\n",
3068 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 634000),\n",
3069 " 'worker': 9,\n",
3070 " 'iteration': 13500,\n",
3071 " 'fitness': -15013.715132067427},\n",
3072 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 663000),\n",
3073 " 'worker': 3,\n",
3074 " 'iteration': 13500,\n",
3075 " 'fitness': -14759.146412767077},\n",
3076 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 698000),\n",
3077 " 'worker': 5,\n",
3078 " 'iteration': 16000,\n",
3079 " 'fitness': -14689.84155926745},\n",
3080 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 705000),\n",
3081 " 'worker': 6,\n",
3082 " 'iteration': 14000,\n",
3083 " 'fitness': -14873.687469365803},\n",
3084 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 896000),\n",
3085 " 'worker': 0,\n",
3086 " 'iteration': 14500,\n",
3087 " 'fitness': -14978.652512051753},\n",
3088 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 996000),\n",
3089 " 'worker': 7,\n",
3090 " 'iteration': 13500,\n",
3091 " 'fitness': -15395.233923017795},\n",
3092 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 517000),\n",
3093 " 'worker': 9,\n",
3094 " 'iteration': 14000,\n",
3095 " 'fitness': -14797.257897943533},\n",
3096 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 575000),\n",
3097 " 'worker': 5,\n",
3098 " 'iteration': 16500,\n",
3099 " 'fitness': -14681.308607565503},\n",
3100 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 611000),\n",
3101 " 'worker': 8,\n",
3102 " 'iteration': 15000,\n",
3103 " 'fitness': -14698.864981580778},\n",
3104 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 613000),\n",
3105 " 'worker': 1,\n",
3106 " 'iteration': 18000,\n",
3107 " 'fitness': -14681.308607565503},\n",
3108 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 691000),\n",
3109 " 'worker': 2,\n",
3110 " 'iteration': 15000,\n",
3111 " 'fitness': -14784.610965075099},\n",
3112 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 741000),\n",
3113 " 'worker': 4,\n",
3114 " 'iteration': 14000,\n",
3115 " 'fitness': -15147.438375322876},\n",
3116 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 960000),\n",
3117 " 'worker': 3,\n",
3118 " 'iteration': 14000,\n",
3119 " 'fitness': -14964.296601131206},\n",
3120 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 994000),\n",
3121 " 'worker': 6,\n",
3122 " 'iteration': 14500,\n",
3123 " 'fitness': -14805.06948647775},\n",
3124 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 272000),\n",
3125 " 'worker': 0,\n",
3126 " 'iteration': 15000,\n",
3127 " 'fitness': -15018.371309111777},\n",
3128 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 322000),\n",
3129 " 'worker': 7,\n",
3130 " 'iteration': 14000,\n",
3131 " 'fitness': -14939.804035587642},\n",
3132 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 476000),\n",
3133 " 'worker': 9,\n",
3134 " 'iteration': 14500,\n",
3135 " 'fitness': -14895.606254501257},\n",
3136 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 808000),\n",
3137 " 'worker': 5,\n",
3138 " 'iteration': 17000,\n",
3139 " 'fitness': -14700.923210187424},\n",
3140 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 898000),\n",
3141 " 'worker': 1,\n",
3142 " 'iteration': 18500,\n",
3143 " 'fitness': -14681.308607565503},\n",
3144 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 902000),\n",
3145 " 'worker': 8,\n",
3146 " 'iteration': 15500,\n",
3147 " 'fitness': -14958.4987562011},\n",
3148 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 981000),\n",
3149 " 'worker': 2,\n",
3150 " 'iteration': 15500,\n",
3151 " 'fitness': -14766.30773587518},\n",
3152 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 40000),\n",
3153 " 'worker': 4,\n",
3154 " 'iteration': 14500,\n",
3155 " 'fitness': -15076.754837130193},\n",
3156 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 103000),\n",
3157 " 'worker': 7,\n",
3158 " 'iteration': 14500,\n",
3159 " 'fitness': -14912.056192855927},\n",
3160 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 280000),\n",
3161 " 'worker': 3,\n",
3162 " 'iteration': 14500,\n",
3163 " 'fitness': -14767.679364469022},\n",
3164 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 288000),\n",
3165 " 'worker': 9,\n",
3166 " 'iteration': 15000,\n",
3167 " 'fitness': -14986.75304537988},\n",
3168 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 296000),\n",
3169 " 'worker': 6,\n",
3170 " 'iteration': 15000,\n",
3171 " 'fitness': -14964.408288222712},\n",
3172 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 554000),\n",
3173 " 'worker': 0,\n",
3174 " 'iteration': 15500,\n",
3175 " 'fitness': -14986.892588150418},\n",
3176 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 24000),\n",
3177 " 'worker': 7,\n",
3178 " 'iteration': 15000,\n",
3179 " 'fitness': -14698.864981580778},\n",
3180 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 99000),\n",
3181 " 'worker': 5,\n",
3182 " 'iteration': 17500,\n",
3183 " 'fitness': -14681.308607565503},\n",
3184 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 165000),\n",
3185 " 'worker': 9,\n",
3186 " 'iteration': 15500,\n",
3187 " 'fitness': -14696.82992865629},\n",
3188 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 190000),\n",
3189 " 'worker': 1,\n",
3190 " 'iteration': 19000,\n",
3191 " 'fitness': -14681.308607565503},\n",
3192 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 203000),\n",
3193 " 'worker': 8,\n",
3194 " 'iteration': 16000,\n",
3195 " 'fitness': -14698.864981580778},\n",
3196 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 279000),\n",
3197 " 'worker': 2,\n",
3198 " 'iteration': 16000,\n",
3199 " 'fitness': -14761.868065704366},\n",
3200 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 340000),\n",
3201 " 'worker': 4,\n",
3202 " 'iteration': 15000,\n",
3203 " 'fitness': -14877.657337982304},\n",
3204 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 582000),\n",
3205 " 'worker': 3,\n",
3206 " 'iteration': 15000,\n",
3207 " 'fitness': -14739.612188053427},\n",
3208 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 585000),\n",
3209 " 'worker': 6,\n",
3210 " 'iteration': 15500,\n",
3211 " 'fitness': -14991.71033865808},\n",
3212 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 849000),\n",
3213 " 'worker': 0,\n",
3214 " 'iteration': 16000,\n",
3215 " 'fitness': -14698.864981580778},\n",
3216 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 864000),\n",
3217 " 'worker': 7,\n",
3218 " 'iteration': 15500,\n",
3219 " 'fitness': -14700.923210187424},\n",
3220 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 995000),\n",
3221 " 'worker': 9,\n",
3222 " 'iteration': 16000,\n",
3223 " 'fitness': -14681.308607565503},\n",
3224 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 395000),\n",
3225 " 'worker': 5,\n",
3226 " 'iteration': 18000,\n",
3227 " 'fitness': -14681.308607565503},\n",
3228 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 485000),\n",
3229 " 'worker': 1,\n",
3230 " 'iteration': 19500,\n",
3231 " 'fitness': -14681.308607565503},\n",
3232 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 501000),\n",
3233 " 'worker': 8,\n",
3234 " 'iteration': 16500,\n",
3235 " 'fitness': -14766.30773587518},\n",
3236 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 563000),\n",
3237 " 'worker': 2,\n",
3238 " 'iteration': 16500,\n",
3239 " 'fitness': -14771.903569422147},\n",
3240 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 619000),\n",
3241 " 'worker': 7,\n",
3242 " 'iteration': 16000,\n",
3243 " 'fitness': -14919.68053225613},\n",
3244 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 626000),\n",
3245 " 'worker': 4,\n",
3246 " 'iteration': 15500,\n",
3247 " 'fitness': -14689.84155926745},\n",
3248 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 743000),\n",
3249 " 'worker': 9,\n",
3250 " 'iteration': 16500,\n",
3251 " 'fitness': -14681.308607565503},\n",
3252 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 869000),\n",
3253 " 'worker': 3,\n",
3254 " 'iteration': 15500,\n",
3255 " 'fitness': -14797.42321524005},\n",
3256 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 877000),\n",
3257 " 'worker': 6,\n",
3258 " 'iteration': 16000,\n",
3259 " 'fitness': -14689.84155926745},\n",
3260 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 122000),\n",
3261 " 'worker': 0,\n",
3262 " 'iteration': 16500,\n",
3263 " 'fitness': -14681.308607565503},\n",
3264 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 485000),\n",
3265 " 'worker': 5,\n",
3266 " 'iteration': 18500,\n",
3267 " 'fitness': -14681.308607565503},\n",
3268 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 491000),\n",
3269 " 'worker': 7,\n",
3270 " 'iteration': 16500,\n",
3271 " 'fitness': -14808.607142582212},\n",
3272 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 510000),\n",
3273 " 'worker': 9,\n",
3274 " 'iteration': 17000,\n",
3275 " 'fitness': -14689.84155926745},\n",
3276 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 792000),\n",
3277 " 'worker': 8,\n",
3278 " 'iteration': 17000,\n",
3279 " 'fitness': -14700.923210187424},\n",
3280 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 849000),\n",
3281 " 'worker': 2,\n",
3282 " 'iteration': 17000,\n",
3283 " 'fitness': -14689.84155926745},\n",
3284 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 917000),\n",
3285 " 'worker': 4,\n",
3286 " 'iteration': 16000,\n",
3287 " 'fitness': -14696.82992865629},\n",
3288 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 155000),\n",
3289 " 'worker': 6,\n",
3290 " 'iteration': 16500,\n",
3291 " 'fitness': -14681.308607565503},\n",
3292 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 163000),\n",
3293 " 'worker': 3,\n",
3294 " 'iteration': 16000,\n",
3295 " 'fitness': -14698.864981580778},\n",
3296 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 254000),\n",
3297 " 'worker': 9,\n",
3298 " 'iteration': 17500,\n",
3299 " 'fitness': -14700.923210187424},\n",
3300 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 409000),\n",
3301 " 'worker': 0,\n",
3302 " 'iteration': 17000,\n",
3303 " 'fitness': -14696.82992865629},\n",
3304 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 447000),\n",
3305 " 'worker': 5,\n",
3306 " 'iteration': 19000,\n",
3307 " 'fitness': -14681.308607565503},\n",
3308 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 748000),\n",
3309 " 'worker': 8,\n",
3310 " 'iteration': 17500,\n",
3311 " 'fitness': -14703.30465175159},\n",
3312 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 794000),\n",
3313 " 'worker': 7,\n",
3314 " 'iteration': 17000,\n",
3315 " 'fitness': -14698.864981580778},\n",
3316 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 67000),\n",
3317 " 'worker': 9,\n",
3318 " 'iteration': 18000,\n",
3319 " 'fitness': -14681.308607565503},\n",
3320 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 135000),\n",
3321 " 'worker': 2,\n",
3322 " 'iteration': 17500,\n",
3323 " 'fitness': -14689.84155926745},\n",
3324 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 204000),\n",
3325 " 'worker': 4,\n",
3326 " 'iteration': 16500,\n",
3327 " 'fitness': -14703.30465175159},\n",
3328 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 430000),\n",
3329 " 'worker': 5,\n",
3330 " 'iteration': 19500,\n",
3331 " 'fitness': -14681.308607565503},\n",
3332 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 452000),\n",
3333 " 'worker': 6,\n",
3334 " 'iteration': 17000,\n",
3335 " 'fitness': -14700.923210187424},\n",
3336 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 452000),\n",
3337 " 'worker': 3,\n",
3338 " 'iteration': 16500,\n",
3339 " 'fitness': -14681.308607565503},\n",
3340 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 559000),\n",
3341 " 'worker': 8,\n",
3342 " 'iteration': 18000,\n",
3343 " 'fitness': -14681.308607565503},\n",
3344 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 691000),\n",
3345 " 'worker': 0,\n",
3346 " 'iteration': 17500,\n",
3347 " 'fitness': -14681.308607565503},\n",
3348 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 918000),\n",
3349 " 'worker': 9,\n",
3350 " 'iteration': 18500,\n",
3351 " 'fitness': -14681.308607565503},\n",
3352 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 81000),\n",
3353 " 'worker': 7,\n",
3354 " 'iteration': 17500,\n",
3355 " 'fitness': -14681.308607565503},\n",
3356 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 345000),\n",
3357 " 'worker': 8,\n",
3358 " 'iteration': 18500,\n",
3359 " 'fitness': -14681.308607565503},\n",
3360 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 429000),\n",
3361 " 'worker': 2,\n",
3362 " 'iteration': 18000,\n",
3363 " 'fitness': -14681.308607565503},\n",
3364 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 502000),\n",
3365 " 'worker': 4,\n",
3366 " 'iteration': 17000,\n",
3367 " 'fitness': -14703.30465175159},\n",
3368 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 660000),\n",
3369 " 'worker': 9,\n",
3370 " 'iteration': 19000,\n",
3371 " 'fitness': -14681.308607565503},\n",
3372 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 731000),\n",
3373 " 'worker': 6,\n",
3374 " 'iteration': 17500,\n",
3375 " 'fitness': -14681.308607565503},\n",
3376 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 743000),\n",
3377 " 'worker': 3,\n",
3378 " 'iteration': 17000,\n",
3379 " 'fitness': -14698.864981580778},\n",
3380 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 976000),\n",
3381 " 'worker': 0,\n",
3382 " 'iteration': 18000,\n",
3383 " 'fitness': -14681.308607565503},\n",
3384 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 20000),\n",
3385 " 'worker': 8,\n",
3386 " 'iteration': 19000,\n",
3387 " 'fitness': -14681.308607565503},\n",
3388 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 356000),\n",
3389 " 'worker': 9,\n",
3390 " 'iteration': 19500,\n",
3391 " 'fitness': -14681.308607565503},\n",
3392 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 373000),\n",
3393 " 'worker': 7,\n",
3394 " 'iteration': 18000,\n",
3395 " 'fitness': -14689.84155926745},\n",
3396 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 448000),\n",
3397 " 'worker': 2,\n",
3398 " 'iteration': 18500,\n",
3399 " 'fitness': -14681.308607565503},\n",
3400 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 596000),\n",
3401 " 'worker': 6,\n",
3402 " 'iteration': 18000,\n",
3403 " 'fitness': -14696.82992865629},\n",
3404 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 695000),\n",
3405 " 'worker': 8,\n",
3406 " 'iteration': 19500,\n",
3407 " 'fitness': -14681.308607565503},\n",
3408 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 778000),\n",
3409 " 'worker': 4,\n",
3410 " 'iteration': 17500,\n",
3411 " 'fitness': -14703.30465175159},\n",
3412 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 16000),\n",
3413 " 'worker': 3,\n",
3414 " 'iteration': 17500,\n",
3415 " 'fitness': -14681.308607565503},\n",
3416 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 128000),\n",
3417 " 'worker': 2,\n",
3418 " 'iteration': 19000,\n",
3419 " 'fitness': -14681.308607565503},\n",
3420 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 248000),\n",
3421 " 'worker': 0,\n",
3422 " 'iteration': 18500,\n",
3423 " 'fitness': -14681.308607565503},\n",
3424 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 274000),\n",
3425 " 'worker': 6,\n",
3426 " 'iteration': 18500,\n",
3427 " 'fitness': -14681.308607565503},\n",
3428 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 532000),\n",
3429 " 'worker': 7,\n",
3430 " 'iteration': 18500,\n",
3431 " 'fitness': -14689.84155926745},\n",
3432 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 662000),\n",
3433 " 'worker': 4,\n",
3434 " 'iteration': 18000,\n",
3435 " 'fitness': -14681.308607565503},\n",
3436 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 786000),\n",
3437 " 'worker': 2,\n",
3438 " 'iteration': 19500,\n",
3439 " 'fitness': -14681.308607565503},\n",
3440 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 868000),\n",
3441 " 'worker': 3,\n",
3442 " 'iteration': 18000,\n",
3443 " 'fitness': -14681.308607565503},\n",
3444 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 909000),\n",
3445 " 'worker': 0,\n",
3446 " 'iteration': 19000,\n",
3447 " 'fitness': -14681.308607565503},\n",
3448 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 947000),\n",
3449 " 'worker': 6,\n",
3450 " 'iteration': 19000,\n",
3451 " 'fitness': -14681.308607565503},\n",
3452 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 231000),\n",
3453 " 'worker': 7,\n",
3454 " 'iteration': 19000,\n",
3455 " 'fitness': -14681.308607565503},\n",
3456 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 320000),\n",
3457 " 'worker': 4,\n",
3458 " 'iteration': 18500,\n",
3459 " 'fitness': -14681.308607565503},\n",
3460 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 524000),\n",
3461 " 'worker': 3,\n",
3462 " 'iteration': 18500,\n",
3463 " 'fitness': -14681.308607565503},\n",
3464 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 581000),\n",
3465 " 'worker': 0,\n",
3466 " 'iteration': 19500,\n",
3467 " 'fitness': -14681.308607565503},\n",
3468 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 605000),\n",
3469 " 'worker': 6,\n",
3470 " 'iteration': 19500,\n",
3471 " 'fitness': -14681.308607565503},\n",
3472 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 878000),\n",
3473 " 'worker': 7,\n",
3474 " 'iteration': 19500,\n",
3475 " 'fitness': -14681.308607565503},\n",
3476 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 996000),\n",
3477 " 'worker': 4,\n",
3478 " 'iteration': 19000,\n",
3479 " 'fitness': -14681.308607565503},\n",
3480 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 173000),\n",
3481 " 'worker': 3,\n",
3482 " 'iteration': 19000,\n",
3483 " 'fitness': -14681.308607565503},\n",
3484 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 642000),\n",
3485 " 'worker': 4,\n",
3486 " 'iteration': 19500,\n",
3487 " 'fitness': -14681.308607565503},\n",
3488 " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 817000),\n",
3489 " 'worker': 3,\n",
3490 " 'iteration': 19500,\n",
3491 " 'fitness': -14681.308607565503}]"
3492 ]
3493 },
3494 "execution_count": 47,
3495 "metadata": {},
3496 "output_type": "execute_result"
3497 }
3498 ],
3499 "source": [
3500 "parsed = [log_parse(line) for line in open('cipher.log')]\n",
3501 "parsed[10:]"
3502 ]
3503 },
3504 {
3505 "cell_type": "code",
3506 "execution_count": 56,
3507 "metadata": {
3508 "scrolled": true
3509 },
3510 "outputs": [
3511 {
3512 "data": {
3513 "text/html": [
3514 "<div>\n",
3515 "<style scoped>\n",
3516 " .dataframe tbody tr th:only-of-type {\n",
3517 " vertical-align: middle;\n",
3518 " }\n",
3519 "\n",
3520 " .dataframe tbody tr th {\n",
3521 " vertical-align: top;\n",
3522 " }\n",
3523 "\n",
3524 " .dataframe thead th {\n",
3525 " text-align: right;\n",
3526 " }\n",
3527 "</style>\n",
3528 "<table border=\"1\" class=\"dataframe\">\n",
3529 " <thead>\n",
3530 " <tr style=\"text-align: right;\">\n",
3531 " <th></th>\n",
3532 " <th></th>\n",
3533 " <th>fitness</th>\n",
3534 " <th>time</th>\n",
3535 " </tr>\n",
3536 " <tr>\n",
3537 " <th>worker</th>\n",
3538 " <th>iteration</th>\n",
3539 " <th></th>\n",
3540 " <th></th>\n",
3541 " </tr>\n",
3542 " </thead>\n",
3543 " <tbody>\n",
3544 " <tr>\n",
3545 " <th rowspan=\"30\" valign=\"top\">0</th>\n",
3546 " <th>0</th>\n",
3547 " <td>-17464.568517</td>\n",
3548 " <td>2018-12-05 19:32:30.307</td>\n",
3549 " </tr>\n",
3550 " <tr>\n",
3551 " <th>500</th>\n",
3552 " <td>-19456.419361</td>\n",
3553 " <td>2018-12-05 19:32:31.653</td>\n",
3554 " </tr>\n",
3555 " <tr>\n",
3556 " <th>1000</th>\n",
3557 " <td>-19192.661068</td>\n",
3558 " <td>2018-12-05 19:32:32.663</td>\n",
3559 " </tr>\n",
3560 " <tr>\n",
3561 " <th>1500</th>\n",
3562 " <td>-21362.030854</td>\n",
3563 " <td>2018-12-05 19:32:33.684</td>\n",
3564 " </tr>\n",
3565 " <tr>\n",
3566 " <th>2000</th>\n",
3567 " <td>-19439.674465</td>\n",
3568 " <td>2018-12-05 19:32:35.103</td>\n",
3569 " </tr>\n",
3570 " <tr>\n",
3571 " <th>2500</th>\n",
3572 " <td>-19494.922209</td>\n",
3573 " <td>2018-12-05 19:32:36.676</td>\n",
3574 " </tr>\n",
3575 " <tr>\n",
3576 " <th>3000</th>\n",
3577 " <td>-19409.258504</td>\n",
3578 " <td>2018-12-05 19:32:37.862</td>\n",
3579 " </tr>\n",
3580 " <tr>\n",
3581 " <th>3500</th>\n",
3582 " <td>-19375.464977</td>\n",
3583 " <td>2018-12-05 19:32:39.191</td>\n",
3584 " </tr>\n",
3585 " <tr>\n",
3586 " <th>4000</th>\n",
3587 " <td>-18553.631818</td>\n",
3588 " <td>2018-12-05 19:32:40.468</td>\n",
3589 " </tr>\n",
3590 " <tr>\n",
3591 " <th>4500</th>\n",
3592 " <td>-18842.347858</td>\n",
3593 " <td>2018-12-05 19:32:41.331</td>\n",
3594 " </tr>\n",
3595 " <tr>\n",
3596 " <th>5000</th>\n",
3597 " <td>-19347.171865</td>\n",
3598 " <td>2018-12-05 19:32:42.396</td>\n",
3599 " </tr>\n",
3600 " <tr>\n",
3601 " <th>5500</th>\n",
3602 " <td>-18460.352808</td>\n",
3603 " <td>2018-12-05 19:32:43.163</td>\n",
3604 " </tr>\n",
3605 " <tr>\n",
3606 " <th>6000</th>\n",
3607 " <td>-18814.968213</td>\n",
3608 " <td>2018-12-05 19:32:43.981</td>\n",
3609 " </tr>\n",
3610 " <tr>\n",
3611 " <th>6500</th>\n",
3612 " <td>-18298.223867</td>\n",
3613 " <td>2018-12-05 19:32:45.198</td>\n",
3614 " </tr>\n",
3615 " <tr>\n",
3616 " <th>7000</th>\n",
3617 " <td>-17555.991450</td>\n",
3618 " <td>2018-12-05 19:32:46.534</td>\n",
3619 " </tr>\n",
3620 " <tr>\n",
3621 " <th>7500</th>\n",
3622 " <td>-17280.010163</td>\n",
3623 " <td>2018-12-05 19:32:47.825</td>\n",
3624 " </tr>\n",
3625 " <tr>\n",
3626 " <th>8000</th>\n",
3627 " <td>-17208.764191</td>\n",
3628 " <td>2018-12-05 19:32:49.129</td>\n",
3629 " </tr>\n",
3630 " <tr>\n",
3631 " <th>8500</th>\n",
3632 " <td>-17048.836850</td>\n",
3633 " <td>2018-12-05 19:32:50.419</td>\n",
3634 " </tr>\n",
3635 " <tr>\n",
3636 " <th>9000</th>\n",
3637 " <td>-17309.885703</td>\n",
3638 " <td>2018-12-05 19:32:51.718</td>\n",
3639 " </tr>\n",
3640 " <tr>\n",
3641 " <th>9500</th>\n",
3642 " <td>-15935.254778</td>\n",
3643 " <td>2018-12-05 19:32:53.030</td>\n",
3644 " </tr>\n",
3645 " <tr>\n",
3646 " <th>10000</th>\n",
3647 " <td>-15694.589652</td>\n",
3648 " <td>2018-12-05 19:32:54.328</td>\n",
3649 " </tr>\n",
3650 " <tr>\n",
3651 " <th>10500</th>\n",
3652 " <td>-15582.878774</td>\n",
3653 " <td>2018-12-05 19:32:55.608</td>\n",
3654 " </tr>\n",
3655 " <tr>\n",
3656 " <th>11000</th>\n",
3657 " <td>-15314.579171</td>\n",
3658 " <td>2018-12-05 19:32:56.900</td>\n",
3659 " </tr>\n",
3660 " <tr>\n",
3661 " <th>11500</th>\n",
3662 " <td>-14942.449992</td>\n",
3663 " <td>2018-12-05 19:32:58.179</td>\n",
3664 " </tr>\n",
3665 " <tr>\n",
3666 " <th>12000</th>\n",
3667 " <td>-15471.335261</td>\n",
3668 " <td>2018-12-05 19:32:59.467</td>\n",
3669 " </tr>\n",
3670 " <tr>\n",
3671 " <th>12500</th>\n",
3672 " <td>-14977.106397</td>\n",
3673 " <td>2018-12-05 19:33:00.743</td>\n",
3674 " </tr>\n",
3675 " <tr>\n",
3676 " <th>13000</th>\n",
3677 " <td>-14954.236486</td>\n",
3678 " <td>2018-12-05 19:33:02.033</td>\n",
3679 " </tr>\n",
3680 " <tr>\n",
3681 " <th>13500</th>\n",
3682 " <td>-14762.142171</td>\n",
3683 " <td>2018-12-05 19:33:03.314</td>\n",
3684 " </tr>\n",
3685 " <tr>\n",
3686 " <th>14000</th>\n",
3687 " <td>-14932.523832</td>\n",
3688 " <td>2018-12-05 19:33:04.605</td>\n",
3689 " </tr>\n",
3690 " <tr>\n",
3691 " <th>14500</th>\n",
3692 " <td>-14978.652512</td>\n",
3693 " <td>2018-12-05 19:33:05.896</td>\n",
3694 " </tr>\n",
3695 " <tr>\n",
3696 " <th>...</th>\n",
3697 " <th>...</th>\n",
3698 " <td>...</td>\n",
3699 " <td>...</td>\n",
3700 " </tr>\n",
3701 " <tr>\n",
3702 " <th rowspan=\"30\" valign=\"top\">9</th>\n",
3703 " <th>5000</th>\n",
3704 " <td>-19310.352956</td>\n",
3705 " <td>2018-12-05 19:32:43.791</td>\n",
3706 " </tr>\n",
3707 " <tr>\n",
3708 " <th>5500</th>\n",
3709 " <td>-17503.410891</td>\n",
3710 " <td>2018-12-05 19:32:45.106</td>\n",
3711 " </tr>\n",
3712 " <tr>\n",
3713 " <th>6000</th>\n",
3714 " <td>-17163.013191</td>\n",
3715 " <td>2018-12-05 19:32:46.422</td>\n",
3716 " </tr>\n",
3717 " <tr>\n",
3718 " <th>6500</th>\n",
3719 " <td>-16941.399877</td>\n",
3720 " <td>2018-12-05 19:32:47.714</td>\n",
3721 " </tr>\n",
3722 " <tr>\n",
3723 " <th>7000</th>\n",
3724 " <td>-16395.145359</td>\n",
3725 " <td>2018-12-05 19:32:49.016</td>\n",
3726 " </tr>\n",
3727 " <tr>\n",
3728 " <th>7500</th>\n",
3729 " <td>-16250.722026</td>\n",
3730 " <td>2018-12-05 19:32:50.303</td>\n",
3731 " </tr>\n",
3732 " <tr>\n",
3733 " <th>8000</th>\n",
3734 " <td>-16750.905526</td>\n",
3735 " <td>2018-12-05 19:32:51.601</td>\n",
3736 " </tr>\n",
3737 " <tr>\n",
3738 " <th>8500</th>\n",
3739 " <td>-17732.539610</td>\n",
3740 " <td>2018-12-05 19:32:52.890</td>\n",
3741 " </tr>\n",
3742 " <tr>\n",
3743 " <th>9000</th>\n",
3744 " <td>-16435.368812</td>\n",
3745 " <td>2018-12-05 19:32:54.188</td>\n",
3746 " </tr>\n",
3747 " <tr>\n",
3748 " <th>9500</th>\n",
3749 " <td>-16910.471934</td>\n",
3750 " <td>2018-12-05 19:32:55.472</td>\n",
3751 " </tr>\n",
3752 " <tr>\n",
3753 " <th>10000</th>\n",
3754 " <td>-15910.365821</td>\n",
3755 " <td>2018-12-05 19:32:56.769</td>\n",
3756 " </tr>\n",
3757 " <tr>\n",
3758 " <th>10500</th>\n",
3759 " <td>-15936.659327</td>\n",
3760 " <td>2018-12-05 19:32:58.053</td>\n",
3761 " </tr>\n",
3762 " <tr>\n",
3763 " <th>11000</th>\n",
3764 " <td>-15246.633564</td>\n",
3765 " <td>2018-12-05 19:32:59.346</td>\n",
3766 " </tr>\n",
3767 " <tr>\n",
3768 " <th>11500</th>\n",
3769 " <td>-15256.022959</td>\n",
3770 " <td>2018-12-05 19:33:00.622</td>\n",
3771 " </tr>\n",
3772 " <tr>\n",
3773 " <th>12000</th>\n",
3774 " <td>-14985.884198</td>\n",
3775 " <td>2018-12-05 19:33:01.923</td>\n",
3776 " </tr>\n",
3777 " <tr>\n",
3778 " <th>12500</th>\n",
3779 " <td>-14689.841559</td>\n",
3780 " <td>2018-12-05 19:33:03.218</td>\n",
3781 " </tr>\n",
3782 " <tr>\n",
3783 " <th>13000</th>\n",
3784 " <td>-14822.625860</td>\n",
3785 " <td>2018-12-05 19:33:04.515</td>\n",
3786 " </tr>\n",
3787 " <tr>\n",
3788 " <th>13500</th>\n",
3789 " <td>-15013.715132</td>\n",
3790 " <td>2018-12-05 19:33:05.634</td>\n",
3791 " </tr>\n",
3792 " <tr>\n",
3793 " <th>14000</th>\n",
3794 " <td>-14797.257898</td>\n",
3795 " <td>2018-12-05 19:33:06.517</td>\n",
3796 " </tr>\n",
3797 " <tr>\n",
3798 " <th>14500</th>\n",
3799 " <td>-14895.606255</td>\n",
3800 " <td>2018-12-05 19:33:07.476</td>\n",
3801 " </tr>\n",
3802 " <tr>\n",
3803 " <th>15000</th>\n",
3804 " <td>-14986.753045</td>\n",
3805 " <td>2018-12-05 19:33:08.288</td>\n",
3806 " </tr>\n",
3807 " <tr>\n",
3808 " <th>15500</th>\n",
3809 " <td>-14696.829929</td>\n",
3810 " <td>2018-12-05 19:33:09.165</td>\n",
3811 " </tr>\n",
3812 " <tr>\n",
3813 " <th>16000</th>\n",
3814 " <td>-14681.308608</td>\n",
3815 " <td>2018-12-05 19:33:09.995</td>\n",
3816 " </tr>\n",
3817 " <tr>\n",
3818 " <th>16500</th>\n",
3819 " <td>-14681.308608</td>\n",
3820 " <td>2018-12-05 19:33:10.743</td>\n",
3821 " </tr>\n",
3822 " <tr>\n",
3823 " <th>17000</th>\n",
3824 " <td>-14689.841559</td>\n",
3825 " <td>2018-12-05 19:33:11.510</td>\n",
3826 " </tr>\n",
3827 " <tr>\n",
3828 " <th>17500</th>\n",
3829 " <td>-14700.923210</td>\n",
3830 " <td>2018-12-05 19:33:12.254</td>\n",
3831 " </tr>\n",
3832 " <tr>\n",
3833 " <th>18000</th>\n",
3834 " <td>-14681.308608</td>\n",
3835 " <td>2018-12-05 19:33:13.067</td>\n",
3836 " </tr>\n",
3837 " <tr>\n",
3838 " <th>18500</th>\n",
3839 " <td>-14681.308608</td>\n",
3840 " <td>2018-12-05 19:33:13.918</td>\n",
3841 " </tr>\n",
3842 " <tr>\n",
3843 " <th>19000</th>\n",
3844 " <td>-14681.308608</td>\n",
3845 " <td>2018-12-05 19:33:14.660</td>\n",
3846 " </tr>\n",
3847 " <tr>\n",
3848 " <th>19500</th>\n",
3849 " <td>-14681.308608</td>\n",
3850 " <td>2018-12-05 19:33:15.356</td>\n",
3851 " </tr>\n",
3852 " </tbody>\n",
3853 "</table>\n",
3854 "<p>400 rows × 2 columns</p>\n",
3855 "</div>"
3856 ],
3857 "text/plain": [
3858 " fitness time\n",
3859 "worker iteration \n",
3860 "0 0 -17464.568517 2018-12-05 19:32:30.307\n",
3861 " 500 -19456.419361 2018-12-05 19:32:31.653\n",
3862 " 1000 -19192.661068 2018-12-05 19:32:32.663\n",
3863 " 1500 -21362.030854 2018-12-05 19:32:33.684\n",
3864 " 2000 -19439.674465 2018-12-05 19:32:35.103\n",
3865 " 2500 -19494.922209 2018-12-05 19:32:36.676\n",
3866 " 3000 -19409.258504 2018-12-05 19:32:37.862\n",
3867 " 3500 -19375.464977 2018-12-05 19:32:39.191\n",
3868 " 4000 -18553.631818 2018-12-05 19:32:40.468\n",
3869 " 4500 -18842.347858 2018-12-05 19:32:41.331\n",
3870 " 5000 -19347.171865 2018-12-05 19:32:42.396\n",
3871 " 5500 -18460.352808 2018-12-05 19:32:43.163\n",
3872 " 6000 -18814.968213 2018-12-05 19:32:43.981\n",
3873 " 6500 -18298.223867 2018-12-05 19:32:45.198\n",
3874 " 7000 -17555.991450 2018-12-05 19:32:46.534\n",
3875 " 7500 -17280.010163 2018-12-05 19:32:47.825\n",
3876 " 8000 -17208.764191 2018-12-05 19:32:49.129\n",
3877 " 8500 -17048.836850 2018-12-05 19:32:50.419\n",
3878 " 9000 -17309.885703 2018-12-05 19:32:51.718\n",
3879 " 9500 -15935.254778 2018-12-05 19:32:53.030\n",
3880 " 10000 -15694.589652 2018-12-05 19:32:54.328\n",
3881 " 10500 -15582.878774 2018-12-05 19:32:55.608\n",
3882 " 11000 -15314.579171 2018-12-05 19:32:56.900\n",
3883 " 11500 -14942.449992 2018-12-05 19:32:58.179\n",
3884 " 12000 -15471.335261 2018-12-05 19:32:59.467\n",
3885 " 12500 -14977.106397 2018-12-05 19:33:00.743\n",
3886 " 13000 -14954.236486 2018-12-05 19:33:02.033\n",
3887 " 13500 -14762.142171 2018-12-05 19:33:03.314\n",
3888 " 14000 -14932.523832 2018-12-05 19:33:04.605\n",
3889 " 14500 -14978.652512 2018-12-05 19:33:05.896\n",
3890 "... ... ...\n",
3891 "9 5000 -19310.352956 2018-12-05 19:32:43.791\n",
3892 " 5500 -17503.410891 2018-12-05 19:32:45.106\n",
3893 " 6000 -17163.013191 2018-12-05 19:32:46.422\n",
3894 " 6500 -16941.399877 2018-12-05 19:32:47.714\n",
3895 " 7000 -16395.145359 2018-12-05 19:32:49.016\n",
3896 " 7500 -16250.722026 2018-12-05 19:32:50.303\n",
3897 " 8000 -16750.905526 2018-12-05 19:32:51.601\n",
3898 " 8500 -17732.539610 2018-12-05 19:32:52.890\n",
3899 " 9000 -16435.368812 2018-12-05 19:32:54.188\n",
3900 " 9500 -16910.471934 2018-12-05 19:32:55.472\n",
3901 " 10000 -15910.365821 2018-12-05 19:32:56.769\n",
3902 " 10500 -15936.659327 2018-12-05 19:32:58.053\n",
3903 " 11000 -15246.633564 2018-12-05 19:32:59.346\n",
3904 " 11500 -15256.022959 2018-12-05 19:33:00.622\n",
3905 " 12000 -14985.884198 2018-12-05 19:33:01.923\n",
3906 " 12500 -14689.841559 2018-12-05 19:33:03.218\n",
3907 " 13000 -14822.625860 2018-12-05 19:33:04.515\n",
3908 " 13500 -15013.715132 2018-12-05 19:33:05.634\n",
3909 " 14000 -14797.257898 2018-12-05 19:33:06.517\n",
3910 " 14500 -14895.606255 2018-12-05 19:33:07.476\n",
3911 " 15000 -14986.753045 2018-12-05 19:33:08.288\n",
3912 " 15500 -14696.829929 2018-12-05 19:33:09.165\n",
3913 " 16000 -14681.308608 2018-12-05 19:33:09.995\n",
3914 " 16500 -14681.308608 2018-12-05 19:33:10.743\n",
3915 " 17000 -14689.841559 2018-12-05 19:33:11.510\n",
3916 " 17500 -14700.923210 2018-12-05 19:33:12.254\n",
3917 " 18000 -14681.308608 2018-12-05 19:33:13.067\n",
3918 " 18500 -14681.308608 2018-12-05 19:33:13.918\n",
3919 " 19000 -14681.308608 2018-12-05 19:33:14.660\n",
3920 " 19500 -14681.308608 2018-12-05 19:33:15.356\n",
3921 "\n",
3922 "[400 rows x 2 columns]"
3923 ]
3924 },
3925 "execution_count": 56,
3926 "metadata": {},
3927 "output_type": "execute_result"
3928 }
3929 ],
3930 "source": [
3931 "threshold = datetime(2018, 12, 6, 1)\n",
3932 "trace = pd.DataFrame([p for p in parsed if p['time'] > threshold])\n",
3933 "trace = trace.set_index(['worker', 'iteration']).sort_index()\n",
3934 "trace"
3935 ]
3936 },
3937 {
3938 "cell_type": "code",
3939 "execution_count": 60,
3940 "metadata": {},
3941 "outputs": [
3942 {
3943 "data": {
3944 "text/plain": [
3945 "<matplotlib.axes._subplots.AxesSubplot at 0x7fbfa56aecc0>"
3946 ]
3947 },
3948 "execution_count": 60,
3949 "metadata": {},
3950 "output_type": "execute_result"
3951 },
3952 {
3953 "data": {
3954 "image/png": "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\n",
3955 "text/plain": [
3956 "<Figure size 432x288 with 1 Axes>"
3957 ]
3958 },
3959 "metadata": {
3960 "needs_background": "light"
3961 },
3962 "output_type": "display_data"
3963 }
3964 ],
3965 "source": [
3966 "trace1.loc[0].fitness.plot()"
3967 ]
3968 },
3969 {
3970 "cell_type": "code",
3971 "execution_count": 64,
3972 "metadata": {},
3973 "outputs": [
3974 {
3975 "data": {
3976 "text/plain": [
3977 "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
3978 ]
3979 },
3980 "execution_count": 64,
3981 "metadata": {},
3982 "output_type": "execute_result"
3983 }
3984 ],
3985 "source": [
3986 "workers = list(sorted(set(trace1.index.get_level_values(0))))\n",
3987 "workers"
3988 ]
3989 },
3990 {
3991 "cell_type": "code",
3992 "execution_count": 71,
3993 "metadata": {},
3994 "outputs": [
3995 {
3996 "data": {
3997 "image/png": "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\n",
3998 "text/plain": [
3999 "<Figure size 432x288 with 1 Axes>"
4000 ]
4001 },
4002 "metadata": {
4003 "needs_background": "light"
4004 },
4005 "output_type": "display_data"
4006 }
4007 ],
4008 "source": [
4009 "fig, ax = plt.subplots()\n",
4010 "for w in workers:\n",
4011 " trace1.loc[w].fitness.plot(ax=ax, color='#00000020')\n",
4012 " trace2.loc[w].fitness.plot(ax=ax, color='#00000020')"
4013 ]
4014 },
4015 {
4016 "cell_type": "markdown",
4017 "metadata": {},
4018 "source": [
4019 "# Experiments"
4020 ]
4021 },
4022 {
4023 "cell_type": "code",
4024 "execution_count": 12,
4025 "metadata": {},
4026 "outputs": [],
4027 "source": [
4028 "def dump_result(starttime, filename):\n",
4029 " parsed = [log_parse(line) for line in open('cipher.log')]\n",
4030 " trace = pd.DataFrame([p for p in parsed if p['time'] > starttime])\n",
4031 " trace = trace.set_index(['worker', 'iteration']).sort_index()\n",
4032 " workers = list(sorted(set(trace.index.get_level_values(0))))\n",
4033 " trace.fitness.to_csv(filename, header=True)\n",
4034 " return workers, trace"
4035 ]
4036 },
4037 {
4038 "cell_type": "code",
4039 "execution_count": 46,
4040 "metadata": {},
4041 "outputs": [
4042 {
4043 "name": "stdout",
4044 "output_type": "stream",
4045 "text": [
4046 "-5439.653663160256\n"
4047 ]
4048 },
4049 {
4050 "data": {
4051 "image/png": "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\n",
4052 "text/plain": [
4053 "<Figure size 432x288 with 1 Axes>"
4054 ]
4055 },
4056 "metadata": {
4057 "needs_background": "light"
4058 },
4059 "output_type": "display_data"
4060 }
4061 ],
4062 "source": [
4063 "start_time = datetime.now()\n",
4064 "found_cipher_alphabet, score = monoalphabetic_break_hillclimbing_mp(\n",
4065 " ct, \n",
4066 " swap_index_finder=uniform_swap_index, \n",
4067 " workers=24)\n",
4068 "print(score)\n",
4069 "workers, trace = dump_result(start_time, 'hillclimbing-random-unigram-uniform.csv')\n",
4070 "\n",
4071 "fig, ax = plt.subplots()\n",
4072 "for w in workers:\n",
4073 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4074 ]
4075 },
4076 {
4077 "cell_type": "code",
4078 "execution_count": 47,
4079 "metadata": {},
4080 "outputs": [
4081 {
4082 "name": "stdout",
4083 "output_type": "stream",
4084 "text": [
4085 "-14681.308607565503\n"
4086 ]
4087 },
4088 {
4089 "data": {
4090 "image/png": "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\n",
4091 "text/plain": [
4092 "<Figure size 432x288 with 1 Axes>"
4093 ]
4094 },
4095 "metadata": {
4096 "needs_background": "light"
4097 },
4098 "output_type": "display_data"
4099 }
4100 ],
4101 "source": [
4102 "start_time = datetime.now()\n",
4103 "found_cipher_alphabet, score = monoalphabetic_break_hillclimbing_mp(\n",
4104 " ct, \n",
4105 " fitness=Ptrigrams,\n",
4106 " swap_index_finder=uniform_swap_index, \n",
4107 " workers=24)\n",
4108 "print(score)\n",
4109 "workers, trace = dump_result(start_time, 'hillclimbing-random-trigram-uniform.csv')\n",
4110 "\n",
4111 "fig, ax = plt.subplots()\n",
4112 "for w in workers:\n",
4113 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4114 ]
4115 },
4116 {
4117 "cell_type": "code",
4118 "execution_count": 48,
4119 "metadata": {},
4120 "outputs": [
4121 {
4122 "name": "stdout",
4123 "output_type": "stream",
4124 "text": [
4125 "-14681.308607565503\n"
4126 ]
4127 },
4128 {
4129 "data": {
4130 "image/png": "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\n",
4131 "text/plain": [
4132 "<Figure size 432x288 with 1 Axes>"
4133 ]
4134 },
4135 "metadata": {
4136 "needs_background": "light"
4137 },
4138 "output_type": "display_data"
4139 }
4140 ],
4141 "source": [
4142 "start_time = datetime.now()\n",
4143 "found_cipher_alphabet, score = monoalphabetic_break_hillclimbing_mp(\n",
4144 " ct, \n",
4145 " fitness=Ptrigrams,\n",
4146 " swap_index_finder=uniform_swap_index,\n",
4147 " plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha,\n",
4148 " workers=24)\n",
4149 "print(score)\n",
4150 "workers, trace = dump_result(start_time, 'hillclimbing-given-trigram-uniform.csv')\n",
4151 "\n",
4152 "fig, ax = plt.subplots()\n",
4153 "for w in workers:\n",
4154 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4155 ]
4156 },
4157 {
4158 "cell_type": "code",
4159 "execution_count": 49,
4160 "metadata": {},
4161 "outputs": [
4162 {
4163 "name": "stdout",
4164 "output_type": "stream",
4165 "text": [
4166 "-14681.308607565503\n"
4167 ]
4168 },
4169 {
4170 "data": {
4171 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEKCAYAAAA1qaOTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xuw3OV93/H3d29HR+fofkM6Qki2gY6BWEHHDp4ax1OIb3WLocGQEkMbT6hj3DbpdDLETDqZznjGTqaZ1mnHDsRxwMaxHVPZzGCXGFwbbCKDABkkU6LDxSChO9K57v337R/77GrPavfs7tk9ZyXt5zWzo995fpf97p6j/e5z+T2PuTsiIiKdivU6ABEROT8ooYiISFcooYiISFcooYiISFcooYiISFcooYiISFcooYiISFcooYiISFcooYiISFckeh3AQlm7dq1v3bq112GIiJxTnn766ePuvm4+5563CWXr1q3s3r2712GIiJxTzOyX8z1XTV4iItIVSigiItIVSigiItIVSigiItIVSigiItIVSigiItIVSigiItIV5+19KAvl8OHDPP7442eUF4tFisUie/bsYf/+/Q3PP378OJlMZiFDPGsVCoVehyDSF975zndyzz33LPrzKqG06Yc//CE/+clPcHeKxeKsf48fP86zzz5LPp+ve24ulyOTyeDuixx17/XjaxbplWKx2JPnVUJp08mTJzEz7rzzTpLJJMlkkmKxyGuvvcbOnTsxM377t3+bj33sY7POe+WVV3jggQeYmZnh05/+NKtXr+7RK+iNN954g1gsxgUXXNDrUERkgSihtCmbzZJIJNiyZQsA4+PjHD16lMcff5xUKsX27dvZvHnzrHMOHTrEE088QaFQ4Oqrr2bFihW9CL1noigil8uxcuXKXociIgtICaVNxWKReDxOoVDg+PHjnDp1il27dpHL5dixYwevvvrqrIRx/PhxnnjiCWZmZrj00ku56KKLiMfjPXwFiy+bzQIwMDDQ40hEZCFplFeb8vk87s4bb7zB1NQU+/btY3Jyku3bt7Np0yZisVjlm/j4+DhPPPEEZsZFF13E+vXrWbZsWY9fweJTQhHpD0oobZqcnKRYLBKLxXj11Vc5ceIEW7du5fLLL6+UL1++nOnp6Urn/ebNmxkcHGTdunV9+aGayWRI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\n",
4172 "text/plain": [
4173 "<Figure size 432x288 with 1 Axes>"
4174 ]
4175 },
4176 "metadata": {
4177 "needs_background": "light"
4178 },
4179 "output_type": "display_data"
4180 }
4181 ],
4182 "source": [
4183 "start_time = datetime.now()\n",
4184 "found_cipher_alphabet, score = monoalphabetic_break_hillclimbing_mp(\n",
4185 " ct, \n",
4186 " fitness=Ptrigrams,\n",
4187 " swap_index_finder=gaussian_swap_index,\n",
4188 " plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha,\n",
4189 " workers=24)\n",
4190 "print(score)\n",
4191 "workers, trace = dump_result(start_time, 'hillclimbing-given-trigram-gaussian.csv')\n",
4192 "\n",
4193 "fig, ax = plt.subplots()\n",
4194 "for w in workers:\n",
4195 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4196 ]
4197 },
4198 {
4199 "cell_type": "code",
4200 "execution_count": 50,
4201 "metadata": {},
4202 "outputs": [
4203 {
4204 "name": "stdout",
4205 "output_type": "stream",
4206 "text": [
4207 "-5439.653663160256\n"
4208 ]
4209 },
4210 {
4211 "data": {
4212 "image/png": "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\n",
4213 "text/plain": [
4214 "<Figure size 432x288 with 1 Axes>"
4215 ]
4216 },
4217 "metadata": {
4218 "needs_background": "light"
4219 },
4220 "output_type": "display_data"
4221 }
4222 ],
4223 "source": [
4224 "start_time = datetime.now()\n",
4225 "found_cipher_alphabet, score = simulated_annealing_break(\n",
4226 " ct, \n",
4227 " swap_index_finder=uniform_swap_index,\n",
4228 " fitness=Pletters,\n",
4229 " workers=24)\n",
4230 "print(score)\n",
4231 "workers, trace = dump_result(start_time, 'sa-random-unigram-uniform.csv')\n",
4232 "\n",
4233 "fig, ax = plt.subplots()\n",
4234 "for w in workers:\n",
4235 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4236 ]
4237 },
4238 {
4239 "cell_type": "code",
4240 "execution_count": 51,
4241 "metadata": {},
4242 "outputs": [
4243 {
4244 "name": "stdout",
4245 "output_type": "stream",
4246 "text": [
4247 "-14681.308607565503\n"
4248 ]
4249 },
4250 {
4251 "data": {
4252 "image/png": "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\n",
4253 "text/plain": [
4254 "<Figure size 432x288 with 1 Axes>"
4255 ]
4256 },
4257 "metadata": {
4258 "needs_background": "light"
4259 },
4260 "output_type": "display_data"
4261 }
4262 ],
4263 "source": [
4264 "start_time = datetime.now()\n",
4265 "found_cipher_alphabet, score = simulated_annealing_break(\n",
4266 " ct, \n",
4267 " fitness=Ptrigrams,\n",
4268 " swap_index_finder=uniform_swap_index, \n",
4269 " workers=24)\n",
4270 "print(score)\n",
4271 "workers, trace = dump_result(start_time, 'sa-random-trigram-uniform.csv')\n",
4272 "\n",
4273 "fig, ax = plt.subplots()\n",
4274 "for w in workers:\n",
4275 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4276 ]
4277 },
4278 {
4279 "cell_type": "code",
4280 "execution_count": 52,
4281 "metadata": {},
4282 "outputs": [
4283 {
4284 "name": "stdout",
4285 "output_type": "stream",
4286 "text": [
4287 "-14681.308607565503\n"
4288 ]
4289 },
4290 {
4291 "data": {
4292 "image/png": "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\n",
4293 "text/plain": [
4294 "<Figure size 432x288 with 1 Axes>"
4295 ]
4296 },
4297 "metadata": {
4298 "needs_background": "light"
4299 },
4300 "output_type": "display_data"
4301 }
4302 ],
4303 "source": [
4304 "start_time = datetime.now()\n",
4305 "found_cipher_alphabet, score = simulated_annealing_break(\n",
4306 " ct, \n",
4307 " fitness=Ptrigrams,\n",
4308 " swap_index_finder=uniform_swap_index,\n",
4309 " plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha,\n",
4310 " workers=24)\n",
4311 "print(score)\n",
4312 "workers, trace = dump_result(start_time, 'sa-given-trigram-uniform.csv')\n",
4313 "\n",
4314 "fig, ax = plt.subplots()\n",
4315 "for w in workers:\n",
4316 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4317 ]
4318 },
4319 {
4320 "cell_type": "code",
4321 "execution_count": 53,
4322 "metadata": {},
4323 "outputs": [
4324 {
4325 "name": "stdout",
4326 "output_type": "stream",
4327 "text": [
4328 "-14681.308607565503\n"
4329 ]
4330 },
4331 {
4332 "data": {
4333 "image/png": "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\n",
4334 "text/plain": [
4335 "<Figure size 432x288 with 1 Axes>"
4336 ]
4337 },
4338 "metadata": {
4339 "needs_background": "light"
4340 },
4341 "output_type": "display_data"
4342 }
4343 ],
4344 "source": [
4345 "start_time = datetime.now()\n",
4346 "found_cipher_alphabet, score = simulated_annealing_break(\n",
4347 " ct, \n",
4348 " fitness=Ptrigrams,\n",
4349 " swap_index_finder=gaussian_swap_index,\n",
4350 " plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha,\n",
4351 " workers=24)\n",
4352 "print(score)\n",
4353 "workers, trace = dump_result(start_time, 'sa-given-trigram-gaussian.csv')\n",
4354 "\n",
4355 "fig, ax = plt.subplots()\n",
4356 "for w in workers:\n",
4357 " trace.loc[w].fitness.plot(ax=ax, color='#00000020')"
4358 ]
4359 },
4360 {
4361 "cell_type": "code",
4362 "execution_count": 25,
4363 "metadata": {},
4364 "outputs": [],
4365 "source": [
4366 "import glob"
4367 ]
4368 },
4369 {
4370 "cell_type": "code",
4371 "execution_count": 61,
4372 "metadata": {},
4373 "outputs": [
4374 {
4375 "name": "stdout",
4376 "output_type": "stream",
4377 "text": [
4378 "-5439.653663160256 -8354.182366165229 hillclimbing-results/sa-random-unigram-uniform.csv\n",
4379 "-5439.653663160256 -8259.44168109899 hillclimbing-results/hillclimbing-random-unigram-uniform.csv\n"
4380 ]
4381 }
4382 ],
4383 "source": [
4384 "for f in glob.glob(\"hillclimbing-results/*unigram*.csv\"):\n",
4385 " df = pd.read_csv(f)\n",
4386 " print(df.fitness.max(), df.fitness.min(), f)"
4387 ]
4388 },
4389 {
4390 "cell_type": "code",
4391 "execution_count": 62,
4392 "metadata": {},
4393 "outputs": [
4394 {
4395 "name": "stdout",
4396 "output_type": "stream",
4397 "text": [
4398 "-14681.308607565503 -27211.09615617547 hillclimbing-results/hillclimbing-random-trigram-uniform.csv\n",
4399 "-14681.308607565503 -17464.568516864027 hillclimbing-results/hillclimbing-given-trigram-uniform.csv\n",
4400 "-14681.308607565503 -21515.898852481398 hillclimbing-results/sa-given-trigram-gaussian.csv\n",
4401 "-14681.308607565503 -17464.568516864027 hillclimbing-results/hillclimbing-given-trigram-gaussian.csv\n",
4402 "-14681.308607565503 -28346.7456787418 hillclimbing-results/sa-random-trigram-uniform.csv\n",
4403 "-14681.308607565503 -21065.204759662218 hillclimbing-results/sa-given-trigram-uniform.csv\n"
4404 ]
4405 }
4406 ],
4407 "source": [
4408 "for f in glob.glob(\"hillclimbing-results/*trigram*.csv\"):\n",
4409 " df = pd.read_csv(f)\n",
4410 " print(df.fitness.max(), df.fitness.min(), f)"
4411 ]
4412 },
4413 {
4414 "cell_type": "code",
4415 "execution_count": null,
4416 "metadata": {},
4417 "outputs": [],
4418 "source": []
4419 }
4420 ],
4421 "metadata": {
4422 "kernelspec": {
4423 "display_name": "Python 3",
4424 "language": "python",
4425 "name": "python3"
4426 },
4427 "language_info": {
4428 "codemirror_mode": {
4429 "name": "ipython",
4430 "version": 3
4431 },
4432 "file_extension": ".py",
4433 "mimetype": "text/x-python",
4434 "name": "python",
4435 "nbconvert_exporter": "python",
4436 "pygments_lexer": "ipython3",
4437 "version": "3.6.7"
4438 }
4439 },
4440 "nbformat": 4,
4441 "nbformat_minor": 2
4442 }