Created
November 14, 2017 15:50
-
-
Save fedden/38948adb4518ff6d48cccb1da85564e2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def create_random_population(size):\n", | |
" pop = []\n", | |
" for _ in range(size):\n", | |
" dna = np.arange(1, 11)\n", | |
" np.random.shuffle(dna)\n", | |
" pop.append(dna)\n", | |
" return np.array(pop)\n", | |
"\n", | |
"\n", | |
"def get_fitness(dna):\n", | |
" '''Less is better'''\n", | |
" difference_one = abs(36 - np.sum(dna[:5]))\n", | |
" difference_two = abs(360 - np.product(dna[-5:]))\n", | |
" return difference_one + difference_two\n", | |
"\n", | |
"\n", | |
"def mutate(dna, mutation_rate):\n", | |
" for i in range(len(dna)):\n", | |
" if np.random.random_sample() < mutation_rate:\n", | |
" # random index\n", | |
" ri = np.random.randint(0, 10)\n", | |
" while ri == i:\n", | |
" ri = np.random.randint(0, 10)\n", | |
" dna[i], dna[ri] = dna[ri], dna[i] \n", | |
" return dna\n", | |
"\n", | |
"\n", | |
"def crossover(dna1, dna2):\n", | |
" cross_index = np.random.randint(1, 9)\n", | |
" new_dna1 = dna1[:cross_index].tolist()\n", | |
" new_dna2 = [d for d in dna2 if d not in new_dna1]\n", | |
" new_dna = np.array(new_dna1 + new_dna2)\n", | |
" assert len(new_dna) == len(dna1)\n", | |
" assert len(np.unique(new_dna)) == len(np.unique(dna2))\n", | |
" return new_dna\n", | |
"\n", | |
"\n", | |
"def run_experiments(population_size, \n", | |
" mutation_rate,\n", | |
" elitism,\n", | |
" amount_iteration,\n", | |
" amount_experiements):\n", | |
" experiment_data = []\n", | |
" for experiment in range(amount_experiements):\n", | |
"\n", | |
" population = create_random_population(population_size)\n", | |
"\n", | |
" completed = False\n", | |
"\n", | |
" for iteration in range(amount_iterations):\n", | |
"\n", | |
" fitnesses = np.array([get_fitness(dna) for dna in population])\n", | |
"\n", | |
" fitnesses_indices = fitnesses.argsort()\n", | |
" fitnesses_total = fitnesses.sum()\n", | |
" sorted_fitnesses = fitnesses[fitnesses_indices]\n", | |
" fitnesses_weighting = 1 - sorted_fitnesses / fitnesses_total\n", | |
" fitnesses_weighting /= fitnesses_weighting.sum()\n", | |
" fitnesses_weighting.sum()\n", | |
" sorted_population = population[fitnesses_indices]\n", | |
"\n", | |
" # Done?\n", | |
" if sorted_fitnesses[0] == 0:\n", | |
" completed = True\n", | |
" best_result = sorted_population[0]\n", | |
" completed_iteration = iteration\n", | |
" break\n", | |
"\n", | |
" amount_new = int((1 - elitism) * population_size)\n", | |
" new_population = []\n", | |
" for _ in range(amount_new):\n", | |
" i0 = np.random.choice(sorted_population.shape[0], p=fitnesses_weighting)\n", | |
" i1 = np.random.choice(sorted_population.shape[0], p=fitnesses_weighting)\n", | |
" new_dna = crossover(population[i0], population[i1])\n", | |
" new_dna = mutate(new_dna, mutation_rate)\n", | |
" new_population.append(new_dna)\n", | |
"\n", | |
" amount_old = population_size - amount_new\n", | |
" new_population = np.array(new_population + population[:amount_old].tolist())\n", | |
"\n", | |
" assert new_population.shape == population.shape\n", | |
"\n", | |
" population = new_population\n", | |
"\n", | |
" if not completed:\n", | |
" best_result = sorted_population[0]\n", | |
" completed_iteration = iteration\n", | |
"\n", | |
" experiment_data.append((completed, completed_iteration, best_result))\n", | |
" return experiment_data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"var: 24.5764\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\njTDQJakR/w9nw40SxhPrlwAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa557a29400>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"population_size = 100\n", | |
"mutation_rate = 0.1\n", | |
"amount_iterations = 1000\n", | |
"amount_experiments = 50\n", | |
"\n", | |
"elitism = 0.1\n", | |
"data = run_experiments(population_size, \n", | |
" mutation_rate,\n", | |
" elitism,\n", | |
" amount_iterations,\n", | |
" amount_experiments)\n", | |
"\n", | |
"amount_iters_to_complete = [d[1] for d in data]\n", | |
"\n", | |
"print(\"var:\", np.var(amount_iters_to_complete))\n", | |
"\n", | |
"plt.hist(amount_iters_to_complete, bins=25)\n", | |
"plt.title(\"Histogram of steady state GA\")\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
"\n", | |
"Experiement: 0\n", | |
"completed: True \n", | |
"completed_iteration: 23 \n", | |
"best_result: [ 2 10 7 9 8 1 3 5 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 1\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [ 9 8 10 7 2 4 5 1 3 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 2\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 7 8 2 9 10 3 1 6 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 3\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 7 2 8 9 3 5 1 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 4\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 9 10 8 7 2 1 5 3 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 5\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 7 8 10 9 6 3 1 5 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 6\n", | |
"completed: True \n", | |
"completed_iteration: 7 \n", | |
"best_result: [ 2 10 8 7 9 5 3 4 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 7\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [ 2 10 7 8 9 6 4 3 5 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 8\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 8 9 2 10 7 1 5 3 6 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 9\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 7 8 2 10 4 5 1 3 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 10\n", | |
"completed: True \n", | |
"completed_iteration: 5 \n", | |
"best_result: [10 9 8 2 7 5 1 3 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 11\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 7 9 2 8 1 5 6 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 12\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 9 10 2 8 5 6 1 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 13\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 7 8 10 2 6 5 4 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 14\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 2 7 8 9 5 1 6 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 15\n", | |
"completed: True \n", | |
"completed_iteration: 9 \n", | |
"best_result: [ 7 8 2 10 9 5 3 1 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 16\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 7 2 9 8 3 4 1 6 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 17\n", | |
"completed: True \n", | |
"completed_iteration: 13 \n", | |
"best_result: [ 8 10 9 7 2 6 1 5 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 18\n", | |
"completed: True \n", | |
"completed_iteration: 7 \n", | |
"best_result: [10 8 2 7 9 3 5 1 6 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 19\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 2 10 7 9 4 3 5 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 20\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 7 9 10 2 8 1 3 5 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 21\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 10 8 2 9 1 3 4 6 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 22\n", | |
"completed: True \n", | |
"completed_iteration: 14 \n", | |
"best_result: [ 8 7 10 2 9 1 3 5 6 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 23\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 10 2 7 8 5 6 1 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 24\n", | |
"completed: True \n", | |
"completed_iteration: 10 \n", | |
"best_result: [ 7 10 2 9 8 3 5 6 4 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 25\n", | |
"completed: True \n", | |
"completed_iteration: 5 \n", | |
"best_result: [ 8 10 7 9 2 5 6 1 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 26\n", | |
"completed: True \n", | |
"completed_iteration: 15 \n", | |
"best_result: [ 2 9 8 7 10 1 4 3 6 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 27\n", | |
"completed: True \n", | |
"completed_iteration: 4 \n", | |
"best_result: [ 8 7 9 2 10 1 6 5 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 28\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 7 9 8 2 5 6 4 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 29\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 9 8 10 2 5 4 3 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 30\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 9 7 10 8 2 1 6 3 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 31\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 2 7 9 8 10 6 4 1 3 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 32\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 7 8 2 10 6 3 1 5 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 33\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 9 8 7 10 1 3 6 5 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 34\n", | |
"completed: True \n", | |
"completed_iteration: 13 \n", | |
"best_result: [ 9 2 7 10 8 3 5 4 1 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 35\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [10 8 9 2 7 4 5 3 1 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 36\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 2 9 8 10 7 6 1 5 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 37\n", | |
"completed: True \n", | |
"completed_iteration: 5 \n", | |
"best_result: [ 9 8 7 2 10 6 4 3 5 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 38\n", | |
"completed: True \n", | |
"completed_iteration: 5 \n", | |
"best_result: [10 2 8 7 9 3 4 1 5 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 39\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 7 2 8 9 10 6 4 1 5 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 40\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 8 2 7 9 10 4 5 6 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 41\n", | |
"completed: True \n", | |
"completed_iteration: 4 \n", | |
"best_result: [ 8 2 7 9 10 3 4 6 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 42\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 8 7 2 10 9 1 3 4 6 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 43\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [10 8 9 2 7 5 4 3 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 44\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [ 9 2 10 8 7 3 4 6 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 45\n", | |
"completed: True \n", | |
"completed_iteration: 4 \n", | |
"best_result: [ 2 10 8 9 7 3 5 1 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 46\n", | |
"completed: True \n", | |
"completed_iteration: 10 \n", | |
"best_result: [ 2 9 7 8 10 5 4 3 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 47\n", | |
"completed: True \n", | |
"completed_iteration: 5 \n", | |
"best_result: [ 8 2 9 10 7 4 5 6 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 48\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [10 2 9 7 8 3 1 6 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 49\n", | |
"completed: True \n", | |
"completed_iteration: 10 \n", | |
"best_result: [10 7 2 8 9 3 6 1 5 4]\n" | |
] | |
} | |
], | |
"source": [ | |
"ex = 0\n", | |
"for completed, completed_iteration, best_result in data:\n", | |
" print(\"\\n\\nExperiement:\", ex)\n", | |
" print(\"completed:\", completed, \n", | |
" \"\\ncompleted_iteration:\", completed_iteration, \n", | |
" \"\\nbest_result:\", best_result)\n", | |
" ex += 1" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"var: 22.1296\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa555697d30>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"elitism = 0.0\n", | |
"data = run_experiments(population_size, \n", | |
" mutation_rate,\n", | |
" elitism,\n", | |
" amount_iterations,\n", | |
" amount_experiments)\n", | |
"\n", | |
"amount_iters_to_complete = [d[1] for d in data]\n", | |
"\n", | |
"print(\"var:\", np.var(amount_iters_to_complete))\n", | |
" \n", | |
"plt.hist(amount_iters_to_complete, bins=25)\n", | |
"plt.title(\"Histogram of generational GA\")\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
"\n", | |
"Experiement: 0\n", | |
"completed: True \n", | |
"completed_iteration: 3 \n", | |
"best_result: [ 9 2 7 10 8 1 4 6 5 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 1\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 7 9 8 2 10 3 5 1 6 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 2\n", | |
"completed: True \n", | |
"completed_iteration: 4 \n", | |
"best_result: [ 8 9 10 7 2 6 3 4 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 3\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [10 2 9 7 8 6 1 3 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 4\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 7 2 9 8 4 3 5 1 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 5\n", | |
"completed: True \n", | |
"completed_iteration: 8 \n", | |
"best_result: [ 7 8 2 10 9 5 6 1 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 6\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [10 9 8 2 7 3 4 5 6 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 7\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 9 7 2 10 8 5 4 6 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 8\n", | |
"completed: True \n", | |
"completed_iteration: 6 \n", | |
"best_result: [ 9 8 7 10 2 3 6 5 4 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 9\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 7 8 9 10 6 4 5 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 10\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 8 10 2 7 6 3 5 1 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 11\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 7 9 10 2 6 5 3 1 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 12\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [10 2 7 9 8 6 5 4 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 13\n", | |
"completed: True \n", | |
"completed_iteration: 12 \n", | |
"best_result: [ 8 2 9 7 10 3 4 1 6 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 14\n", | |
"completed: True \n", | |
"completed_iteration: 17 \n", | |
"best_result: [10 2 8 7 9 6 1 4 5 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 15\n", | |
"completed: True \n", | |
"completed_iteration: 7 \n", | |
"best_result: [ 8 10 2 7 9 5 1 3 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 16\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 10 7 8 9 5 4 3 1 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 17\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [10 7 8 9 2 3 6 1 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 18\n", | |
"completed: True \n", | |
"completed_iteration: 8 \n", | |
"best_result: [10 8 7 9 2 5 3 1 6 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 19\n", | |
"completed: True \n", | |
"completed_iteration: 6 \n", | |
"best_result: [ 9 2 10 7 8 1 5 3 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 20\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 7 10 9 2 4 6 1 3 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 21\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 2 10 9 7 8 6 4 3 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 22\n", | |
"completed: True \n", | |
"completed_iteration: 10 \n", | |
"best_result: [10 2 7 9 8 4 5 1 3 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 23\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 7 2 10 9 8 4 1 5 6 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 24\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 8 9 10 2 1 6 4 3 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 25\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 10 7 9 2 3 1 5 4 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 26\n", | |
"completed: True \n", | |
"completed_iteration: 12 \n", | |
"best_result: [10 2 9 7 8 4 1 3 5 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 27\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 10 9 7 2 3 6 4 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 28\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 9 2 8 10 7 6 5 1 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 29\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 2 9 10 8 4 6 3 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 30\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 7 9 2 10 8 6 3 4 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 31\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 7 10 9 8 5 6 3 1 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 32\n", | |
"completed: True \n", | |
"completed_iteration: 17 \n", | |
"best_result: [10 9 2 7 8 6 5 4 1 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 33\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 9 7 10 8 2 4 1 5 3 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 34\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 2 9 7 8 10 6 1 5 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 35\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 7 9 10 2 3 5 4 1 6]\n", | |
"\n", | |
"\n", | |
"Experiement: 36\n", | |
"completed: True \n", | |
"completed_iteration: 7 \n", | |
"best_result: [ 9 8 7 2 10 4 5 6 1 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 37\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 8 7 2 10 9 1 5 6 3 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 38\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 9 7 10 8 2 4 6 3 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 39\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 9 8 7 2 10 6 1 3 5 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 40\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [ 2 7 10 9 8 6 4 3 1 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 41\n", | |
"completed: True \n", | |
"completed_iteration: 2 \n", | |
"best_result: [10 8 7 9 2 3 6 1 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 42\n", | |
"completed: True \n", | |
"completed_iteration: 0 \n", | |
"best_result: [ 2 10 7 9 8 1 6 5 4 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 43\n", | |
"completed: True \n", | |
"completed_iteration: 9 \n", | |
"best_result: [ 2 8 9 7 10 4 6 5 3 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 44\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 8 7 9 10 2 3 6 5 1 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 45\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 2 9 7 8 10 5 6 3 1 4]\n", | |
"\n", | |
"\n", | |
"Experiement: 46\n", | |
"completed: True \n", | |
"completed_iteration: 4 \n", | |
"best_result: [10 2 9 8 7 4 6 3 5 1]\n", | |
"\n", | |
"\n", | |
"Experiement: 47\n", | |
"completed: True \n", | |
"completed_iteration: 16 \n", | |
"best_result: [ 9 7 2 8 10 3 1 6 4 5]\n", | |
"\n", | |
"\n", | |
"Experiement: 48\n", | |
"completed: True \n", | |
"completed_iteration: 6 \n", | |
"best_result: [ 9 8 7 2 10 5 6 4 1 3]\n", | |
"\n", | |
"\n", | |
"Experiement: 49\n", | |
"completed: True \n", | |
"completed_iteration: 1 \n", | |
"best_result: [ 2 8 9 7 10 4 3 6 5 1]\n" | |
] | |
} | |
], | |
"source": [ | |
"ex = 0\n", | |
"for completed, completed_iteration, best_result in data:\n", | |
" print(\"\\n\\nExperiement:\", ex)\n", | |
" print(\"completed:\", completed, \n", | |
" \"\\ncompleted_iteration:\", completed_iteration, \n", | |
" \"\\nbest_result:\", best_result)\n", | |
" ex += 1" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment