X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=hillclimbing-results%2Fhillclimbing-experiments.ipynb;h=4cfdc30e9a8354f88603079df799360a7c9a7c3d;hb=5eab35bf4494811113cd8c083c6bb8cdc790505f;hp=c9a4369bec24bca9c5b2c6b80539658954b77bfe;hpb=8777c2615919337fda181c43f1949d0edb522ddd;p=cipher-tools.git
diff --git a/hillclimbing-results/hillclimbing-experiments.ipynb b/hillclimbing-results/hillclimbing-experiments.ipynb
index c9a4369..4cfdc30 100644
--- a/hillclimbing-results/hillclimbing-experiments.ipynb
+++ b/hillclimbing-results/hillclimbing-experiments.ipynb
@@ -105,8 +105,9 @@
" if verbose:\n",
" ca = re.search('current alphabet (\\w+)', blurb).group(1)\n",
" pa = re.search('plain alphabet (\\w+)', blurb).group(1)\n",
+ " mapped_ca = cat(p[1] for p in sorted(zip(pa, ca)))\n",
" return {'time': dt, 'worker': worker, 'iteration': iteration, 'fitness': fitness, \n",
- " 'cipher_alphabet': ca, 'plain_alphabet': pa}\n",
+ " 'cipher_alphabet': ca, 'plain_alphabet': pa, 'mapped_cipher_alphabet': mapped_ca}\n",
" else:\n",
" return {'time': dt, 'worker': worker, 'iteration': iteration, 'fitness': fitness}"
]
@@ -129,13 +130,14 @@
"metadata": {},
"outputs": [],
"source": [
- "def dump_result(starttime, filename, verbose=False):\n",
+ "def dump_result(starttime, filename, verbose=False, target_cipher_alphabet=''):\n",
" parsed = [log_parse(line, verbose=verbose) for line in open('cipher.log')]\n",
" trace = pd.DataFrame([p for p in parsed if p['time'] > starttime])\n",
" trace = trace.set_index(['worker', 'iteration']).sort_index()\n",
+ " trace['target_cipher_alphabet'] = target_cipher_alphabet\n",
" workers = list(sorted(set(trace.index.get_level_values(0))))\n",
" if verbose:\n",
- " trace[['fitness', 'plain_alphabet', 'cipher_alphabet']].to_csv(filename, header=True)\n",
+ " trace[['fitness', 'plain_alphabet', 'cipher_alphabet', 'mapped_cipher_alphabet', 'target_cipher_alphabet']].to_csv(filename, header=True)\n",
" else:\n",
" trace.fitness.to_csv(filename, header=True)\n",
" return workers, trace"
@@ -207,7 +209,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -216,7 +218,7 @@
"-542391.5369482826"
]
},
- "execution_count": 13,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
@@ -227,7 +229,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -236,7 +238,7 @@
"-1471429.4753165497"
]
},
- "execution_count": 14,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@@ -247,7 +249,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
@@ -256,7 +258,7 @@
"'etaoihnsrdlumwcyfgpbvkxjqz'"
]
},
- "execution_count": 15,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
@@ -267,18 +269,18 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "('qlkwrmaznifhoxjgspvudybtec',\n",
- " 'jogqxexjbnmejdqprbrhhdgnxejdph',\n",
- " 'ompanynowifyouarewellupinyourl')"
+ "('sbyopakxntlewgimvfcduqrzhj',\n",
+ " 'seirqinyprxncmpfporselmscdwpsg',\n",
+ " 'alowvoicewhisperedwalkpastmean')"
]
},
- "execution_count": 16,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
@@ -290,7 +292,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 16,
"metadata": {},
"outputs": [
{
@@ -299,7 +301,7 @@
"'yearningforrespiteth'"
]
},
- "execution_count": 17,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
@@ -311,16 +313,16 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'guefwqwydaffujhqlulmufanewjjsddufutejtegjlsfwutqwlabuupjewtbuupjqwlanawlmjbqlmxeiyexsjewtlmuxeiutawq'"
+ "'qviaysynjpaaverswvwxvapciyeetjjvavzieziqewtayvzsywpfvvmeiyzfvvmesywpcpywxefswxgihnigteiyzwxvgihvzpys'"
]
},
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -331,3318 +333,200 @@
"ct_key = cat(ct_key)\n",
"# ct = keyword_encipher(pt, 'arcanaimperii')\n",
"ct = keyword_encipher(pt, ct_key)\n",
+ "ct_alpha = commonest_alphabet(ct)\n",
"ct[:100]"
]
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "('itkabjesqnguhwycmplrvfxdoz', -14681.308607565503)"
+ "('vwpisyxeazhtcfqgjnrokmldbu', -14681.308607565503)"
]
},
- "execution_count": 11,
+ "execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
+ "start_time = datetime.now()\n",
"sa_cipher_alphabet, score = simulated_annealing_break(ct, plain_alphabet=plain_alpha, cipher_alphabet=ct_alpha)\n",
"sa_cipher_alphabet, score"
]
},
{
"cell_type": "code",
- "execution_count": 75,
+ "execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'arcnimpebdfghjkloqstuvwxyz'"
+ "'iogzvjnxsdmhcyprbaewtkflqu'"
]
},
- "execution_count": 75,
+ "execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "cat(p[1] for p in sorted(zip(plain_alpha, sa_cipher_alphabet[0])))"
+ "ct_key"
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'arcnimpebdfghjkloqstuvwxyz'"
+ "'iogzvjnxsdmhcyprbaewtkflqu'"
]
},
- "execution_count": 10,
+ "execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
- "source": [
- "keyword_cipher_alphabet_of('arcanaimperii')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "cipher.log enigma.log\n"
- ]
- }
- ],
- "source": [
- "!ls *log"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['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",
- " '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",
- " '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",
- " '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",
- " '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']"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "recs = open('cipher.log').read().splitlines()\n",
- "recs[:5]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 46,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'time': datetime.datetime(2018, 12, 5, 18, 27, 56, 697000),\n",
- " 'worker': 8,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027}"
- ]
- },
- "execution_count": 46,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "log_parse(recs[0])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 47,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[{'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 557000),\n",
- " 'worker': 8,\n",
- " 'iteration': 500,\n",
- " 'fitness': -19506.212009034196},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 635000),\n",
- " 'worker': 9,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18038.95559884915},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 993000),\n",
- " 'worker': 5,\n",
- " 'iteration': 500,\n",
- " 'fitness': -17327.223609157583},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 995000),\n",
- " 'worker': 3,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18946.41644162794},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 996000),\n",
- " 'worker': 2,\n",
- " 'iteration': 500,\n",
- " 'fitness': -21014.221984327247},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 998000),\n",
- " 'worker': 7,\n",
- " 'iteration': 500,\n",
- " 'fitness': -20093.45361142934},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 998000),\n",
- " 'worker': 4,\n",
- " 'iteration': 500,\n",
- " 'fitness': -20003.348090823332},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 57, 999000),\n",
- " 'worker': 1,\n",
- " 'iteration': 500,\n",
- " 'fitness': -19134.666194684774},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58),\n",
- " 'worker': 6,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18597.23462090166},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 1000),\n",
- " 'worker': 0,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18848.039141799247},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 276000),\n",
- " 'worker': 8,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19011.452688727233},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 352000),\n",
- " 'worker': 9,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -18741.08747198464},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 58, 954000),\n",
- " 'worker': 8,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19324.48074341969},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 56000),\n",
- " 'worker': 9,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19194.180212110503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 273000),\n",
- " 'worker': 5,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -18079.493977379658},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 275000),\n",
- " 'worker': 2,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19586.334887748137},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 276000),\n",
- " 'worker': 7,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19595.283669119322},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 282000),\n",
- " 'worker': 3,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19556.303534097875},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 283000),\n",
- " 'worker': 0,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19060.650868638797},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 285000),\n",
- " 'worker': 6,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19048.945801444726},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 286000),\n",
- " 'worker': 1,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -17780.893262937854},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 288000),\n",
- " 'worker': 4,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19871.461472608527},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 656000),\n",
- " 'worker': 8,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18541.60058087154},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 27, 59, 762000),\n",
- " 'worker': 9,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18139.230527668664},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 307000),\n",
- " 'worker': 4,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19615.20233677959},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 341000),\n",
- " 'worker': 8,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18792.355486875542},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 538000),\n",
- " 'worker': 5,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19614.656719789735},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 540000),\n",
- " 'worker': 2,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19420.645677197903},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 547000),\n",
- " 'worker': 3,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19516.69841398513},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 547000),\n",
- " 'worker': 7,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19230.947512617677},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 552000),\n",
- " 'worker': 6,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19062.24295819328},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 555000),\n",
- " 'worker': 1,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19005.04145812939},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 559000),\n",
- " 'worker': 0,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19678.103852267177},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 826000),\n",
- " 'worker': 9,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18554.14253773069},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 0, 996000),\n",
- " 'worker': 4,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19797.711974806178},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 15000),\n",
- " 'worker': 8,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18929.774792204666},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 684000),\n",
- " 'worker': 4,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18404.449071388823},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 727000),\n",
- " 'worker': 8,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -18413.47164984584},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 815000),\n",
- " 'worker': 2,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18449.545495871713},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 817000),\n",
- " 'worker': 5,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -20293.16285350564},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 821000),\n",
- " 'worker': 7,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18382.9684664272},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 828000),\n",
- " 'worker': 3,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19269.277188085696},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 838000),\n",
- " 'worker': 6,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18034.64907452757},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 838000),\n",
- " 'worker': 1,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -20212.029343114173},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 1, 848000),\n",
- " 'worker': 0,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -18398.93978482426},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 106000),\n",
- " 'worker': 9,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -17022.580186111096},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 370000),\n",
- " 'worker': 4,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18341.09176296995},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 2, 436000),\n",
- " 'worker': 8,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -17620.87851235687},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 49000),\n",
- " 'worker': 4,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -18629.108009257943},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 79000),\n",
- " 'worker': 2,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18229.656265246995},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 83000),\n",
- " 'worker': 5,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -19086.384794143425},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 85000),\n",
- " 'worker': 7,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -17864.67484051336},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 95000),\n",
- " 'worker': 3,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18518.178105852596},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 102000),\n",
- " 'worker': 8,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18886.480601943767},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 104000),\n",
- " 'worker': 6,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -17969.995425476307},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 109000),\n",
- " 'worker': 1,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -17400.637120062693},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 121000),\n",
- " 'worker': 0,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18747.729945027986},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 384000),\n",
- " 'worker': 9,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -20705.07819308174},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 786000),\n",
- " 'worker': 8,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18084.38300999115},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 3, 835000),\n",
- " 'worker': 2,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18620.50568328267},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 180000),\n",
- " 'worker': 4,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18336.454140137244},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 361000),\n",
- " 'worker': 1,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19478.17147468461},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 370000),\n",
- " 'worker': 7,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -17877.74019133228},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 371000),\n",
- " 'worker': 3,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19048.338653729337},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 376000),\n",
- " 'worker': 5,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -20898.734244859043},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 386000),\n",
- " 'worker': 6,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -16939.27057282322},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 409000),\n",
- " 'worker': 0,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19854.447324573906},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 533000),\n",
- " 'worker': 2,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17187.53758324829},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 648000),\n",
- " 'worker': 8,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18895.743869174006},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 4, 669000),\n",
- " 'worker': 9,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -19501.45392767446},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 26000),\n",
- " 'worker': 1,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19606.201177583636},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 245000),\n",
- " 'worker': 2,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18393.7240060119},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 444000),\n",
- " 'worker': 4,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18387.174172922445},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 635000),\n",
- " 'worker': 3,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17041.761138586608},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 642000),\n",
- " 'worker': 7,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17392.748738228944},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 650000),\n",
- " 'worker': 6,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17330.16526324624},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 667000),\n",
- " 'worker': 5,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19135.242019282377},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 697000),\n",
- " 'worker': 0,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17418.19577491629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 753000),\n",
- " 'worker': 1,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -19393.961211753554},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 934000),\n",
- " 'worker': 8,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17830.33557166024},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 945000),\n",
- " 'worker': 9,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17892.435290290625},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 5, 981000),\n",
- " 'worker': 2,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18698.144154223184},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 435000),\n",
- " 'worker': 1,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18800.545050055454},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 503000),\n",
- " 'worker': 0,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -16632.42554157389},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 719000),\n",
- " 'worker': 4,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18280.140281591077},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 912000),\n",
- " 'worker': 3,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18542.627305858536},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 916000),\n",
- " 'worker': 7,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18493.69033006823},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 927000),\n",
- " 'worker': 6,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -17393.388119756386},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 6, 953000),\n",
- " 'worker': 5,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -17503.069503416547},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 126000),\n",
- " 'worker': 1,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17390.336776695618},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 165000),\n",
- " 'worker': 0,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17634.827628782918},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 200000),\n",
- " 'worker': 8,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17428.607305695987},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 219000),\n",
- " 'worker': 9,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18170.02084407561},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 270000),\n",
- " 'worker': 2,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17827.94293353811},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 856000),\n",
- " 'worker': 5,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18082.931621876454},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 7, 983000),\n",
- " 'worker': 4,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18595.65422981538},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 62000),\n",
- " 'worker': 1,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17193.700008245654},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 183000),\n",
- " 'worker': 3,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -19429.72065240524},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 185000),\n",
- " 'worker': 7,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18511.027065967108},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 195000),\n",
- " 'worker': 6,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17859.105332243653},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 442000),\n",
- " 'worker': 0,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18033.2447620835},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 487000),\n",
- " 'worker': 8,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16984.79188180881},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 489000),\n",
- " 'worker': 9,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18378.049112148143},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 533000),\n",
- " 'worker': 2,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17716.896348117207},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 592000),\n",
- " 'worker': 5,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -20390.806341044932},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 8, 798000),\n",
- " 'worker': 1,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18116.594707989414},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 260000),\n",
- " 'worker': 4,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18894.618827025028},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 376000),\n",
- " 'worker': 5,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -19739.451268522404},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 459000),\n",
- " 'worker': 3,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18602.940996743786},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 467000),\n",
- " 'worker': 7,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17799.05403285316},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 474000),\n",
- " 'worker': 6,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -16545.601685561487},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 695000),\n",
- " 'worker': 1,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -15521.23314383998},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 705000),\n",
- " 'worker': 0,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -16848.17732266875},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 750000),\n",
- " 'worker': 8,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17651.668173724873},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 766000),\n",
- " 'worker': 9,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17678.75330561347},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 9, 815000),\n",
- " 'worker': 2,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17889.376509552665},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 524000),\n",
- " 'worker': 4,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -18659.056280723984},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 613000),\n",
- " 'worker': 9,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17650.74134056951},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 620000),\n",
- " 'worker': 2,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -18187.980824614297},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 655000),\n",
- " 'worker': 5,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18529.548428506027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 721000),\n",
- " 'worker': 3,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18410.71610809687},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 733000),\n",
- " 'worker': 6,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -16826.458193958388},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 736000),\n",
- " 'worker': 7,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18002.74242422733},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 966000),\n",
- " 'worker': 1,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16047.53530288506},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 10, 977000),\n",
- " 'worker': 0,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -16154.124706442182},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 22000),\n",
- " 'worker': 8,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16817.91911998762},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 287000),\n",
- " 'worker': 9,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17358.130163552203},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 324000),\n",
- " 'worker': 2,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16861.63470732543},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 799000),\n",
- " 'worker': 4,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17953.192243685102},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 914000),\n",
- " 'worker': 5,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17889.94069028997},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 944000),\n",
- " 'worker': 9,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17143.640914346324},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 994000),\n",
- " 'worker': 3,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18536.570483679698},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 11, 998000),\n",
- " 'worker': 2,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16539.514654309765},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 4000),\n",
- " 'worker': 6,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -16679.173786884076},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 12000),\n",
- " 'worker': 7,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18175.711713672594},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 225000),\n",
- " 'worker': 1,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16452.52144633103},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 233000),\n",
- " 'worker': 0,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -16452.404246043414},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 289000),\n",
- " 'worker': 8,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17006.474846719855},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 641000),\n",
- " 'worker': 9,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16614.803388816013},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 12, 901000),\n",
- " 'worker': 0,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16677.326420272075},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 58000),\n",
- " 'worker': 4,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -18339.282467115518},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 72000),\n",
- " 'worker': 2,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17301.8417114411},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 182000),\n",
- " 'worker': 5,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17334.537156849256},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 261000),\n",
- " 'worker': 3,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -18031.285622561743},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 268000),\n",
- " 'worker': 6,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -16422.7375527152},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 279000),\n",
- " 'worker': 7,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17504.187460278605},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 326000),\n",
- " 'worker': 9,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16971.464100835325},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 493000),\n",
- " 'worker': 1,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -15773.499250805828},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 555000),\n",
- " 'worker': 8,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15226.057813342175},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 575000),\n",
- " 'worker': 0,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17240.73733527656},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 13, 994000),\n",
- " 'worker': 9,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16049.627773653003},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 267000),\n",
- " 'worker': 0,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17538.610976751468},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 331000),\n",
- " 'worker': 2,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -15999.749156327724},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 333000),\n",
- " 'worker': 4,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -18309.78608355871},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 442000),\n",
- " 'worker': 5,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16256.00720008966},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 528000),\n",
- " 'worker': 3,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17581.20303046428},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 534000),\n",
- " 'worker': 6,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16925.788998820055},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 554000),\n",
- " 'worker': 7,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -18572.05453072059},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 678000),\n",
- " 'worker': 9,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15830.921286816676},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 752000),\n",
- " 'worker': 1,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16599.40684997735},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 14, 807000),\n",
- " 'worker': 8,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -17117.33019989978},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 176000),\n",
- " 'worker': 0,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16889.43933685168},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 247000),\n",
- " 'worker': 5,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16374.072710564345},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 488000),\n",
- " 'worker': 9,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16153.189088061568},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 590000),\n",
- " 'worker': 4,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17260.794949962612},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 600000),\n",
- " 'worker': 2,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16764.03048646914},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 791000),\n",
- " 'worker': 3,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17960.814964208697},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 807000),\n",
- " 'worker': 6,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16817.494896507043},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 818000),\n",
- " 'worker': 7,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17811.92361311319},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 918000),\n",
- " 'worker': 0,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15703.685929976222},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 15, 921000),\n",
- " 'worker': 5,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -15528.756041988652},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 45000),\n",
- " 'worker': 1,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15689.40995208135},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 76000),\n",
- " 'worker': 8,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15898.65336137873},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 744000),\n",
- " 'worker': 9,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15544.678618934651},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 792000),\n",
- " 'worker': 0,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16813.40458563439},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 827000),\n",
- " 'worker': 5,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15269.089304752624},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 856000),\n",
- " 'worker': 4,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16424.939130016453},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 16, 866000),\n",
- " 'worker': 2,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15617.851287894646},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 64000),\n",
- " 'worker': 3,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17258.223976007055},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 79000),\n",
- " 'worker': 6,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16706.30829529822},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 91000),\n",
- " 'worker': 7,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16172.10089134246},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 309000),\n",
- " 'worker': 1,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15278.98850746955},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 337000),\n",
- " 'worker': 8,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15970.498815455323},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 484000),\n",
- " 'worker': 0,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16965.959540158852},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 17, 497000),\n",
- " 'worker': 5,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16171.253641185343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 7000),\n",
- " 'worker': 9,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15481.776383794944},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 106000),\n",
- " 'worker': 4,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16114.148485332731},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 133000),\n",
- " 'worker': 2,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15897.207732365574},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 198000),\n",
- " 'worker': 5,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15976.32225367706},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 239000),\n",
- " 'worker': 0,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -16419.503701784342},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 324000),\n",
- " 'worker': 3,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -18014.381767746403},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 340000),\n",
- " 'worker': 6,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16178.495320022208},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 345000),\n",
- " 'worker': 7,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -15721.917263183206},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 584000),\n",
- " 'worker': 1,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15166.897915355234},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 18, 601000),\n",
- " 'worker': 8,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15495.913965599955},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 20000),\n",
- " 'worker': 0,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -16055.595445458615},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 46000),\n",
- " 'worker': 5,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -16352.652198437934},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 263000),\n",
- " 'worker': 9,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15910.295343982507},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 375000),\n",
- " 'worker': 4,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15442.82645508135},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 389000),\n",
- " 'worker': 2,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15805.574304375701},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 597000),\n",
- " 'worker': 3,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -17576.045133748434},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 611000),\n",
- " 'worker': 6,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15855.870210506502},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 614000),\n",
- " 'worker': 7,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16943.864439542413},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 691000),\n",
- " 'worker': 0,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15555.725375024595},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 729000),\n",
- " 'worker': 5,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15611.291563558481},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 845000),\n",
- " 'worker': 1,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15877.554815426058},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 19, 849000),\n",
- " 'worker': 8,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15316.43445909589},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 382000),\n",
- " 'worker': 0,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15931.767571476821},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 420000),\n",
- " 'worker': 5,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15532.023378075712},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 523000),\n",
- " 'worker': 9,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15182.326272203387},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 545000),\n",
- " 'worker': 4,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15992.144134516864},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 653000),\n",
- " 'worker': 2,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15948.179868074802},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 854000),\n",
- " 'worker': 3,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16698.55512123499},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 867000),\n",
- " 'worker': 6,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15737.678737800343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 20, 870000),\n",
- " 'worker': 7,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16180.902687655534},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 99000),\n",
- " 'worker': 5,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15522.1739409343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 111000),\n",
- " 'worker': 8,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15415.186441688731},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 115000),\n",
- " 'worker': 1,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15611.885500014081},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 208000),\n",
- " 'worker': 4,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15870.803780938573},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 562000),\n",
- " 'worker': 0,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15149.982360435166},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 773000),\n",
- " 'worker': 9,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15175.194651961283},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 774000),\n",
- " 'worker': 5,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15479.452140178499},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 867000),\n",
- " 'worker': 4,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15683.571040993067},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 21, 905000),\n",
- " 'worker': 2,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15285.330433802024},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 117000),\n",
- " 'worker': 3,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16140.718106173423},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 131000),\n",
- " 'worker': 6,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15532.23903357282},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 137000),\n",
- " 'worker': 7,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16454.16864218011},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 361000),\n",
- " 'worker': 8,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15451.09375070572},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 374000),\n",
- " 'worker': 1,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -14953.309532478948},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 474000),\n",
- " 'worker': 5,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15659.15259443666},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 582000),\n",
- " 'worker': 4,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15869.087172295838},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 22, 837000),\n",
- " 'worker': 0,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15417.420509588284},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 35000),\n",
- " 'worker': 9,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14755.133509144218},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 134000),\n",
- " 'worker': 5,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 169000),\n",
- " 'worker': 2,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15646.531721637635},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 274000),\n",
- " 'worker': 4,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15210.315534893452},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 372000),\n",
- " 'worker': 3,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15694.77409965568},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 378000),\n",
- " 'worker': 7,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15259.729176088413},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 393000),\n",
- " 'worker': 6,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -17056.42671837105},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 623000),\n",
- " 'worker': 8,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14753.192978629439},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 23, 646000),\n",
- " 'worker': 1,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15288.147896117103},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 105000),\n",
- " 'worker': 4,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15060.603210355042},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 114000),\n",
- " 'worker': 0,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15007.5508773021},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 205000),\n",
- " 'worker': 5,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14938.424693950374},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 290000),\n",
- " 'worker': 7,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15771.680706420595},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 293000),\n",
- " 'worker': 9,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14976.114071536189},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 431000),\n",
- " 'worker': 2,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15400.307210930276},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 643000),\n",
- " 'worker': 3,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15905.972572862838},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 675000),\n",
- " 'worker': 6,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -16446.158550232558},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 876000),\n",
- " 'worker': 8,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14781.142456953165},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 24, 914000),\n",
- " 'worker': 1,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -14981.672242306711},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 20000),\n",
- " 'worker': 7,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -16164.260679369723},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 44000),\n",
- " 'worker': 4,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15069.41761792247},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 403000),\n",
- " 'worker': 0,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14876.118543452645},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 458000),\n",
- " 'worker': 5,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14961.285575467244},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 572000),\n",
- " 'worker': 9,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14863.556266989302},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 705000),\n",
- " 'worker': 2,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14977.415942610598},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 904000),\n",
- " 'worker': 3,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -14993.584839523564},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 906000),\n",
- " 'worker': 7,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15141.475802739613},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 25, 944000),\n",
- " 'worker': 6,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -16009.08750955859},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 145000),\n",
- " 'worker': 8,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14827.099904866538},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 194000),\n",
- " 'worker': 4,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15116.224925495997},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 202000),\n",
- " 'worker': 1,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15149.029029083624},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 686000),\n",
- " 'worker': 0,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14758.523310234728},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 725000),\n",
- " 'worker': 5,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14781.142456953165},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 830000),\n",
- " 'worker': 9,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14758.523310234728},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 26, 960000),\n",
- " 'worker': 2,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14813.046812753024},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 61000),\n",
- " 'worker': 7,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15340.860844544492},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 170000),\n",
- " 'worker': 3,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15305.374336482708},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 226000),\n",
- " 'worker': 6,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15573.850829771378},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 309000),\n",
- " 'worker': 4,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -15004.196963177967},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 445000),\n",
- " 'worker': 8,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14968.808339959272},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 465000),\n",
- " 'worker': 1,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15189.679227108176},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 972000),\n",
- " 'worker': 0,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 27, 982000),\n",
- " 'worker': 5,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 158000),\n",
- " 'worker': 9,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -15026.706407974296},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 257000),\n",
- " 'worker': 2,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 341000),\n",
- " 'worker': 4,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14739.612188053427},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 368000),\n",
- " 'worker': 7,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15327.626863056204},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 441000),\n",
- " 'worker': 3,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15100.949728117137},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 491000),\n",
- " 'worker': 6,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -14909.17876099893},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 750000),\n",
- " 'worker': 1,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15309.029815268066},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 28, 765000),\n",
- " 'worker': 8,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14900.16872092433},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 232000),\n",
- " 'worker': 0,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 250000),\n",
- " 'worker': 5,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14767.359551554202},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 411000),\n",
- " 'worker': 9,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 412000),\n",
- " 'worker': 4,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 521000),\n",
- " 'worker': 2,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 655000),\n",
- " 'worker': 7,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15470.913319339978},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 704000),\n",
- " 'worker': 3,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 29, 759000),\n",
- " 'worker': 6,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14818.384022705113},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 11000),\n",
- " 'worker': 1,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14939.247773294534},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 64000),\n",
- " 'worker': 8,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 501000),\n",
- " 'worker': 0,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 504000),\n",
- " 'worker': 5,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 676000),\n",
- " 'worker': 9,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 693000),\n",
- " 'worker': 4,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 782000),\n",
- " 'worker': 2,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 956000),\n",
- " 'worker': 7,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15019.728235593766},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 30, 958000),\n",
- " 'worker': 3,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15374.657983398703},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 16000),\n",
- " 'worker': 6,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15025.874342597837},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 278000),\n",
- " 'worker': 1,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 326000),\n",
- " 'worker': 8,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 755000),\n",
- " 'worker': 0,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 765000),\n",
- " 'worker': 5,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 931000),\n",
- " 'worker': 9,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 31, 946000),\n",
- " 'worker': 4,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 31000),\n",
- " 'worker': 2,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 203000),\n",
- " 'worker': 7,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -15131.743534205201},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 221000),\n",
- " 'worker': 3,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15436.793571633094},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 282000),\n",
- " 'worker': 6,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14855.72679572798},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 535000),\n",
- " 'worker': 1,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14827.099904866538},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 32, 578000),\n",
- " 'worker': 8,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 22000),\n",
- " 'worker': 0,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 23000),\n",
- " 'worker': 5,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 195000),\n",
- " 'worker': 9,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 210000),\n",
- " 'worker': 4,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14739.612188053427},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 293000),\n",
- " 'worker': 2,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 464000),\n",
- " 'worker': 7,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14902.507624188043},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 476000),\n",
- " 'worker': 3,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 539000),\n",
- " 'worker': 6,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -15015.681704727132},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 801000),\n",
- " 'worker': 1,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 33, 841000),\n",
- " 'worker': 8,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 276000),\n",
- " 'worker': 0,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 285000),\n",
- " 'worker': 5,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 458000),\n",
- " 'worker': 9,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 474000),\n",
- " 'worker': 4,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 538000),\n",
- " 'worker': 2,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 719000),\n",
- " 'worker': 7,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14865.21908397404},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 735000),\n",
- " 'worker': 3,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14778.1362419798},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 806000),\n",
- " 'worker': 6,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14890.36011820834},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 34, 901000),\n",
- " 'worker': 1,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 94000),\n",
- " 'worker': 8,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 305000),\n",
- " 'worker': 9,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 538000),\n",
- " 'worker': 5,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 542000),\n",
- " 'worker': 0,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 542000),\n",
- " 'worker': 4,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 800000),\n",
- " 'worker': 2,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 983000),\n",
- " 'worker': 3,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14758.523310234728},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 35, 987000),\n",
- " 'worker': 7,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 65000),\n",
- " 'worker': 6,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 77000),\n",
- " 'worker': 9,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 161000),\n",
- " 'worker': 1,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 361000),\n",
- " 'worker': 8,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 719000),\n",
- " 'worker': 4,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 802000),\n",
- " 'worker': 5,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 815000),\n",
- " 'worker': 0,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 36, 877000),\n",
- " 'worker': 9,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 49000),\n",
- " 'worker': 2,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 244000),\n",
- " 'worker': 3,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 278000),\n",
- " 'worker': 7,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 331000),\n",
- " 'worker': 6,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 414000),\n",
- " 'worker': 1,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 617000),\n",
- " 'worker': 8,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 618000),\n",
- " 'worker': 9,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 37, 895000),\n",
- " 'worker': 4,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 58000),\n",
- " 'worker': 5,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 77000),\n",
- " 'worker': 0,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 308000),\n",
- " 'worker': 2,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 492000),\n",
- " 'worker': 3,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 545000),\n",
- " 'worker': 7,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 586000),\n",
- " 'worker': 6,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14767.359551554202},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 679000),\n",
- " 'worker': 1,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 878000),\n",
- " 'worker': 8,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 38, 910000),\n",
- " 'worker': 4,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 324000),\n",
- " 'worker': 0,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 556000),\n",
- " 'worker': 2,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 749000),\n",
- " 'worker': 3,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 797000),\n",
- " 'worker': 7,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 848000),\n",
- " 'worker': 6,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14758.523310234728},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 39, 916000),\n",
- " 'worker': 1,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 70000),\n",
- " 'worker': 8,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 437000),\n",
- " 'worker': 2,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 481000),\n",
- " 'worker': 7,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 555000),\n",
- " 'worker': 1,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 880000),\n",
- " 'worker': 3,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 40, 931000),\n",
- " 'worker': 6,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 57000),\n",
- " 'worker': 2,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 100000),\n",
- " 'worker': 7,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 178000),\n",
- " 'worker': 1,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 517000),\n",
- " 'worker': 3,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 574000),\n",
- " 'worker': 6,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 41, 745000),\n",
- " 'worker': 7,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 129000),\n",
- " 'worker': 3,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 187000),\n",
- " 'worker': 6,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 367000),\n",
- " 'worker': 7,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 753000),\n",
- " 'worker': 3,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 42, 810000),\n",
- " 'worker': 6,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 43, 363000),\n",
- " 'worker': 3,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 18, 28, 43, 416000),\n",
- " 'worker': 6,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 305000),\n",
- " 'worker': 7,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17064.948772927888},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 1,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 2,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 0,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 3,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 4,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 5,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17536.258720447695},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 307000),\n",
- " 'worker': 6,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17489.373605685694},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 308000),\n",
- " 'worker': 8,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 30, 308000),\n",
- " 'worker': 9,\n",
- " 'iteration': 0,\n",
- " 'fitness': -17464.568516864027},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 483000),\n",
- " 'worker': 7,\n",
- " 'iteration': 500,\n",
- " 'fitness': -20011.926080833462},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 584000),\n",
- " 'worker': 8,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18720.58237892333},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 586000),\n",
- " 'worker': 2,\n",
- " 'iteration': 500,\n",
- " 'fitness': -20221.715741201548},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 641000),\n",
- " 'worker': 6,\n",
- " 'iteration': 500,\n",
- " 'fitness': -20971.93227245418},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 650000),\n",
- " 'worker': 1,\n",
- " 'iteration': 500,\n",
- " 'fitness': -17958.557690043537},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 653000),\n",
- " 'worker': 0,\n",
- " 'iteration': 500,\n",
- " 'fitness': -19456.419361176002},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 668000),\n",
- " 'worker': 9,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18794.76060121247},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 690000),\n",
- " 'worker': 5,\n",
- " 'iteration': 500,\n",
- " 'fitness': -19179.138598606725},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 711000),\n",
- " 'worker': 3,\n",
- " 'iteration': 500,\n",
- " 'fitness': -17988.766735978654},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 31, 717000),\n",
- " 'worker': 4,\n",
- " 'iteration': 500,\n",
- " 'fitness': -18970.09109208436},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 663000),\n",
- " 'worker': 0,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19192.661068367157},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 812000),\n",
- " 'worker': 7,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -18440.462795548294},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 907000),\n",
- " 'worker': 2,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19208.61349253221},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 913000),\n",
- " 'worker': 8,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -21074.221350148688},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 967000),\n",
- " 'worker': 1,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19380.999140599124},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 977000),\n",
- " 'worker': 9,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -17994.519054935667},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 32, 979000),\n",
- " 'worker': 6,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19306.156116067286},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 32000),\n",
- " 'worker': 5,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -20337.97301214875},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 35000),\n",
- " 'worker': 3,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19975.76171434862},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 44000),\n",
- " 'worker': 4,\n",
- " 'iteration': 1000,\n",
- " 'fitness': -19476.28521852281},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 33, 684000),\n",
- " 'worker': 0,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -21362.030853695927},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 186000),\n",
- " 'worker': 1,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -17714.641624264746},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 229000),\n",
- " 'worker': 7,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -18542.121696900136},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 233000),\n",
- " 'worker': 2,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -20058.056128897606},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 289000),\n",
- " 'worker': 8,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19942.833685138357},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 291000),\n",
- " 'worker': 9,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -17125.250461558895},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 357000),\n",
- " 'worker': 3,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -20433.11384868423},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 382000),\n",
- " 'worker': 4,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19266.8556439343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 454000),\n",
- " 'worker': 5,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -19485.148402491643},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 34, 600000),\n",
- " 'worker': 6,\n",
- " 'iteration': 1500,\n",
- " 'fitness': -18819.539234026674},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 103000),\n",
- " 'worker': 0,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19439.674465428758},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 477000),\n",
- " 'worker': 1,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19958.84007847232},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 602000),\n",
- " 'worker': 2,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19670.81172833396},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 713000),\n",
- " 'worker': 9,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -17142.009059028445},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 726000),\n",
- " 'worker': 8,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19683.9963358193},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 730000),\n",
- " 'worker': 7,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -17340.009861643404},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 762000),\n",
- " 'worker': 3,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19369.723029067667},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 863000),\n",
- " 'worker': 4,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19034.682763381767},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 35, 930000),\n",
- " 'worker': 5,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19724.425130764797},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 121000),\n",
- " 'worker': 6,\n",
- " 'iteration': 2000,\n",
- " 'fitness': -19113.68657413882},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 676000),\n",
- " 'worker': 0,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -19494.92220907886},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 899000),\n",
- " 'worker': 1,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -17619.247219933895},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 951000),\n",
- " 'worker': 8,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18733.49038445007},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 36, 967000),\n",
- " 'worker': 2,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -19275.265763427655},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 54000),\n",
- " 'worker': 9,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18403.8355946094},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 88000),\n",
- " 'worker': 3,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -19514.81650956374},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 149000),\n",
- " 'worker': 7,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18321.512123184442},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 167000),\n",
- " 'worker': 5,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -18757.70142762439},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 242000),\n",
- " 'worker': 4,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -19803.012956369163},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 469000),\n",
- " 'worker': 6,\n",
- " 'iteration': 2500,\n",
- " 'fitness': -20912.58774667283},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 37, 862000),\n",
- " 'worker': 0,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19409.258503714384},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 315000),\n",
- " 'worker': 1,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18872.173637934306},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 329000),\n",
- " 'worker': 2,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -20509.129709514265},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 348000),\n",
- " 'worker': 8,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -17321.155277579343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 421000),\n",
- " 'worker': 3,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19427.389011059782},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 467000),\n",
- " 'worker': 9,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19207.343443988215},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 480000),\n",
- " 'worker': 4,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18721.56447624704},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 518000),\n",
- " 'worker': 5,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18572.50782004681},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 531000),\n",
- " 'worker': 7,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -19691.162343454114},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 38, 731000),\n",
- " 'worker': 6,\n",
- " 'iteration': 3000,\n",
- " 'fitness': -18979.35240339668},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 191000),\n",
- " 'worker': 0,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19375.464976830353},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 562000),\n",
- " 'worker': 5,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17050.915692093513},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 634000),\n",
- " 'worker': 1,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19343.737531858267},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 656000),\n",
- " 'worker': 2,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -18634.214126420095},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 670000),\n",
- " 'worker': 8,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -17754.52887821668},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 733000),\n",
- " 'worker': 3,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19132.250603393244},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 783000),\n",
- " 'worker': 4,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19196.35892101146},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 816000),\n",
- " 'worker': 9,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19002.690919176286},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 863000),\n",
- " 'worker': 7,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19133.298070206092},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 39, 868000),\n",
- " 'worker': 6,\n",
- " 'iteration': 3500,\n",
- " 'fitness': -19757.791544465104},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 468000),\n",
- " 'worker': 0,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18553.631818438087},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 701000),\n",
- " 'worker': 5,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -16989.573092675015},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 967000),\n",
- " 'worker': 6,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18738.132464822625},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 975000),\n",
- " 'worker': 2,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18180.86838796417},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 984000),\n",
- " 'worker': 1,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18858.92834820425},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 40, 995000),\n",
- " 'worker': 8,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -16734.063130383078},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 46000),\n",
- " 'worker': 3,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -17763.14484564346},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 113000),\n",
- " 'worker': 4,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -18163.721019481505},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 160000),\n",
- " 'worker': 9,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -19530.52326303019},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 211000),\n",
- " 'worker': 7,\n",
- " 'iteration': 4000,\n",
- " 'fitness': -17672.714496294167},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 41, 331000),\n",
- " 'worker': 0,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18842.347858107038},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 12000),\n",
- " 'worker': 5,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17109.64535862546},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 130000),\n",
- " 'worker': 6,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -19746.393461068335},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 284000),\n",
- " 'worker': 2,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17870.85254780358},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 310000),\n",
- " 'worker': 8,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -16373.62611877824},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 320000),\n",
- " 'worker': 1,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -18999.185125551114},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 359000),\n",
- " 'worker': 3,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -19515.749071948336},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 396000),\n",
- " 'worker': 0,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -19347.171864885633},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 438000),\n",
- " 'worker': 4,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -17635.78592431806},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 477000),\n",
- " 'worker': 9,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -19750.17321013555},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 525000),\n",
- " 'worker': 7,\n",
- " 'iteration': 4500,\n",
- " 'fitness': -19314.5595862402},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 42, 963000),\n",
- " 'worker': 6,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17726.01705706373},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 163000),\n",
- " 'worker': 0,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18460.352807643045},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 328000),\n",
- " 'worker': 5,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17586.309577218046},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 605000),\n",
- " 'worker': 8,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -16458.461467144996},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 626000),\n",
- " 'worker': 2,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -18053.662807774603},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 633000),\n",
- " 'worker': 1,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17556.989179356522},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 665000),\n",
- " 'worker': 3,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -16565.51797668411},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 755000),\n",
- " 'worker': 6,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -18771.2540141021},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 756000),\n",
- " 'worker': 4,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -16790.05625163381},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 791000),\n",
- " 'worker': 9,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -19310.352955589842},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 840000),\n",
- " 'worker': 7,\n",
- " 'iteration': 5000,\n",
- " 'fitness': -17269.433973269734},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 43, 981000),\n",
- " 'worker': 0,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18814.96821348566},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 639000),\n",
- " 'worker': 5,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17610.98134319619},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 852000),\n",
- " 'worker': 6,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18747.634629002703},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 940000),\n",
- " 'worker': 8,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -16072.713130144652},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 941000),\n",
- " 'worker': 1,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17447.21951963203},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 950000),\n",
- " 'worker': 2,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17879.626209735092},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 44, 974000),\n",
- " 'worker': 3,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17184.11615532316},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 68000),\n",
- " 'worker': 4,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17654.84898582997},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 106000),\n",
- " 'worker': 9,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -17503.410891164338},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 160000),\n",
- " 'worker': 7,\n",
- " 'iteration': 5500,\n",
- " 'fitness': -16720.074082517604},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 198000),\n",
- " 'worker': 0,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -18298.223867411583},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 766000),\n",
- " 'worker': 5,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -18553.826194757083},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 45, 973000),\n",
- " 'worker': 1,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -16807.054548173965},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 176000),\n",
- " 'worker': 6,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -19078.385403827335},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 267000),\n",
- " 'worker': 2,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17462.57956085574},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 268000),\n",
- " 'worker': 8,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17724.567503651004},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 291000),\n",
- " 'worker': 3,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17136.71456663387},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 396000),\n",
- " 'worker': 4,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17222.7418938044},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 422000),\n",
- " 'worker': 9,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -17163.013191063783},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 486000),\n",
- " 'worker': 7,\n",
- " 'iteration': 6000,\n",
- " 'fitness': -15923.583455585313},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 534000),\n",
- " 'worker': 0,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17555.99144953487},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 594000),\n",
- " 'worker': 5,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -16095.3325939862},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 46, 758000),\n",
- " 'worker': 1,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17598.30468566638},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 362000),\n",
- " 'worker': 5,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17155.508484406248},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 494000),\n",
- " 'worker': 6,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17373.945618134694},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 543000),\n",
- " 'worker': 1,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -18716.93812649565},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 559000),\n",
- " 'worker': 2,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17132.098624244063},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 564000),\n",
- " 'worker': 8,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -16212.897757753763},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 588000),\n",
- " 'worker': 3,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -18532.2474041536},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 694000),\n",
- " 'worker': 4,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17839.708378581247},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 714000),\n",
- " 'worker': 9,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -16941.399876819683},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 780000),\n",
- " 'worker': 7,\n",
- " 'iteration': 6500,\n",
- " 'fitness': -17068.075735363327},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 47, 825000),\n",
- " 'worker': 0,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17280.01016268159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 335000),\n",
- " 'worker': 5,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16308.943529035794},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 345000),\n",
- " 'worker': 1,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17767.950488886243},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 476000),\n",
- " 'worker': 8,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -17878.68094126451},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 798000),\n",
- " 'worker': 6,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16851.996781322716},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 880000),\n",
- " 'worker': 2,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16658.854021932362},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 48, 896000),\n",
- " 'worker': 3,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16257.617448235551},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 3000),\n",
- " 'worker': 4,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16307.070462677171},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 16000),\n",
- " 'worker': 9,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16395.145359446204},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 89000),\n",
- " 'worker': 7,\n",
- " 'iteration': 7000,\n",
- " 'fitness': -16377.420100014382},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 93000),\n",
- " 'worker': 1,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -18326.355874175948},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 129000),\n",
- " 'worker': 0,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17208.764190910104},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 191000),\n",
- " 'worker': 8,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17878.188388548733},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 638000),\n",
- " 'worker': 5,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -15999.453933213032},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 827000),\n",
- " 'worker': 1,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17936.125618392205},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 49, 943000),\n",
- " 'worker': 8,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17506.631134173378},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 100000),\n",
- " 'worker': 6,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -17566.086945631425},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 176000),\n",
- " 'worker': 2,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -15570.94946286388},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 182000),\n",
- " 'worker': 3,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16553.28915763965},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 302000),\n",
- " 'worker': 4,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16501.180389660924},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 303000),\n",
- " 'worker': 9,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -16250.722025520972},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 381000),\n",
- " 'worker': 7,\n",
- " 'iteration': 7500,\n",
- " 'fitness': -17268.919774722508},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 419000),\n",
- " 'worker': 0,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17048.836849959105},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 581000),\n",
- " 'worker': 1,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -17810.016087094227},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 678000),\n",
- " 'worker': 8,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -18752.845284275703},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 50, 927000),\n",
- " 'worker': 5,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16175.607528275586},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 321000),\n",
- " 'worker': 1,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16721.142895272147},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 396000),\n",
- " 'worker': 6,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17123.34118469316},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 439000),\n",
- " 'worker': 8,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -17206.462551935492},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 480000),\n",
- " 'worker': 2,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16055.229264463589},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 481000),\n",
- " 'worker': 3,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -15971.124638912872},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 601000),\n",
- " 'worker': 9,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16750.905525795755},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 604000),\n",
- " 'worker': 4,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16221.64902996803},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 687000),\n",
- " 'worker': 7,\n",
- " 'iteration': 8000,\n",
- " 'fitness': -16168.508201710261},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 51, 718000),\n",
- " 'worker': 0,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -17309.88570310366},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 225000),\n",
- " 'worker': 5,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16630.758677893176},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 306000),\n",
- " 'worker': 1,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16458.37817939503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 341000),\n",
- " 'worker': 8,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -18115.910872797052},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 707000),\n",
- " 'worker': 6,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -18076.206333573326},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 765000),\n",
- " 'worker': 3,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16554.325053408993},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 773000),\n",
- " 'worker': 2,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -16358.06215804406},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 890000),\n",
- " 'worker': 9,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17732.5396101792},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 904000),\n",
- " 'worker': 4,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17404.41627980615},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 52, 981000),\n",
- " 'worker': 7,\n",
- " 'iteration': 8500,\n",
- " 'fitness': -17044.235539199384},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 2000),\n",
- " 'worker': 5,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16157.472136689625},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 30000),\n",
- " 'worker': 0,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15935.254778228882},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 63000),\n",
- " 'worker': 1,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15790.70127875513},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 650000),\n",
- " 'worker': 8,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -18568.583229449458},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 731000),\n",
- " 'worker': 2,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15423.7885269577},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 53, 743000),\n",
- " 'worker': 5,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15907.693594558705},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54),\n",
- " 'worker': 6,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16802.56684951041},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 60000),\n",
- " 'worker': 3,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16145.569612905003},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 188000),\n",
- " 'worker': 9,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -16435.36881207485},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 213000),\n",
- " 'worker': 4,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -15597.017179474158},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 223000),\n",
- " 'worker': 1,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15864.058756356626},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 291000),\n",
- " 'worker': 7,\n",
- " 'iteration': 9000,\n",
- " 'fitness': -17089.426146020563},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 328000),\n",
- " 'worker': 0,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15694.589651580845},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 467000),\n",
- " 'worker': 2,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15490.089700212742},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 661000),\n",
- " 'worker': 5,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15331.448882458491},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 950000),\n",
- " 'worker': 8,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -18254.79538782754},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 54, 983000),\n",
- " 'worker': 1,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15453.810944913927},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 215000),\n",
- " 'worker': 2,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15788.27615253343},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 315000),\n",
- " 'worker': 6,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15387.352075338764},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 345000),\n",
- " 'worker': 3,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16906.638018393314},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 472000),\n",
- " 'worker': 9,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16910.471933948906},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 502000),\n",
- " 'worker': 4,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -15838.845009907493},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 584000),\n",
- " 'worker': 7,\n",
- " 'iteration': 9500,\n",
- " 'fitness': -16236.663760999885},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 608000),\n",
- " 'worker': 0,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15582.878773613726},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 744000),\n",
- " 'worker': 1,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15857.712951845626},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 963000),\n",
- " 'worker': 5,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15224.34418167227},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 55, 990000),\n",
- " 'worker': 2,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15510.124537814698},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 259000),\n",
- " 'worker': 8,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -16684.797395049696},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 509000),\n",
- " 'worker': 1,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15899.290135264084},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 606000),\n",
- " 'worker': 6,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -16982.897162746085},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 643000),\n",
- " 'worker': 3,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15880.24335549858},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 726000),\n",
- " 'worker': 2,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15618.302247103386},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 769000),\n",
- " 'worker': 9,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15910.365820786265},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 803000),\n",
- " 'worker': 4,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -16076.436195135359},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 886000),\n",
- " 'worker': 7,\n",
- " 'iteration': 10000,\n",
- " 'fitness': -15601.565064812852},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 56, 900000),\n",
- " 'worker': 0,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15314.579171383004},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 250000),\n",
- " 'worker': 1,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15114.676681414347},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 252000),\n",
- " 'worker': 5,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15681.437564457789},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 554000),\n",
- " 'worker': 8,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -16874.11729892052},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 651000),\n",
- " 'worker': 2,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15088.705999484571},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 926000),\n",
- " 'worker': 3,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15500.632495571637},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 931000),\n",
- " 'worker': 6,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -16376.982856570163},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 57, 990000),\n",
- " 'worker': 1,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14758.523310234728},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 22000),\n",
- " 'worker': 5,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15581.876640395263},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 53000),\n",
- " 'worker': 9,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15936.659326834395},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 94000),\n",
- " 'worker': 4,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -16394.41556159084},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 179000),\n",
- " 'worker': 0,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -14942.449992115211},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 190000),\n",
- " 'worker': 7,\n",
- " 'iteration': 10500,\n",
- " 'fitness': -15356.809574891702},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 748000),\n",
- " 'worker': 5,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15276.710353852186},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 766000),\n",
- " 'worker': 1,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15162.08405060763},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 854000),\n",
- " 'worker': 8,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15741.267175116936},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 58, 946000),\n",
- " 'worker': 2,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15368.482505196353},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 221000),\n",
- " 'worker': 6,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15691.10227685781},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 222000),\n",
- " 'worker': 3,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15197.534159786483},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 346000),\n",
- " 'worker': 9,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15246.633563963847},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 391000),\n",
- " 'worker': 4,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15207.373029629109},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 467000),\n",
- " 'worker': 0,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15471.335261220765},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 488000),\n",
- " 'worker': 7,\n",
- " 'iteration': 11000,\n",
- " 'fitness': -15123.146456093333},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 495000),\n",
- " 'worker': 5,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15369.523244430631},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 32, 59, 496000),\n",
- " 'worker': 1,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14703.30465175159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 141000),\n",
- " 'worker': 8,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15978.29558113683},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 202000),\n",
- " 'worker': 5,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15210.248129074906},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 228000),\n",
- " 'worker': 2,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15070.932598973135},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 236000),\n",
- " 'worker': 1,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 501000),\n",
- " 'worker': 3,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15417.87854337438},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 513000),\n",
- " 'worker': 6,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15497.453865796844},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 622000),\n",
- " 'worker': 9,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15256.022958715765},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 674000),\n",
- " 'worker': 4,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -15448.106606929205},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 743000),\n",
- " 'worker': 0,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -14977.106397283767},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 775000),\n",
- " 'worker': 7,\n",
- " 'iteration': 11500,\n",
- " 'fitness': -16115.80710224294},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 945000),\n",
- " 'worker': 1,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14753.192978629439},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 0, 951000),\n",
- " 'worker': 5,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14993.717806464269},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 441000),\n",
- " 'worker': 8,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15566.600288230786},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 518000),\n",
- " 'worker': 2,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15120.200192040631},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 685000),\n",
- " 'worker': 4,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -14893.816656932617},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 698000),\n",
- " 'worker': 1,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 797000),\n",
- " 'worker': 3,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15697.580890996342},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 806000),\n",
- " 'worker': 6,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15437.324954281872},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 1, 923000),\n",
- " 'worker': 9,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -14985.884198039563},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 33000),\n",
- " 'worker': 0,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14954.236485580337},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 45000),\n",
- " 'worker': 5,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14798.207889316744},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 79000),\n",
- " 'worker': 7,\n",
- " 'iteration': 12000,\n",
- " 'fitness': -15218.980965385977},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 720000),\n",
- " 'worker': 8,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15307.30604779866},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 750000),\n",
- " 'worker': 1,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14772.059055189866},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 810000),\n",
- " 'worker': 2,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15509.930069578795},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 2, 842000),\n",
- " 'worker': 4,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15078.39977289335},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 83000),\n",
- " 'worker': 3,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15258.335326596824},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 119000),\n",
- " 'worker': 6,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14848.550016511359},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 218000),\n",
- " 'worker': 9,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 314000),\n",
- " 'worker': 0,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14762.142170684896},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 350000),\n",
- " 'worker': 5,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 3, 376000),\n",
- " 'worker': 7,\n",
- " 'iteration': 12500,\n",
- " 'fitness': -15026.934771143106},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 19000),\n",
- " 'worker': 8,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 39000),\n",
- " 'worker': 1,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 104000),\n",
- " 'worker': 2,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 139000),\n",
- " 'worker': 4,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14909.800865024245},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 378000),\n",
- " 'worker': 3,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15115.91350339263},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 400000),\n",
- " 'worker': 6,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15039.58557529451},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 515000),\n",
- " 'worker': 9,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -14822.625860493024},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 605000),\n",
- " 'worker': 0,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14932.523831654122},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 638000),\n",
- " 'worker': 5,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 4, 681000),\n",
- " 'worker': 7,\n",
- " 'iteration': 13000,\n",
- " 'fitness': -15166.683262976208},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 311000),\n",
- " 'worker': 8,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 320000),\n",
- " 'worker': 1,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 394000),\n",
- " 'worker': 2,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 439000),\n",
- " 'worker': 4,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15057.5152032743},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 634000),\n",
- " 'worker': 9,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15013.715132067427},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 663000),\n",
- " 'worker': 3,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -14759.146412767077},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 698000),\n",
- " 'worker': 5,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 705000),\n",
- " 'worker': 6,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14873.687469365803},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 896000),\n",
- " 'worker': 0,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14978.652512051753},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 5, 996000),\n",
- " 'worker': 7,\n",
- " 'iteration': 13500,\n",
- " 'fitness': -15395.233923017795},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 517000),\n",
- " 'worker': 9,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14797.257897943533},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 575000),\n",
- " 'worker': 5,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 611000),\n",
- " 'worker': 8,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 613000),\n",
- " 'worker': 1,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 691000),\n",
- " 'worker': 2,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14784.610965075099},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 741000),\n",
- " 'worker': 4,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -15147.438375322876},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 960000),\n",
- " 'worker': 3,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14964.296601131206},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 6, 994000),\n",
- " 'worker': 6,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14805.06948647775},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 272000),\n",
- " 'worker': 0,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -15018.371309111777},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 322000),\n",
- " 'worker': 7,\n",
- " 'iteration': 14000,\n",
- " 'fitness': -14939.804035587642},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 476000),\n",
- " 'worker': 9,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14895.606254501257},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 808000),\n",
- " 'worker': 5,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 898000),\n",
- " 'worker': 1,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 902000),\n",
- " 'worker': 8,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14958.4987562011},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 7, 981000),\n",
+ "source": [
+ "cat(p[1] for p in sorted(zip(plain_alpha, sa_cipher_alphabet)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'arcnimpebdfghjkloqstuvwxyz'"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "keyword_cipher_alphabet_of('arcanaimperii')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "cipher.log old.cipher.log\n"
+ ]
+ }
+ ],
+ "source": [
+ "!ls *log"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['2019-10-28 09:59:14,978 - cipherbreak - DEBUG - Simulated annealing worker 2: iteration 0, temperature 200, current alphabet rjgzieptunyxodfsmbacqhkwvl, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext getsninycassehpioeoresamtnhhuccesedthdtghousnedino',\n",
+ " '2019-10-28 09:59:14,978 - cipherbreak - DEBUG - Simulated annealing worker 8: iteration 0, temperature 200, current alphabet rjgzieptunyxocfsmbadqhkwvl, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17394.10216261065, best_plaintext geosninycassehpitetresamonhhuccesedohdoghtusnedint',\n",
+ " '2019-10-28 09:59:14,980 - cipherbreak - DEBUG - Simulated annealing worker 0: iteration 0, temperature 200, current alphabet rjgzieptunyxodcsmbafqhkwvl, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17476.383874573305, best_plaintext geosninbcassehpitetresamonhhuccesedohdoghtusnedint',\n",
+ " '2019-10-28 09:59:14,980 - cipherbreak - DEBUG - Simulated annealing worker 1: iteration 0, temperature 200, current alphabet rjgzieptunyxodfsmbacqhkwvl, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosninychsseapitetreshmonaauccesedoadogatusnedint',\n",
+ " '2019-10-28 09:59:14,980 - cipherbreak - DEBUG - Simulated annealing worker 4: iteration 0, temperature 200, current alphabet rjgzieptunyxodfsmbacqhkwvl, plain alphabet etoainhsrdlumwycfgpbvkxjqz, current_fitness -17464.568516864027, best_plaintext geosninycassezpitetresamonzzuccesedozdogztusnedint']"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "recs = open('cipher.log').read().splitlines()\n",
+ "recs[:5]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 978000),\n",
+ " 'worker': 2,\n",
+ " 'iteration': 0,\n",
+ " 'fitness': -17464.568516864027}"
+ ]
+ },
+ "execution_count": 66,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "log_parse(recs[0])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[{'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 978000),\n",
" 'worker': 2,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14766.30773587518},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 40000),\n",
- " 'worker': 4,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -15076.754837130193},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 103000),\n",
- " 'worker': 7,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14912.056192855927},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 280000),\n",
- " 'worker': 3,\n",
- " 'iteration': 14500,\n",
- " 'fitness': -14767.679364469022},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 288000),\n",
- " 'worker': 9,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14986.75304537988},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 296000),\n",
- " 'worker': 6,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14964.408288222712},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 8, 554000),\n",
- " 'worker': 0,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14986.892588150418},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 24000),\n",
- " 'worker': 7,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 99000),\n",
- " 'worker': 5,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 165000),\n",
- " 'worker': 9,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 190000),\n",
- " 'worker': 1,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 203000),\n",
+ " 'iteration': 0,\n",
+ " 'fitness': -17464.568516864027},\n",
+ " {'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 978000),\n",
" 'worker': 8,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 279000),\n",
- " 'worker': 2,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14761.868065704366},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 340000),\n",
- " 'worker': 4,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14877.657337982304},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 582000),\n",
- " 'worker': 3,\n",
- " 'iteration': 15000,\n",
- " 'fitness': -14739.612188053427},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 585000),\n",
- " 'worker': 6,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14991.71033865808},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 849000),\n",
+ " 'iteration': 0,\n",
+ " 'fitness': -17394.10216261065},\n",
+ " {'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 980000),\n",
" 'worker': 0,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 864000),\n",
- " 'worker': 7,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 9, 995000),\n",
- " 'worker': 9,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 395000),\n",
- " 'worker': 5,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 485000),\n",
+ " 'iteration': 0,\n",
+ " 'fitness': -17476.383874573305},\n",
+ " {'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 980000),\n",
" 'worker': 1,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 501000),\n",
- " 'worker': 8,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14766.30773587518},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 563000),\n",
- " 'worker': 2,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14771.903569422147},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 619000),\n",
- " 'worker': 7,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14919.68053225613},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 626000),\n",
- " 'worker': 4,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 743000),\n",
- " 'worker': 9,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 869000),\n",
- " 'worker': 3,\n",
- " 'iteration': 15500,\n",
- " 'fitness': -14797.42321524005},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 10, 877000),\n",
- " 'worker': 6,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 122000),\n",
- " 'worker': 0,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 485000),\n",
- " 'worker': 5,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 491000),\n",
- " 'worker': 7,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14808.607142582212},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 510000),\n",
- " 'worker': 9,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 792000),\n",
- " 'worker': 8,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 849000),\n",
- " 'worker': 2,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 11, 917000),\n",
- " 'worker': 4,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 155000),\n",
- " 'worker': 6,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 163000),\n",
- " 'worker': 3,\n",
- " 'iteration': 16000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 254000),\n",
- " 'worker': 9,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 409000),\n",
- " 'worker': 0,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 447000),\n",
- " 'worker': 5,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 748000),\n",
- " 'worker': 8,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14703.30465175159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 12, 794000),\n",
- " 'worker': 7,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 67000),\n",
- " 'worker': 9,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 135000),\n",
- " 'worker': 2,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 204000),\n",
- " 'worker': 4,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14703.30465175159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 430000),\n",
- " 'worker': 5,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 452000),\n",
- " 'worker': 6,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14700.923210187424},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 452000),\n",
- " 'worker': 3,\n",
- " 'iteration': 16500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 559000),\n",
- " 'worker': 8,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 691000),\n",
- " 'worker': 0,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 13, 918000),\n",
- " 'worker': 9,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 81000),\n",
- " 'worker': 7,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 345000),\n",
- " 'worker': 8,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 429000),\n",
- " 'worker': 2,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 502000),\n",
- " 'worker': 4,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14703.30465175159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 660000),\n",
- " 'worker': 9,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 731000),\n",
- " 'worker': 6,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 743000),\n",
- " 'worker': 3,\n",
- " 'iteration': 17000,\n",
- " 'fitness': -14698.864981580778},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 14, 976000),\n",
- " 'worker': 0,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 20000),\n",
- " 'worker': 8,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 356000),\n",
- " 'worker': 9,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 373000),\n",
- " 'worker': 7,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 448000),\n",
- " 'worker': 2,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 596000),\n",
- " 'worker': 6,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14696.82992865629},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 695000),\n",
- " 'worker': 8,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 15, 778000),\n",
- " 'worker': 4,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14703.30465175159},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 16000),\n",
- " 'worker': 3,\n",
- " 'iteration': 17500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 128000),\n",
- " 'worker': 2,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 248000),\n",
- " 'worker': 0,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 274000),\n",
- " 'worker': 6,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 532000),\n",
- " 'worker': 7,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14689.84155926745},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 662000),\n",
- " 'worker': 4,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 786000),\n",
- " 'worker': 2,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 868000),\n",
- " 'worker': 3,\n",
- " 'iteration': 18000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 909000),\n",
- " 'worker': 0,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 16, 947000),\n",
- " 'worker': 6,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 231000),\n",
- " 'worker': 7,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 320000),\n",
- " 'worker': 4,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 524000),\n",
- " 'worker': 3,\n",
- " 'iteration': 18500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 581000),\n",
- " 'worker': 0,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 605000),\n",
- " 'worker': 6,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 878000),\n",
- " 'worker': 7,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 17, 996000),\n",
- " 'worker': 4,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 173000),\n",
- " 'worker': 3,\n",
- " 'iteration': 19000,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 642000),\n",
+ " 'iteration': 0,\n",
+ " 'fitness': -17464.568516864027},\n",
+ " {'time': datetime.datetime(2019, 10, 28, 9, 59, 14, 980000),\n",
" 'worker': 4,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503},\n",
- " {'time': datetime.datetime(2018, 12, 5, 19, 33, 18, 817000),\n",
- " 'worker': 3,\n",
- " 'iteration': 19500,\n",
- " 'fitness': -14681.308607565503}]"
+ " 'iteration': 0,\n",
+ " 'fitness': -17464.568516864027}]"
]
},
- "execution_count": 47,
+ "execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"parsed = [log_parse(line) for line in open('cipher.log')]\n",
- "parsed[10:]"
+ "parsed[:5]"
]
},
{
"cell_type": "code",
- "execution_count": 56,
+ "execution_count": 58,
"metadata": {
"scrolled": true
},
@@ -3684,152 +568,152 @@
"
0 | \n",
" 0 | \n",
" -17464.568517 | \n",
- " 2018-12-05 19:32:30.307 | \n",
+ " 2019-10-28 10:14:21.136 | \n",
" \n",
" \n",
" 500 | \n",
- " -19456.419361 | \n",
- " 2018-12-05 19:32:31.653 | \n",
+ " -18531.679762 | \n",
+ " 2019-10-28 10:14:22.493 | \n",
"
\n",
" \n",
" 1000 | \n",
- " -19192.661068 | \n",
- " 2018-12-05 19:32:32.663 | \n",
+ " -20903.487109 | \n",
+ " 2019-10-28 10:14:23.787 | \n",
"
\n",
" \n",
" 1500 | \n",
- " -21362.030854 | \n",
- " 2018-12-05 19:32:33.684 | \n",
+ " -19941.571807 | \n",
+ " 2019-10-28 10:14:25.084 | \n",
"
\n",
" \n",
" 2000 | \n",
- " -19439.674465 | \n",
- " 2018-12-05 19:32:35.103 | \n",
+ " -18871.699801 | \n",
+ " 2019-10-28 10:14:26.133 | \n",
"
\n",
" \n",
" 2500 | \n",
- " -19494.922209 | \n",
- " 2018-12-05 19:32:36.676 | \n",
+ " -18847.246876 | \n",
+ " 2019-10-28 10:14:27.408 | \n",
"
\n",
" \n",
" 3000 | \n",
- " -19409.258504 | \n",
- " 2018-12-05 19:32:37.862 | \n",
+ " -19111.386196 | \n",
+ " 2019-10-28 10:14:28.707 | \n",
"
\n",
" \n",
" 3500 | \n",
- " -19375.464977 | \n",
- " 2018-12-05 19:32:39.191 | \n",
+ " -19693.452817 | \n",
+ " 2019-10-28 10:14:29.835 | \n",
"
\n",
" \n",
" 4000 | \n",
- " -18553.631818 | \n",
- " 2018-12-05 19:32:40.468 | \n",
+ " -18959.289175 | \n",
+ " 2019-10-28 10:14:31.228 | \n",
"
\n",
" \n",
" 4500 | \n",
- " -18842.347858 | \n",
- " 2018-12-05 19:32:41.331 | \n",
+ " -19040.556583 | \n",
+ " 2019-10-28 10:14:32.569 | \n",
"
\n",
" \n",
" 5000 | \n",
- " -19347.171865 | \n",
- " 2018-12-05 19:32:42.396 | \n",
+ " -18169.812374 | \n",
+ " 2019-10-28 10:14:33.891 | \n",
"
\n",
" \n",
" 5500 | \n",
- " -18460.352808 | \n",
- " 2018-12-05 19:32:43.163 | \n",
+ " -16657.860123 | \n",
+ " 2019-10-28 10:14:35.200 | \n",
"
\n",
" \n",
" 6000 | \n",
- " -18814.968213 | \n",
- " 2018-12-05 19:32:43.981 | \n",
+ " -16220.268468 | \n",
+ " 2019-10-28 10:14:36.485 | \n",
"
\n",
" \n",
" 6500 | \n",
- " -18298.223867 | \n",
- " 2018-12-05 19:32:45.198 | \n",
+ " -16472.952274 | \n",
+ " 2019-10-28 10:14:37.784 | \n",
"
\n",
" \n",
" 7000 | \n",
- " -17555.991450 | \n",
- " 2018-12-05 19:32:46.534 | \n",
+ " -17046.418912 | \n",
+ " 2019-10-28 10:14:39.054 | \n",
"
\n",
" \n",
" 7500 | \n",
- " -17280.010163 | \n",
- " 2018-12-05 19:32:47.825 | \n",
+ " -17320.865489 | \n",
+ " 2019-10-28 10:14:40.343 | \n",
"
\n",
" \n",
" 8000 | \n",
- " -17208.764191 | \n",
- " 2018-12-05 19:32:49.129 | \n",
+ " -16438.413488 | \n",
+ " 2019-10-28 10:14:41.622 | \n",
"
\n",
" \n",
" 8500 | \n",
- " -17048.836850 | \n",
- " 2018-12-05 19:32:50.419 | \n",
+ " -16116.768242 | \n",
+ " 2019-10-28 10:14:42.893 | \n",
"
\n",
" \n",
" 9000 | \n",
- " -17309.885703 | \n",
- " 2018-12-05 19:32:51.718 | \n",
+ " -16085.659977 | \n",
+ " 2019-10-28 10:14:44.167 | \n",
"
\n",
" \n",
" 9500 | \n",
- " -15935.254778 | \n",
- " 2018-12-05 19:32:53.030 | \n",
+ " -15679.574171 | \n",
+ " 2019-10-28 10:14:45.405 | \n",
"
\n",
" \n",
" 10000 | \n",
- " -15694.589652 | \n",
- " 2018-12-05 19:32:54.328 | \n",
+ " -16473.325447 | \n",
+ " 2019-10-28 10:14:46.650 | \n",
"
\n",
" \n",
" 10500 | \n",
- " -15582.878774 | \n",
- " 2018-12-05 19:32:55.608 | \n",
+ " -16421.027387 | \n",
+ " 2019-10-28 10:14:48.070 | \n",
"
\n",
" \n",
" 11000 | \n",
- " -15314.579171 | \n",
- " 2018-12-05 19:32:56.900 | \n",
+ " -16167.752107 | \n",
+ " 2019-10-28 10:14:49.371 | \n",
"
\n",
" \n",
" 11500 | \n",
- " -14942.449992 | \n",
- " 2018-12-05 19:32:58.179 | \n",
+ " -15213.074262 | \n",
+ " 2019-10-28 10:14:50.686 | \n",
"
\n",
" \n",
" 12000 | \n",
- " -15471.335261 | \n",
- " 2018-12-05 19:32:59.467 | \n",
+ " -15634.979337 | \n",
+ " 2019-10-28 10:14:51.967 | \n",
"
\n",
" \n",
" 12500 | \n",
- " -14977.106397 | \n",
- " 2018-12-05 19:33:00.743 | \n",
+ " -15296.397297 | \n",
+ " 2019-10-28 10:14:52.824 | \n",
"
\n",
" \n",
" 13000 | \n",
- " -14954.236486 | \n",
- " 2018-12-05 19:33:02.033 | \n",
+ " -15025.983510 | \n",
+ " 2019-10-28 10:14:53.881 | \n",
"
\n",
" \n",
" 13500 | \n",
- " -14762.142171 | \n",
- " 2018-12-05 19:33:03.314 | \n",
+ " -15175.912750 | \n",
+ " 2019-10-28 10:14:54.871 | \n",
"
\n",
" \n",
" 14000 | \n",
- " -14932.523832 | \n",
- " 2018-12-05 19:33:04.605 | \n",
+ " -15235.513700 | \n",
+ " 2019-10-28 10:14:56.119 | \n",
"
\n",
" \n",
" 14500 | \n",
- " -14978.652512 | \n",
- " 2018-12-05 19:33:05.896 | \n",
+ " -14923.520462 | \n",
+ " 2019-10-28 10:14:57.339 | \n",
"
\n",
" \n",
" ... | \n",
@@ -3840,153 +724,153 @@
"
\n",
" 9 | \n",
" 5000 | \n",
- " -19310.352956 | \n",
- " 2018-12-05 19:32:43.791 | \n",
+ " -19218.644968 | \n",
+ " 2019-10-28 10:14:34.337 | \n",
"
\n",
" \n",
" 5500 | \n",
- " -17503.410891 | \n",
- " 2018-12-05 19:32:45.106 | \n",
+ " -18770.828622 | \n",
+ " 2019-10-28 10:14:35.625 | \n",
"
\n",
" \n",
" 6000 | \n",
- " -17163.013191 | \n",
- " 2018-12-05 19:32:46.422 | \n",
+ " -18390.233128 | \n",
+ " 2019-10-28 10:14:36.920 | \n",
"
\n",
" \n",
" 6500 | \n",
- " -16941.399877 | \n",
- " 2018-12-05 19:32:47.714 | \n",
+ " -17361.547211 | \n",
+ " 2019-10-28 10:14:38.208 | \n",
"
\n",
" \n",
" 7000 | \n",
- " -16395.145359 | \n",
- " 2018-12-05 19:32:49.016 | \n",
+ " -16846.113490 | \n",
+ " 2019-10-28 10:14:39.501 | \n",
"
\n",
" \n",
" 7500 | \n",
- " -16250.722026 | \n",
- " 2018-12-05 19:32:50.303 | \n",
+ " -15002.318165 | \n",
+ " 2019-10-28 10:14:40.762 | \n",
"
\n",
" \n",
" 8000 | \n",
- " -16750.905526 | \n",
- " 2018-12-05 19:32:51.601 | \n",
+ " -16992.780932 | \n",
+ " 2019-10-28 10:14:41.757 | \n",
"
\n",
" \n",
" 8500 | \n",
- " -17732.539610 | \n",
- " 2018-12-05 19:32:52.890 | \n",
+ " -17115.242295 | \n",
+ " 2019-10-28 10:14:43.037 | \n",
"
\n",
" \n",
" 9000 | \n",
- " -16435.368812 | \n",
- " 2018-12-05 19:32:54.188 | \n",
+ " -17297.012437 | \n",
+ " 2019-10-28 10:14:44.327 | \n",
"
\n",
" \n",
" 9500 | \n",
- " -16910.471934 | \n",
- " 2018-12-05 19:32:55.472 | \n",
+ " -16511.948405 | \n",
+ " 2019-10-28 10:14:45.552 | \n",
"
\n",
" \n",
" 10000 | \n",
- " -15910.365821 | \n",
- " 2018-12-05 19:32:56.769 | \n",
+ " -16175.059178 | \n",
+ " 2019-10-28 10:14:46.828 | \n",
"
\n",
" \n",
" 10500 | \n",
- " -15936.659327 | \n",
- " 2018-12-05 19:32:58.053 | \n",
+ " -15482.711195 | \n",
+ " 2019-10-28 10:14:48.096 | \n",
"
\n",
" \n",
" 11000 | \n",
- " -15246.633564 | \n",
- " 2018-12-05 19:32:59.346 | \n",
+ " -15190.359782 | \n",
+ " 2019-10-28 10:14:49.376 | \n",
"
\n",
" \n",
" 11500 | \n",
- " -15256.022959 | \n",
- " 2018-12-05 19:33:00.622 | \n",
+ " -15776.667896 | \n",
+ " 2019-10-28 10:14:50.523 | \n",
"
\n",
" \n",
" 12000 | \n",
- " -14985.884198 | \n",
- " 2018-12-05 19:33:01.923 | \n",
+ " -15112.798387 | \n",
+ " 2019-10-28 10:14:51.327 | \n",
"
\n",
" \n",
" 12500 | \n",
- " -14689.841559 | \n",
- " 2018-12-05 19:33:03.218 | \n",
+ " -15539.267169 | \n",
+ " 2019-10-28 10:14:52.194 | \n",
"
\n",
" \n",
" 13000 | \n",
- " -14822.625860 | \n",
- " 2018-12-05 19:33:04.515 | \n",
+ " -15209.937930 | \n",
+ " 2019-10-28 10:14:52.907 | \n",
"
\n",
" \n",
" 13500 | \n",
- " -15013.715132 | \n",
- " 2018-12-05 19:33:05.634 | \n",
+ " -14917.833732 | \n",
+ " 2019-10-28 10:14:53.804 | \n",
"
\n",
" \n",
" 14000 | \n",
- " -14797.257898 | \n",
- " 2018-12-05 19:33:06.517 | \n",
+ " -14822.068093 | \n",
+ " 2019-10-28 10:14:54.706 | \n",
"
\n",
" \n",
" 14500 | \n",
- " -14895.606255 | \n",
- " 2018-12-05 19:33:07.476 | \n",
+ " -14996.772583 | \n",
+ " 2019-10-28 10:14:55.742 | \n",
"
\n",
" \n",
" 15000 | \n",
- " -14986.753045 | \n",
- " 2018-12-05 19:33:08.288 | \n",
+ " -14818.384023 | \n",
+ " 2019-10-28 10:14:57.001 | \n",
"
\n",
" \n",
" 15500 | \n",
- " -14696.829929 | \n",
- " 2018-12-05 19:33:09.165 | \n",
+ " -14698.864982 | \n",
+ " 2019-10-28 10:14:58.250 | \n",
"
\n",
" \n",
" 16000 | \n",
- " -14681.308608 | \n",
- " 2018-12-05 19:33:09.995 | \n",
+ " -14689.841559 | \n",
+ " 2019-10-28 10:14:59.546 | \n",
"
\n",
" \n",
" 16500 | \n",
- " -14681.308608 | \n",
- " 2018-12-05 19:33:10.743 | \n",
+ " -14698.864982 | \n",
+ " 2019-10-28 10:15:00.651 | \n",
"
\n",
" \n",
" 17000 | \n",
- " -14689.841559 | \n",
- " 2018-12-05 19:33:11.510 | \n",
+ " -14681.308608 | \n",
+ " 2019-10-28 10:15:01.702 | \n",
"
\n",
" \n",
" 17500 | \n",
- " -14700.923210 | \n",
- " 2018-12-05 19:33:12.254 | \n",
+ " -14681.308608 | \n",
+ " 2019-10-28 10:15:02.920 | \n",
"
\n",
" \n",
" 18000 | \n",
" -14681.308608 | \n",
- " 2018-12-05 19:33:13.067 | \n",
+ " 2019-10-28 10:15:04.255 | \n",
"
\n",
" \n",
" 18500 | \n",
" -14681.308608 | \n",
- " 2018-12-05 19:33:13.918 | \n",
+ " 2019-10-28 10:15:05.523 | \n",
"
\n",
" \n",
" 19000 | \n",
" -14681.308608 | \n",
- " 2018-12-05 19:33:14.660 | \n",
+ " 2019-10-28 10:15:06.791 | \n",
"
\n",
" \n",
" 19500 | \n",
" -14681.308608 | \n",
- " 2018-12-05 19:33:15.356 | \n",
+ " 2019-10-28 10:15:08.055 | \n",
"
\n",
" \n",
"\n",
@@ -3996,101 +880,101 @@
"text/plain": [
" fitness time\n",
"worker iteration \n",
- "0 0 -17464.568517 2018-12-05 19:32:30.307\n",
- " 500 -19456.419361 2018-12-05 19:32:31.653\n",
- " 1000 -19192.661068 2018-12-05 19:32:32.663\n",
- " 1500 -21362.030854 2018-12-05 19:32:33.684\n",
- " 2000 -19439.674465 2018-12-05 19:32:35.103\n",
- " 2500 -19494.922209 2018-12-05 19:32:36.676\n",
- " 3000 -19409.258504 2018-12-05 19:32:37.862\n",
- " 3500 -19375.464977 2018-12-05 19:32:39.191\n",
- " 4000 -18553.631818 2018-12-05 19:32:40.468\n",
- " 4500 -18842.347858 2018-12-05 19:32:41.331\n",
- " 5000 -19347.171865 2018-12-05 19:32:42.396\n",
- " 5500 -18460.352808 2018-12-05 19:32:43.163\n",
- " 6000 -18814.968213 2018-12-05 19:32:43.981\n",
- " 6500 -18298.223867 2018-12-05 19:32:45.198\n",
- " 7000 -17555.991450 2018-12-05 19:32:46.534\n",
- " 7500 -17280.010163 2018-12-05 19:32:47.825\n",
- " 8000 -17208.764191 2018-12-05 19:32:49.129\n",
- " 8500 -17048.836850 2018-12-05 19:32:50.419\n",
- " 9000 -17309.885703 2018-12-05 19:32:51.718\n",
- " 9500 -15935.254778 2018-12-05 19:32:53.030\n",
- " 10000 -15694.589652 2018-12-05 19:32:54.328\n",
- " 10500 -15582.878774 2018-12-05 19:32:55.608\n",
- " 11000 -15314.579171 2018-12-05 19:32:56.900\n",
- " 11500 -14942.449992 2018-12-05 19:32:58.179\n",
- " 12000 -15471.335261 2018-12-05 19:32:59.467\n",
- " 12500 -14977.106397 2018-12-05 19:33:00.743\n",
- " 13000 -14954.236486 2018-12-05 19:33:02.033\n",
- " 13500 -14762.142171 2018-12-05 19:33:03.314\n",
- " 14000 -14932.523832 2018-12-05 19:33:04.605\n",
- " 14500 -14978.652512 2018-12-05 19:33:05.896\n",
+ "0 0 -17464.568517 2019-10-28 10:14:21.136\n",
+ " 500 -18531.679762 2019-10-28 10:14:22.493\n",
+ " 1000 -20903.487109 2019-10-28 10:14:23.787\n",
+ " 1500 -19941.571807 2019-10-28 10:14:25.084\n",
+ " 2000 -18871.699801 2019-10-28 10:14:26.133\n",
+ " 2500 -18847.246876 2019-10-28 10:14:27.408\n",
+ " 3000 -19111.386196 2019-10-28 10:14:28.707\n",
+ " 3500 -19693.452817 2019-10-28 10:14:29.835\n",
+ " 4000 -18959.289175 2019-10-28 10:14:31.228\n",
+ " 4500 -19040.556583 2019-10-28 10:14:32.569\n",
+ " 5000 -18169.812374 2019-10-28 10:14:33.891\n",
+ " 5500 -16657.860123 2019-10-28 10:14:35.200\n",
+ " 6000 -16220.268468 2019-10-28 10:14:36.485\n",
+ " 6500 -16472.952274 2019-10-28 10:14:37.784\n",
+ " 7000 -17046.418912 2019-10-28 10:14:39.054\n",
+ " 7500 -17320.865489 2019-10-28 10:14:40.343\n",
+ " 8000 -16438.413488 2019-10-28 10:14:41.622\n",
+ " 8500 -16116.768242 2019-10-28 10:14:42.893\n",
+ " 9000 -16085.659977 2019-10-28 10:14:44.167\n",
+ " 9500 -15679.574171 2019-10-28 10:14:45.405\n",
+ " 10000 -16473.325447 2019-10-28 10:14:46.650\n",
+ " 10500 -16421.027387 2019-10-28 10:14:48.070\n",
+ " 11000 -16167.752107 2019-10-28 10:14:49.371\n",
+ " 11500 -15213.074262 2019-10-28 10:14:50.686\n",
+ " 12000 -15634.979337 2019-10-28 10:14:51.967\n",
+ " 12500 -15296.397297 2019-10-28 10:14:52.824\n",
+ " 13000 -15025.983510 2019-10-28 10:14:53.881\n",
+ " 13500 -15175.912750 2019-10-28 10:14:54.871\n",
+ " 14000 -15235.513700 2019-10-28 10:14:56.119\n",
+ " 14500 -14923.520462 2019-10-28 10:14:57.339\n",
"... ... ...\n",
- "9 5000 -19310.352956 2018-12-05 19:32:43.791\n",
- " 5500 -17503.410891 2018-12-05 19:32:45.106\n",
- " 6000 -17163.013191 2018-12-05 19:32:46.422\n",
- " 6500 -16941.399877 2018-12-05 19:32:47.714\n",
- " 7000 -16395.145359 2018-12-05 19:32:49.016\n",
- " 7500 -16250.722026 2018-12-05 19:32:50.303\n",
- " 8000 -16750.905526 2018-12-05 19:32:51.601\n",
- " 8500 -17732.539610 2018-12-05 19:32:52.890\n",
- " 9000 -16435.368812 2018-12-05 19:32:54.188\n",
- " 9500 -16910.471934 2018-12-05 19:32:55.472\n",
- " 10000 -15910.365821 2018-12-05 19:32:56.769\n",
- " 10500 -15936.659327 2018-12-05 19:32:58.053\n",
- " 11000 -15246.633564 2018-12-05 19:32:59.346\n",
- " 11500 -15256.022959 2018-12-05 19:33:00.622\n",
- " 12000 -14985.884198 2018-12-05 19:33:01.923\n",
- " 12500 -14689.841559 2018-12-05 19:33:03.218\n",
- " 13000 -14822.625860 2018-12-05 19:33:04.515\n",
- " 13500 -15013.715132 2018-12-05 19:33:05.634\n",
- " 14000 -14797.257898 2018-12-05 19:33:06.517\n",
- " 14500 -14895.606255 2018-12-05 19:33:07.476\n",
- " 15000 -14986.753045 2018-12-05 19:33:08.288\n",
- " 15500 -14696.829929 2018-12-05 19:33:09.165\n",
- " 16000 -14681.308608 2018-12-05 19:33:09.995\n",
- " 16500 -14681.308608 2018-12-05 19:33:10.743\n",
- " 17000 -14689.841559 2018-12-05 19:33:11.510\n",
- " 17500 -14700.923210 2018-12-05 19:33:12.254\n",
- " 18000 -14681.308608 2018-12-05 19:33:13.067\n",
- " 18500 -14681.308608 2018-12-05 19:33:13.918\n",
- " 19000 -14681.308608 2018-12-05 19:33:14.660\n",
- " 19500 -14681.308608 2018-12-05 19:33:15.356\n",
+ "9 5000 -19218.644968 2019-10-28 10:14:34.337\n",
+ " 5500 -18770.828622 2019-10-28 10:14:35.625\n",
+ " 6000 -18390.233128 2019-10-28 10:14:36.920\n",
+ " 6500 -17361.547211 2019-10-28 10:14:38.208\n",
+ " 7000 -16846.113490 2019-10-28 10:14:39.501\n",
+ " 7500 -15002.318165 2019-10-28 10:14:40.762\n",
+ " 8000 -16992.780932 2019-10-28 10:14:41.757\n",
+ " 8500 -17115.242295 2019-10-28 10:14:43.037\n",
+ " 9000 -17297.012437 2019-10-28 10:14:44.327\n",
+ " 9500 -16511.948405 2019-10-28 10:14:45.552\n",
+ " 10000 -16175.059178 2019-10-28 10:14:46.828\n",
+ " 10500 -15482.711195 2019-10-28 10:14:48.096\n",
+ " 11000 -15190.359782 2019-10-28 10:14:49.376\n",
+ " 11500 -15776.667896 2019-10-28 10:14:50.523\n",
+ " 12000 -15112.798387 2019-10-28 10:14:51.327\n",
+ " 12500 -15539.267169 2019-10-28 10:14:52.194\n",
+ " 13000 -15209.937930 2019-10-28 10:14:52.907\n",
+ " 13500 -14917.833732 2019-10-28 10:14:53.804\n",
+ " 14000 -14822.068093 2019-10-28 10:14:54.706\n",
+ " 14500 -14996.772583 2019-10-28 10:14:55.742\n",
+ " 15000 -14818.384023 2019-10-28 10:14:57.001\n",
+ " 15500 -14698.864982 2019-10-28 10:14:58.250\n",
+ " 16000 -14689.841559 2019-10-28 10:14:59.546\n",
+ " 16500 -14698.864982 2019-10-28 10:15:00.651\n",
+ " 17000 -14681.308608 2019-10-28 10:15:01.702\n",
+ " 17500 -14681.308608 2019-10-28 10:15:02.920\n",
+ " 18000 -14681.308608 2019-10-28 10:15:04.255\n",
+ " 18500 -14681.308608 2019-10-28 10:15:05.523\n",
+ " 19000 -14681.308608 2019-10-28 10:15:06.791\n",
+ " 19500 -14681.308608 2019-10-28 10:15:08.055\n",
"\n",
"[400 rows x 2 columns]"
]
},
- "execution_count": 56,
+ "execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "threshold = datetime(2018, 12, 6, 1)\n",
- "trace = pd.DataFrame([p for p in parsed if p['time'] > threshold])\n",
+ "# threshold = datetime(2018, 12, 6, 1)\n",
+ "trace = pd.DataFrame([p for p in parsed if p['time'] > start_time])\n",
"trace = trace.set_index(['worker', 'iteration']).sort_index()\n",
"trace"
]
},
{
"cell_type": "code",
- "execution_count": 60,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 60,
+ "execution_count": 59,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\n",
"text/plain": [
"