diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 806e5546e39c95ae902807c5367dce7de50d475e..323a51f18886ce4cd1ea5a1881d18ffbc01fad67 --- a/README.md +++ b/README.md @@ -2,4 +2,78 @@ Pythonic Genetic MPI paralelized Algorithm -More TBA +# PyGMA Documentation + +### Words +Individuals: an individual with its own genome and a fitness value. It represents one solution in the search space. +Population: an ensemble of many individuals +Operator Stack: stack of genetic operators that will be applied sequentially on the genes of a population. + +PyGMA (Pythonic Genetic MPI Parallelized Algorithm) is a genetic algorithm. + +### Configuration +Everything is configured inside the 'config.py' file. +At first the Genetic operators to use will be instantiated. +This can/should be user defined classe which are located inside the 'genetic_operators.py' file. +For more information on these see [Genetic Operators](#Genetic-Operators) + +Evolutionary Phases represent an evolving phase [Evolutionary Phases](#Evolutionary-Phases). +Many of these phases can be stacked together. +This enables to first evolve individuals + +### Genetic Operators +Genetic operators are used to change the genome of individuals or to produce new individuals by combining the genome of multiple individuals. +Genetic operators are defined inside the 'genetic_operators.py' file. +Here an informal interface is used. +The operators should at least implement the function ```def operate(self, old_population, new_population) -> list:```. +This function will be called to apply the genetic operator. +In PyGMA the genetic operators for a population (PyGMA can handle multiple island models) can be stacked to an "Operator Stack". +This stack is then be applied sequentially on the genes of the population. +Hence there can be two states of the genes: +1. Before an operator from the stack has been applied. Here the fitness of the genes is evaluated. +2. An operator from the stack has made changes to the genes and we do not know the fitness anymore. + +Therefore the function has two arguments: + 1. old_population: list of numpy.array(dtype=numpy.bool_) genes genes before the operator stack is applied, sorted by their fitness. + Which means that one can be sure that if one picks the first two genes there are the currently best performing ones. + + 2. new_population: list current state of modifications in operator stack + +The output of the operator should be a list of genes that should be used in the future. +ONLY THESE GENES WILL BE USED IN THE FUTURE. +Therefore an operator should always append its new genes to the ```new_population``` list. +He can remove items from the list but then the size of the population will be shrinked. +Examples can be viewed in the genetic operator definition file. +They will be imported, defined and used in the config file. + + +### Evolutionary Phases +Evolutionary phases make it simpler to evolve a difficult solution that can be gradually evolved. +First one might evolve something that is relative simple and then put it into a different environment to evolve it further. +This can be achieved by combining multiple evolutionary phases. +The phases are realized through an informal interface. +Each phase should inherit from the base class ```Evolutionary_phase```. +It should then implement the ```def completed(self, population_fitness: list, epochs: int) -> bool:``` function. +This function will receive a list of the population fitness ```[f_p0, f_p1, ..., f_pn]``` where f_pn is the fitness of the best performing individual in the island population n. +```epochs``` is the current epoch of the phase. +A boolean value should be returned indicating if the phase is completed (1) or not (0). + +Phases have certain properties. +They contain a name, phase start operators and an experiment. +The phase start operators will be applied to all island populations when the phase begins. +This is usefull e.g. if one wants to extend the gene string with an gene string extension operator. + +An experiment will hold all the necessary implementation to instanciate and test individuals. +Hence they allowing the phase to controll which evaluation of the genes will be conducted during an epoch. + + +### Experiments +These are defined in the ```experiment.py``` file. +Experiments should ideally inherit from the ```Experiment``` class. +As such they need to implement the function ```def conduct(self, gene) -> float:```. +This function gets a gene, which is a boolean array of the type```numpy.array(dtype=numpy.bool_)```. +From this it should create/instantiate (genotype -> phenotype) an individual on which the experiment is conducted. +By conductiong the experiment the a fitness value is generated for the gene. +This should be returned. + + diff --git a/src/PyGMA.ipynb b/src/PyGMA.ipynb index a15835fd7ab1943fd191832408376016578811d4..c45ad58551393d31741a75e5299805d1779b21aa 100755 --- a/src/PyGMA.ipynb +++ b/src/PyGMA.ipynb @@ -4,15 +4,17 @@ "cell_type": "code", "execution_count": 1, "id": "1c9a80e2-37b8-46f5-94ba-d547329f2234", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Init controller\n", - "[<population.Population object at 0x7f1e2039f650>, <population.Population object at 0x7f1e203f9b90>, <population.Population object at 0x7f1e203fa350>]\n", - "[<genetic_operators.Removal_operator object at 0x7f1e4a7542d0>, <genetic_operators.Single_point_crossover_operator object at 0x7f1e4a7747d0>]\n", + "[<population.Population object at 0x7fbb9059fad0>, <population.Population object at 0x7fbb905ee710>, <population.Population object at 0x7fbb905eeed0>]\n", + "[<genetic_operators.Removal_operator object at 0x7fbbb4b63450>, <genetic_operators.Single_point_crossover_operator object at 0x7fbb9059e9d0>]\n", "[ True False False False False True False False True True True False\n", " False False False True False True False True False True True True\n", " True True False True False True True False False True True True\n", @@ -260,527 +262,1819 @@ "epoch 22, Pop max fitness [1.5557422446249105e-05, 0.0008097165991902834, 4.501665616278023e-05]\n", "epoch 23, Pop max fitness [1.5557422446249105e-05, 3.9022867400296575e-05, 0.00010715816545220746]\n", "epoch 24, Pop max fitness [1.5557422446249105e-05, 2.025972973520533e-05, 0.0003508771929824561]\n", - "epoch 25, Pop max fitness [1.5557422446249105e-05, 8.602890571231934e-05, 0.0001199616122840691]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Process ForkProcess-9582:\n", - "Process ForkProcess-9599:\n", - "Process ForkProcess-9583:\n", - "Process ForkProcess-9598:\n", - "Process ForkProcess-9563:\n", - "Process ForkProcess-9572:\n", - "Process ForkProcess-9597:\n", - "Process ForkProcess-9589:\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9595:\n", - "Process ForkProcess-9561:\n", - "Process ForkProcess-9585:\n", - "Process ForkProcess-9571:\n", - "Process ForkProcess-9576:\n", - "Process ForkProcess-9573:\n", - "Process ForkProcess-9588:\n", - "Process ForkProcess-9567:\n", - "Process ForkProcess-9564:\n", - "Process ForkProcess-9579:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9592:\n", - "Process ForkProcess-9565:\n", - "Process ForkProcess-9586:\n", - "Process ForkProcess-9596:\n", - "Process ForkProcess-9575:\n", - "Process ForkProcess-9577:\n", - "Process ForkProcess-9580:\n", - "Process ForkProcess-9574:\n", - "Process ForkProcess-9566:\n", - "Process ForkProcess-9569:\n", - "Process ForkProcess-9578:\n", - "Process ForkProcess-9568:\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9581:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9590:\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9570:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9594:\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9593:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9584:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Process ForkProcess-9600:\n", - "Traceback (most recent call last):\n", - "Process ForkProcess-9587:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Process ForkProcess-9591:\n", - "Traceback (most recent call last):\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - "Traceback (most recent call last):\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 122, in get\n", - " return _ForkingPickler.loads(res)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 314, in _bootstrap\n", - " self.run()\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/process.py\", line 108, in run\n", - " self._target(*self._args, **self._kwargs)\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/juppy/venv_evolution/lib64/python3.11/site-packages/numpy/random/_pickle.py\", line 58, in __generator_ctor\n", - " return Generator(bit_generator_ctor(bit_generator_name))\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/concurrent/futures/process.py\", line 244, in _process_worker\n", - " call_item = call_queue.get(block=True)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/usr/lib64/python3.11/multiprocessing/queues.py\", line 102, in get\n", - " with self._rlock:\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "KeyboardInterrupt\n", - " File \"/usr/lib64/python3.11/multiprocessing/synchronize.py\", line 95, in __enter__\n", - " return self._semlock.__enter__()\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 86\u001b[0m\n\u001b[1;32m 82\u001b[0m controller()\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m---> 86\u001b[0m \u001b[43mmain\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "Cell \u001b[0;32mIn[1], line 82\u001b[0m, in \u001b[0;36mmain\u001b[0;34m()\u001b[0m\n\u001b[1;32m 79\u001b[0m controller()\n\u001b[1;32m 80\u001b[0m \u001b[38;5;66;03m# for no mpi the main process is the controller\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 82\u001b[0m \u001b[43mcontroller\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", - "Cell \u001b[0;32mIn[1], line 32\u001b[0m, in \u001b[0;36mcontroller\u001b[0;34m()\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[38;5;28mprint\u001b[39m(GAController\u001b[38;5;241m.\u001b[39mpopulations[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mindividuals[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mgenome)\n\u001b[1;32m 31\u001b[0m \u001b[38;5;66;03m# evolution for all phases\u001b[39;00m\n\u001b[0;32m---> 32\u001b[0m \u001b[43mGAController\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevolve\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mEvolve finished\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFirst best genes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/hostshared/pygma/src/controller.py:232\u001b[0m, in \u001b[0;36mController.evolve\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 226\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m__apply_operator_stack()\n\u001b[1;32m 228\u001b[0m \u001b[38;5;66;03m# instantiate individuals (get them a fitness value)\u001b[39;00m\n\u001b[1;32m 229\u001b[0m \u001b[38;5;66;03m# tell them the phase index becaus the worker processes\u001b[39;00m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;66;03m# (mpi and local) will have their instance of the\u001b[39;00m\n\u001b[1;32m 231\u001b[0m \u001b[38;5;66;03m# phase list and with it know the experiments.\u001b[39;00m\n\u001b[0;32m--> 232\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__instantiate_individuals\u001b[49m\u001b[43m(\u001b[49m\u001b[43mphase_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mp_index\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 234\u001b[0m \u001b[38;5;66;03m# check if algorithm stagnates\u001b[39;00m\n\u001b[1;32m 235\u001b[0m \u001b[38;5;66;03m# IMP\u001b[39;00m\n\u001b[1;32m 236\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[38;5;66;03m# ----------\u001b[39;00m\n\u001b[1;32m 243\u001b[0m \u001b[38;5;66;03m# information\u001b[39;00m\n\u001b[1;32m 244\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mepoch \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mepochs\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, Pop max fitness \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_population_fitness()\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/hostshared/pygma/src/controller.py:96\u001b[0m, in \u001b[0;36mController.__instantiate_individuals\u001b[0;34m(self, phase_index)\u001b[0m\n\u001b[1;32m 94\u001b[0m futures \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 95\u001b[0m \u001b[38;5;66;03m# starting a worker for each individual\u001b[39;00m\n\u001b[0;32m---> 96\u001b[0m \u001b[43m\u001b[49m\u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mProcessPoolExecutor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmax_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconfig\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mnum_local_processes\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mas\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mexecutor\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 97\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mw_tuple\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mworker_tuples\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 98\u001b[0m \u001b[43m \u001b[49m\u001b[43mfutures\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mappend\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 99\u001b[0m \u001b[43m \u001b[49m\u001b[43mexecutor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubmit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 100\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_instantiate_individual_local_process\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 105\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 106\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/lib64/python3.11/concurrent/futures/_base.py:647\u001b[0m, in \u001b[0;36mExecutor.__exit__\u001b[0;34m(self, exc_type, exc_val, exc_tb)\u001b[0m\n\u001b[1;32m 646\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__exit__\u001b[39m(\u001b[38;5;28mself\u001b[39m, exc_type, exc_val, exc_tb):\n\u001b[0;32m--> 647\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshutdown\u001b[49m\u001b[43m(\u001b[49m\u001b[43mwait\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 648\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n", - "File \u001b[0;32m/usr/lib64/python3.11/concurrent/futures/process.py:825\u001b[0m, in \u001b[0;36mProcessPoolExecutor.shutdown\u001b[0;34m(self, wait, cancel_futures)\u001b[0m\n\u001b[1;32m 822\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_executor_manager_thread_wakeup\u001b[38;5;241m.\u001b[39mwakeup()\n\u001b[1;32m 824\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_executor_manager_thread \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m wait:\n\u001b[0;32m--> 825\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_executor_manager_thread\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjoin\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 826\u001b[0m \u001b[38;5;66;03m# To reduce the risk of opening too many files, remove references to\u001b[39;00m\n\u001b[1;32m 827\u001b[0m \u001b[38;5;66;03m# objects that use file descriptors.\u001b[39;00m\n\u001b[1;32m 828\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_executor_manager_thread \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/lib64/python3.11/threading.py:1112\u001b[0m, in \u001b[0;36mThread.join\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 1109\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcannot join current thread\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1111\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1112\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_wait_for_tstate_lock\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1113\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1114\u001b[0m \u001b[38;5;66;03m# the behavior of a negative timeout isn't documented, but\u001b[39;00m\n\u001b[1;32m 1115\u001b[0m \u001b[38;5;66;03m# historically .join(timeout=x) for x<0 has acted as if timeout=0\u001b[39;00m\n\u001b[1;32m 1116\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_wait_for_tstate_lock(timeout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mmax\u001b[39m(timeout, \u001b[38;5;241m0\u001b[39m))\n", - "File \u001b[0;32m/usr/lib64/python3.11/threading.py:1132\u001b[0m, in \u001b[0;36mThread._wait_for_tstate_lock\u001b[0;34m(self, block, timeout)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 1131\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mlock\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire\u001b[49m\u001b[43m(\u001b[49m\u001b[43mblock\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 1133\u001b[0m lock\u001b[38;5;241m.\u001b[39mrelease()\n\u001b[1;32m 1134\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_stop()\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + "epoch 25, Pop max fitness [1.5557422446249105e-05, 8.602890571231934e-05, 0.0001199616122840691]\n", + "epoch 26, Pop max fitness [1.5557422446249105e-05, 6.348803250587264e-05, 0.013157894736842105]\n", + "epoch 27, Pop max fitness [1.5557422446249105e-05, 0.00020202020202020202, 0.005555555555555556]\n", + "epoch 28, Pop max fitness [1.5557422446249105e-05, 5.955926146515783e-05, 0.0005868544600938967]\n", + "epoch 29, Pop max fitness [1.5557422446249105e-05, 0.00017096939647803043, 0.0012135922330097086]\n", + "epoch 30, Pop max fitness [1.5557422446249105e-05, 0.0008058017727639, 0.00034281796366129587]\n", + "epoch 31, Pop max fitness [1.5557422446249105e-05, 0.005780346820809248, 0.00022099447513812155]\n", + "epoch 32, Pop max fitness [1.5557422446249105e-05, 0.0005698005698005698, 0.00037593984962406017]\n", + "epoch 33, Pop max fitness [1.5557422446249105e-05, 0.00032690421706440013, 0.00033200531208499334]\n", + "epoch 34, Pop max fitness [1.5557422446249105e-05, 3.6831055946373985e-05, 0.00017522340984755565]\n", + "epoch 35, Pop max fitness [1.5557422446249105e-05, 4.386926957666155e-05, 0.00011427265455376528]\n", + "epoch 36, Pop max fitness [1.5557422446249105e-05, 0.000384172109104879, 0.00011357183418512209]\n", + "epoch 37, Pop max fitness [1.5557422446249105e-05, 7.934618741569468e-05, 0.00011719207781553967]\n", + "epoch 38, Pop max fitness [1.5557422446249105e-05, 2.1606205302162782e-05, 0.00011372682815876265]\n", + "epoch 39, Pop max fitness [1.5557422446249105e-05, 4.957612413861484e-05, 0.00012711325791280032]\n", + "epoch 40, Pop max fitness [1.5557422446249105e-05, 2.2044397416396623e-05, 0.000481000481000481]\n", + "epoch 41, Pop max fitness [1.5557422446249105e-05, 8.146639511201629e-05, 0.00021829294913774285]\n", + "epoch 42, Pop max fitness [1.5557422446249105e-05, 7.990411506192568e-05, 9.793360101850946e-05]\n", + "epoch 43, Pop max fitness [1.5557422446249105e-05, 5.804841237592152e-05, 0.0001820498816675769]\n", + "epoch 44, Pop max fitness [1.5557422446249105e-05, 6.483402489626556e-05, 0.0003705075954057058]\n", + "epoch 45, Pop max fitness [1.5557422446249105e-05, 7.789982083041208e-05, 0.0003969829297340214]\n", + "epoch 46, Pop max fitness [1.5557422446249105e-05, 0.00015071590052750564, 0.002932551319648094]\n", + "epoch 47, Pop max fitness [1.5557422446249105e-05, 0.0011299435028248588, 0.0003874467260751647]\n", + "epoch 48, Pop max fitness [1.5557422446249105e-05, 8.754267705506434e-05, 5.019828321871392e-05]\n", + "epoch 49, Pop max fitness [1.5557422446249105e-05, 2.56285399420795e-05, 5.366534292154127e-05]\n", + "epoch 50, Pop max fitness [1.5557422446249105e-05, 2.631371207536247e-05, 0.000302571860816944]\n", + "epoch 51, Pop max fitness [1.5557422446249105e-05, 0.0001823819077147547, 0.00017152658662092623]\n", + "epoch 52, Pop max fitness [1.5557422446249105e-05, 0.00018570102135561745, 0.0006724949562878278]\n", + "epoch 53, Pop max fitness [1.5557422446249105e-05, 0.0008733624454148472, 0.00016675004168751042]\n", + "epoch 54, Pop max fitness [1.5557422446249105e-05, 0.000146177459435755, 0.0006016847172081829]\n", + "epoch 55, Pop max fitness [1.5557422446249105e-05, 4.615739672282483e-05, 0.0006020469596628537]\n", + "epoch 56, Pop max fitness [1.5557422446249105e-05, 8.065817067268914e-05, 0.0002678093197643278]\n", + "epoch 57, Pop max fitness [1.5557422446249105e-05, 8.646031471554557e-05, 0.0007451564828614009]\n", + "epoch 58, Pop max fitness [1.5557422446249105e-05, 8.987956138774042e-05, 0.00028818443804034583]\n", + "epoch 59, Pop max fitness [1.5557422446249105e-05, 7.479431563201197e-05, 0.0005980861244019139]\n", + "epoch 60, Pop max fitness [1.5557422446249105e-05, 0.0017331022530329288, 0.0007178750897343862]\n", + "epoch 61, Pop max fitness [1.5557422446249105e-05, 2.2578460149017837e-05, 0.00011799410029498526]\n", + "epoch 62, Pop max fitness [1.5557422446249105e-05, 7.377351530800442e-05, 0.000124750499001996]\n", + "epoch 63, Pop max fitness [1.5557422446249105e-05, 3.5263417730446436e-05, 0.00020177562550443906]\n", + "epoch 64, Pop max fitness [1.5557422446249105e-05, 9.219988936013277e-05, 0.000444247001332741]\n", + "epoch 65, Pop max fitness [1.5557422446249105e-05, 8.829242450997704e-05, 0.00022779043280182233]\n", + "epoch 66, Pop max fitness [1.5557422446249105e-05, 8.410428931875525e-05, 0.00031017369727047146]\n", + "epoch 67, Pop max fitness [1.5557422446249105e-05, 7.745933384972889e-05, 0.00015867978419549348]\n", + "epoch 68, Pop max fitness [1.5557422446249105e-05, 0.0005984440454817474, 0.0004623208506703652]\n", + "epoch 69, Pop max fitness [1.5557422446249105e-05, 0.0007716049382716049, 0.0007022471910112359]\n", + "epoch 70, Pop max fitness [1.5557422446249105e-05, 8.574858514834505e-05, 0.0009689922480620155]\n", + "epoch 71, Pop max fitness [1.5557422446249105e-05, 7.51089079164789e-05, 0.007407407407407408]\n", + "epoch 72, Pop max fitness [1.5557422446249105e-05, 3.1570639305445934e-05, 0.0007047216349541931]\n", + "epoch 73, Pop max fitness [1.5557422446249105e-05, 7.765180928715639e-05, 0.007352941176470588]\n", + "epoch 74, Pop max fitness [1.5557422446249105e-05, 6.700167504187605e-05, 0.0002747252747252747]\n", + "epoch 75, Pop max fitness [1.5557422446249105e-05, 0.00010175010175010175, 0.00010595465140919687]\n", + "epoch 76, Pop max fitness [1.5557422446249105e-05, 0.00020429009193054137, 0.00022512381809995497]\n", + "epoch 77, Pop max fitness [1.5557422446249105e-05, 0.0001892147587511826, 0.00012753475322025253]\n", + "epoch 78, Pop max fitness [1.5557422446249105e-05, 5.5950316119286074e-05, 0.0014084507042253522]\n", + "epoch 79, Pop max fitness [1.5557422446249105e-05, 3.3177399555422843e-05, 0.0004219409282700422]\n", + "epoch 80, Pop max fitness [1.5557422446249105e-05, 2.822626171389861e-05, 0.0013966480446927375]\n", + "epoch 81, Pop max fitness [1.5557422446249105e-05, 7.176175098672408e-05, 0.0015015015015015015]\n", + "epoch 82, Pop max fitness [1.5557422446249105e-05, 3.700277520814061e-05, 0.0005790387955993051]\n", + "epoch 83, Pop max fitness [1.5557422446249105e-05, 1.7036065350346683e-05, 0.0004764173415912339]\n", + "epoch 84, Pop max fitness [1.5557422446249105e-05, 3.404834865509023e-05, 0.0006142506142506142]\n", + "epoch 85, Pop max fitness [1.5557422446249105e-05, 2.1531306519679614e-05, 0.0006476683937823834]\n", + "epoch 86, Pop max fitness [1.5557422446249105e-05, 2.6862945253317573e-05, 0.00014560279557367502]\n", + "epoch 87, Pop max fitness [1.5557422446249105e-05, 0.0002813731007315701, 8.714596949891067e-05]\n", + "epoch 88, Pop max fitness [1.5557422446249105e-05, 2.9898047657487966e-05, 2.2016732716864817e-05]\n", + "epoch 89, Pop max fitness [1.5557422446249105e-05, 5.321130208056191e-05, 5.078204346942921e-05]\n", + "epoch 90, Pop max fitness [1.5557422446249105e-05, 4.143531946631308e-05, 0.00017041581458759374]\n", + "epoch 91, Pop max fitness [1.5557422446249105e-05, 1.4947236256016262e-05, 0.00018611576400521124]\n", + "epoch 92, Pop max fitness [1.5557422446249105e-05, 3.748266426777615e-05, 0.000181422351233672]\n", + "epoch 93, Pop max fitness [1.5557422446249105e-05, 3.758974551742285e-05, 9.963136395337252e-05]\n", + "epoch 94, Pop max fitness [1.5557422446249105e-05, 0.00016477179106936892, 0.00015760441292356187]\n", + "epoch 95, Pop max fitness [1.5557422446249105e-05, 7.55629439322956e-05, 0.0008340283569641367]\n", + "epoch 96, Pop max fitness [1.5557422446249105e-05, 6.2625250501002e-05, 0.0010695187165775401]\n", + "epoch 97, Pop max fitness [1.5557422446249105e-05, 2.9793826719103803e-05, 9.364172675344133e-05]\n", + "epoch 98, Pop max fitness [1.5557422446249105e-05, 2.482991508169042e-05, 0.0005319148936170213]\n", + "epoch 99, Pop max fitness [1.5557422446249105e-05, 5.203996669442132e-05, 0.0001307531380753138]\n", + "epoch 100, Pop max fitness [1.5557422446249105e-05, 2.737476047084588e-05, 8.791208791208791e-05]\n", + "epoch 101, Pop max fitness [1.5557422446249105e-05, 5.784024524263983e-05, 0.009009009009009009]\n", + "epoch 102, Pop max fitness [1.5557422446249105e-05, 5.779010633379565e-05, 0.00015477480266212662]\n", + "epoch 103, Pop max fitness [1.5557422446249105e-05, 2.9689448370049286e-05, 0.00011845534233593936]\n", + "epoch 104, Pop max fitness [1.5557422446249105e-05, 4.993757802746567e-05, 0.00015403573629081948]\n", + "epoch 105, Pop max fitness [1.5557422446249105e-05, 4.4784808992789645e-05, 0.0024630541871921183]\n", + "epoch 106, Pop max fitness [1.5557422446249105e-05, 0.00012510947078693858, 0.0005512679162072767]\n", + "epoch 107, Pop max fitness [1.5557422446249105e-05, 2.2141528651138074e-05, 0.0005491488193300384]\n", + "epoch 108, Pop max fitness [1.5557422446249105e-05, 1.903456677326024e-05, 0.00819672131147541]\n", + "epoch 109, Pop max fitness [1.5557422446249105e-05, 0.0003189792663476874, 0.002364066193853428]\n", + "epoch 110, Pop max fitness [1.5557422446249105e-05, 0.000184945441094877, 0.0007087172218284905]\n", + "epoch 111, Pop max fitness [1.5557422446249105e-05, 0.0001870207593042828, 0.00016488046166529267]\n", + "epoch 112, Pop max fitness [1.5557422446249105e-05, 2.8235028376203517e-05, 4.88162069807176e-05]\n", + "epoch 113, Pop max fitness [1.5557422446249105e-05, 3.7660528000602565e-05, 0.00012158054711246201]\n", + "epoch 114, Pop max fitness [1.5557422446249105e-05, 0.00018191740949608878, 0.00013267878466233248]\n", + "epoch 115, Pop max fitness [1.5557422446249105e-05, 0.00033233632436025255, 6.667111140742716e-05]\n", + "epoch 116, Pop max fitness [1.5557422446249105e-05, 0.0009718172983479105, 0.0018214936247723133]\n", + "epoch 117, Pop max fitness [1.5557422446249105e-05, 2.036369560347812e-05, 0.0010080645161290322]\n", + "epoch 118, Pop max fitness [1.5557422446249105e-05, 2.196691782176043e-05, 0.00026281208935611036]\n", + "epoch 119, Pop max fitness [1.5557422446249105e-05, 4.4373446929357476e-06, 0.00039824771007566706]\n", + "epoch 120, Pop max fitness [1.5557422446249105e-05, 9.408222786715589e-05, 0.0005543237250554324]\n", + "epoch 121, Pop max fitness [1.5557422446249105e-05, 8.01538954793203e-05, 0.0007374631268436578]\n", + "epoch 122, Pop max fitness [1.5557422446249105e-05, 2.201091741503786e-05, 0.0008183306055646482]\n", + "epoch 123, Pop max fitness [1.5557422446249105e-05, 1.606528933586094e-05, 0.000315059861373661]\n", + "epoch 124, Pop max fitness [1.5557422446249105e-05, 1.275949625508785e-05, 0.0011441647597254005]\n", + "epoch 125, Pop max fitness [1.5557422446249105e-05, 1.9978423302832942e-05, 0.0009671179883945841]\n", + "epoch 126, Pop max fitness [1.5557422446249105e-05, 8.868078464758256e-06, 0.00013012361743656474]\n", + "epoch 127, Pop max fitness [1.5557422446249105e-05, 1.5660480776759847e-05, 0.00013017443374121324]\n", + "epoch 128, Pop max fitness [1.5557422446249105e-05, 1.6315342948508776e-05, 0.00027100271002710027]\n", + "epoch 129, Pop max fitness [1.5557422446249105e-05, 1.5528191431543968e-05, 0.00014940983116689077]\n", + "epoch 130, Pop max fitness [1.5557422446249105e-05, 2.125895533493484e-05, 0.0002181976871045167]\n", + "epoch 131, Pop max fitness [1.5557422446249105e-05, 2.1058394929138502e-05, 3.0210567656566267e-05]\n", + "epoch 132, Pop max fitness [1.5557422446249105e-05, 2.1064605143976575e-05, 0.00014923145799134458]\n", + "epoch 133, Pop max fitness [1.5557422446249105e-05, 1.4497586151905708e-05, 0.0021645021645021645]\n", + "epoch 134, Pop max fitness [1.5557422446249105e-05, 9.0152628399881e-06, 0.00011970313622216902]\n", + "epoch 135, Pop max fitness [1.5557422446249105e-05, 3.006795357507968e-05, 0.006024096385542169]\n", + "epoch 136, Pop max fitness [1.5557422446249105e-05, 5.456728145803776e-05, 0.0011876484560570072]\n", + "epoch 137, Pop max fitness [1.5557422446249105e-05, 2.54323499491353e-05, 0.00038255547054322876]\n", + "epoch 138, Pop max fitness [1.5557422446249105e-05, 2.8008066323101054e-05, 0.0002910360884749709]\n", + "epoch 139, Pop max fitness [1.5557422446249105e-05, 0.00018355359765051394, 0.00028669724770642203]\n", + "epoch 140, Pop max fitness [1.5557422446249105e-05, 6.375111564452378e-05, 0.002793296089385475]\n", + "epoch 141, Pop max fitness [1.5557422446249105e-05, 0.00015549681231534753, 0.014285714285714285]\n", + "epoch 142, Pop max fitness [1.5557422446249105e-05, 0.0001837897445322551, 0.0009433962264150943]\n", + "epoch 143, Pop max fitness [1.5557422446249105e-05, 1.3139395850578791e-05, 0.022727272727272728]\n", + "epoch 144, Pop max fitness [1.5557422446249105e-05, 1.8942263979390816e-05, 0.01282051282051282]\n", + "epoch 145, Pop max fitness [1.5557422446249105e-05, 4.89452302873085e-05, 0.002053388090349076]\n", + "epoch 146, Pop max fitness [1.5557422446249105e-05, 4.926059841774958e-06, 0.0007262164124909223]\n", + "epoch 147, Pop max fitness [1.5557422446249105e-05, 2.39721922569819e-05, 0.0006666666666666666]\n", + "epoch 148, Pop max fitness [1.5557422446249105e-05, 1.625725479995448e-05, 0.0004361098996947231]\n", + "epoch 149, Pop max fitness [1.5557422446249105e-05, 8.052048441123422e-06, 0.0008695652173913044]\n", + "epoch 150, Pop max fitness [1.5557422446249105e-05, 1.6540955405584227e-05, 0.0008695652173913044]\n", + "epoch 151, Pop max fitness [1.5557422446249105e-05, 1.667444807576869e-05, 0.00033875338753387534]\n", + "epoch 152, Pop max fitness [1.5557422446249105e-05, 0.00022251891410769915, 0.0003125]\n", + "epoch 153, Pop max fitness [1.5557422446249105e-05, 1.7551865763330644e-05, 0.00018372221201543268]\n", + "epoch 154, Pop max fitness [1.5557422446249105e-05, 2.2390398996910124e-05, 0.00020429009193054137]\n", + "epoch 155, Pop max fitness [1.5557422446249105e-05, 1.2915558081264692e-05, 0.0033003300330033004]\n", + "epoch 156, Pop max fitness [1.5557422446249105e-05, 2.1158647539249292e-05, 0.0009199632014719411]\n", + "epoch 157, Pop max fitness [1.5557422446249105e-05, 3.224766204450177e-05, 0.0038461538461538464]\n", + "epoch 158, Pop max fitness [1.5557422446249105e-05, 2.9360815056225962e-05, 0.005847953216374269]\n", + "epoch 159, Pop max fitness [1.5557422446249105e-05, 3.1229505636925764e-05, 0.006060606060606061]\n", + "epoch 160, Pop max fitness [1.5557422446249105e-05, 0.0007032348804500703, 0.0024330900243309003]\n", + "epoch 161, Pop max fitness [1.5557422446249105e-05, 2.6905588290687975e-05, 0.0014641288433382138]\n", + "epoch 162, Pop max fitness [1.5557422446249105e-05, 1.8666467557679386e-05, 0.0001015331505736623]\n", + "epoch 163, Pop max fitness [1.5557422446249105e-05, 5.9937664828578277e-05, 0.0003729951510630362]\n", + "epoch 164, Pop max fitness [1.5557422446249105e-05, 0.0001404297149276787, 0.002898550724637681]\n", + "epoch 165, Pop max fitness [1.5557422446249105e-05, 0.0001452011035283868, 0.0029850746268656717]\n", + "epoch 166, Pop max fitness [1.5557422446249105e-05, 0.0001119194180190263, 0.00041407867494824016]\n", + "epoch 167, Pop max fitness [1.5557422446249105e-05, 0.00010029084344599338, 0.00027240533914464724]\n", + "epoch 168, Pop max fitness [1.5557422446249105e-05, 0.00011174432897530451, 0.0004476275738585497]\n", + "epoch 169, Pop max fitness [1.5557422446249105e-05, 9.7551458394303e-05, 0.0004149377593360996]\n", + "epoch 170, Pop max fitness [1.5557422446249105e-05, 5.617030837499298e-05, 0.1111111111111111]\n", + "epoch 171, Pop max fitness [1.5557422446249105e-05, 0.00010888501742160279, 0.0013774104683195593]\n", + "epoch 172, Pop max fitness [1.5557422446249105e-05, 5.2224775433465635e-05, 0.0016835016835016834]\n", + "epoch 173, Pop max fitness [1.5557422446249105e-05, 4.1969194611155415e-05, 0.0018726591760299626]\n", + "epoch 174, Pop max fitness [1.5557422446249105e-05, 1.638431038437592e-05, 0.0010526315789473684]\n", + "epoch 175, Pop max fitness [1.5557422446249105e-05, 2.818489289740699e-05, 0.0011614401858304297]\n", + "epoch 176, Pop max fitness [1.5557422446249105e-05, 2.8391346317642383e-05, 0.0010030090270812437]\n", + "epoch 177, Pop max fitness [1.5557422446249105e-05, 3.373022565520963e-05, 0.00044014084507042255]\n", + "epoch 178, Pop max fitness [1.5557422446249105e-05, 7.08114997875655e-05, 0.0013550135501355014]\n", + "epoch 179, Pop max fitness [1.5557422446249105e-05, 6.183144747418538e-05, 0.0014619883040935672]\n", + "epoch 180, Pop max fitness [1.5557422446249105e-05, 6.196554715578138e-05, 0.00125]\n", + "epoch 181, Pop max fitness [1.5557422446249105e-05, 3.0976055509091474e-05, 0.002631578947368421]\n", + "epoch 182, Pop max fitness [1.5557422446249105e-05, 4.3514207388712415e-05, 0.0015432098765432098]\n", + "epoch 183, Pop max fitness [1.5557422446249105e-05, 2.771080998697592e-05, 9.817396426467701e-05]\n", + "epoch 184, Pop max fitness [1.5557422446249105e-05, 8.26856292376385e-05, 0.0001734304543877905]\n", + "epoch 185, Pop max fitness [1.5557422446249105e-05, 5.830903790087464e-05, 0.0005984440454817474]\n", + "epoch 186, Pop max fitness [1.5557422446249105e-05, 5.0097690496468114e-05, 0.0005763688760806917]\n", + "epoch 187, Pop max fitness [1.5557422446249105e-05, 2.1421074052653e-05, 0.00033875338753387534]\n", + "epoch 188, Pop max fitness [1.5557422446249105e-05, 1.894872475082427e-05, 0.00027114967462039046]\n", + "epoch 189, Pop max fitness [1.5557422446249105e-05, 0.002421307506053269, 0.00018011527377521613]\n", + "epoch 190, Pop max fitness [1.5557422446249105e-05, 0.000117000117000117, 0.000625]\n", + "epoch 191, Pop max fitness [1.5557422446249105e-05, 5.345306820611503e-05, 0.0002952465308532625]\n", + "epoch 192, Pop max fitness [1.5557422446249105e-05, 5.675368898978434e-05, 0.00011031439602868175]\n", + "epoch 193, Pop max fitness [1.5557422446249105e-05, 0.0001030290541932825, 0.00025]\n", + "epoch 194, Pop max fitness [1.5557422446249105e-05, 2.0377804495343672e-05, 2.7197563098346387e-05]\n", + "epoch 195, Pop max fitness [1.5557422446249105e-05, 2.689401070381626e-05, 5.1519835136527566e-05]\n", + "epoch 196, Pop max fitness [1.5557422446249105e-05, 0.0007524454477050414, 3.631345776744862e-05]\n", + "epoch 197, Pop max fitness [1.5557422446249105e-05, 6.220452848967405e-05, 2.0234722784297857e-05]\n", + "epoch 198, Pop max fitness [1.5557422446249105e-05, 3.581918475535497e-05, 1.9296079036739735e-05]\n", + "epoch 199, Pop max fitness [1.5557422446249105e-05, 2.833423058396849e-05, 0.000526592943654555]\n", + "epoch 200, Pop max fitness [1.5557422446249105e-05, 1.3298579711686792e-05, 0.0003045994517209869]\n", + "epoch 201, Pop max fitness [1.5557422446249105e-05, 4.7521741196597446e-05, 6.320712976423741e-05]\n", + "epoch 202, Pop max fitness [1.5557422446249105e-05, 2.8406669886089252e-05, 8.741258741258741e-05]\n", + "epoch 203, Pop max fitness [1.5557422446249105e-05, 0.0013440860215053765, 0.00046125461254612545]\n", + "epoch 204, Pop max fitness [1.5557422446249105e-05, 7.28862973760933e-05, 8.837044892188053e-05]\n", + "epoch 205, Pop max fitness [1.5557422446249105e-05, 0.0008250825082508251, 0.0001793400286944046]\n", + "epoch 206, Pop max fitness [1.5557422446249105e-05, 0.0005305039787798408, 0.00018925056775170325]\n", + "epoch 207, Pop max fitness [1.5557422446249105e-05, 0.000235626767200754, 0.00019353590090961874]\n", + "epoch 208, Pop max fitness [1.5557422446249105e-05, 0.00022972662531587412, 6.89084895259096e-05]\n", + "epoch 209, Pop max fitness [1.5557422446249105e-05, 5.412719891745602e-05, 6.830601092896175e-05]\n", + "epoch 210, Pop max fitness [1.5557422446249105e-05, 0.00017289073305670817, 0.00011904761904761905]\n", + "epoch 211, Pop max fitness [1.5557422446249105e-05, 0.001092896174863388, 7.86720163637794e-05]\n", + "epoch 212, Pop max fitness [1.5557422446249105e-05, 0.00234192037470726, 0.00012277470841006753]\n", + "epoch 213, Pop max fitness [1.5557422446249105e-05, 0.00014297969688304262, 2.4423006472096716e-05]\n", + "epoch 214, Pop max fitness [1.5557422446249105e-05, 3.883344336142286e-05, 0.00019758940920766647]\n", + "epoch 215, Pop max fitness [1.5557422446249105e-05, 6.747638326585695e-05, 0.00018850141376060322]\n", + "epoch 216, Pop max fitness [1.5557422446249105e-05, 8.406893652795292e-05, 8.229775327133569e-05]\n", + "epoch 217, Pop max fitness [1.5557422446249105e-05, 8.582954252853832e-05, 0.0004510599909788002]\n", + "epoch 218, Pop max fitness [1.5557422446249105e-05, 5.244113482615764e-05, 0.00036469730123997083]\n", + "epoch 219, Pop max fitness [1.5557422446249105e-05, 0.0009532888465204957, 0.00035688793718772306]\n", + "epoch 220, Pop max fitness [1.5557422446249105e-05, 0.0002452783909737552, 3.64471334329555e-05]\n", + "epoch 221, Pop max fitness [1.5557422446249105e-05, 0.00017627357659086903, 0.00010919414719371041]\n", + "epoch 222, Pop max fitness [1.5557422446249105e-05, 0.00019688915140775743, 8.926180487369455e-05]\n", + "epoch 223, Pop max fitness [1.5557422446249105e-05, 5.927330922885425e-05, 0.00010621348911311737]\n", + "epoch 224, Pop max fitness [1.5557422446249105e-05, 6.508298080052066e-05, 0.00011914690813773382]\n", + "epoch 225, Pop max fitness [1.5557422446249105e-05, 5.7567209717345e-05, 0.00011869436201780416]\n", + "epoch 226, Pop max fitness [1.5557422446249105e-05, 6.793939805693321e-05, 8.339588024351597e-05]\n", + "epoch 227, Pop max fitness [1.5557422446249105e-05, 2.584313218762114e-05, 0.00017765144785930004]\n", + "epoch 228, Pop max fitness [1.5557422446249105e-05, 4.51997830410414e-05, 7.69941484447182e-05]\n", + "epoch 229, Pop max fitness [1.5557422446249105e-05, 1.8927922471229557e-05, 7.285974499089253e-05]\n", + "epoch 230, Pop max fitness [1.5557422446249105e-05, 3.845562221196739e-05, 0.00021272069772388852]\n", + "epoch 231, Pop max fitness [1.5557422446249105e-05, 2.6260504201680674e-05, 0.0005167958656330749]\n", + "epoch 232, Pop max fitness [1.5557422446249105e-05, 0.00012501562695336918, 7.110858280594468e-05]\n", + "epoch 233, Pop max fitness [1.5557422446249105e-05, 7.102777185879679e-05, 6.0790273556231004e-05]\n", + "epoch 234, Pop max fitness [1.5557422446249105e-05, 7.128091809822511e-05, 0.00013823610727121925]\n", + "epoch 235, Pop max fitness [1.5557422446249105e-05, 5.5862800960840175e-05, 0.00010242753252074157]\n", + "epoch 236, Pop max fitness [1.5557422446249105e-05, 5.834986579530867e-05, 9.434852344560808e-05]\n", + "epoch 237, Pop max fitness [1.5557422446249105e-05, 3.0899483978617555e-05, 2.3946360153256706e-05]\n", + "epoch 238, Pop max fitness [1.5557422446249105e-05, 0.006896551724137931, 7.548878991469766e-05]\n", + "epoch 239, Pop max fitness [1.5557422446249105e-05, 0.0001524390243902439, 5.1101231539680106e-05]\n", + "epoch 240, Pop max fitness [1.5557422446249105e-05, 0.0001296512381693245, 7.81188969611749e-05]\n", + "epoch 241, Pop max fitness [1.5557422446249105e-05, 0.00023255813953488373, 5.246039240373518e-05]\n", + "epoch 242, Pop max fitness [1.5557422446249105e-05, 1.7204301075268818e-05, 7.270612185546023e-05]\n", + "epoch 243, Pop max fitness [1.5557422446249105e-05, 1.7086715079026058e-05, 0.0006622516556291391]\n", + "epoch 244, Pop max fitness [1.5557422446249105e-05, 3.455663833022323e-05, 0.000546448087431694]\n", + "epoch 245, Pop max fitness [1.5557422446249105e-05, 0.00021654395842355997, 0.0001565680288085173]\n", + "epoch 246, Pop max fitness [1.5557422446249105e-05, 3.1565656565656566e-05, 0.00017809439002671417]\n", + "epoch 247, Pop max fitness [1.5557422446249105e-05, 5.9091177687171306e-05, 0.00017208742040956807]\n", + "epoch 248, Pop max fitness [1.5557422446249105e-05, 3.9910600255427844e-05, 7.622532205198568e-05]\n", + "epoch 249, Pop max fitness [1.5557422446249105e-05, 1.0830715910321672e-05, 7.387161113983896e-05]\n", + "epoch 250, Pop max fitness [1.5557422446249105e-05, 6.474168069403081e-05, 0.0011918951132300357]\n", + "epoch 251, Pop max fitness [1.5557422446249105e-05, 1.9764408253616886e-05, 0.0033783783783783786]\n", + "epoch 252, Pop max fitness [1.5557422446249105e-05, 7.466029565477079e-05, 0.0011402508551881414]\n", + "epoch 253, Pop max fitness [1.5557422446249105e-05, 0.00010418837257762034, 7.499062617172853e-05]\n", + "epoch 254, Pop max fitness [1.5557422446249105e-05, 8.081461128171973e-05, 5.68472514353931e-05]\n", + "epoch 255, Pop max fitness [1.5557422446249105e-05, 0.00047036688617121356, 0.00012682308180088776]\n", + "epoch 256, Pop max fitness [1.5557422446249105e-05, 0.00015186028853454822, 0.00011538017768547363]\n", + "epoch 257, Pop max fitness [1.5557422446249105e-05, 1.5782828282828283e-05, 0.0001637465203864418]\n", + "epoch 258, Pop max fitness [1.5557422446249105e-05, 1.5828795745219705e-05, 9.770395701025892e-05]\n", + "epoch 259, Pop max fitness [1.5557422446249105e-05, 3.0809045535769304e-05, 3.253196265330687e-05]\n", + "epoch 260, Pop max fitness [1.5557422446249105e-05, 0.0035211267605633804, 5.457621568520439e-05]\n", + "epoch 261, Pop max fitness [1.5557422446249105e-05, 0.00012755102040816328, 4.75352949565052e-05]\n", + "epoch 262, Pop max fitness [1.5557422446249105e-05, 8.428860418071477e-05, 0.00026616981634282674]\n", + "epoch 263, Pop max fitness [1.5557422446249105e-05, 0.0018796992481203006, 0.0013831258644536654]\n", + "epoch 264, Pop max fitness [1.5557422446249105e-05, 0.0011337868480725624, 0.0007558578987150416]\n", + "epoch 265, Pop max fitness [1.5557422446249105e-05, 7.262164124909223e-05, 0.00023957834211787255]\n", + "epoch 266, Pop max fitness [1.5557422446249105e-05, 0.0012239902080783353, 0.00011166945840312674]\n", + "epoch 267, Pop max fitness [1.5557422446249105e-05, 6.270771932024833e-05, 0.00011663167716351762]\n", + "epoch 268, Pop max fitness [1.5557422446249105e-05, 6.925207756232688e-05, 0.00031259768677711783]\n", + "epoch 269, Pop max fitness [1.5557422446249105e-05, 6.379178361826996e-05, 0.0004737091425864519]\n", + "epoch 270, Pop max fitness [1.5557422446249105e-05, 6.38895987733197e-05, 0.0004655493482309125]\n", + "epoch 271, Pop max fitness [1.5557422446249105e-05, 9.845426799251748e-05, 0.002207505518763797]\n", + "epoch 272, Pop max fitness [1.5557422446249105e-05, 0.0005099439061703213, 0.0022371364653243847]\n", + "epoch 273, Pop max fitness [1.5557422446249105e-05, 0.011235955056179775, 0.00035248501938667606]\n", + "epoch 274, Pop max fitness [1.5557422446249105e-05, 6.271165182490907e-05, 0.0003862495171881035]\n", + "epoch 275, Pop max fitness [1.5557422446249105e-05, 7.616146230007616e-05, 0.00015686274509803922]\n", + "epoch 276, Pop max fitness [1.5557422446249105e-05, 1.771479185119575e-05, 8.676036786395974e-05]\n", + "epoch 277, Pop max fitness [1.5557422446249105e-05, 1.4570887367040653e-05, 0.00033921302578018993]\n", + "epoch 278, Pop max fitness [1.5557422446249105e-05, 1.4032921233213119e-05, 0.00019976028765481422]\n", + "epoch 279, Pop max fitness [1.5557422446249105e-05, 4.5506257110352676e-05, 0.00022820629849383843]\n", + "epoch 280, Pop max fitness [1.5557422446249105e-05, 0.00012498437695288088, 0.0004975124378109452]\n", + "epoch 281, Pop max fitness [1.5557422446249105e-05, 3.355592094225026e-05, 0.0003728560775540641]\n", + "epoch 282, Pop max fitness [1.5557422446249105e-05, 0.00026281208935611036, 0.00017027073046143367]\n", + "epoch 283, Pop max fitness [1.5557422446249105e-05, 0.00018501387604070305, 6.169031462060457e-05]\n", + "epoch 284, Pop max fitness [1.5557422446249105e-05, 0.00036310820624546115, 8.260366760284156e-05]\n", + "epoch 285, Pop max fitness [1.5557422446249105e-05, 0.00011749500646222535, 2.516166368920313e-05]\n", + "epoch 286, Pop max fitness [1.5557422446249105e-05, 6.928566479595372e-05, 1.8684953007343186e-05]\n", + "epoch 287, Pop max fitness [1.5557422446249105e-05, 5.629045876723895e-05, 0.004405286343612335]\n", + "epoch 288, Pop max fitness [1.5557422446249105e-05, 6.680472977486806e-05, 2.4346301796757073e-05]\n", + "epoch 289, Pop max fitness [1.5557422446249105e-05, 3.811992528494644e-05, 2.5959192149940294e-05]\n", + "epoch 290, Pop max fitness [1.5557422446249105e-05, 2.6703695791497543e-05, 0.0001297521733489036]\n", + "epoch 291, Pop max fitness [1.5557422446249105e-05, 1.848804747730592e-05, 4.62064504204787e-05]\n", + "epoch 292, Pop max fitness [1.5557422446249105e-05, 7.470491558344539e-05, 0.00012594458438287153]\n", + "epoch 293, Pop max fitness [1.5557422446249105e-05, 0.0017452006980802793, 0.027777777777777776]\n", + "epoch 294, Pop max fitness [1.5557422446249105e-05, 3.006885768409658e-05, 0.0003225806451612903]\n", + "epoch 295, Pop max fitness [1.5557422446249105e-05, 1.5114416130104894e-05, 0.0006393861892583121]\n", + "epoch 296, Pop max fitness [1.5557422446249105e-05, 0.00022825838849577722, 0.0006666666666666666]\n", + "epoch 297, Pop max fitness [1.5557422446249105e-05, 4.6017210436703324e-05, 0.00039277297721916735]\n", + "epoch 298, Pop max fitness [1.5557422446249105e-05, 4.609144542772861e-05, 0.002008032128514056]\n", + "epoch 299, Pop max fitness [1.5557422446249105e-05, 2.412370636624611e-05, 0.0006854009595613434]\n", + "epoch 300, Pop max fitness [1.5557422446249105e-05, 2.205168915938961e-05, 0.0006215040397762585]\n", + "epoch 301, Pop max fitness [1.5557422446249105e-05, 1.1670790345922226e-05, 3.263388049472963e-05]\n", + "epoch 302, Pop max fitness [1.5557422446249105e-05, 2.7925160569673275e-05, 0.00022426553038797938]\n", + "epoch 303, Pop max fitness [1.5557422446249105e-05, 3.146930169619536e-05, 0.00014712373105781962]\n", + "epoch 304, Pop max fitness [1.5557422446249105e-05, 5.7940784518222376e-05, 0.00037023324694557573]\n", + "epoch 305, Pop max fitness [1.5557422446249105e-05, 0.0005924170616113745, 4.007212983370066e-05]\n", + "epoch 306, Pop max fitness [1.5557422446249105e-05, 9.844457570387872e-05, 4.790878167968189e-05]\n", + "epoch 307, Pop max fitness [1.5557422446249105e-05, 0.0008635578583765112, 0.00022598870056497175]\n", + "epoch 308, Pop max fitness [1.5557422446249105e-05, 0.001142857142857143, 6.38895987733197e-05]\n", + "epoch 309, Pop max fitness [1.5557422446249105e-05, 0.0002315886984715146, 0.00022138587558113792]\n", + "epoch 310, Pop max fitness [1.5557422446249105e-05, 0.00023889154323936931, 0.004464285714285714]\n", + "epoch 311, Pop max fitness [1.5557422446249105e-05, 4.036001130080316e-05, 0.00019782393669634025]\n", + "epoch 312, Pop max fitness [1.5557422446249105e-05, 6.006366748753679e-05, 0.00035650623885918]\n", + "epoch 313, Pop max fitness [1.5557422446249105e-05, 4.408976676513381e-05, 6.151574803149606e-05]\n", + "epoch 314, Pop max fitness [1.5557422446249105e-05, 9.92063492063492e-05, 0.000117000117000117]\n", + "epoch 315, Pop max fitness [1.5557422446249105e-05, 0.0007385524372230429, 0.00045045045045045046]\n", + "epoch 316, Pop max fitness [1.5557422446249105e-05, 0.00014452955629426219, 0.00019319938176197836]\n", + "epoch 317, Pop max fitness [1.5557422446249105e-05, 0.0048543689320388345, 0.00016129032258064516]\n", + "epoch 318, Pop max fitness [1.5557422446249105e-05, 5.670252156113382e-06, 0.00014291839359725596]\n", + "epoch 319, Pop max fitness [1.5557422446249105e-05, 0.00015135462388375965, 4.221368567689645e-05]\n", + "epoch 320, Pop max fitness [1.5557422446249105e-05, 7.694083249980765e-05, 3.336113427856547e-05]\n", + "epoch 321, Pop max fitness [1.5557422446249105e-05, 7.695267410542516e-05, 0.00015037593984962405]\n", + "epoch 322, Pop max fitness [1.5557422446249105e-05, 7.703566751405901e-05, 0.00017692852087756547]\n", + "epoch 323, Pop max fitness [1.5557422446249105e-05, 9.668374746205163e-05, 0.0003875968992248062]\n", + "epoch 324, Pop max fitness [1.5557422446249105e-05, 8.486803021301876e-05, 0.0004280821917808219]\n", + "epoch 325, Pop max fitness [1.5557422446249105e-05, 4.74811262523147e-05, 0.00030120481927710846]\n", + "epoch 326, Pop max fitness [1.5557422446249105e-05, 0.0001837897445322551, 0.00039494470774091627]\n", + "epoch 327, Pop max fitness [1.5557422446249105e-05, 0.0002310536044362292, 0.00016561775422325274]\n", + "epoch 328, Pop max fitness [1.5557422446249105e-05, 6.808278867102397e-05, 0.00016578249336870026]\n", + "epoch 329, Pop max fitness [1.5557422446249105e-05, 1.9704045240487873e-05, 0.00016066838046272492]\n", + "epoch 330, Pop max fitness [1.5557422446249105e-05, 3.546853940554728e-05, 0.00015673981191222572]\n", + "epoch 331, Pop max fitness [1.5557422446249105e-05, 1.5556212373411322e-05, 0.00016265452179570593]\n", + "epoch 332, Pop max fitness [1.5557422446249105e-05, 3.873866893933525e-05, 0.001358695652173913]\n", + "epoch 333, Pop max fitness [1.5557422446249105e-05, 3.831124051796797e-05, 0.0003745318352059925]\n", + "epoch 334, Pop max fitness [1.5557422446249105e-05, 6.727211570803902e-05, 6.271165182490907e-05]\n", + "epoch 335, Pop max fitness [1.5557422446249105e-05, 2.0842886322897994e-05, 0.00011603620329542818]\n", + "epoch 336, Pop max fitness [1.5557422446249105e-05, 3.390520105784227e-05, 0.00013140604467805518]\n", + "epoch 337, Pop max fitness [1.5557422446249105e-05, 4.236211132762857e-05, 0.0001827151470856934]\n", + "epoch 338, Pop max fitness [1.5557422446249105e-05, 0.00019825535289452815, 0.00034129692832764505]\n", + "epoch 339, Pop max fitness [1.5557422446249105e-05, 0.00046274872744099955, 0.00027808676307007786]\n", + "epoch 340, Pop max fitness [1.5557422446249105e-05, 0.0004192872117400419, 0.00029708853238265005]\n", + "epoch 341, Pop max fitness [1.5557422446249105e-05, 2.5921509668723107e-05, 0.00032658393207054214]\n", + "epoch 342, Pop max fitness [1.5557422446249105e-05, 3.554039165511604e-05, 0.0006613756613756613]\n", + "epoch 343, Pop max fitness [1.5557422446249105e-05, 4.748338081671415e-05, 0.00043878894251864854]\n", + "epoch 344, Pop max fitness [1.5557422446249105e-05, 8.874689385871494e-05, 0.0004246284501061571]\n", + "epoch 345, Pop max fitness [1.5557422446249105e-05, 4.770082045411181e-05, 0.0002785515320334262]\n", + "epoch 346, Pop max fitness [1.5557422446249105e-05, 9.657170449058426e-05, 0.0002795638803466592]\n", + "epoch 347, Pop max fitness [1.5557422446249105e-05, 9.59048623765225e-05, 0.0001773049645390071]\n", + "epoch 348, Pop max fitness [1.5557422446249105e-05, 0.0005205622071837585, 0.0007363770250368188]\n", + "epoch 349, Pop max fitness [1.5557422446249105e-05, 0.0001097694840834248, 0.00036231884057971015]\n", + "epoch 350, Pop max fitness [1.5557422446249105e-05, 4.244121891180715e-05, 0.0011737089201877935]\n", + "epoch 351, Pop max fitness [1.5557422446249105e-05, 5.744485294117647e-05, 0.0028735632183908046]\n", + "epoch 352, Pop max fitness [1.5557422446249105e-05, 4.10711352061771e-05, 0.00045998160073597056]\n", + "epoch 353, Pop max fitness [1.5557422446249105e-05, 1.3723068478111706e-05, 0.002564102564102564]\n", + "epoch 354, Pop max fitness [1.5557422446249105e-05, 2.418028822903569e-05, 0.0005714285714285715]\n", + "epoch 355, Pop max fitness [1.5557422446249105e-05, 1.6913891378989564e-05, 0.0008787346221441124]\n", + "epoch 356, Pop max fitness [1.5557422446249105e-05, 1.4191039777484497e-05, 0.0005518763796909492]\n", + "epoch 357, Pop max fitness [1.5557422446249105e-05, 1.4267777650953088e-05, 0.005649717514124294]\n", + "epoch 358, Pop max fitness [1.5557422446249105e-05, 0.0011389521640091116, 0.0030303030303030303]\n", + "epoch 359, Pop max fitness [1.5557422446249105e-05, 0.0015337423312883436, 0.0002249718785151856]\n", + "epoch 360, Pop max fitness [1.5557422446249105e-05, 2.7701598382226654e-05, 0.02857142857142857]\n", + "epoch 361, Pop max fitness [1.5557422446249105e-05, 5.084659582040982e-05, 0.0022471910112359553]\n", + "epoch 362, Pop max fitness [1.5557422446249105e-05, 0.00019485580670303975, 0.0005058168942842691]\n", + "epoch 363, Pop max fitness [1.5557422446249105e-05, 0.00025523226135783564, 0.00038211692777990065]\n", + "epoch 364, Pop max fitness [1.5557422446249105e-05, 7.686395080707149e-05, 0.0007633587786259542]\n", + "epoch 365, Pop max fitness [1.5557422446249105e-05, 3.556440714133296e-05, 0.00026171159382360636]\n", + "epoch 366, Pop max fitness [1.5557422446249105e-05, 1.5304560759106214e-05, 0.0002677376171352075]\n", + "epoch 367, Pop max fitness [1.5557422446249105e-05, 1.4940090238145038e-05, 0.00011424654404204273]\n", + "epoch 368, Pop max fitness [1.5557422446249105e-05, 2.464389570703337e-05, 0.00010954102311315588]\n", + "epoch 369, Pop max fitness [1.5557422446249105e-05, 1.3992667842050766e-05, 4.312947468299836e-05]\n", + "epoch 370, Pop max fitness [1.5557422446249105e-05, 3.461644973691498e-05, 4.291845493562232e-05]\n", + "epoch 371, Pop max fitness [1.5557422446249105e-05, 0.0012376237623762376, 3.173192866662436e-05]\n", + "epoch 372, Pop max fitness [1.5557422446249105e-05, 3.159657493127745e-05, 5.58909009613235e-05]\n", + "epoch 373, Pop max fitness [1.5557422446249105e-05, 1.5771875591445335e-05, 0.00010322047894302229]\n", + "epoch 374, Pop max fitness [1.5557422446249105e-05, 9.374707040404987e-05, 3.4502984508159955e-05]\n", + "epoch 375, Pop max fitness [1.5557422446249105e-05, 0.00011308379509216329, 5.089835598310175e-05]\n", + "epoch 376, Pop max fitness [1.5557422446249105e-05, 0.00011381743683132256, 0.00026021337496747333]\n", + "epoch 377, Pop max fitness [1.5557422446249105e-05, 0.00022036139268400177, 0.00022522522522522523]\n", + "epoch 378, Pop max fitness [1.5557422446249105e-05, 4.659180915994968e-05, 0.0011235955056179776]\n", + "epoch 379, Pop max fitness [1.5557422446249105e-05, 0.00022763487366264513, 0.00045829514207149406]\n", + "epoch 380, Pop max fitness [1.5557422446249105e-05, 0.00022609088853719196, 0.000198294665873488]\n", + "epoch 381, Pop max fitness [1.5557422446249105e-05, 3.380548324938305e-05, 6.635259770420012e-05]\n", + "epoch 382, Pop max fitness [1.5557422446249105e-05, 0.00031377470975839345, 0.00039761431411530816]\n", + "epoch 383, Pop max fitness [1.5557422446249105e-05, 3.047108294228777e-05, 0.00010119409026512852]\n", + "epoch 384, Pop max fitness [1.5557422446249105e-05, 5.0393065914130216e-05, 0.014285714285714285]\n", + "epoch 385, Pop max fitness [1.5557422446249105e-05, 0.0005824111822947001, 0.002288329519450801]\n", + "epoch 386, Pop max fitness [1.5557422446249105e-05, 9.057971014492754e-05, 0.0023148148148148147]\n", + "epoch 387, Pop max fitness [1.5557422446249105e-05, 0.0002067397146991937, 7.678132678132678e-05]\n", + "epoch 388, Pop max fitness [1.5557422446249105e-05, 0.0006230529595015577, 0.00018484288354898336]\n", + "epoch 389, Pop max fitness [1.5557422446249105e-05, 5.869233478107759e-05, 0.0003594536304816679]\n", + "epoch 390, Pop max fitness [1.5557422446249105e-05, 0.00020271639975674033, 0.0002458210422812193]\n", + "epoch 391, Pop max fitness [1.5557422446249105e-05, 6.033182503770739e-05, 0.0005580357142857143]\n", + "epoch 392, Pop max fitness [1.5557422446249105e-05, 6.012144531954548e-05, 0.0007462686567164179]\n", + "epoch 393, Pop max fitness [1.5557422446249105e-05, 3.799392097264438e-05, 0.0035211267605633804]\n", + "epoch 394, Pop max fitness [1.5557422446249105e-05, 0.00019708316909735908, 0.00042826552462526765]\n", + "epoch 395, Pop max fitness [1.5557422446249105e-05, 0.0004418912947414936, 0.00018709073900841907]\n", + "epoch 396, Pop max fitness [1.5557422446249105e-05, 0.00013095861707700367, 4.938759383642829e-05]\n", + "epoch 397, Pop max fitness [1.5557422446249105e-05, 7.17308657915501e-05, 5.0443906376109764e-05]\n", + "epoch 398, Pop max fitness [1.5557422446249105e-05, 9.101665604805679e-05, 0.00010570824524312896]\n", + "epoch 399, Pop max fitness [1.5557422446249105e-05, 7.176175098672408e-05, 0.00010954102311315588]\n", + "epoch 400, Pop max fitness [1.5557422446249105e-05, 6.437906392841049e-05, 0.0002079002079002079]\n", + "epoch 401, Pop max fitness [1.5557422446249105e-05, 5.5944055944055945e-05, 0.0002651113467656416]\n", + "epoch 402, Pop max fitness [1.5557422446249105e-05, 0.0003316749585406302, 0.0004116920543433512]\n", + "epoch 403, Pop max fitness [1.5557422446249105e-05, 5.614507888383583e-05, 0.0006510416666666666]\n", + "epoch 404, Pop max fitness [1.5557422446249105e-05, 3.5510102624196586e-05, 0.00026483050847457627]\n", + "epoch 405, Pop max fitness [1.5557422446249105e-05, 4.032258064516129e-05, 0.00037037037037037035]\n", + "epoch 406, Pop max fitness [1.5557422446249105e-05, 0.003861003861003861, 0.00014326647564469913]\n", + "epoch 407, Pop max fitness [1.5557422446249105e-05, 0.00022941041523285156, 0.0001948178453146308]\n", + "epoch 408, Pop max fitness [1.5557422446249105e-05, 4.8134777376654636e-05, 0.0015220700152207]\n", + "epoch 409, Pop max fitness [1.5557422446249105e-05, 4.4837017441599784e-05, 0.00021872265966754156]\n", + "epoch 410, Pop max fitness [1.5557422446249105e-05, 2.695781102574471e-05, 0.00010313531353135314]\n", + "epoch 411, Pop max fitness [1.5557422446249105e-05, 3.222895449271625e-05, 0.004366812227074236]\n", + "epoch 412, Pop max fitness [1.5557422446249105e-05, 1.91160727940052e-05, 0.00018018018018018018]\n", + "epoch 413, Pop max fitness [1.5557422446249105e-05, 6.603275224511358e-05, 0.00010950503723171266]\n", + "epoch 414, Pop max fitness [1.5557422446249105e-05, 0.0003885003885003885, 0.0010787486515641855]\n", + "epoch 415, Pop max fitness [1.5557422446249105e-05, 0.00017670966601873123, 8.065166545689168e-05]\n", + "epoch 416, Pop max fitness [1.5557422446249105e-05, 2.0053341889425874e-05, 0.0005154639175257732]\n", + "epoch 417, Pop max fitness [1.5557422446249105e-05, 2.2283129442698933e-05, 0.0005202913631633715]\n", + "epoch 418, Pop max fitness [1.5557422446249105e-05, 1.9403158834258216e-05, 0.00010799136069114471]\n", + "epoch 419, Pop max fitness [1.5557422446249105e-05, 0.00021048200378867606, 0.00019786307874950534]\n", + "epoch 420, Pop max fitness [1.5557422446249105e-05, 0.0004574565416285453, 0.00015108022359873092]\n", + "epoch 421, Pop max fitness [1.5557422446249105e-05, 7.036307345904869e-05, 0.00019249278152069297]\n", + "epoch 422, Pop max fitness [1.5557422446249105e-05, 2.1675517502980384e-05, 0.002288329519450801]\n", + "epoch 423, Pop max fitness [1.5557422446249105e-05, 8.18062827225131e-05, 0.0015174506828528073]\n", + "epoch 424, Pop max fitness [1.5557422446249105e-05, 8.347245409015025e-05, 0.0003266906239790918]\n", + "epoch 425, Pop max fitness [1.5557422446249105e-05, 0.00012884937508053087, 0.0009319664492078285]\n", + "epoch 426, Pop max fitness [1.5557422446249105e-05, 0.00013347570742124932, 0.00017385257301808066]\n", + "epoch 427, Pop max fitness [1.5557422446249105e-05, 0.00016289297931259162, 0.0002600780234070221]\n", + "epoch 428, Pop max fitness [1.5557422446249105e-05, 0.00012286521685710776, 0.00019519812609798947]\n", + "epoch 429, Pop max fitness [1.5557422446249105e-05, 0.020833333333333332, 6.607201850016519e-05]\n", + "epoch 430, Pop max fitness [1.5557422446249105e-05, 9.856100926473487e-05, 0.00029770765108663293]\n", + "epoch 431, Pop max fitness [1.5557422446249105e-05, 6.157256326580875e-05, 0.0007818608287724785]\n", + "epoch 432, Pop max fitness [1.5557422446249105e-05, 4.215496163898491e-05, 0.000302571860816944]\n", + "epoch 433, Pop max fitness [1.5557422446249105e-05, 6.658676255160474e-05, 0.0005963029218843172]\n", + "epoch 434, Pop max fitness [1.5557422446249105e-05, 3.3904051534158335e-05, 0.001594896331738437]\n", + "epoch 435, Pop max fitness [1.5557422446249105e-05, 2.8111207938605122e-05, 0.001594896331738437]\n", + "epoch 436, Pop max fitness [1.5557422446249105e-05, 5.161290322580645e-05, 0.00411522633744856]\n", + "epoch 437, Pop max fitness [1.5557422446249105e-05, 9.655305590421937e-05, 0.004975124378109453]\n", + "epoch 438, Pop max fitness [1.5557422446249105e-05, 9.56297217175098e-05, 0.0016863406408094434]\n", + "epoch 439, Pop max fitness [1.5557422446249105e-05, 0.0001887148518588413, 0.0024390243902439024]\n", + "epoch 440, Pop max fitness [1.5557422446249105e-05, 1.4068061280474938e-05, 0.00010969723562966213]\n", + "epoch 441, Pop max fitness [1.5557422446249105e-05, 6.580246101204185e-05, 0.0004048582995951417]\n", + "epoch 442, Pop max fitness [1.5557422446249105e-05, 0.00018677624206200972, 0.0011376564277588168]\n", + "epoch 443, Pop max fitness [1.5557422446249105e-05, 5.3356098602070216e-05, 0.011111111111111112]\n", + "epoch 444, Pop max fitness [1.5557422446249105e-05, 2.8367989560579842e-05, 0.0002984183825723665]\n", + "epoch 445, Pop max fitness [1.5557422446249105e-05, 0.00011546010853250202, 0.0017921146953405018]\n", + "epoch 446, Pop max fitness [1.5557422446249105e-05, 8.805142203046579e-05, 0.0002826455624646693]\n", + "epoch 447, Pop max fitness [1.5557422446249105e-05, 2.593966434074343e-05, 9.56846234810066e-05]\n", + "epoch 448, Pop max fitness [1.5557422446249105e-05, 3.437252947444403e-05, 8.708525646608029e-05]\n", + "epoch 449, Pop max fitness [1.5557422446249105e-05, 0.00012017786323759164, 0.00014545454545454546]\n", + "epoch 450, Pop max fitness [1.5557422446249105e-05, 0.0003401360544217687, 0.0034129692832764505]\n", + "epoch 451, Pop max fitness [1.5557422446249105e-05, 0.0001389854065323141, 0.0018050541516245488]\n", + "epoch 452, Pop max fitness [1.5557422446249105e-05, 4.2407022602943045e-05, 0.0034482758620689655]\n", + "epoch 453, Pop max fitness [1.5557422446249105e-05, 4.3725404459991255e-05, 0.0003606202668589975]\n", + "epoch 454, Pop max fitness [1.5557422446249105e-05, 0.0002243661655822302, 0.0017513134851138354]\n", + "epoch 455, Pop max fitness [1.5557422446249105e-05, 0.0003729951510630362, 0.0026246719160104987]\n", + "epoch 456, Pop max fitness [1.5557422446249105e-05, 0.00027862914460852607, 0.0022675736961451248]\n", + "epoch 457, Pop max fitness [1.5557422446249105e-05, 0.00010011012113324657, 0.16666666666666666]\n", + "epoch 458, Pop max fitness [1.5557422446249105e-05, 7.127075760815338e-05, 0.00045829514207149406]\n", + "epoch 459, Pop max fitness [1.5557422446249105e-05, 0.00018521948508983145, 0.00026371308016877635]\n", + "epoch 460, Pop max fitness [1.5557422446249105e-05, 0.00020665426741062204, 0.00022747952684258417]\n", + "epoch 461, Pop max fitness [1.5557422446249105e-05, 3.568242640499554e-05, 4.806305873305777e-05]\n", + "epoch 462, Pop max fitness [1.5557422446249105e-05, 0.00040966816878328555, 4.659615115791436e-05]\n", + "epoch 463, Pop max fitness [1.5557422446249105e-05, 8.004482510205715e-05, 3.492595697122101e-05]\n", + "epoch 464, Pop max fitness [1.5557422446249105e-05, 2.9657749569962632e-05, 4.465880671668453e-05]\n", + "epoch 465, Pop max fitness [1.5557422446249105e-05, 2.2748987670048682e-05, 5.1163980557687386e-05]\n", + "epoch 466, Pop max fitness [1.5557422446249105e-05, 3.5344431484819566e-05, 0.00025233409033560434]\n", + "epoch 467, Pop max fitness [1.5557422446249105e-05, 1.7749063736887877e-05, 0.0004551661356395084]\n", + "epoch 468, Pop max fitness [1.5557422446249105e-05, 6.02663773880552e-05, 5.531279384921732e-05]\n", + "epoch 469, Pop max fitness [1.5557422446249105e-05, 9.649715333397665e-05, 0.0015037593984962407]\n", + "epoch 470, Pop max fitness [1.5557422446249105e-05, 0.0001890359168241966, 0.0005704506560182544]\n", + "epoch 471, Pop max fitness [1.5557422446249105e-05, 8.911067545891998e-05, 0.0002008435428800964]\n", + "epoch 472, Pop max fitness [1.5557422446249105e-05, 0.00031201248049921997, 0.00040899795501022495]\n", + "epoch 473, Pop max fitness [1.5557422446249105e-05, 5.393452348848498e-05, 0.0004033884630899556]\n", + "epoch 474, Pop max fitness [1.5557422446249105e-05, 9.655305590421937e-05, 9.289363678588016e-05]\n", + "epoch 475, Pop max fitness [1.5557422446249105e-05, 4.120822516174228e-05, 0.00017793594306049823]\n", + "epoch 476, Pop max fitness [1.5557422446249105e-05, 6.873324627122139e-05, 0.00010539629005059021]\n", + "epoch 477, Pop max fitness [1.5557422446249105e-05, 0.00037593984962406017, 9.523809523809524e-05]\n", + "epoch 478, Pop max fitness [1.5557422446249105e-05, 0.00027041644131963225, 0.0007639419404125286]\n", + "epoch 479, Pop max fitness [1.5557422446249105e-05, 0.0001372495196266813, 0.00013709898546750753]\n", + "epoch 480, Pop max fitness [1.5557422446249105e-05, 0.00010156408693885842, 0.00020669698222405952]\n", + "epoch 481, Pop max fitness [1.5557422446249105e-05, 4.190763557120107e-05, 0.00039840637450199205]\n", + "epoch 482, Pop max fitness [1.5557422446249105e-05, 0.00023277467411545624, 0.00040257648953301127]\n", + "epoch 483, Pop max fitness [1.5557422446249105e-05, 0.00010790978741771878, 0.00035676061362825543]\n", + "epoch 484, Pop max fitness [1.5557422446249105e-05, 5.785697755149271e-05, 9.129918743723181e-05]\n", + "epoch 485, Pop max fitness [1.5557422446249105e-05, 0.0011363636363636363, 0.0003079765937788728]\n", + "epoch 486, Pop max fitness [1.5557422446249105e-05, 0.0009041591320072332, 0.00030950170225936243]\n", + "epoch 487, Pop max fitness [1.5557422446249105e-05, 0.0010183299389002036, 0.00022872827081427266]\n", + "epoch 488, Pop max fitness [1.5557422446249105e-05, 0.00012512512512512512, 8.785030308354564e-05]\n", + "epoch 489, Pop max fitness [1.5557422446249105e-05, 6.053268765133172e-05, 0.00021743857360295715]\n", + "epoch 490, Pop max fitness [1.5557422446249105e-05, 4.981568197668626e-05, 0.00015119443604475356]\n", + "epoch 491, Pop max fitness [1.5557422446249105e-05, 4.0594300560201345e-05, 0.00028392958546280523]\n", + "epoch 492, Pop max fitness [1.5557422446249105e-05, 4.8633401420095325e-05, 0.00026925148088314486]\n", + "epoch 493, Pop max fitness [1.5557422446249105e-05, 6.93625580911424e-05, 0.0003632401017072285]\n", + "epoch 494, Pop max fitness [1.5557422446249105e-05, 0.0017513134851138354, 0.00011575413821044102]\n", + "epoch 495, Pop max fitness [1.5557422446249105e-05, 0.0001893580761219466, 0.00018155410312273057]\n", + "epoch 496, Pop max fitness [1.5557422446249105e-05, 9.246417013407305e-05, 0.001201923076923077]\n", + "epoch 497, Pop max fitness [1.5557422446249105e-05, 3.171180313312615e-05, 9.83477576711251e-05]\n", + "epoch 498, Pop max fitness [1.5557422446249105e-05, 1.6805028064396868e-05, 6.967184560719014e-05]\n", + "epoch 499, Pop max fitness [1.5557422446249105e-05, 1.789228842368939e-05, 0.0001941747572815534]\n", + "epoch 500, Pop max fitness [1.5557422446249105e-05, 0.00010619093129446746, 0.00024396194193705782]\n", + "epoch 501, Pop max fitness [1.5557422446249105e-05, 5.086211281216622e-05, 0.0002559508574353724]\n", + "epoch 502, Pop max fitness [1.5557422446249105e-05, 1.355785135171778e-05, 0.00018358729575913347]\n", + "epoch 503, Pop max fitness [1.5557422446249105e-05, 0.00045454545454545455, 0.0003536067892503536]\n", + "epoch 504, Pop max fitness [1.5557422446249105e-05, 2.2766596849102996e-05, 0.0003238341968911917]\n", + "epoch 505, Pop max fitness [1.5557422446249105e-05, 8.141333550435561e-05, 0.00025673940949935817]\n", + "epoch 506, Pop max fitness [1.5557422446249105e-05, 0.0002079002079002079, 3.873716831299632e-05]\n", + "epoch 507, Pop max fitness [1.5557422446249105e-05, 0.00020807324178110696, 5.723770820216359e-05]\n", + "epoch 508, Pop max fitness [1.5557422446249105e-05, 4.802843283223668e-05, 0.0003624501631025734]\n", + "epoch 509, Pop max fitness [1.5557422446249105e-05, 3.9761431411530815e-05, 0.00022680880018144704]\n", + "epoch 510, Pop max fitness [1.5557422446249105e-05, 7.201497911565606e-05, 0.0049261083743842365]\n", + "epoch 511, Pop max fitness [1.5557422446249105e-05, 6.495193556767992e-05, 0.0049261083743842365]\n", + "epoch 512, Pop max fitness [1.5557422446249105e-05, 0.00011440338634023568, 0.003389830508474576]\n", + "epoch 513, Pop max fitness [1.5557422446249105e-05, 4.3957976174776917e-05, 0.00819672131147541]\n", + "epoch 514, Pop max fitness [1.5557422446249105e-05, 4.408199250606127e-05, 0.012658227848101266]\n", + "epoch 515, Pop max fitness [1.5557422446249105e-05, 8.667764583513912e-05, 0.004484304932735426]\n", + "epoch 516, Pop max fitness [1.5557422446249105e-05, 9.180207472688883e-05, 0.00015903307888040714]\n", + "epoch 517, Pop max fitness [1.5557422446249105e-05, 7.334066740007334e-05, 6.028817748839453e-05]\n", + "epoch 518, Pop max fitness [1.5557422446249105e-05, 0.000143143429716576, 8.177283506419168e-05]\n", + "epoch 519, Pop max fitness [1.5557422446249105e-05, 0.0006747638326585695, 0.00024113817217265494]\n", + "epoch 520, Pop max fitness [1.5557422446249105e-05, 5.720496539099594e-05, 0.00038476337052712584]\n", + "epoch 521, Pop max fitness [1.5557422446249105e-05, 5.120065536838871e-05, 8.650519031141868e-05]\n", + "epoch 522, Pop max fitness [1.5557422446249105e-05, 5.4238759017193686e-05, 6.253517603652055e-05]\n", + "epoch 523, Pop max fitness [1.5557422446249105e-05, 5.3336177929489575e-05, 0.00011838522552385462]\n", + "epoch 524, Pop max fitness [1.5557422446249105e-05, 0.001349527665317139, 0.008403361344537815]\n", + "epoch 525, Pop max fitness [1.5557422446249105e-05, 2.4960686918103987e-05, 3.4056465619997955e-05]\n", + "epoch 526, Pop max fitness [1.5557422446249105e-05, 0.00011153245594467991, 0.0014144271570014145]\n", + "epoch 527, Pop max fitness [1.5557422446249105e-05, 4.073983541106494e-05, 0.00016815200941651252]\n", + "epoch 528, Pop max fitness [1.5557422446249105e-05, 4.610419548178884e-05, 6.402458544080927e-05]\n", + "epoch 529, Pop max fitness [1.5557422446249105e-05, 0.00016597510373443983, 6.33031588276255e-05]\n", + "epoch 530, Pop max fitness [1.5557422446249105e-05, 2.639567110993797e-05, 6.549217368524462e-05]\n", + "epoch 531, Pop max fitness [1.5557422446249105e-05, 0.000211954217888936, 0.0004127115146512588]\n", + "epoch 532, Pop max fitness [1.5557422446249105e-05, 2.2860800585236496e-05, 5.5318913536538145e-05]\n", + "epoch 533, Pop max fitness [1.5557422446249105e-05, 4.160945366787334e-05, 5.215667866270276e-05]\n", + "epoch 534, Pop max fitness [1.5557422446249105e-05, 2.805285157236233e-05, 0.0002423654871546292]\n", + "epoch 535, Pop max fitness [1.5557422446249105e-05, 2.724498692240628e-05, 0.0006915629322268327]\n", + "epoch 536, Pop max fitness [1.5557422446249105e-05, 2.4514610707981957e-05, 0.0016835016835016834]\n", + "epoch 537, Pop max fitness [1.5557422446249105e-05, 0.00010351966873706004, 0.00013908205841446454]\n", + "epoch 538, Pop max fitness [1.5557422446249105e-05, 0.00010617965597791463, 4.1260934147549104e-05]\n", + "epoch 539, Pop max fitness [1.5557422446249105e-05, 5.6863414079381326e-05, 0.00015363343063450608]\n", + "epoch 540, Pop max fitness [1.5557422446249105e-05, 0.0049261083743842365, 0.0001543924656476764]\n", + "epoch 541, Pop max fitness [1.5557422446249105e-05, 0.0009871668311944718, 0.00016716817118020728]\n", + "epoch 542, Pop max fitness [1.5557422446249105e-05, 0.00034328870580157915, 0.000135189941868325]\n", + "epoch 543, Pop max fitness [1.5557422446249105e-05, 0.00022177866489243733, 0.00010764262648008612]\n", + "epoch 544, Pop max fitness [1.5557422446249105e-05, 0.00035398230088495576, 0.00046992481203007516]\n", + "epoch 545, Pop max fitness [1.5557422446249105e-05, 0.0007117437722419929, 0.0004222972972972973]\n", + "epoch 546, Pop max fitness [1.5557422446249105e-05, 0.005291005291005291, 9.891196834817012e-05]\n", + "epoch 547, Pop max fitness [1.5557422446249105e-05, 5.549081626990733e-05, 0.0009487666034155598]\n", + "epoch 548, Pop max fitness [1.5557422446249105e-05, 5.4821555835754616e-05, 0.0009276437847866419]\n", + "epoch 549, Pop max fitness [1.5557422446249105e-05, 2.6435444644178915e-05, 0.0002852253280091272]\n", + "epoch 550, Pop max fitness [1.5557422446249105e-05, 3.2192640762321735e-05, 0.00032658393207054214]\n", + "epoch 551, Pop max fitness [1.5557422446249105e-05, 0.0005652911249293386, 0.00015537600994406463]\n", + "epoch 552, Pop max fitness [1.5557422446249105e-05, 0.00013596193065941537, 0.00015537600994406463]\n", + "epoch 553, Pop max fitness [1.5557422446249105e-05, 7.868439688409789e-05, 0.0004351610095735422]\n", + "epoch 554, Pop max fitness [1.5557422446249105e-05, 0.0001852537977028529, 0.0002109704641350211]\n", + "epoch 555, Pop max fitness [1.5557422446249105e-05, 3.9004602543100085e-05, 0.00035842293906810036]\n", + "epoch 556, Pop max fitness [1.5557422446249105e-05, 4.274965800273598e-05, 0.0002196836555360281]\n", + "epoch 557, Pop max fitness [1.5557422446249105e-05, 1.6964103956029043e-05, 0.00014092446448703494]\n", + "epoch 558, Pop max fitness [1.5557422446249105e-05, 1.2475828083089014e-05, 0.00016479894528675015]\n", + "epoch 559, Pop max fitness [1.5557422446249105e-05, 0.00029308323563892143, 0.00015479876160990713]\n", + "epoch 560, Pop max fitness [1.5557422446249105e-05, 5.156765676567657e-05, 0.038461538461538464]\n", + "epoch 561, Pop max fitness [1.5557422446249105e-05, 7.40521327014218e-05, 0.16666666666666666]\n", + "epoch 562, Pop max fitness [1.5557422446249105e-05, 7.404116688879017e-05, 6.289308176100629e-05]\n", + "epoch 563, Pop max fitness [1.5557422446249105e-05, 5.224387440572593e-05, 0.0003160556257901391]\n", + "epoch 564, Pop max fitness [1.5557422446249105e-05, 8.126117341134406e-05, 5.16422226812642e-05]\n", + "epoch 565, Pop max fitness [1.5557422446249105e-05, 2.07939115427003e-05, 0.0001419849495953429]\n", + "epoch 566, Pop max fitness [1.5557422446249105e-05, 0.00021422450728363326, 0.00014398848092152627]\n", + "epoch 567, Pop max fitness [1.5557422446249105e-05, 4.3455588388666785e-05, 0.0005530973451327434]\n", + "epoch 568, Pop max fitness [1.5557422446249105e-05, 4.666791114429718e-05, 0.00033783783783783786]\n", + "epoch 569, Pop max fitness [1.5557422446249105e-05, 7.662835249042145e-05, 8.573388203017832e-05]\n", + "epoch 570, Pop max fitness [1.5557422446249105e-05, 7.004272606289837e-05, 0.0015384615384615385]\n", + "epoch 571, Pop max fitness [1.5557422446249105e-05, 0.0006858710562414266, 0.00023084025854108956]\n", + "epoch 572, Pop max fitness [1.5557422446249105e-05, 0.0002944640753828033, 0.0005977286312014345]\n", + "epoch 573, Pop max fitness [1.5557422446249105e-05, 6.186204763377668e-05, 0.0005830903790087463]\n", + "epoch 574, Pop max fitness [1.5557422446249105e-05, 0.00026838432635534085, 0.00011527377521613833]\n", + "epoch 575, Pop max fitness [1.5557422446249105e-05, 0.00010195758564437195, 0.0005627462014631402]\n", + "epoch 576, Pop max fitness [1.5557422446249105e-05, 1.63371998039536e-05, 0.009900990099009901]\n", + "epoch 577, Pop max fitness [1.5557422446249105e-05, 1.8745196543385758e-05, 0.0001389854065323141]\n", + "epoch 578, Pop max fitness [1.5557422446249105e-05, 1.685743665818176e-05, 9.467007478935909e-05]\n", + "epoch 579, Pop max fitness [1.5557422446249105e-05, 8.548469823901521e-05, 6.94637399277577e-05]\n", + "epoch 580, Pop max fitness [1.5557422446249105e-05, 2.909514111143439e-05, 0.0003816793893129771]\n", + "epoch 581, Pop max fitness [1.5557422446249105e-05, 0.0012453300124533001, 0.00023342670401493932]\n", + "epoch 582, Pop max fitness [1.5557422446249105e-05, 3.940265573899681e-05, 0.0003787878787878788]\n", + "epoch 583, Pop max fitness [1.5557422446249105e-05, 5.56947925368978e-05, 7.68344218209758e-05]\n", + "epoch 584, Pop max fitness [1.5557422446249105e-05, 2.0098886521686698e-05, 9.728572818367545e-05]\n", + "epoch 585, Pop max fitness [1.5557422446249105e-05, 8.722958827634333e-05, 9.324009324009324e-05]\n", + "epoch 586, Pop max fitness [1.5557422446249105e-05, 3.603603603603604e-05, 5.9098162047160334e-05]\n", + "epoch 587, Pop max fitness [1.5557422446249105e-05, 0.00013531799729364006, 0.0001097333479644464]\n", + "epoch 588, Pop max fitness [1.5557422446249105e-05, 6.354855109303508e-05, 0.0001373437714599643]\n", + "epoch 589, Pop max fitness [1.5557422446249105e-05, 7.918910357934748e-05, 0.00024807740014884643]\n", + "epoch 590, Pop max fitness [1.5557422446249105e-05, 0.00014934289127837514, 0.00024813895781637717]\n", + "epoch 591, Pop max fitness [1.5557422446249105e-05, 0.00026659557451346307, 0.00022143489813994686]\n", + "epoch 592, Pop max fitness [1.5557422446249105e-05, 0.00018086453246518358, 0.0006172839506172839]\n", + "epoch 593, Pop max fitness [1.5557422446249105e-05, 6.721333512568894e-05, 0.0009433962264150943]\n", + "epoch 594, Pop max fitness [1.5557422446249105e-05, 4.65809577044904e-05, 0.0024813895781637717]\n", + "epoch 595, Pop max fitness [1.5557422446249105e-05, 2.067439889185222e-05, 0.0008968609865470852]\n", + "epoch 596, Pop max fitness [1.5557422446249105e-05, 0.0004317789291882556, 9.484966328369534e-05]\n", + "epoch 597, Pop max fitness [1.5557422446249105e-05, 0.0003681885125184094, 5.4386251155707835e-05]\n", + "epoch 598, Pop max fitness [1.5557422446249105e-05, 0.0008361204013377926, 7.920792079207921e-05]\n", + "epoch 599, Pop max fitness [1.5557422446249105e-05, 0.0005078720162519045, 0.00022040996253030638]\n", + "epoch 600, Pop max fitness [1.5557422446249105e-05, 7.046719751955464e-05, 0.00022114108801415304]\n", + "epoch 601, Pop max fitness [1.5557422446249105e-05, 0.00013693002875530603, 0.00024937655860349125]\n", + "epoch 602, Pop max fitness [1.5557422446249105e-05, 6.474168069403081e-05, 0.00011373976342129209]\n", + "epoch 603, Pop max fitness [1.5557422446249105e-05, 3.0834695199037954e-05, 6.09979260705136e-05]\n", + "epoch 604, Pop max fitness [1.5557422446249105e-05, 0.0008230452674897119, 0.0001608234158893535]\n", + "epoch 605, Pop max fitness [1.5557422446249105e-05, 2.7821829007038923e-05, 0.023809523809523808]\n", + "epoch 606, Pop max fitness [1.5557422446249105e-05, 3.120027456241615e-05, 0.0005452562704471102]\n", + "epoch 607, Pop max fitness [1.5557422446249105e-05, 9.862905611993293e-05, 0.002617801047120419]\n", + "epoch 608, Pop max fitness [1.5557422446249105e-05, 0.00010643959552953698, 0.0026595744680851063]\n", + "epoch 609, Pop max fitness [1.5557422446249105e-05, 6.802258349772124e-05, 0.0125]\n", + "epoch 610, Pop max fitness [1.5557422446249105e-05, 0.00013241525423728814, 0.125]\n", + "epoch 611, Pop max fitness [1.5557422446249105e-05, 9.92950054612253e-05, 0.001984126984126984]\n", + "epoch 612, Pop max fitness [1.5557422446249105e-05, 0.0008097165991902834, 0.00017470300489168413]\n", + "epoch 613, Pop max fitness [1.5557422446249105e-05, 0.0001422475106685633, 3.2295569047926627e-05]\n", + "epoch 614, Pop max fitness [1.5557422446249105e-05, 8.566044200788077e-05, 3.960239198447586e-05]\n", + "epoch 615, Pop max fitness [1.5557422446249105e-05, 9.765625e-05, 4.303851947493006e-05]\n", + "epoch 616, Pop max fitness [1.5557422446249105e-05, 1.5035559097265032e-05, 0.00011401208528103979]\n", + "epoch 617, Pop max fitness [1.5557422446249105e-05, 4.5355587808418e-05, 7.559721802237678e-05]\n", + "epoch 618, Pop max fitness [1.5557422446249105e-05, 5.3879310344827585e-05, 0.0001034875297526648]\n", + "epoch 619, Pop max fitness [1.5557422446249105e-05, 0.00045682960255824577, 0.00010479983232026829]\n", + "epoch 620, Pop max fitness [1.5557422446249105e-05, 0.0002244165170556553, 0.00018487705675725643]\n", + "epoch 621, Pop max fitness [1.5557422446249105e-05, 0.0006006006006006006, 0.00011355893708834885]\n", + "epoch 622, Pop max fitness [1.5557422446249105e-05, 0.0022222222222222222, 0.00017445917655268666]\n", + "epoch 623, Pop max fitness [1.5557422446249105e-05, 6.219679064560268e-05, 0.00011732957878681215]\n", + "epoch 624, Pop max fitness [1.5557422446249105e-05, 0.00011064394777605666, 0.0005927682276229994]\n", + "epoch 625, Pop max fitness [1.5557422446249105e-05, 3.443289029681151e-05, 0.001034126163391934]\n", + "epoch 626, Pop max fitness [1.5557422446249105e-05, 8.599931200550395e-05, 0.00014927601134497685]\n", + "epoch 627, Pop max fitness [1.5557422446249105e-05, 4.729474082482028e-05, 0.0007178750897343862]\n", + "epoch 628, Pop max fitness [1.5557422446249105e-05, 2.2589681033703803e-05, 0.0006153846153846154]\n", + "epoch 629, Pop max fitness [1.5557422446249105e-05, 7.267441860465116e-05, 0.005076142131979695]\n", + "epoch 630, Pop max fitness [1.5557422446249105e-05, 5.555864214678593e-05, 0.0007936507936507937]\n", + "epoch 631, Pop max fitness [1.5557422446249105e-05, 0.0001984914648670107, 0.0004892367906066536]\n", + "epoch 632, Pop max fitness [1.5557422446249105e-05, 3.19642000958926e-05, 0.00047664442326024784]\n", + "epoch 633, Pop max fitness [1.5557422446249105e-05, 0.00010278548668927948, 3.7510784350500766e-05]\n", + "epoch 634, Pop max fitness [1.5557422446249105e-05, 0.00038095238095238096, 3.7420948246828576e-05]\n", + "epoch 635, Pop max fitness [1.5557422446249105e-05, 0.0006006006006006006, 3.631213914811722e-05]\n", + "epoch 636, Pop max fitness [1.5557422446249105e-05, 3.962750148603131e-05, 3.635438252081288e-05]\n", + "epoch 637, Pop max fitness [1.5557422446249105e-05, 0.001092896174863388, 0.00012561236025624922]\n", + "epoch 638, Pop max fitness [1.5557422446249105e-05, 6.356066865823429e-05, 0.0007189072609633358]\n", + "epoch 639, Pop max fitness [1.5557422446249105e-05, 1.1137469789613195e-05, 8.95335303071e-05]\n", + "epoch 640, Pop max fitness [1.5557422446249105e-05, 2.611443344736636e-05, 0.001128668171557562]\n", + "epoch 641, Pop max fitness [1.5557422446249105e-05, 2.729481125638016e-05, 0.0008756567425569177]\n", + "epoch 642, Pop max fitness [1.5557422446249105e-05, 3.797516424258535e-05, 9.250693802035152e-05]\n", + "epoch 643, Pop max fitness [1.5557422446249105e-05, 3.7995364565523004e-05, 0.00010392849719393057]\n", + "epoch 644, Pop max fitness [1.5557422446249105e-05, 9.463423866754992e-05, 0.00010375596596804317]\n", + "epoch 645, Pop max fitness [1.5557422446249105e-05, 6.383250351078769e-05, 0.0002037905033625433]\n", + "epoch 646, Pop max fitness [1.5557422446249105e-05, 4.35085276714236e-05, 0.0007473841554559044]\n", + "epoch 647, Pop max fitness [1.5557422446249105e-05, 4.1377027474346244e-05, 0.00010663254425250586]\n", + "epoch 648, Pop max fitness [1.5557422446249105e-05, 0.00010968520346605243, 7.389344565137072e-05]\n", + "epoch 649, Pop max fitness [1.5557422446249105e-05, 2.8936859771977546e-05, 8.298066550493735e-05]\n", + "epoch 650, Pop max fitness [1.5557422446249105e-05, 2.8671368771145135e-05, 7.092701610043265e-05]\n", + "epoch 651, Pop max fitness [1.5557422446249105e-05, 0.0005282620179609086, 3.3588606744592236e-05]\n", + "epoch 652, Pop max fitness [1.5557422446249105e-05, 0.0005878894767783657, 4.753981459472308e-05]\n", + "epoch 653, Pop max fitness [1.5557422446249105e-05, 2.609126725285047e-05, 0.00011419435879867534]\n", + "epoch 654, Pop max fitness [1.5557422446249105e-05, 5.838052425710783e-05, 0.0003405994550408719]\n", + "epoch 655, Pop max fitness [1.5557422446249105e-05, 5.947071067499257e-05, 0.00011570056693277797]\n", + "epoch 656, Pop max fitness [1.5557422446249105e-05, 0.0001288161793121216, 0.000270929287455974]\n", + "epoch 657, Pop max fitness [1.5557422446249105e-05, 0.002386634844868735, 0.00026838432635534085]\n", + "epoch 658, Pop max fitness [1.5557422446249105e-05, 0.0012919896640826874, 0.00015328019619865113]\n", + "epoch 659, Pop max fitness [1.5557422446249105e-05, 0.0002168256721595837, 0.0025]\n", + "epoch 660, Pop max fitness [1.5557422446249105e-05, 0.00016366612111292964, 0.0002105263157894737]\n", + "epoch 661, Pop max fitness [1.5557422446249105e-05, 0.00013933398355858994, 0.0002224694104560623]\n", + "epoch 662, Pop max fitness [1.5557422446249105e-05, 0.0015174506828528073, 0.00015028554253080853]\n", + "epoch 663, Pop max fitness [1.5557422446249105e-05, 0.0002690341673392521, 0.000946969696969697]\n", + "epoch 664, Pop max fitness [1.5557422446249105e-05, 0.00025106703489831785, 0.00021551724137931034]\n", + "epoch 665, Pop max fitness [1.5557422446249105e-05, 5.8578876457149553e-05, 0.000496031746031746]\n", + "epoch 666, Pop max fitness [1.5557422446249105e-05, 0.0004347826086956522, 0.0001177301624676242]\n", + "epoch 667, Pop max fitness [1.5557422446249105e-05, 0.00011984659635666346, 9.617234083477592e-05]\n", + "epoch 668, Pop max fitness [1.5557422446249105e-05, 0.00047596382674916705, 0.0002358490566037736]\n", + "epoch 669, Pop max fitness [1.5557422446249105e-05, 0.0010319917440660474, 2.9556941447698994e-05]\n", + "epoch 670, Pop max fitness [1.5557422446249105e-05, 0.00012238404112103782, 2.7907236346384618e-05]\n", + "epoch 671, Pop max fitness [1.5557422446249105e-05, 0.0001238390092879257, 0.0009033423667570009]\n", + "epoch 672, Pop max fitness [1.5557422446249105e-05, 8.897588753447816e-05, 0.0015408320493066256]\n", + "epoch 673, Pop max fitness [1.5557422446249105e-05, 0.00012286521685710776, 0.00019015021867275147]\n", + "epoch 674, Pop max fitness [1.5557422446249105e-05, 0.007874015748031496, 0.00019860973187686197]\n", + "epoch 675, Pop max fitness [1.5557422446249105e-05, 0.000254000508001016, 0.00012350253180190194]\n", + "epoch 676, Pop max fitness [1.5557422446249105e-05, 0.00015078407720144752, 0.00013157894736842105]\n", + "epoch 677, Pop max fitness [1.5557422446249105e-05, 0.0002204585537918871, 0.0001288659793814433]\n", + "epoch 678, Pop max fitness [1.5557422446249105e-05, 0.00023452157598499062, 8.188666885031116e-05]\n", + "epoch 679, Pop max fitness [1.5557422446249105e-05, 2.2779043280182233e-05, 6.10798924993892e-05]\n", + "epoch 680, Pop max fitness [1.5557422446249105e-05, 1.54834713942866e-05, 0.0004409171075837742]\n", + "epoch 681, Pop max fitness [1.5557422446249105e-05, 9.916699722332408e-05, 0.0005959475566150178]\n", + "epoch 682, Pop max fitness [1.5557422446249105e-05, 0.00010229132569558102, 0.0005592841163310962]\n", + "epoch 683, Pop max fitness [1.5557422446249105e-05, 0.00010499790004199917, 7.346459006758743e-05]\n", + "epoch 684, Pop max fitness [1.5557422446249105e-05, 0.0005422993492407809, 0.005555555555555556]\n", + "epoch 685, Pop max fitness [1.5557422446249105e-05, 0.0004393673110720562, 0.0009881422924901185]\n", + "epoch 686, Pop max fitness [1.5557422446249105e-05, 0.000505050505050505, 0.0002800336040324839]\n", + "epoch 687, Pop max fitness [1.5557422446249105e-05, 5.675046819136258e-05, 0.0002764722145424385]\n", + "epoch 688, Pop max fitness [1.5557422446249105e-05, 0.00010359473738734072, 0.00021222410865874363]\n", + "epoch 689, Pop max fitness [1.5557422446249105e-05, 9.440196356084207e-05, 0.00022578460149017836]\n", + "epoch 690, Pop max fitness [1.5557422446249105e-05, 8.08865162177465e-05, 0.00027464982147761604]\n", + "epoch 691, Pop max fitness [1.5557422446249105e-05, 8.076239702794379e-05, 0.0002775464890369137]\n", + "epoch 692, Pop max fitness [1.5557422446249105e-05, 0.0002390057361376673, 9.493971328206589e-05]\n", + "epoch 693, Pop max fitness [1.5557422446249105e-05, 9.704968944099378e-05, 7.978299026647519e-05]\n", + "epoch 694, Pop max fitness [1.5557422446249105e-05, 8.901548869503294e-05, 6.514657980456026e-05]\n", + "epoch 695, Pop max fitness [1.5557422446249105e-05, 0.00010905125408942203, 0.00027839643652561246]\n", + "epoch 696, Pop max fitness [1.5557422446249105e-05, 0.0005903187721369539, 0.00024366471734892786]\n", + "epoch 697, Pop max fitness [1.5557422446249105e-05, 2.7303754266211605e-05, 0.0004828585224529213]\n", + "epoch 698, Pop max fitness [1.5557422446249105e-05, 0.00027151778441487917, 0.0002817695125387433]\n", + "epoch 699, Pop max fitness [1.5557422446249105e-05, 0.0003139717425431711, 0.0002835270768358378]\n", + "epoch 700, Pop max fitness [1.5557422446249105e-05, 0.0003341129301703976, 0.0002714440825190011]\n", + "epoch 701, Pop max fitness [1.5557422446249105e-05, 0.00010613457864572278, 0.006329113924050633]\n", + "epoch 702, Pop max fitness [1.5557422446249105e-05, 0.0010162601626016261, 0.0001224889759921607]\n", + "epoch 703, Pop max fitness [1.5557422446249105e-05, 0.0003333333333333333, 9.856100926473487e-05]\n", + "epoch 704, Pop max fitness [1.5557422446249105e-05, 0.00010219724067450178, 0.0003178639542275906]\n", + "epoch 705, Pop max fitness [1.5557422446249105e-05, 3.5500017750008876e-05, 0.00031826861871419476]\n", + "epoch 706, Pop max fitness [1.5557422446249105e-05, 2.9334115576415372e-05, 0.0013850415512465374]\n", + "epoch 707, Pop max fitness [1.5557422446249105e-05, 4.0567951318458416e-05, 0.0004266211604095563]\n", + "epoch 708, Pop max fitness [1.5557422446249105e-05, 2.032685584193837e-05, 0.0018115942028985507]\n", + "epoch 709, Pop max fitness [1.5557422446249105e-05, 1.4746000147460002e-05, 0.0017421602787456446]\n", + "epoch 710, Pop max fitness [1.5557422446249105e-05, 0.00013083867591259977, 0.0008237232289950577]\n", + "epoch 711, Pop max fitness [1.5557422446249105e-05, 0.0003606202668589975, 0.0008051529790660225]\n", + "epoch 712, Pop max fitness [1.5557422446249105e-05, 3.463923239461013e-05, 0.00019036740909956216]\n", + "epoch 713, Pop max fitness [1.5557422446249105e-05, 3.771165667307765e-05, 0.00023820867079561695]\n", + "epoch 714, Pop max fitness [1.5557422446249105e-05, 3.771734620752084e-05, 4.44642063139173e-05]\n", + "epoch 715, Pop max fitness [1.5557422446249105e-05, 6.763154335181928e-05, 0.0001230012300123001]\n", + "epoch 716, Pop max fitness [1.5557422446249105e-05, 3.560239248077471e-05, 0.0002440214738897023]\n", + "epoch 717, Pop max fitness [1.5557422446249105e-05, 0.00037764350453172205, 0.0004591368227731864]\n", + "epoch 718, Pop max fitness [1.5557422446249105e-05, 0.0001426126640045636, 0.000236630383341221]\n", + "epoch 719, Pop max fitness [1.5557422446249105e-05, 3.72425607984805e-05, 0.0004336513443191674]\n", + "epoch 720, Pop max fitness [1.5557422446249105e-05, 8.928571428571429e-05, 0.00011823126034523528]\n", + "epoch 721, Pop max fitness [1.5557422446249105e-05, 8.685079034219212e-05, 9.475080538184574e-05]\n", + "epoch 722, Pop max fitness [1.5557422446249105e-05, 0.0001085894233901618, 0.00012072920439454304]\n", + "epoch 723, Pop max fitness [1.5557422446249105e-05, 0.00010765421466250404, 8.756567425569177e-05]\n", + "epoch 724, Pop max fitness [1.5557422446249105e-05, 4.94168808064835e-05, 9.521995810321844e-05]\n", + "epoch 725, Pop max fitness [1.5557422446249105e-05, 0.00025826446280991736, 4.477277815088426e-05]\n", + "epoch 726, Pop max fitness [1.5557422446249105e-05, 6.633059166887768e-05, 0.00013422818791946307]\n", + "epoch 727, Pop max fitness [1.5557422446249105e-05, 0.00028042624789680314, 0.00011095084877399312]\n", + "epoch 728, Pop max fitness [1.5557422446249105e-05, 0.0002843332385555871, 0.0006472491909385113]\n", + "epoch 729, Pop max fitness [1.5557422446249105e-05, 6.98909700866648e-05, 0.00012433171702101205]\n", + "epoch 730, Pop max fitness [1.5557422446249105e-05, 3.663003663003663e-05, 0.0010362694300518134]\n", + "epoch 731, Pop max fitness [1.5557422446249105e-05, 0.0036900369003690036, 0.00023293733985557886]\n", + "epoch 732, Pop max fitness [1.5557422446249105e-05, 4.917146088410287e-05, 0.00023849272597185786]\n", + "epoch 733, Pop max fitness [1.5557422446249105e-05, 2.133788541555532e-05, 0.00044014084507042255]\n", + "epoch 734, Pop max fitness [1.5557422446249105e-05, 0.0006414368184733803, 0.0005599104143337066]\n", + "epoch 735, Pop max fitness [1.5557422446249105e-05, 0.00038476337052712584, 0.00047551117451260106]\n", + "epoch 736, Pop max fitness [1.5557422446249105e-05, 0.0007220216606498195, 0.000999000999000999]\n", + "epoch 737, Pop max fitness [1.5557422446249105e-05, 0.001091703056768559, 0.0003289473684210526]\n", + "epoch 738, Pop max fitness [1.5557422446249105e-05, 0.00010682619378271552, 0.0005694760820045558]\n", + "epoch 739, Pop max fitness [1.5557422446249105e-05, 5.286529921759357e-05, 0.001976284584980237]\n", + "epoch 740, Pop max fitness [1.5557422446249105e-05, 3.912210007433199e-05, 0.010309278350515464]\n", + "epoch 741, Pop max fitness [1.5557422446249105e-05, 4.3731140945467264e-05, 0.00024113817217265494]\n", + "epoch 742, Pop max fitness [1.5557422446249105e-05, 7.452120128176467e-05, 0.00030165912518853697]\n", + "epoch 743, Pop max fitness [1.5557422446249105e-05, 0.0001552072016141549, 0.00040966816878328555]\n", + "epoch 744, Pop max fitness [1.5557422446249105e-05, 0.00018453589223103894, 0.003067484662576687]\n", + "epoch 745, Pop max fitness [1.5557422446249105e-05, 0.00011147029316687103, 0.0007656967840735069]\n", + "epoch 746, Pop max fitness [1.5557422446249105e-05, 9.022827754218172e-05, 0.0007836990595611285]\n", + "epoch 747, Pop max fitness [1.5557422446249105e-05, 0.00031959092361776926, 0.003968253968253968]\n", + "epoch 748, Pop max fitness [1.5557422446249105e-05, 1.6116814672748078e-05, 0.0012919896640826874]\n", + "epoch 749, Pop max fitness [1.5557422446249105e-05, 0.00017869907076483203, 0.00011614401858304297]\n", + "epoch 750, Pop max fitness [1.5557422446249105e-05, 2.8503021320259948e-05, 3.438434824467902e-05]\n", + "epoch 751, Pop max fitness [1.5557422446249105e-05, 3.210169817983371e-05, 9.374707040404987e-05]\n", + "epoch 752, Pop max fitness [1.5557422446249105e-05, 0.0002690341673392521, 9.087604507451835e-05]\n", + "epoch 753, Pop max fitness [1.5557422446249105e-05, 6.125199068969742e-05, 0.00021331058020477816]\n", + "epoch 754, Pop max fitness [1.5557422446249105e-05, 0.00022177866489243733, 0.00016886187098953058]\n", + "epoch 755, Pop max fitness [1.5557422446249105e-05, 2.243208685704031e-05, 6.237135907191417e-05]\n", + "epoch 756, Pop max fitness [1.5557422446249105e-05, 3.2918559483836984e-05, 7.440476190476191e-05]\n", + "epoch 757, Pop max fitness [1.5557422446249105e-05, 3.53082409434362e-05, 0.0004798464491362764]\n", + "epoch 758, Pop max fitness [1.5557422446249105e-05, 3.551767004084532e-05, 0.0010162601626016261]\n", + "epoch 759, Pop max fitness [1.5557422446249105e-05, 0.0001489203276247208, 0.0016051364365971107]\n", + "epoch 760, Pop max fitness [1.5557422446249105e-05, 0.0007097232079489, 0.00099601593625498]\n", + "epoch 761, Pop max fitness [1.5557422446249105e-05, 0.0002942041776993233, 0.0007246376811594203]\n", + "epoch 762, Pop max fitness [1.5557422446249105e-05, 2.5801124929046907e-05, 0.005555555555555556]\n", + "epoch 763, Pop max fitness [1.5557422446249105e-05, 0.00010820168794633196, 0.0003929273084479371]\n", + "epoch 764, Pop max fitness [1.5557422446249105e-05, 0.0053475935828877, 3.293048374880627e-05]\n", + "epoch 765, Pop max fitness [1.5557422446249105e-05, 1.2165302125278281e-05, 6.553509404285995e-05]\n", + "epoch 766, Pop max fitness [1.5557422446249105e-05, 0.0005614823133071309, 4.30274084591885e-05]\n", + "epoch 767, Pop max fitness [1.5557422446249105e-05, 0.00030665440049064706, 4.30274084591885e-05]\n", + "epoch 768, Pop max fitness [1.5557422446249105e-05, 0.0005141388174807198, 6.356470887363335e-05]\n", + "epoch 769, Pop max fitness [1.5557422446249105e-05, 0.00017029972752043596, 0.00012711325791280032]\n", + "epoch 770, Pop max fitness [1.5557422446249105e-05, 7.863489816780687e-05, 0.00010785159620362382]\n", + "epoch 771, Pop max fitness [1.5557422446249105e-05, 2.9058785923924097e-05, 1.4728191230834941e-05]\n", + "epoch 772, Pop max fitness [1.5557422446249105e-05, 0.00017857142857142857, 3.6888118337083625e-05]\n", + "epoch 773, Pop max fitness [1.5557422446249105e-05, 0.0007621951219512195, 6.122573930080205e-05]\n", + "epoch 774, Pop max fitness [1.5557422446249105e-05, 0.00026845637583892615, 0.00012307692307692307]\n", + "epoch 775, Pop max fitness [1.5557422446249105e-05, 8.172605426610003e-05, 0.0009165902841429881]\n", + "epoch 776, Pop max fitness [1.5557422446249105e-05, 5.1754476762239936e-05, 0.00013475272874275703]\n", + "epoch 777, Pop max fitness [1.5557422446249105e-05, 0.00022512381809995497, 0.00036859565057132326]\n", + "epoch 778, Pop max fitness [1.5557422446249105e-05, 6.734006734006734e-05, 0.00015467904098994585]\n", + "epoch 779, Pop max fitness [1.5557422446249105e-05, 9.03179190751445e-05, 0.0006939625260235947]\n", + "epoch 780, Pop max fitness [1.5557422446249105e-05, 0.0001838235294117647, 0.0015503875968992248]\n", + "epoch 781, Pop max fitness [1.5557422446249105e-05, 2.2194109683290053e-05, 0.0009066183136899365]\n", + "epoch 782, Pop max fitness [1.5557422446249105e-05, 0.07692307692307693, 0.00017292062943109114]\n", + "epoch 783, Pop max fitness [1.5557422446249105e-05, 2.511553144464537e-05, 0.00014394702749388226]\n", + "epoch 784, Pop max fitness [1.5557422446249105e-05, 0.00016603021749958492, 6.383250351078769e-05]\n", + "epoch 785, Pop max fitness [1.5557422446249105e-05, 0.00032658393207054214, 0.00425531914893617]\n", + "epoch 786, Pop max fitness [1.5557422446249105e-05, 0.0002449179524859172, 5.870267097152921e-05]\n", + "epoch 787, Pop max fitness [1.5557422446249105e-05, 7.352941176470588e-05, 0.0012919896640826874]\n", + "epoch 788, Pop max fitness [1.5557422446249105e-05, 3.2125417630429196e-05, 0.0006447453255963894]\n", + "epoch 789, Pop max fitness [1.5557422446249105e-05, 4.057288919543961e-05, 0.0006653359946773121]\n", + "epoch 790, Pop max fitness [1.5557422446249105e-05, 2.9653352311478814e-05, 8.372404554588077e-05]\n", + "epoch 791, Pop max fitness [1.5557422446249105e-05, 0.0005299417064122947, 0.0001016260162601626]\n", + "epoch 792, Pop max fitness [1.5557422446249105e-05, 1.6231658226204388e-05, 0.0003588087549336204]\n", + "epoch 793, Pop max fitness [1.5557422446249105e-05, 2.6325488337808667e-05, 0.0004182350480970305]\n", + "epoch 794, Pop max fitness [1.5557422446249105e-05, 2.0046106043900973e-05, 0.00010105092966855295]\n", + "epoch 795, Pop max fitness [1.5557422446249105e-05, 5.8840835539864665e-05, 0.00022836263987211693]\n", + "epoch 796, Pop max fitness [1.5557422446249105e-05, 0.00011524720525527257, 0.000223463687150838]\n", + "epoch 797, Pop max fitness [1.5557422446249105e-05, 0.00021781746896101068, 0.00011732957878681215]\n", + "epoch 798, Pop max fitness [1.5557422446249105e-05, 0.000741839762611276, 2.867301296020186e-05]\n", + "epoch 799, Pop max fitness [1.5557422446249105e-05, 0.0003695491500369549, 3.934684241589613e-05]\n", + "epoch 800, Pop max fitness [1.5557422446249105e-05, 2.1207108622810367e-05, 7.082152974504249e-05]\n", + "epoch 801, Pop max fitness [1.5557422446249105e-05, 0.00011095084877399312, 8.979885057471264e-05]\n", + "epoch 802, Pop max fitness [1.5557422446249105e-05, 1.7630776283079744e-05, 0.00042936882782310007]\n", + "epoch 803, Pop max fitness [1.5557422446249105e-05, 0.011904761904761904, 0.00029877502240812666]\n", + "epoch 804, Pop max fitness [1.5557422446249105e-05, 0.0002021018593371059, 0.0003189792663476874]\n", + "epoch 805, Pop max fitness [1.5557422446249105e-05, 0.0003541076487252125, 0.00035523978685612787]\n", + "epoch 806, Pop max fitness [1.5557422446249105e-05, 7.651109410864575e-05, 7.100759781296599e-05]\n", + "epoch 807, Pop max fitness [1.5557422446249105e-05, 6.754018641091449e-05, 0.00043233895373973193]\n", + "epoch 808, Pop max fitness [1.5557422446249105e-05, 3.498338289312577e-05, 0.0005558643690939411]\n", + "epoch 809, Pop max fitness [1.5557422446249105e-05, 0.00011511453896627144, 5.243838489774515e-05]\n", + "epoch 810, Pop max fitness [1.5557422446249105e-05, 0.0005509641873278236, 0.0005070993914807302]\n", + "epoch 811, Pop max fitness [1.5557422446249105e-05, 8.950147677436678e-05, 6.669334400426837e-05]\n", + "epoch 812, Pop max fitness [1.5557422446249105e-05, 0.0007733952049497294, 5.4448437329848636e-05]\n", + "epoch 813, Pop max fitness [1.5557422446249105e-05, 7.114905727499111e-05, 0.00011547344110854503]\n", + "epoch 814, Pop max fitness [1.5557422446249105e-05, 5.143768324674657e-05, 0.0002627430373095113]\n", + "epoch 815, Pop max fitness [1.5557422446249105e-05, 0.037037037037037035, 7.878358150161507e-05]\n", + "epoch 816, Pop max fitness [1.5557422446249105e-05, 3.1339120624275284e-05, 8.56971462850287e-05]\n", + "epoch 817, Pop max fitness [1.5557422446249105e-05, 0.00010778184953653804, 3.570280981113214e-05]\n", + "epoch 818, Pop max fitness [1.5557422446249105e-05, 8.766546857192952e-05, 3.9572615749901066e-05]\n", + "epoch 819, Pop max fitness [1.5557422446249105e-05, 8.574123295892996e-05, 6.0132291040288637e-05]\n", + "epoch 820, Pop max fitness [1.5557422446249105e-05, 9.065361254645998e-05, 0.0002549069589599796]\n", + "epoch 821, Pop max fitness [1.5557422446249105e-05, 0.00011339154099104207, 4.76598989610142e-05]\n", + "epoch 822, Pop max fitness [1.5557422446249105e-05, 2.2221728406035422e-05, 6.984703499336453e-05]\n", + "epoch 823, Pop max fitness [1.5557422446249105e-05, 7.112375533428166e-05, 6.044122091266244e-05]\n", + "epoch 824, Pop max fitness [1.5557422446249105e-05, 5.3407391582995086e-05, 7.136230642974381e-05]\n", + "epoch 825, Pop max fitness [1.5557422446249105e-05, 3.916807018918178e-05, 0.0006414368184733803]\n", + "epoch 826, Pop max fitness [1.5557422446249105e-05, 0.00013616557734204794, 0.00017988846914912754]\n", + "epoch 827, Pop max fitness [1.5557422446249105e-05, 5.861664712778429e-05, 9.129918743723181e-05]\n", + "epoch 828, Pop max fitness [1.5557422446249105e-05, 5.904581955597544e-05, 9.131586156515387e-05]\n", + "epoch 829, Pop max fitness [1.5557422446249105e-05, 3.6806654643159485e-05, 9.042408897730355e-05]\n", + "epoch 830, Pop max fitness [1.5557422446249105e-05, 0.00014738393515106854, 0.00020234722784297855]\n", + "epoch 831, Pop max fitness [1.5557422446249105e-05, 0.0007541478129713424, 0.0013386880856760374]\n", + "epoch 832, Pop max fitness [1.5557422446249105e-05, 0.0008130081300813008, 0.0007704160246533128]\n", + "epoch 833, Pop max fitness [1.5557422446249105e-05, 3.547986517651233e-05, 0.00020627062706270627]\n", + "epoch 834, Pop max fitness [1.5557422446249105e-05, 1.507136290334735e-05, 9.731413001167769e-05]\n", + "epoch 835, Pop max fitness [1.5557422446249105e-05, 4.502273648192337e-05, 0.00029171528588098014]\n", + "epoch 836, Pop max fitness [1.5557422446249105e-05, 2.5252525252525253e-05, 0.0030120481927710845]\n", + "epoch 837, Pop max fitness [1.5557422446249105e-05, 0.00010888501742160279, 8.364001338240214e-05]\n", + "epoch 838, Pop max fitness [1.5557422446249105e-05, 2.2213336887467235e-05, 0.00010379904504878556]\n", + "epoch 839, Pop max fitness [1.5557422446249105e-05, 6.26330953275711e-05, 0.00013099292638197538]\n", + "epoch 840, Pop max fitness [1.5557422446249105e-05, 7.755545214828603e-05, 9.380863039399625e-05]\n", + "epoch 841, Pop max fitness [1.5557422446249105e-05, 3.282994090610637e-05, 6.756300249983109e-05]\n", + "epoch 842, Pop max fitness [1.5557422446249105e-05, 3.075030750307503e-05, 0.00012634238787113077]\n", + "epoch 843, Pop max fitness [1.5557422446249105e-05, 5.7736720554272516e-05, 0.00012217470983506414]\n", + "epoch 844, Pop max fitness [1.5557422446249105e-05, 4.549176599035575e-05, 0.14285714285714285]\n", + "epoch 845, Pop max fitness [1.5557422446249105e-05, 0.0003453038674033149, 5.423581733376722e-05]\n", + "epoch 846, Pop max fitness [1.5557422446249105e-05, 7.41399762752076e-05, 0.00013466199838405601]\n", + "epoch 847, Pop max fitness [1.5557422446249105e-05, 9.686168151879117e-05, 6.45577792123951e-05]\n", + "epoch 848, Pop max fitness [1.5557422446249105e-05, 5.8139534883720933e-05, 0.00017295053614666206]\n", + "epoch 849, Pop max fitness [1.5557422446249105e-05, 3.694399290675336e-05, 0.00013234515616728428]\n", + "epoch 850, Pop max fitness [1.5557422446249105e-05, 3.7136066547831256e-05, 0.00016972165648336727]\n", + "epoch 851, Pop max fitness [1.5557422446249105e-05, 1.3825904214135604e-05, 0.0001667778519012675]\n", + "epoch 852, Pop max fitness [1.5557422446249105e-05, 1.4397396950631326e-05, 0.001597444089456869]\n", + "epoch 853, Pop max fitness [1.5557422446249105e-05, 4.625774817281895e-05, 0.00025412960609911054]\n", + "epoch 854, Pop max fitness [1.5557422446249105e-05, 0.00018422991893883567, 0.0003572704537334762]\n", + "epoch 855, Pop max fitness [1.5557422446249105e-05, 5.853430110044486e-05, 0.003484320557491289]\n", + "epoch 856, Pop max fitness [1.5557422446249105e-05, 0.00026455026455026457, 0.000121921482565228]\n", + "epoch 857, Pop max fitness [1.5557422446249105e-05, 2.9066387629345423e-05, 0.00015441630636195183]\n", + "epoch 858, Pop max fitness [1.5557422446249105e-05, 0.0006053268765133172, 7.32922896511287e-05]\n", + "epoch 859, Pop max fitness [1.5557422446249105e-05, 0.0002958579881656805, 2.802612034416076e-05]\n", + "epoch 860, Pop max fitness [1.5557422446249105e-05, 7.883948281299275e-05, 4.8202063048298465e-05]\n", + "epoch 861, Pop max fitness [1.5557422446249105e-05, 3.986605007175889e-05, 0.00015451174289245981]\n", + "epoch 862, Pop max fitness [1.5557422446249105e-05, 3.301419610432486e-05, 0.00015673981191222572]\n", + "epoch 863, Pop max fitness [1.5557422446249105e-05, 0.00012799180852425445, 0.00011848341232227489]\n", + "epoch 864, Pop max fitness [1.5557422446249105e-05, 0.00022967386311437759, 4.49195939268709e-05]\n", + "epoch 865, Pop max fitness [1.5557422446249105e-05, 3.88681592039801e-05, 8.308408109006314e-05]\n", + "epoch 866, Pop max fitness [1.5557422446249105e-05, 0.000544069640914037, 6.02990834539315e-05]\n", + "epoch 867, Pop max fitness [1.5557422446249105e-05, 1.879310668846667e-05, 0.00022411474675033618]\n", + "epoch 868, Pop max fitness [1.5557422446249105e-05, 3.507295173961841e-05, 2.0538098172109262e-05]\n", + "epoch 869, Pop max fitness [1.5557422446249105e-05, 0.0002687449610319806, 0.0001294665976178146]\n", + "epoch 870, Pop max fitness [1.5557422446249105e-05, 3.108292925525301e-05, 1.7409773847037728e-05]\n", + "epoch 871, Pop max fitness [1.5557422446249105e-05, 0.0007462686567164179, 1.6245106161768766e-05]\n", + "epoch 872, Pop max fitness [1.5557422446249105e-05, 0.0002331002331002331, 1.6167887342161e-05]\n", + "epoch 873, Pop max fitness [1.5557422446249105e-05, 8.927774305865548e-05, 7.694083249980765e-05]\n", + "epoch 874, Pop max fitness [1.5557422446249105e-05, 0.00019022256039566293, 1.912631015224543e-05]\n", + "epoch 875, Pop max fitness [1.5557422446249105e-05, 5.681495369581274e-05, 1.8688444934497e-05]\n", + "epoch 876, Pop max fitness [1.5557422446249105e-05, 5.554012774229381e-05, 9.515653249595585e-05]\n", + "epoch 877, Pop max fitness [1.5557422446249105e-05, 0.00014255167498218105, 0.0003694126339120798]\n", + "epoch 878, Pop max fitness [1.5557422446249105e-05, 0.00020733982998133942, 0.002421307506053269]\n", + "epoch 879, Pop max fitness [1.5557422446249105e-05, 0.00024324981756263683, 0.00035298270384751147]\n", + "epoch 880, Pop max fitness [1.5557422446249105e-05, 0.00012627857052658164, 7.805791897588011e-05]\n", + "epoch 881, Pop max fitness [1.5557422446249105e-05, 6.886103842445945e-05, 0.0001820498816675769]\n", + "epoch 882, Pop max fitness [1.5557422446249105e-05, 2.9102761852099765e-05, 0.00012211503236048357]\n", + "epoch 883, Pop max fitness [1.5557422446249105e-05, 1.589597672829007e-05, 0.0003541076487252125]\n", + "epoch 884, Pop max fitness [1.5557422446249105e-05, 4.050550874918989e-05, 3.360215053763441e-05]\n", + "epoch 885, Pop max fitness [1.5557422446249105e-05, 1.0469340536239623e-05, 0.0003380662609871535]\n", + "epoch 886, Pop max fitness [1.5557422446249105e-05, 1.4267166968655033e-05, 0.0006609385327164573]\n", + "epoch 887, Pop max fitness [1.5557422446249105e-05, 7.439922624804702e-05, 0.0005376344086021505]\n", + "epoch 888, Pop max fitness [1.5557422446249105e-05, 5.201019399802361e-05, 0.0008156606851549756]\n", + "epoch 889, Pop max fitness [1.5557422446249105e-05, 5.784024524263983e-05, 0.0006944444444444445]\n", + "epoch 890, Pop max fitness [1.5557422446249105e-05, 1.273836668662344e-05, 0.00025967281225655674]\n", + "epoch 891, Pop max fitness [1.5557422446249105e-05, 0.00017292062943109114, 0.125]\n", + "epoch 892, Pop max fitness [1.5557422446249105e-05, 0.0003370407819346141, 8.43810648890389e-05]\n", + "epoch 893, Pop max fitness [1.5557422446249105e-05, 5.4033608904738746e-05, 8.566044200788077e-05]\n", + "epoch 894, Pop max fitness [1.5557422446249105e-05, 1.73704597960708e-05, 0.0002284669865204478]\n", + "epoch 895, Pop max fitness [1.5557422446249105e-05, 6.424257998201208e-05, 0.0006053268765133172]\n", + "epoch 896, Pop max fitness [1.5557422446249105e-05, 8.69414014953921e-05, 0.0001412030499858797]\n", + "epoch 897, Pop max fitness [1.5557422446249105e-05, 0.0011933174224343676, 0.00012394645513138323]\n", + "epoch 898, Pop max fitness [1.5557422446249105e-05, 2.148320013749248e-05, 0.0005213764337851929]\n", + "epoch 899, Pop max fitness [1.5557422446249105e-05, 0.00011261261261261261, 0.000881057268722467]\n", + "epoch 900, Pop max fitness [1.5557422446249105e-05, 2.9238056254020234e-05, 0.0002832058906825262]\n", + "epoch 901, Pop max fitness [1.5557422446249105e-05, 0.00047824007651841227, 0.0002808199943836001]\n", + "epoch 902, Pop max fitness [1.5557422446249105e-05, 0.0004861448711716091, 0.00010203040506070809]\n", + "epoch 903, Pop max fitness [1.5557422446249105e-05, 3.726476616359232e-05, 0.00010303967027305513]\n", + "epoch 904, Pop max fitness [1.5557422446249105e-05, 0.00016889039013680122, 0.00017822135091783995]\n", + "epoch 905, Pop max fitness [1.5557422446249105e-05, 0.00019904458598726116, 0.00017009695526450075]\n", + "epoch 906, Pop max fitness [1.5557422446249105e-05, 7.562008469449486e-05, 0.00011310937676733401]\n", + "epoch 907, Pop max fitness [1.5557422446249105e-05, 0.00012186205215695832, 0.0002492522432701894]\n", + "epoch 908, Pop max fitness [1.5557422446249105e-05, 2.618075191119489e-05, 0.002688172043010753]\n", + "epoch 909, Pop max fitness [1.5557422446249105e-05, 0.0005396654074473826, 0.000243605359317905]\n", + "epoch 910, Pop max fitness [1.5557422446249105e-05, 0.0003803727653100038, 0.00010821339681852613]\n", + "epoch 911, Pop max fitness [1.5557422446249105e-05, 0.00020267531414673692, 0.00032299741602067185]\n", + "epoch 912, Pop max fitness [1.5557422446249105e-05, 0.0002947244326554671, 0.00011510128913443831]\n", + "epoch 913, Pop max fitness [1.5557422446249105e-05, 0.00032331070158422246, 0.00013982102908277405]\n", + "epoch 914, Pop max fitness [1.5557422446249105e-05, 0.0019120458891013384, 0.00010198878123406426]\n", + "epoch 915, Pop max fitness [1.5557422446249105e-05, 0.0001023122570083896, 9.806805923310778e-05]\n", + "epoch 916, Pop max fitness [1.5557422446249105e-05, 2.747403703500192e-05, 0.00026455026455026457]\n", + "epoch 917, Pop max fitness [1.5557422446249105e-05, 8.819119851838787e-05, 0.000277623542476402]\n", + "epoch 918, Pop max fitness [1.5557422446249105e-05, 7.965588657001752e-05, 0.000643915003219575]\n", + "epoch 919, Pop max fitness [1.5557422446249105e-05, 2.132332558585837e-05, 0.0002525252525252525]\n", + "epoch 920, Pop max fitness [1.5557422446249105e-05, 0.00017328019407381737, 0.0003057169061449098]\n", + "epoch 921, Pop max fitness [1.5557422446249105e-05, 4.7662170535246174e-05, 0.00031496062992125983]\n", + "epoch 922, Pop max fitness [1.5557422446249105e-05, 2.5978749383004704e-05, 0.00013388673182487614]\n", + "epoch 923, Pop max fitness [1.5557422446249105e-05, 2.7590773645293013e-05, 6.097560975609756e-05]\n", + "epoch 924, Pop max fitness [1.5557422446249105e-05, 2.758772897815052e-05, 0.0002991325157044571]\n", + "epoch 925, Pop max fitness [1.5557422446249105e-05, 3.4789869190091844e-05, 0.001040582726326743]\n", + "epoch 926, Pop max fitness [1.5557422446249105e-05, 6.005284650492433e-05, 0.0003972983710766786]\n", + "epoch 927, Pop max fitness [1.5557422446249105e-05, 2.5162929971565888e-05, 0.0003009328919650918]\n", + "epoch 928, Pop max fitness [1.5557422446249105e-05, 0.0003380662609871535, 0.00020820320632937748]\n", + "epoch 929, Pop max fitness [1.5557422446249105e-05, 0.0005230125523012552, 0.00017917935853789643]\n", + "epoch 930, Pop max fitness [1.5557422446249105e-05, 4.621285641665511e-05, 0.00022416498542927594]\n", + "epoch 931, Pop max fitness [1.5557422446249105e-05, 4.7440580672707434e-05, 0.0001218769043266301]\n", + "epoch 932, Pop max fitness [1.5557422446249105e-05, 0.000425531914893617, 0.00012038040207054291]\n", + "epoch 933, Pop max fitness [1.5557422446249105e-05, 5.116659844453541e-05, 0.00024703557312252963]\n", + "epoch 934, Pop max fitness [1.5557422446249105e-05, 0.00020559210526315788, 0.0002800336040324839]\n", + "epoch 935, Pop max fitness [1.5557422446249105e-05, 5.270369979972594e-05, 0.0006578947368421052]\n", + "epoch 936, Pop max fitness [1.5557422446249105e-05, 6.725401842760106e-05, 0.00016066838046272492]\n", + "epoch 937, Pop max fitness [1.5557422446249105e-05, 0.0010482180293501049, 7.060152499293985e-05]\n", + "epoch 938, Pop max fitness [1.5557422446249105e-05, 3.642854540818185e-05, 1.8754688672168043e-05]\n", + "epoch 939, Pop max fitness [1.5557422446249105e-05, 0.00012062726176115802, 1.5835312747426762e-05]\n", + "epoch 940, Pop max fitness [1.5557422446249105e-05, 7.218131947451999e-05, 0.00034698126301179735]\n", + "epoch 941, Pop max fitness [1.5557422446249105e-05, 0.00013408420488066506, 3.408432461910767e-05]\n", + "epoch 942, Pop max fitness [1.5557422446249105e-05, 0.005128205128205128, 0.0002933411557641537]\n", + "epoch 943, Pop max fitness [1.5557422446249105e-05, 0.0004424778761061947, 2.941436009059623e-05]\n", + "epoch 944, Pop max fitness [1.5557422446249105e-05, 8.19000819000819e-05, 3.59401955146636e-05]\n", + "epoch 945, Pop max fitness [1.5557422446249105e-05, 4.2511584406750836e-05, 2.4290121207704826e-05]\n", + "epoch 946, Pop max fitness [1.5557422446249105e-05, 4.714757190004715e-05, 0.0003444712366517396]\n", + "epoch 947, Pop max fitness [1.5557422446249105e-05, 0.0001763046544428773, 7.337295472888693e-05]\n", + "epoch 948, Pop max fitness [1.5557422446249105e-05, 0.0004512635379061372, 0.009259259259259259]\n", + "epoch 949, Pop max fitness [1.5557422446249105e-05, 0.00012735608762098828, 0.00016]\n", + "epoch 950, Pop max fitness [1.5557422446249105e-05, 0.000140331181588549, 5.486366379546826e-05]\n", + "epoch 951, Pop max fitness [1.5557422446249105e-05, 0.0001444460494005489, 0.0008]\n", + "epoch 952, Pop max fitness [1.5557422446249105e-05, 0.00022920009168003668, 0.0008635578583765112]\n", + "epoch 953, Pop max fitness [1.5557422446249105e-05, 7.054176072234762e-05, 0.0006105006105006105]\n", + "epoch 954, Pop max fitness [1.5557422446249105e-05, 3.7530493525989866e-05, 4.373496610540127e-05]\n", + "epoch 955, Pop max fitness [1.5557422446249105e-05, 0.00012773023374632777, 0.0009132420091324201]\n", + "epoch 956, Pop max fitness [1.5557422446249105e-05, 0.0002663115845539281, 7.160246312473149e-05]\n", + "epoch 957, Pop max fitness [1.5557422446249105e-05, 8.481044864727334e-05, 6.272345229881452e-05]\n", + "epoch 958, Pop max fitness [1.5557422446249105e-05, 0.0021598272138228943, 0.0037735849056603774]\n", + "epoch 959, Pop max fitness [1.5557422446249105e-05, 3.79636308416537e-05, 0.0002656042496679947]\n", + "epoch 960, Pop max fitness [1.5557422446249105e-05, 3.4445937101718855e-05, 0.0012690355329949238]\n", + "epoch 961, Pop max fitness [1.5557422446249105e-05, 0.0003916960438699569, 0.0009578544061302681]\n", + "epoch 962, Pop max fitness [1.5557422446249105e-05, 3.5923411287135827e-05, 0.00014690759512266783]\n", + "epoch 963, Pop max fitness [1.5557422446249105e-05, 1.6226127310194877e-05, 0.002652519893899204]\n", + "epoch 964, Pop max fitness [1.5557422446249105e-05, 0.00023837902264600716, 0.007407407407407408]\n", + "epoch 965, Pop max fitness [1.5557422446249105e-05, 0.00012548625925461163, 0.001697792869269949]\n", + "epoch 966, Pop max fitness [1.5557422446249105e-05, 5.17196793379881e-05, 0.00234192037470726]\n", + "epoch 967, Pop max fitness [1.5557422446249105e-05, 1.779359430604982e-05, 0.0013568521031207597]\n", + "epoch 968, Pop max fitness [1.5557422446249105e-05, 3.075503613716746e-05, 0.00018501387604070305]\n", + "epoch 969, Pop max fitness [1.5557422446249105e-05, 2.982937596945472e-05, 0.0002935995302407516]\n", + "epoch 970, Pop max fitness [1.5557422446249105e-05, 2.369443654629893e-05, 0.00014690759512266783]\n", + "epoch 971, Pop max fitness [1.5557422446249105e-05, 9.044044496698923e-05, 0.000444247001332741]\n", + "epoch 972, Pop max fitness [1.5557422446249105e-05, 0.000945179584120983, 0.0005333333333333334]\n", + "epoch 973, Pop max fitness [1.5557422446249105e-05, 0.0002573340195573855, 0.004219409282700422]\n", + "epoch 974, Pop max fitness [1.5557422446249105e-05, 4.35369410945187e-05, 8.364700961940611e-05]\n", + "epoch 975, Pop max fitness [1.5557422446249105e-05, 3.759539832324523e-05, 0.00013152702880441932]\n", + "epoch 976, Pop max fitness [1.5557422446249105e-05, 0.0005184033177812338, 0.000664451827242525]\n", + "epoch 977, Pop max fitness [1.5557422446249105e-05, 9.48316737790422e-05, 0.0002452783909737552]\n", + "epoch 978, Pop max fitness [1.5557422446249105e-05, 0.00021579628830384117, 0.00012492192379762648]\n", + "epoch 979, Pop max fitness [1.5557422446249105e-05, 0.00014738393515106854, 9.24129008409574e-05]\n", + "epoch 980, Pop max fitness [1.5557422446249105e-05, 2.5958518287776135e-05, 0.00012198097096852891]\n", + "epoch 981, Pop max fitness [1.5557422446249105e-05, 4.5160998961297026e-05, 0.00018165304268846503]\n", + "epoch 982, Pop max fitness [1.5557422446249105e-05, 0.0006060606060606061, 0.00018145527127563056]\n", + "epoch 983, Pop max fitness [1.5557422446249105e-05, 4.051043143609479e-05, 0.00017349063150589867]\n", + "epoch 984, Pop max fitness [1.5557422446249105e-05, 4.076807044722573e-05, 0.00046992481203007516]\n", + "epoch 985, Pop max fitness [1.5557422446249105e-05, 0.008403361344537815, 0.0005353319057815846]\n", + "epoch 986, Pop max fitness [1.5557422446249105e-05, 4.391743522178305e-05, 0.002403846153846154]\n", + "epoch 987, Pop max fitness [1.5557422446249105e-05, 8.778860503906593e-05, 0.0004411116012351125]\n", + "epoch 988, Pop max fitness [1.5557422446249105e-05, 3.60971735913078e-05, 0.00043956043956043956]\n", + "epoch 989, Pop max fitness [1.5557422446249105e-05, 5.865446653762684e-05, 4.6816479400749066e-05]\n", + "epoch 990, Pop max fitness [1.5557422446249105e-05, 4.260213862735909e-05, 3.128421711246676e-05]\n", + "epoch 991, Pop max fitness [1.5557422446249105e-05, 2.9730051135687954e-05, 0.0003058103975535168]\n", + "epoch 992, Pop max fitness [1.5557422446249105e-05, 0.00013344008540165466, 6.588917440864466e-05]\n", + "epoch 993, Pop max fitness [1.5557422446249105e-05, 0.007936507936507936, 2.9556941447698994e-05]\n", + "epoch 994, Pop max fitness [1.5557422446249105e-05, 0.00025188916876574307, 0.000142025280499929]\n", + "epoch 995, Pop max fitness [1.5557422446249105e-05, 0.0003313452617627568, 8.830022075055188e-05]\n", + "epoch 996, Pop max fitness [1.5557422446249105e-05, 0.00023946360153256704, 0.008928571428571428]\n", + "epoch 997, Pop max fitness [1.5557422446249105e-05, 0.0006675567423230974, 0.007352941176470588]\n", + "epoch 998, Pop max fitness [1.5557422446249105e-05, 0.0005268703898840885, 0.0006476683937823834]\n", + "epoch 999, Pop max fitness [1.5557422446249105e-05, 1.441296013375227e-05, 0.0625]\n", + "epoch 1000, Pop max fitness [1.5557422446249105e-05, 1.4622020763269484e-05, 0.00016147263038914905]\n", + "epoch 1001, Pop max fitness [1.5557422446249105e-05, 9.355412105903265e-05, 0.0009389671361502347]\n", + "epoch 1002, Pop max fitness [1.5557422446249105e-05, 1.8824946819525236e-05, 0.0007993605115907274]\n", + "epoch 1003, Pop max fitness [1.5557422446249105e-05, 3.5683699685983445e-05, 0.0019193857965451055]\n", + "epoch 1004, Pop max fitness [1.5557422446249105e-05, 8.534607834769993e-05, 0.00031055900621118014]\n", + "epoch 1005, Pop max fitness [1.5557422446249105e-05, 0.00016883336147222692, 0.0005330490405117271]\n", + "epoch 1006, Pop max fitness [1.5557422446249105e-05, 0.0001368738023542294, 0.0058823529411764705]\n", + "epoch 1007, Pop max fitness [1.5557422446249105e-05, 9.895111814763506e-05, 0.0005630630630630631]\n", + "epoch 1008, Pop max fitness [1.5557422446249105e-05, 6.247657128576784e-05, 0.001098901098901099]\n", + "epoch 1009, Pop max fitness [1.5557422446249105e-05, 0.00011641443538998836, 9.659036028204386e-05]\n", + "epoch 1010, Pop max fitness [1.5557422446249105e-05, 4.9062898636051415e-05, 0.0010362694300518134]\n", + "epoch 1011, Pop max fitness [1.5557422446249105e-05, 3.0504545177231407e-05, 0.00016396130513198886]\n", + "epoch 1012, Pop max fitness [1.5557422446249105e-05, 3.4772932749148066e-05, 0.00046189376443418013]\n", + "epoch 1013, Pop max fitness [1.5557422446249105e-05, 3.462843687235958e-05, 0.0027247956403269754]\n", + "epoch 1014, Pop max fitness [1.5557422446249105e-05, 3.251821019771072e-05, 0.0009191176470588235]\n", + "epoch 1015, Pop max fitness [1.5557422446249105e-05, 3.476084538375973e-05, 0.0009267840593141798]\n", + "epoch 1016, Pop max fitness [1.5557422446249105e-05, 2.47469623103764e-05, 0.00017580872011251758]\n", + "epoch 1017, Pop max fitness [1.5557422446249105e-05, 9.365926758452749e-05, 0.00015160703456640388]\n", + "epoch 1018, Pop max fitness [1.5557422446249105e-05, 0.00018744142455482662, 8.338892595063375e-05]\n", + "epoch 1019, Pop max fitness [1.5557422446249105e-05, 5.3387432598366345e-05, 8.294625082946251e-05]\n", + "epoch 1020, Pop max fitness [1.5557422446249105e-05, 2.3374862672681798e-05, 0.0002872737719046251]\n", + "epoch 1021, Pop max fitness [1.5557422446249105e-05, 0.000683526999316473, 6.840413160954922e-05]\n", + "epoch 1022, Pop max fitness [1.5557422446249105e-05, 3.191828917969997e-05, 0.000500751126690035]\n", + "epoch 1023, Pop max fitness [1.5557422446249105e-05, 7.265857734505559e-05, 0.0004692632566870014]\n", + "epoch 1024, Pop max fitness [1.5557422446249105e-05, 0.0001123721766490617, 0.00023218017181332715]\n", + "epoch 1025, Pop max fitness [1.5557422446249105e-05, 1.8882531769859703e-05, 0.0007137758743754461]\n", + "epoch 1026, Pop max fitness [1.5557422446249105e-05, 2.9169826731229216e-05, 0.0012903225806451613]\n", + "epoch 1027, Pop max fitness [1.5557422446249105e-05, 4.7650814828933574e-05, 0.0012360939431396785]\n", + "epoch 1028, Pop max fitness [1.5557422446249105e-05, 3.160855959793912e-05, 0.0008071025020177562]\n", + "epoch 1029, Pop max fitness [1.5557422446249105e-05, 6.493928177154361e-05, 9.896091044037604e-05]\n", + "epoch 1030, Pop max fitness [1.5557422446249105e-05, 0.00040551500405515005, 0.00021734405564007825]\n", + "epoch 1031, Pop max fitness [1.5557422446249105e-05, 0.00045495905368516835, 0.000449842555105713]\n", + "epoch 1032, Pop max fitness [1.5557422446249105e-05, 0.00016702856188408218, 0.0021691973969631237]\n", + "epoch 1033, Pop max fitness [1.5557422446249105e-05, 0.00013640703860319192, 0.01694915254237288]\n", + "epoch 1034, Pop max fitness [1.5557422446249105e-05, 0.00010537407797681771, 0.0003606202668589975]\n", + "epoch 1035, Pop max fitness [1.5557422446249105e-05, 0.00011138338159946537, 0.0008525149190110827]\n", + "epoch 1036, Pop max fitness [1.5557422446249105e-05, 8.914244963451596e-05, 0.0006422607578676942]\n", + "epoch 1037, Pop max fitness [1.5557422446249105e-05, 4.4122837980938934e-05, 0.013157894736842105]\n", + "epoch 1038, Pop max fitness [1.5557422446249105e-05, 0.00037893141341417203, 0.02127659574468085]\n", + "epoch 1039, Pop max fitness [1.5557422446249105e-05, 6.941070313042272e-05, 0.011494252873563218]\n", + "epoch 1040, Pop max fitness [1.5557422446249105e-05, 9.361542782250516e-05, 0.00033456005352960856]\n", + "epoch 1041, Pop max fitness [1.5557422446249105e-05, 9.443762394938144e-05, 6.293266205160478e-05]\n", + "epoch 1042, Pop max fitness [1.5557422446249105e-05, 9.515653249595585e-05, 0.0007598784194528875]\n", + "epoch 1043, Pop max fitness [1.5557422446249105e-05, 0.000517063081695967, 0.0005889281507656066]\n", + "epoch 1044, Pop max fitness [1.5557422446249105e-05, 0.00021404109589041095, 0.0007656967840735069]\n", + "epoch 1045, Pop max fitness [1.5557422446249105e-05, 0.0006657789613848203, 0.0007173601147776184]\n", + "epoch 1046, Pop max fitness [1.5557422446249105e-05, 6.119202056051891e-05, 0.0006234413965087282]\n", + "epoch 1047, Pop max fitness [1.5557422446249105e-05, 1.3987383380191068e-05, 0.0014792899408284023]\n", + "epoch 1048, Pop max fitness [1.5557422446249105e-05, 2.8875028875028874e-05, 0.0007763975155279503]\n", + "epoch 1049, Pop max fitness [1.5557422446249105e-05, 0.00011676786548341896, 0.0006798096532970768]\n", + "epoch 1050, Pop max fitness [1.5557422446249105e-05, 8.491847826086956e-05, 0.0007530120481927711]\n", + "epoch 1051, Pop max fitness [1.5557422446249105e-05, 8.582217645039479e-05, 0.0005027652086475615]\n", + "epoch 1052, Pop max fitness [1.5557422446249105e-05, 7.97702616464582e-05, 9.932459276916965e-05]\n", + "epoch 1053, Pop max fitness [1.5557422446249105e-05, 2.7259840802529713e-05, 0.0003951007506914263]\n", + "epoch 1054, Pop max fitness [1.5557422446249105e-05, 5.569169079973268e-05, 0.00015429717636167257]\n", + "epoch 1055, Pop max fitness [1.5557422446249105e-05, 4.229402808323465e-05, 6.811525100469996e-05]\n", + "epoch 1056, Pop max fitness [1.5557422446249105e-05, 3.937938095613137e-05, 2.9786727034433456e-05]\n", + "epoch 1057, Pop max fitness [1.5557422446249105e-05, 2.0534302552413807e-05, 4.098192697020614e-05]\n", + "epoch 1058, Pop max fitness [1.5557422446249105e-05, 2.080299563137092e-05, 5.588777734309507e-05]\n", + "epoch 1059, Pop max fitness [1.5557422446249105e-05, 0.0002443195699975568, 0.00015482272797646694]\n", + "epoch 1060, Pop max fitness [1.5557422446249105e-05, 0.0003007518796992481, 0.0006435006435006435]\n", + "epoch 1061, Pop max fitness [1.5557422446249105e-05, 4.35691878703381e-05, 7.225433526011561e-05]\n", + "epoch 1062, Pop max fitness [1.5557422446249105e-05, 3.7119524870081664e-05, 8.047642040882022e-05]\n", + "epoch 1063, Pop max fitness [1.5557422446249105e-05, 2.746950884518185e-05, 2.852090582396897e-05]\n", + "epoch 1064, Pop max fitness [1.5557422446249105e-05, 3.417751802864076e-05, 7.63708568810142e-05]\n", + "epoch 1065, Pop max fitness [1.5557422446249105e-05, 2.1045099648546836e-05, 7.942180922881423e-05]\n", + "epoch 1066, Pop max fitness [1.5557422446249105e-05, 3.707823507601038e-05, 0.00016849199663016007]\n", + "epoch 1067, Pop max fitness [1.5557422446249105e-05, 1.9176190841451255e-05, 0.058823529411764705]\n", + "epoch 1068, Pop max fitness [1.5557422446249105e-05, 2.064963759886014e-05, 0.00018433179723502304]\n", + "epoch 1069, Pop max fitness [1.5557422446249105e-05, 0.000314070351758794, 0.000132013201320132]\n", + "epoch 1070, Pop max fitness [1.5557422446249105e-05, 0.00017370158068438424, 0.00015264845061822624]\n", + "epoch 1071, Pop max fitness [1.5557422446249105e-05, 0.00013970382788488405, 0.00018132366273798732]\n", + "epoch 1072, Pop max fitness [1.5557422446249105e-05, 0.0002360160490913382, 0.00013831258644536652]\n", + "epoch 1073, Pop max fitness [1.5557422446249105e-05, 0.00047778308647873863, 0.0022123893805309734]\n", + "epoch 1074, Pop max fitness [1.5557422446249105e-05, 3.9232610145552985e-05, 0.0005633802816901409]\n", + "epoch 1075, Pop max fitness [1.5557422446249105e-05, 2.327475852438031e-05, 0.0007347538574577516]\n", + "epoch 1076, Pop max fitness [1.5557422446249105e-05, 2.118464536903652e-05, 0.0009514747859181732]\n", + "epoch 1077, Pop max fitness [1.5557422446249105e-05, 1.6309222865530456e-05, 0.005988023952095809]\n", + "epoch 1078, Pop max fitness [1.5557422446249105e-05, 1.2421280137130932e-05, 0.0008748906386701663]\n", + "epoch 1079, Pop max fitness [1.5557422446249105e-05, 1.0089697409974674e-05, 0.0005159958720330237]\n", + "epoch 1080, Pop max fitness [1.5557422446249105e-05, 4.174493842621582e-05, 6.302388605281402e-05]\n", + "epoch 1081, Pop max fitness [1.5557422446249105e-05, 0.00025614754098360657, 0.0019646365422396855]\n", + "epoch 1082, Pop max fitness [1.5557422446249105e-05, 0.25, 0.00024313153415998054]\n", + "epoch 1083, Pop max fitness [1.5557422446249105e-05, 0.00018875047187617969, 0.00012923235978288964]\n", + "epoch 1084, Pop max fitness [1.5557422446249105e-05, 0.0005221932114882506, 0.0001337971635001338]\n", + "epoch 1085, Pop max fitness [1.5557422446249105e-05, 5.558025789239662e-05, 6.87616035205941e-05]\n", + "epoch 1086, Pop max fitness [1.5557422446249105e-05, 7.5642965204236e-05, 6.87616035205941e-05]\n", + "epoch 1087, Pop max fitness [1.5557422446249105e-05, 3.926341827319486e-05, 0.00026574541589157585]\n", + "epoch 1088, Pop max fitness [1.5557422446249105e-05, 0.00018635855385762206, 0.00045934772622875517]\n", + "epoch 1089, Pop max fitness [1.5557422446249105e-05, 0.004807692307692308, 0.0004361098996947231]\n", + "epoch 1090, Pop max fitness [1.5557422446249105e-05, 0.00011921793037672866, 0.00017001020061203673]\n", + "epoch 1091, Pop max fitness [1.5557422446249105e-05, 0.00043878894251864854, 0.0002796420581655481]\n", + "epoch 1092, Pop max fitness [1.5557422446249105e-05, 0.000249003984063745, 0.0005627462014631402]\n", + "epoch 1093, Pop max fitness [1.5557422446249105e-05, 6.918021445866483e-05, 0.00016035920461834508]\n", + "epoch 1094, Pop max fitness [1.5557422446249105e-05, 7.387706855791962e-05, 0.00015227653418608191]\n", + "epoch 1095, Pop max fitness [1.5557422446249105e-05, 1.5249946625186813e-05, 0.0007818608287724785]\n", + "epoch 1096, Pop max fitness [1.5557422446249105e-05, 6.951202558042541e-05, 0.00025233409033560434]\n", + "epoch 1097, Pop max fitness [1.5557422446249105e-05, 0.0006273525721455458, 0.0002531004808909137]\n", + "epoch 1098, Pop max fitness [1.5557422446249105e-05, 0.00019312475859405175, 2.3218017181332715e-05]\n", + "epoch 1099, Pop max fitness [1.5557422446249105e-05, 7.4839095943721e-05, 4.0436716538617066e-05]\n", + "epoch 1100, Pop max fitness [1.5557422446249105e-05, 0.00017009695526450075, 4.439117503440316e-05]\n", + "epoch 1101, Pop max fitness [1.5557422446249105e-05, 0.00016268098259313488, 0.0001378929950358522]\n", + "epoch 1102, Pop max fitness [1.5557422446249105e-05, 2.1194523335170193e-05, 0.00014277555682467162]\n", + "epoch 1103, Pop max fitness [1.5557422446249105e-05, 8.74355163067238e-05, 0.00017543859649122806]\n", + "epoch 1104, Pop max fitness [1.5557422446249105e-05, 4.7341760166643e-05, 0.0005192107995846313]\n", + "epoch 1105, Pop max fitness [1.5557422446249105e-05, 6.920894179527995e-05, 0.00010312467773538208]\n", + "epoch 1106, Pop max fitness [1.5557422446249105e-05, 5.4935999560512006e-05, 7.199942400460797e-05]\n", + "epoch 1107, Pop max fitness [1.5557422446249105e-05, 3.4654837815359025e-05, 9.192021325489476e-05]\n", + "epoch 1108, Pop max fitness [1.5557422446249105e-05, 3.144752979653448e-05, 9.894132779261898e-05]\n", + "epoch 1109, Pop max fitness [1.5557422446249105e-05, 3.544967918040342e-05, 0.0008673026886383347]\n", + "epoch 1110, Pop max fitness [1.5557422446249105e-05, 0.00023952095808383233, 0.0007936507936507937]\n", + "epoch 1111, Pop max fitness [1.5557422446249105e-05, 0.0003379520108144643, 0.0008058017727639]\n", + "epoch 1112, Pop max fitness [1.5557422446249105e-05, 0.00023679848448969926, 3.987399816579609e-05]\n", + "epoch 1113, Pop max fitness [1.5557422446249105e-05, 0.00014703720041170417, 6.292078273453722e-05]\n", + "epoch 1114, Pop max fitness [1.5557422446249105e-05, 0.0004037141703673799, 0.00020863759649488838]\n", + "epoch 1115, Pop max fitness [1.5557422446249105e-05, 0.0007836990595611285, 0.0019267822736030828]\n", + "epoch 1116, Pop max fitness [1.5557422446249105e-05, 0.00031259768677711783, 0.00012411567580985477]\n", + "epoch 1117, Pop max fitness [1.5557422446249105e-05, 2.8526601055484238e-05, 0.0001234110823151919]\n", + "epoch 1118, Pop max fitness [1.5557422446249105e-05, 3.993450740785112e-05, 0.011235955056179775]\n", + "epoch 1119, Pop max fitness [1.5557422446249105e-05, 0.0002008435428800964, 0.0001199760047990402]\n", + "epoch 1120, Pop max fitness [1.5557422446249105e-05, 3.645643456069996e-05, 0.00012691965985531158]\n", + "epoch 1121, Pop max fitness [1.5557422446249105e-05, 2.358546192127173e-05, 0.00016539861065167054]\n", + "epoch 1122, Pop max fitness [1.5557422446249105e-05, 3.754176521380035e-05, 0.00023185717597959656]\n", + "epoch 1123, Pop max fitness [1.5557422446249105e-05, 2.9602439240993457e-05, 0.00013192612137203166]\n", + "epoch 1124, Pop max fitness [1.5557422446249105e-05, 0.0002626050420168067, 7.371369600471768e-05]\n", + "epoch 1125, Pop max fitness [1.5557422446249105e-05, 0.000942507068803016, 0.0004342162396873643]\n", + "epoch 1126, Pop max fitness [1.5557422446249105e-05, 8.98069151324652e-05, 8.986340762041697e-05]\n", + "epoch 1127, Pop max fitness [1.5557422446249105e-05, 9.412650602409639e-05, 9.682416731216112e-05]\n", + "epoch 1128, Pop max fitness [1.5557422446249105e-05, 5.3501685303087046e-05, 0.0003518648838845883]\n", + "epoch 1129, Pop max fitness [1.5557422446249105e-05, 7.107825716113441e-05, 0.0011160714285714285]\n", + "epoch 1130, Pop max fitness [1.5557422446249105e-05, 0.0002449779519843214, 0.000578368999421631]\n", + "epoch 1131, Pop max fitness [1.5557422446249105e-05, 5.919261276192731e-05, 0.0005017561465127947]\n", + "epoch 1132, Pop max fitness [1.5557422446249105e-05, 0.0006510416666666666, 0.00043725404459991256]\n", + "epoch 1133, Pop max fitness [1.5557422446249105e-05, 0.0006361323155216285, 0.00015363343063450608]\n", + "epoch 1134, Pop max fitness [1.5557422446249105e-05, 0.0024154589371980675, 0.00015705983979896342]\n", + "epoch 1135, Pop max fitness [1.5557422446249105e-05, 0.00039261876717707107, 0.00012196609342602757]\n", + "epoch 1136, Pop max fitness [1.5557422446249105e-05, 0.00012547051442910915, 0.0009328358208955224]\n", + "epoch 1137, Pop max fitness [1.5557422446249105e-05, 0.00041425020712510354, 0.001447178002894356]\n", + "epoch 1138, Pop max fitness [1.5557422446249105e-05, 0.034482758620689655, 0.0005675368898978433]\n", + "epoch 1139, Pop max fitness [1.5557422446249105e-05, 0.02857142857142857, 0.00035285815102328866]\n", + "epoch 1140, Pop max fitness [1.5557422446249105e-05, 0.0001327844907714779, 0.0002729257641921397]\n", + "epoch 1141, Pop max fitness [1.5557422446249105e-05, 0.00017809439002671417, 0.00027533039647577095]\n", + "epoch 1142, Pop max fitness [1.5557422446249105e-05, 7.436602959767977e-05, 0.00048262548262548264]\n", + "epoch 1143, Pop max fitness [1.5557422446249105e-05, 4.007694773966015e-05, 0.0007564296520423601]\n", + "epoch 1144, Pop max fitness [1.5557422446249105e-05, 4.7744091668656006e-05, 0.00022301516503122213]\n", + "epoch 1145, Pop max fitness [1.5557422446249105e-05, 3.795498538733063e-05, 0.0011025358324145535]\n", + "epoch 1146, Pop max fitness [1.5557422446249105e-05, 2.581844469689146e-05, 3.232897969740075e-05]\n", + "epoch 1147, Pop max fitness [1.5557422446249105e-05, 3.4555444210235324e-05, 3.331334532613765e-05]\n", + "epoch 1148, Pop max fitness [1.5557422446249105e-05, 4.9478007025877e-05, 0.0001444460494005489]\n", + "epoch 1149, Pop max fitness [1.5557422446249105e-05, 1.3649268399213801e-05, 3.078343851008158e-05]\n", + "epoch 1150, Pop max fitness [1.5557422446249105e-05, 4.2663936174751484e-05, 1.4304923754756387e-05]\n", + "epoch 1151, Pop max fitness [1.5557422446249105e-05, 4.828585224529213e-05, 2.360940598734536e-05]\n", + "epoch 1152, Pop max fitness [1.5557422446249105e-05, 0.00017959770114942528, 4.29331959471063e-05]\n", + "epoch 1153, Pop max fitness [1.5557422446249105e-05, 6.55780706931602e-05, 0.0006657789613848203]\n", + "epoch 1154, Pop max fitness [1.5557422446249105e-05, 7.971938775510203e-05, 4.7196526335661694e-05]\n", + "epoch 1155, Pop max fitness [1.5557422446249105e-05, 0.0008620689655172414, 4.1252423579885316e-05]\n", + "epoch 1156, Pop max fitness [1.5557422446249105e-05, 0.00046040515653775324, 3.532944709415297e-05]\n", + "epoch 1157, Pop max fitness [1.5557422446249105e-05, 0.25, 0.00010228086325048584]\n", + "epoch 1158, Pop max fitness [1.5557422446249105e-05, 0.0043859649122807015, 0.00011087703736556159]\n", + "epoch 1159, Pop max fitness [1.5557422446249105e-05, 0.0006858710562414266, 0.0001332090049287332]\n", + "epoch 1160, Pop max fitness [1.5557422446249105e-05, 0.0004393673110720562, 0.00020973154362416107]\n", + "epoch 1161, Pop max fitness [1.5557422446249105e-05, 0.001838235294117647, 0.00019786307874950534]\n", + "epoch 1162, Pop max fitness [1.5557422446249105e-05, 0.00011977482333213559, 0.0002144542140253056]\n", + "epoch 1163, Pop max fitness [1.5557422446249105e-05, 0.0003057169061449098, 0.00024108003857280618]\n", + "epoch 1164, Pop max fitness [1.5557422446249105e-05, 9.48316737790422e-05, 0.00029239766081871346]\n", + "epoch 1165, Pop max fitness [1.5557422446249105e-05, 7.245851749873198e-05, 0.00018355359765051394]\n", + "epoch 1166, Pop max fitness [1.5557422446249105e-05, 7.829627309740057e-05, 0.00015382248884786957]\n", + "epoch 1167, Pop max fitness [1.5557422446249105e-05, 9.28332714444857e-05, 0.1]\n", + "epoch 1168, Pop max fitness [1.5557422446249105e-05, 0.0005793742757821553, 0.0002623983206507478]\n", + "epoch 1169, Pop max fitness [1.5557422446249105e-05, 0.00022655188038060717, 0.0035087719298245615]\n", + "epoch 1170, Pop max fitness [1.5557422446249105e-05, 0.00027917364600781687, 0.00023185717597959656]\n", + "epoch 1171, Pop max fitness [1.5557422446249105e-05, 0.0002586652871184687, 8.98391878537418e-05]\n", + "epoch 1172, Pop max fitness [1.5557422446249105e-05, 7.974481658692185e-05, 9.749439407234084e-05]\n", + "epoch 1173, Pop max fitness [1.5557422446249105e-05, 2.341536516261971e-05, 0.00016079755587715066]\n", + "epoch 1174, Pop max fitness [1.5557422446249105e-05, 9.501277921880492e-06, 0.00016353229762878168]\n", + "epoch 1175, Pop max fitness [1.5557422446249105e-05, 2.3171749003614792e-05, 4.445037116059919e-05]\n", + "epoch 1176, Pop max fitness [1.5557422446249105e-05, 2.7159152634437806e-05, 5.2862504625469154e-05]\n", + "epoch 1177, Pop max fitness [1.5557422446249105e-05, 3.14504969178513e-05, 0.0001762114537444934]\n", + "epoch 1178, Pop max fitness [1.5557422446249105e-05, 3.1324395439168024e-05, 0.0025906735751295338]\n", + "epoch 1179, Pop max fitness [1.5557422446249105e-05, 5.8045042953331786e-05, 0.003816793893129771]\n", + "epoch 1180, Pop max fitness [1.5557422446249105e-05, 3.250024375182814e-05, 0.00016764459346186087]\n", + "epoch 1181, Pop max fitness [1.5557422446249105e-05, 9.112862805850458e-06, 0.00016929067208396818]\n", + "epoch 1182, Pop max fitness [1.5557422446249105e-05, 0.0001422475106685633, 0.0021141649048625794]\n", + "epoch 1183, Pop max fitness [1.5557422446249105e-05, 1.9559902200488996e-05, 6.594566077552098e-05]\n", + "epoch 1184, Pop max fitness [1.5557422446249105e-05, 1.960553660353684e-05, 6.565988181221274e-05]\n", + "epoch 1185, Pop max fitness [1.5557422446249105e-05, 0.00044682752457551384, 0.0025575447570332483]\n", + "epoch 1186, Pop max fitness [1.5557422446249105e-05, 6.203473945409429e-05, 0.00234192037470726]\n", + "epoch 1187, Pop max fitness [1.5557422446249105e-05, 9.815758218243569e-06, 0.003472222222222222]\n", + "epoch 1188, Pop max fitness [1.5557422446249105e-05, 0.00010145074566298062, 0.00022386389075442132]\n", + "epoch 1189, Pop max fitness [1.5557422446249105e-05, 1.7541705404599435e-05, 0.00019550342130987292]\n", + "epoch 1190, Pop max fitness [1.5557422446249105e-05, 2.958930050893597e-05, 0.00012547051442910915]\n", + "epoch 1191, Pop max fitness [1.5557422446249105e-05, 0.00026680896478121667, 0.000129366106080207]\n", + "epoch 1192, Pop max fitness [1.5557422446249105e-05, 1.4743391274861043e-05, 0.00018443378827001107]\n", + "epoch 1193, Pop max fitness [1.5557422446249105e-05, 1.4564732955621259e-05, 0.00045310376076121433]\n", + "epoch 1194, Pop max fitness [1.5557422446249105e-05, 9.04281774200841e-06, 0.00011093854004881296]\n", + "epoch 1195, Pop max fitness [1.5557422446249105e-05, 1.0361835288266258e-05, 6.812917291184085e-05]\n", + "epoch 1196, Pop max fitness [1.5557422446249105e-05, 1.755957084408857e-05, 7.917656373713381e-05]\n", + "epoch 1197, Pop max fitness [1.5557422446249105e-05, 1.9236318168702512e-05, 9.064539521392314e-05]\n", + "epoch 1198, Pop max fitness [1.5557422446249105e-05, 6.452029163171818e-05, 8.003841844085161e-05]\n", + "epoch 1199, Pop max fitness [1.5557422446249105e-05, 1.2839772479231669e-05, 0.00037439161362785476]\n", + "epoch 1200, Pop max fitness [1.5557422446249105e-05, 0.0002069108214359611, 7.446570854121677e-05]\n", + "epoch 1201, Pop max fitness [1.5557422446249105e-05, 0.0001254390366281987, 6.71366230278617e-05]\n", + "epoch 1202, Pop max fitness [1.5557422446249105e-05, 2.9310900723979247e-05, 7.431076763022962e-05]\n", + "epoch 1203, Pop max fitness [1.5557422446249105e-05, 3.917727717923604e-05, 7.395355716609969e-05]\n", + "epoch 1204, Pop max fitness [1.5557422446249105e-05, 5.016554630279924e-05, 6.71366230278617e-05]\n", + "epoch 1205, Pop max fitness [1.5557422446249105e-05, 4.05465677330414e-05, 3.6836482852617235e-05]\n", + "epoch 1206, Pop max fitness [1.5557422446249105e-05, 5.6053811659192826e-05, 3.0475726084173955e-05]\n", + "epoch 1207, Pop max fitness [1.5557422446249105e-05, 7.327080890973036e-05, 3.897116134060795e-05]\n", + "epoch 1208, Pop max fitness [1.5557422446249105e-05, 6.654688227856525e-05, 3.943062182090611e-05]\n", + "epoch 1209, Pop max fitness [1.5557422446249105e-05, 5.125051250512505e-05, 3.979624323463865e-05]\n", + "epoch 1210, Pop max fitness [1.5557422446249105e-05, 9.859988168014199e-05, 7.123014459719353e-05]\n", + "epoch 1211, Pop max fitness [1.5557422446249105e-05, 8.21827744904668e-05, 6.215426689042202e-05]\n", + "epoch 1212, Pop max fitness [1.5557422446249105e-05, 3.743775972445809e-05, 0.00032299741602067185]\n", + "epoch 1213, Pop max fitness [1.5557422446249105e-05, 3.395816354251562e-05, 0.00041459369817578774]\n", + "epoch 1214, Pop max fitness [1.5557422446249105e-05, 3.168969451134491e-05, 0.007352941176470588]\n", + "epoch 1215, Pop max fitness [1.5557422446249105e-05, 9.852216748768474e-05, 0.009174311926605505]\n", + "epoch 1216, Pop max fitness [1.5557422446249105e-05, 0.00046728971962616824, 0.0002845759817871372]\n", + "epoch 1217, Pop max fitness [1.5557422446249105e-05, 0.00023651844843897824, 0.00029342723004694836]\n", + "epoch 1218, Pop max fitness [1.5557422446249105e-05, 1.8080567006581325e-05, 0.0004572473708276177]\n", + "epoch 1219, Pop max fitness [1.5557422446249105e-05, 2.2715398768825386e-05, 0.0007142857142857143]\n", + "epoch 1220, Pop max fitness [1.5557422446249105e-05, 0.00013513513513513514, 5.3879310344827585e-05]\n", + "epoch 1221, Pop max fitness [1.5557422446249105e-05, 0.00011171936096525528, 7.417297136923305e-05]\n", + "epoch 1222, Pop max fitness [1.5557422446249105e-05, 8.437394532568343e-05, 9.072763563781528e-05]\n", + "epoch 1223, Pop max fitness [1.5557422446249105e-05, 0.00014457134595923088, 7.009182028457279e-05]\n", + "epoch 1224, Pop max fitness [1.5557422446249105e-05, 7.099751508697196e-05, 0.0004710315591144607]\n", + "epoch 1225, Pop max fitness [1.5557422446249105e-05, 0.00011763321962122103, 0.0005055611729019212]\n", + "epoch 1226, Pop max fitness [1.5557422446249105e-05, 0.00039494470774091627, 7.065140596297866e-05]\n", + "epoch 1227, Pop max fitness [1.5557422446249105e-05, 0.0007012622720897616, 0.00011304544426859598]\n", + "epoch 1228, Pop max fitness [1.5557422446249105e-05, 3.520754849839806e-05, 3.772161448509996e-05]\n", + "epoch 1229, Pop max fitness [1.5557422446249105e-05, 5.58752863608426e-05, 0.0006657789613848203]\n", + "epoch 1230, Pop max fitness [1.5557422446249105e-05, 4.7436079882358525e-05, 0.011111111111111112]\n", + "epoch 1231, Pop max fitness [1.5557422446249105e-05, 3.0088761847449978e-05, 0.00031486146095717883]\n", + "epoch 1232, Pop max fitness [1.5557422446249105e-05, 0.00014927601134497685, 8.118860112040269e-05]\n", + "epoch 1233, Pop max fitness [1.5557422446249105e-05, 0.00043878894251864854, 0.0003091190108191654]\n", + "epoch 1234, Pop max fitness [1.5557422446249105e-05, 7.322252324815113e-05, 0.00014710208884966165]\n", + "epoch 1235, Pop max fitness [1.5557422446249105e-05, 0.00025031289111389235, 0.0001088139281828074]\n", + "epoch 1236, Pop max fitness [1.5557422446249105e-05, 0.00017966223499820338, 0.0018484288354898336]\n", + "epoch 1237, Pop max fitness [1.5557422446249105e-05, 5.599731212901781e-05, 0.0003837298541826554]\n", + "epoch 1238, Pop max fitness [1.5557422446249105e-05, 4.735969689793985e-05, 0.0002016942315449778]\n", + "epoch 1239, Pop max fitness [1.5557422446249105e-05, 2.7594580424404646e-05, 0.00038895371450797355]\n", + "epoch 1240, Pop max fitness [1.5557422446249105e-05, 2.7308227969087086e-05, 0.0009950248756218905]\n", + "epoch 1241, Pop max fitness [1.5557422446249105e-05, 4.5479352374022196e-05, 0.0002618486514794449]\n", + "epoch 1242, Pop max fitness [1.5557422446249105e-05, 1.7604394056756568e-05, 0.00026322716504343247]\n", + "epoch 1243, Pop max fitness [1.5557422446249105e-05, 1.3505300830576001e-05, 0.003194888178913738]\n", + "epoch 1244, Pop max fitness [1.5557422446249105e-05, 2.0121938950037224e-05, 4.683182690956774e-05]\n", + "epoch 1245, Pop max fitness [1.5557422446249105e-05, 3.445543189883885e-05, 3.7626519170711517e-05]\n", + "epoch 1246, Pop max fitness [1.5557422446249105e-05, 7.939658594680428e-05, 0.0003454231433506045]\n", + "epoch 1247, Pop max fitness [1.5557422446249105e-05, 7.526153383005946e-05, 3.6411302068161955e-05]\n", + "epoch 1248, Pop max fitness [1.5557422446249105e-05, 0.0004224757076468103, 0.0003475842891901286]\n", + "epoch 1249, Pop max fitness [1.5557422446249105e-05, 0.00011247328759419637, 7.334066740007334e-05]\n", + "epoch 1250, Pop max fitness [1.5557422446249105e-05, 0.0002554278416347382, 0.0002589331952356292]\n", + "epoch 1251, Pop max fitness [1.5557422446249105e-05, 0.0003762227238525207, 3.1566652987783707e-05]\n", + "epoch 1252, Pop max fitness [1.5557422446249105e-05, 0.00010163634515702815, 6.358896095637798e-05]\n", + "epoch 1253, Pop max fitness [1.5557422446249105e-05, 2.4721267706607996e-05, 2.9902517791998086e-05]\n", + "epoch 1254, Pop max fitness [1.5557422446249105e-05, 0.00012966804979253112, 2.975659108492531e-05]\n", + "epoch 1255, Pop max fitness [1.5557422446249105e-05, 0.0001260716086737267, 2.975659108492531e-05]\n", + "epoch 1256, Pop max fitness [1.5557422446249105e-05, 5.795085767269355e-05, 3.726060064088233e-05]\n", + "epoch 1257, Pop max fitness [1.5557422446249105e-05, 0.0002894356005788712, 3.497481813094572e-05]\n", + "epoch 1258, Pop max fitness [1.5557422446249105e-05, 0.00027862914460852607, 3.6897645930189655e-05]\n", + "epoch 1259, Pop max fitness [1.5557422446249105e-05, 0.0010224948875255625, 3.6701288215216355e-05]\n", + "epoch 1260, Pop max fitness [1.5557422446249105e-05, 0.0001120197154699227, 0.0002003606491685033]\n", + "epoch 1261, Pop max fitness [1.5557422446249105e-05, 0.0001123721766490617, 0.0006006006006006006]\n", + "epoch 1262, Pop max fitness [1.5557422446249105e-05, 5.603496581867085e-05, 0.00022650056625141563]\n", + "epoch 1263, Pop max fitness [1.5557422446249105e-05, 0.00010459156991946449, 8.344459279038718e-05]\n", + "epoch 1264, Pop max fitness [1.5557422446249105e-05, 5.557716889901629e-05, 6.02663773880552e-05]\n", + "epoch 1265, Pop max fitness [1.5557422446249105e-05, 8.07037365830038e-05, 0.0022222222222222222]\n", + "epoch 1266, Pop max fitness [1.5557422446249105e-05, 0.00011352026336701102, 0.002320185614849188]\n", + "epoch 1267, Pop max fitness [1.5557422446249105e-05, 2.1050415745710977e-05, 0.011111111111111112]\n", + "epoch 1268, Pop max fitness [1.5557422446249105e-05, 6.097189195780745e-05, 0.0008312551953449709]\n", + "epoch 1269, Pop max fitness [1.5557422446249105e-05, 0.0009233610341643582, 0.0004757373929590866]\n", + "epoch 1270, Pop max fitness [1.5557422446249105e-05, 5.424170101974398e-05, 0.0004286326618088298]\n", + "epoch 1271, Pop max fitness [1.5557422446249105e-05, 0.0001561524047470331, 0.0005753739930955121]\n", + "epoch 1272, Pop max fitness [1.5557422446249105e-05, 3.714848248449051e-05, 0.0001268713524486171]\n", + "epoch 1273, Pop max fitness [1.5557422446249105e-05, 3.719407870267054e-05, 7.211885186787827e-05]\n", + "epoch 1274, Pop max fitness [1.5557422446249105e-05, 0.0002058460271716756, 0.0002681684097613301]\n", + "epoch 1275, Pop max fitness [1.5557422446249105e-05, 1.6467410993643578e-05, 0.0001476886722788362]\n", + "epoch 1276, Pop max fitness [1.5557422446249105e-05, 8.953513358641931e-06, 0.00017394329448599757]\n", + "epoch 1277, Pop max fitness [1.5557422446249105e-05, 3.418335954057565e-05, 0.0002701972439881113]\n", + "epoch 1278, Pop max fitness [1.5557422446249105e-05, 0.006756756756756757, 0.00010670081092616304]\n", + "epoch 1279, Pop max fitness [1.5557422446249105e-05, 1.2903059315363673e-05, 0.00014271442842871414]\n", + "epoch 1280, Pop max fitness [1.5557422446249105e-05, 8.215576733486691e-05, 0.0001590077913817777]\n", + "epoch 1281, Pop max fitness [1.5557422446249105e-05, 1.856596487319446e-05, 0.00015735641227380016]\n", + "epoch 1282, Pop max fitness [1.5557422446249105e-05, 1.5871504301177665e-05, 0.00011001100110011001]\n", + "epoch 1283, Pop max fitness [1.5557422446249105e-05, 9.516558812333461e-05, 0.0002094240837696335]\n", + "epoch 1284, Pop max fitness [1.5557422446249105e-05, 0.00016972165648336727, 0.00010509721492380452]\n", + "epoch 1285, Pop max fitness [1.5557422446249105e-05, 0.00018389113644722325, 5.389673385792821e-05]\n", + "epoch 1286, Pop max fitness [1.5557422446249105e-05, 0.0003837298541826554, 7.334066740007334e-05]\n", + "epoch 1287, Pop max fitness [1.5557422446249105e-05, 2.4364097066562713e-05, 0.0003290556103981573]\n", + "epoch 1288, Pop max fitness [1.5557422446249105e-05, 3.29663084327817e-05, 0.0003287310979618672]\n", + "epoch 1289, Pop max fitness [1.5557422446249105e-05, 0.00027808676307007786, 0.000819000819000819]\n", + "epoch 1290, Pop max fitness [1.5557422446249105e-05, 1.9297940909704935e-05, 0.00029197080291970805]\n", + "epoch 1291, Pop max fitness [1.5557422446249105e-05, 2.3452157598499062e-05, 8.640801866413204e-05]\n", + "epoch 1292, Pop max fitness [1.5557422446249105e-05, 0.0001298532658096351, 0.00020682523267838676]\n", + "epoch 1293, Pop max fitness [1.5557422446249105e-05, 5.1607575992155646e-05, 0.00022148394241417498]\n", + "epoch 1294, Pop max fitness [1.5557422446249105e-05, 8.78487595755148e-06, 0.0002378686964795433]\n", + "epoch 1295, Pop max fitness [1.5557422446249105e-05, 1.03513239343312e-05, 0.00013271400132714]\n", + "epoch 1296, Pop max fitness [1.5557422446249105e-05, 2.8390540271981376e-05, 0.0005633802816901409]\n", + "epoch 1297, Pop max fitness [1.5557422446249105e-05, 0.00012350253180190194, 0.00017866714311238162]\n", + "epoch 1298, Pop max fitness [1.5557422446249105e-05, 0.0003002101471029721, 0.00013066771200836272]\n", + "epoch 1299, Pop max fitness [1.5557422446249105e-05, 0.0020491803278688526, 0.00045392646391284613]\n", + "epoch 1300, Pop max fitness [1.5557422446249105e-05, 0.00015586034912718204, 0.0007158196134574087]\n", + "epoch 1301, Pop max fitness [1.5557422446249105e-05, 0.0010718113612004287, 0.0007535795026375283]\n", + "epoch 1302, Pop max fitness [1.5557422446249105e-05, 1.7895810590740706e-05, 3.2165717777992216e-05]\n", + "epoch 1303, Pop max fitness [1.5557422446249105e-05, 7.22908985758693e-05, 5.413012882970661e-05]\n", + "epoch 1304, Pop max fitness [1.5557422446249105e-05, 5.1371622315832736e-05, 5.409791723018664e-05]\n", + "epoch 1305, Pop max fitness [1.5557422446249105e-05, 4.252785574551331e-05, 0.0001320829480914014]\n", + "epoch 1306, Pop max fitness [1.5557422446249105e-05, 7.835762419683435e-05, 9.52653138992093e-05]\n", + "epoch 1307, Pop max fitness [1.5557422446249105e-05, 7.828401440425865e-05, 8.465966813410092e-05]\n", + "epoch 1308, Pop max fitness [1.5557422446249105e-05, 6.337135614702154e-05, 9.170105456212746e-05]\n", + "epoch 1309, Pop max fitness [1.5557422446249105e-05, 6.286145335680161e-05, 0.00019727756954034326]\n", + "epoch 1310, Pop max fitness [1.5557422446249105e-05, 7.142857142857143e-05, 0.00019712201852946975]\n", + "epoch 1311, Pop max fitness [1.5557422446249105e-05, 7.793017456359102e-05, 0.0001252661906551422]\n", + "epoch 1312, Pop max fitness [1.5557422446249105e-05, 4.21460783074135e-05, 0.0001189767995240928]\n", + "epoch 1313, Pop max fitness [1.5557422446249105e-05, 0.00014932059130954157, 8.354916868577158e-05]\n", + "epoch 1314, Pop max fitness [1.5557422446249105e-05, 2.0498944304368325e-05, 9.470593806231651e-05]\n", + "epoch 1315, Pop max fitness [1.5557422446249105e-05, 7.779679477205539e-05, 0.0005047955577990914]\n", + "epoch 1316, Pop max fitness [1.5557422446249105e-05, 3.088230752601834e-05, 0.005291005291005291]\n", + "epoch 1317, Pop max fitness [1.5557422446249105e-05, 0.0003473428273706148, 0.00025673940949935817]\n", + "epoch 1318, Pop max fitness [1.5557422446249105e-05, 7.703566751405901e-05, 3.7965072133637056e-05]\n", + "epoch 1319, Pop max fitness [1.5557422446249105e-05, 8.525876033762469e-05, 0.0006119951040391676]\n", + "epoch 1320, Pop max fitness [1.5557422446249105e-05, 4.626416840157298e-05, 0.002386634844868735]\n", + "epoch 1321, Pop max fitness [1.5557422446249105e-05, 5.45404963185165e-05, 0.0001563721657544957]\n", + "epoch 1322, Pop max fitness [1.5557422446249105e-05, 5.794749956539375e-05, 0.00016246953696181965]\n", + "epoch 1323, Pop max fitness [1.5557422446249105e-05, 2.9720331678901538e-05, 0.00016168148746968473]\n", + "epoch 1324, Pop max fitness [1.5557422446249105e-05, 0.0009930486593843098, 0.0001511715797430083]\n", + "epoch 1325, Pop max fitness [1.5557422446249105e-05, 0.00010154346060113728, 0.0002881014116969173]\n", + "epoch 1326, Pop max fitness [1.5557422446249105e-05, 0.0003429355281207133, 0.00025627883136852895]\n", + "epoch 1327, Pop max fitness [1.5557422446249105e-05, 0.00016728002676480428, 0.002617801047120419]\n", + "epoch 1328, Pop max fitness [1.5557422446249105e-05, 6.284565108094519e-05, 0.0005167958656330749]\n", + "epoch 1329, Pop max fitness [1.5557422446249105e-05, 1.207044310596642e-05, 0.0001808972503617945]\n", + "epoch 1330, Pop max fitness [1.5557422446249105e-05, 1.7144718569444683e-05, 0.00019193857965451057]\n", + "epoch 1331, Pop max fitness [1.5557422446249105e-05, 0.0001088020890001088, 0.0006587615283267457]\n", + "epoch 1332, Pop max fitness [1.5557422446249105e-05, 9.933445912387007e-05, 0.0001448855404230658]\n", + "epoch 1333, Pop max fitness [1.5557422446249105e-05, 8.788118463836892e-05, 8.171269815329302e-05]\n", + "epoch 1334, Pop max fitness [1.5557422446249105e-05, 2.4131856463717753e-05, 0.00017442874585731728]\n", + "epoch 1335, Pop max fitness [1.5557422446249105e-05, 4.247005860868088e-05, 0.00011739845034045551]\n", + "epoch 1336, Pop max fitness [1.5557422446249105e-05, 4.156621498046388e-05, 0.0011904761904761906]\n", + "epoch 1337, Pop max fitness [1.5557422446249105e-05, 0.009708737864077669, 0.00020445716622367614]\n", + "epoch 1338, Pop max fitness [1.5557422446249105e-05, 0.00023894862604540023, 0.0009057971014492754]\n", + "epoch 1339, Pop max fitness [1.5557422446249105e-05, 0.00023540489642184556, 0.00030637254901960784]\n", + "epoch 1340, Pop max fitness [1.5557422446249105e-05, 0.0001691761123329386, 0.0003272251308900524]\n", + "epoch 1341, Pop max fitness [1.5557422446249105e-05, 0.0005889281507656066, 0.00010537407797681771]\n", + "epoch 1342, Pop max fitness [1.5557422446249105e-05, 0.000267022696929239, 0.00010530749789385004]\n", + "epoch 1343, Pop max fitness [1.5557422446249105e-05, 9.9147332936744e-05, 0.00037064492216456633]\n", + "epoch 1344, Pop max fitness [1.5557422446249105e-05, 0.0001478852410529429, 0.0002714440825190011]\n", + "epoch 1345, Pop max fitness [1.5557422446249105e-05, 5.854458169896376e-05, 7.10126402499645e-05]\n", + "epoch 1346, Pop max fitness [1.5557422446249105e-05, 4.2506163393692086e-05, 4.1108279207432375e-05]\n", + "epoch 1347, Pop max fitness [1.5557422446249105e-05, 4.545867806164197e-05, 0.0015455950540958269]\n", + "epoch 1348, Pop max fitness [1.5557422446249105e-05, 0.0014534883720930232, 0.00027442371020856203]\n", + "epoch 1349, Pop max fitness [1.5557422446249105e-05, 2.2351363433169423e-05, 0.00024467824810374357]\n", + "epoch 1350, Pop max fitness [1.5557422446249105e-05, 3.057355998532469e-05, 0.0004314063848144953]\n", + "epoch 1351, Pop max fitness [1.5557422446249105e-05, 3.1942758576630676e-05, 0.0005624296962879641]\n", + "epoch 1352, Pop max fitness [1.5557422446249105e-05, 4.16181122024305e-05, 0.0001464986815118664]\n", + "epoch 1353, Pop max fitness [1.5557422446249105e-05, 0.00040192926045016077, 0.00014734050390452334]\n", + "epoch 1354, Pop max fitness [1.5557422446249105e-05, 5.5407801418439715e-05, 7.956715467854869e-05]\n", + "epoch 1355, Pop max fitness [1.5557422446249105e-05, 3.0164092664092665e-05, 0.00010064412238325282]\n", + "epoch 1356, Pop max fitness [1.5557422446249105e-05, 0.00027277686852154935, 0.0005]\n", + "epoch 1357, Pop max fitness [1.5557422446249105e-05, 0.000657030223390276, 0.00036589828027808267]\n", + "epoch 1358, Pop max fitness [1.5557422446249105e-05, 0.0001343183344526528, 0.00019219680953296174]\n", + "epoch 1359, Pop max fitness [1.5557422446249105e-05, 0.00013176966662274345, 0.00015508684863523573]\n", + "epoch 1360, Pop max fitness [1.5557422446249105e-05, 6.508721687060662e-05, 0.00024131274131274132]\n", + "epoch 1361, Pop max fitness [1.5557422446249105e-05, 0.0008680555555555555, 0.0002414875633904854]\n", + "epoch 1362, Pop max fitness [1.5557422446249105e-05, 0.00010719262514738985, 0.0006333122229259025]\n", + "epoch 1363, Pop max fitness [1.5557422446249105e-05, 8.629616845012081e-05, 0.00010630381630700542]\n", + "epoch 1364, Pop max fitness [1.5557422446249105e-05, 4.475474400286431e-05, 0.00011576753878212549]\n", + "epoch 1365, Pop max fitness [1.5557422446249105e-05, 0.00036023054755043225, 9.719117504130625e-05]\n", + "epoch 1366, Pop max fitness [1.5557422446249105e-05, 0.00012043839576056847, 0.00015342129487572875]\n", + "epoch 1367, Pop max fitness [1.5557422446249105e-05, 0.00025031289111389235, 0.0001481700992739665]\n", + "epoch 1368, Pop max fitness [1.5557422446249105e-05, 0.0005399568034557236, 0.0015723270440251573]\n", + "epoch 1369, Pop max fitness [1.5557422446249105e-05, 0.00019580967299784609, 9.363295880149813e-05]\n", + "epoch 1370, Pop max fitness [1.5557422446249105e-05, 0.00027878449958182325, 8.357011532675916e-05]\n", + "epoch 1371, Pop max fitness [1.5557422446249105e-05, 1.9932627718312105e-05, 0.00031308703819661864]\n", + "epoch 1372, Pop max fitness [1.5557422446249105e-05, 3.7527676661537886e-05, 5.1983157456983934e-05]\n", + "epoch 1373, Pop max fitness [1.5557422446249105e-05, 4.898119122257053e-05, 0.0003151591553734636]\n", + "epoch 1374, Pop max fitness [1.5557422446249105e-05, 5.8633831720902964e-05, 0.00032797638570022957]\n", + "epoch 1375, Pop max fitness [1.5557422446249105e-05, 8.375209380234506e-05, 0.00017352073572791948]\n", + "epoch 1376, Pop max fitness [1.5557422446249105e-05, 0.00010139931048468871, 0.00046860356138706655]\n", + "epoch 1377, Pop max fitness [1.5557422446249105e-05, 5.074854097944684e-05, 0.0002018978396931153]\n", + "epoch 1378, Pop max fitness [1.5557422446249105e-05, 0.00031084861672365556, 0.00036845983787767134]\n", + "epoch 1379, Pop max fitness [1.5557422446249105e-05, 0.0003297065611605671, 0.0008403361344537816]\n", + "epoch 1380, Pop max fitness [1.5557422446249105e-05, 9.718172983479106e-05, 0.0009025270758122744]\n", + "epoch 1381, Pop max fitness [1.5557422446249105e-05, 0.00015748031496062991, 0.0001246261216350947]\n", + "epoch 1382, Pop max fitness [1.5557422446249105e-05, 0.0015408320493066256, 0.00025906735751295336]\n", + "epoch 1383, Pop max fitness [1.5557422446249105e-05, 0.0002012477359629704, 0.0002522704339051463]\n", + "epoch 1384, Pop max fitness [1.5557422446249105e-05, 1.744561330053558e-05, 0.0003570153516601214]\n", + "epoch 1385, Pop max fitness [1.5557422446249105e-05, 0.00037425149700598805, 0.0001449905756125852]\n", + "epoch 1386, Pop max fitness [1.5557422446249105e-05, 0.0007429420505200594, 0.0014619883040935672]\n", + "epoch 1387, Pop max fitness [1.5557422446249105e-05, 0.00010054293183189222, 0.00019700551615445234]\n", + "epoch 1388, Pop max fitness [1.5557422446249105e-05, 0.00014336917562724014, 6.633939233116624e-05]\n", + "epoch 1389, Pop max fitness [1.5557422446249105e-05, 5.943183168905266e-05, 0.0007288629737609329]\n", + "epoch 1390, Pop max fitness [1.5557422446249105e-05, 7.759155803848541e-05, 0.0007122507122507123]\n", + "epoch 1391, Pop max fitness [1.5557422446249105e-05, 0.0006684491978609625, 0.00015513496742165683]\n", + "epoch 1392, Pop max fitness [1.5557422446249105e-05, 4.079800905715801e-05, 0.00041981528127623844]\n", + "epoch 1393, Pop max fitness [1.5557422446249105e-05, 7.138268256121065e-05, 0.5]\n", + "epoch 1394, Pop max fitness [1.5557422446249105e-05, 0.0014771048744460858, 0.00013747594171020073]\n", + "epoch 1395, Pop max fitness [1.5557422446249105e-05, 0.0014970059880239522, 0.0026246719160104987]\n", + "epoch 1396, Pop max fitness [1.5557422446249105e-05, 0.0001827151470856934, 0.00043535045711797995]\n", + "epoch 1397, Pop max fitness [1.5557422446249105e-05, 0.0001320829480914014, 0.0005497526113249038]\n", + "epoch 1398, Pop max fitness [1.5557422446249105e-05, 0.00025006251562890725, 0.0005344735435595938]\n", + "epoch 1399, Pop max fitness [1.5557422446249105e-05, 0.00023781212841854935, 0.0011587485515643105]\n", + "epoch 1400, Pop max fitness [1.5557422446249105e-05, 0.00010029084344599338, 0.00012960082944530845]\n", + "epoch 1401, Pop max fitness [1.5557422446249105e-05, 0.0006514657980456026, 0.0006361323155216285]\n", + "epoch 1402, Pop max fitness [1.5557422446249105e-05, 0.0008019246190858059, 0.0004338394793926247]\n", + "epoch 1403, Pop max fitness [1.5557422446249105e-05, 0.000683526999316473, 0.0002057189878625797]\n", + "epoch 1404, Pop max fitness [1.5557422446249105e-05, 9.150805270863836e-05, 0.00020973154362416107]\n", + "epoch 1405, Pop max fitness [1.5557422446249105e-05, 0.00023089355806972986, 0.00036536353671903543]\n", + "epoch 1406, Pop max fitness [1.5557422446249105e-05, 2.065603569362968e-05, 0.00021659085986571366]\n", + "epoch 1407, Pop max fitness [1.5557422446249105e-05, 7.593014426727411e-05, 0.00021164021164021165]\n", + "epoch 1408, Pop max fitness [1.5557422446249105e-05, 0.00012833675564681725, 0.0019157088122605363]\n", + "epoch 1409, Pop max fitness [1.5557422446249105e-05, 0.00013469827586206896, 0.000211954217888936]\n", + "epoch 1410, Pop max fitness [1.5557422446249105e-05, 0.003472222222222222, 0.0002827254735651682]\n", + "epoch 1411, Pop max fitness [1.5557422446249105e-05, 0.0006765899864682003, 0.00039494470774091627]\n", + "epoch 1412, Pop max fitness [1.5557422446249105e-05, 0.16666666666666666, 0.00010364842454394693]\n", + "epoch 1413, Pop max fitness [1.5557422446249105e-05, 3.5444653174068694e-05, 0.00028661507595299513]\n", + "epoch 1414, Pop max fitness [1.5557422446249105e-05, 0.00012007684918347742, 0.0007587253414264037]\n", + "epoch 1415, Pop max fitness [1.5557422446249105e-05, 0.00011165698972755694, 0.006172839506172839]\n", + "epoch 1416, Pop max fitness [1.5557422446249105e-05, 0.00011163206072784104, 0.00010676916506512919]\n", + "epoch 1417, Pop max fitness [1.5557422446249105e-05, 0.0001461133839859731, 0.0003419972640218878]\n", + "epoch 1418, Pop max fitness [1.5557422446249105e-05, 5.634437683119225e-05, 0.0001291655902867476]\n", + "epoch 1419, Pop max fitness [1.5557422446249105e-05, 7.402472425790214e-05, 0.00019809825673534074]\n", + "epoch 1420, Pop max fitness [1.5557422446249105e-05, 5.741187277528993e-05, 0.00020064205457463884]\n", + "epoch 1421, Pop max fitness [1.5557422446249105e-05, 8.926977325477593e-05, 0.00015644555694618273]\n", + "epoch 1422, Pop max fitness [1.5557422446249105e-05, 1.294598933250479e-05, 0.00014801657785671994]\n", + "epoch 1423, Pop max fitness [1.5557422446249105e-05, 1.8357718502744478e-05, 0.00010940919037199125]\n", + "epoch 1424, Pop max fitness [1.5557422446249105e-05, 4.990518015770037e-05, 0.0004737091425864519]\n", + "epoch 1425, Pop max fitness [1.5557422446249105e-05, 0.00016482610845557937, 0.0005040322580645161]\n", + "epoch 1426, Pop max fitness [1.5557422446249105e-05, 9.344921035417251e-05, 0.0002975304968759298]\n", + "epoch 1427, Pop max fitness [1.5557422446249105e-05, 0.00038895371450797355, 0.0013908205841446453]\n", + "epoch 1428, Pop max fitness [1.5557422446249105e-05, 0.0001607200257152041, 7.289692374981776e-05]\n", + "epoch 1429, Pop max fitness [1.5557422446249105e-05, 8.31186102568365e-05, 0.00013130252100840336]\n", + "epoch 1430, Pop max fitness [1.5557422446249105e-05, 7.490075649764063e-05, 0.000188040616773223]\n", + "epoch 1431, Pop max fitness [1.5557422446249105e-05, 7.432733759476735e-05, 0.0004816955684007707]\n", + "epoch 1432, Pop max fitness [1.5557422446249105e-05, 0.0006480881399870382, 0.00011644154634373545]\n", + "epoch 1433, Pop max fitness [1.5557422446249105e-05, 0.0007230657989877079, 0.00205761316872428]\n", + "epoch 1434, Pop max fitness [1.5557422446249105e-05, 3.11604138102954e-05, 5.107252298263534e-05]\n", + "epoch 1435, Pop max fitness [1.5557422446249105e-05, 3.183598102575531e-05, 0.00012827090815802975]\n", + "epoch 1436, Pop max fitness [1.5557422446249105e-05, 3.2893654813986384e-05, 0.00012840267077555214]\n", + "epoch 1437, Pop max fitness [1.5557422446249105e-05, 4.413452202312649e-05, 0.00010962508221881167]\n", + "epoch 1438, Pop max fitness [1.5557422446249105e-05, 2.5177501384762575e-05, 0.00029036004645760743]\n", + "epoch 1439, Pop max fitness [1.5557422446249105e-05, 0.00033875338753387534, 0.0017985611510791368]\n", + "epoch 1440, Pop max fitness [1.5557422446249105e-05, 0.00028935185185185184, 0.0017985611510791368]\n", + "epoch 1441, Pop max fitness [1.5557422446249105e-05, 0.00033783783783783786, 0.0010460251046025104]\n", + "epoch 1442, Pop max fitness [1.5557422446249105e-05, 0.00012448649321548613, 0.00019252984212552945]\n", + "epoch 1443, Pop max fitness [1.5557422446249105e-05, 5.905279319711823e-05, 0.00024154589371980676]\n", + "epoch 1444, Pop max fitness [1.5557422446249105e-05, 5.997361161089121e-05, 0.00023969319271332693]\n", + "epoch 1445, Pop max fitness [1.5557422446249105e-05, 2.2606022244325888e-05, 0.0005370569280343716]\n", + "epoch 1446, Pop max fitness [1.5557422446249105e-05, 3.190199706501627e-05, 0.0125]\n", + "epoch 1447, Pop max fitness [1.5557422446249105e-05, 0.00011088933244621867, 0.0002860411899313501]\n", + "epoch 1448, Pop max fitness [1.5557422446249105e-05, 0.00028392958546280523, 0.00012303149606299212]\n", + "epoch 1449, Pop max fitness [1.5557422446249105e-05, 0.0013123359580052493, 0.00012212994626282364]\n", + "epoch 1450, Pop max fitness [1.5557422446249105e-05, 3.862196817549822e-05, 0.00011531365313653136]\n", + "epoch 1451, Pop max fitness [1.5557422446249105e-05, 9.968102073365231e-05, 0.00012805736970162632]\n", + "epoch 1452, Pop max fitness [1.5557422446249105e-05, 4.3436712709582136e-05, 0.00012175818823815901]\n", + "epoch 1453, Pop max fitness [1.5557422446249105e-05, 0.00010002000400080016, 0.00012856775520699409]\n", + "epoch 1454, Pop max fitness [1.5557422446249105e-05, 7.03135986499789e-05, 0.001841620626151013]\n", + "epoch 1455, Pop max fitness [1.5557422446249105e-05, 2.3946360153256706e-05, 0.0014684287812041115]\n", + "epoch 1456, Pop max fitness [1.5557422446249105e-05, 2.0517871065698223e-05, 0.00013408420488066506]\n", + "epoch 1457, Pop max fitness [1.5557422446249105e-05, 3.1000062000124e-05, 0.0010940919037199124]\n", + "epoch 1458, Pop max fitness [1.5557422446249105e-05, 5.2851329210929655e-05, 0.0011534025374855825]\n", + "epoch 1459, Pop max fitness [1.5557422446249105e-05, 4.733951903048665e-05, 0.0010548523206751054]\n", + "epoch 1460, Pop max fitness [1.5557422446249105e-05, 0.00017921146953405018, 0.0003477051460361613]\n", + "epoch 1461, Pop max fitness [1.5557422446249105e-05, 7.161271841879118e-05, 0.0004130524576621231]\n", + "epoch 1462, Pop max fitness [1.5557422446249105e-05, 5.856515373352855e-05, 0.0003671071953010279]\n", + "epoch 1463, Pop max fitness [1.5557422446249105e-05, 5.212677231025855e-05, 0.000201450443190975]\n", + "epoch 1464, Pop max fitness [1.5557422446249105e-05, 4.2147854674197085e-05, 0.0024937655860349127]\n", + "epoch 1465, Pop max fitness [1.5557422446249105e-05, 4.961794184777215e-05, 0.0004086636697997548]\n", + "epoch 1466, Pop max fitness [1.5557422446249105e-05, 0.00023998080153587713, 0.0003707823507601038]\n", + "epoch 1467, Pop max fitness [1.5557422446249105e-05, 0.000243842965130456, 0.0006793478260869565]\n", + "epoch 1468, Pop max fitness [1.5557422446249105e-05, 0.000388651379712398, 0.0007127583749109052]\n", + "epoch 1469, Pop max fitness [1.5557422446249105e-05, 6.105378838756945e-05, 0.00035688793718772306]\n", + "epoch 1470, Pop max fitness [1.5557422446249105e-05, 5.58191459670667e-05, 3.764635018634943e-05]\n", + "epoch 1471, Pop max fitness [1.5557422446249105e-05, 0.00024372410431391665, 0.00010675776662752215]\n", + "epoch 1472, Pop max fitness [1.5557422446249105e-05, 0.00022406453058480843, 3.615982643283312e-05]\n", + "epoch 1473, Pop max fitness [1.5557422446249105e-05, 8.275405494869249e-05, 3.7911817113394244e-05]\n", + "epoch 1474, Pop max fitness [1.5557422446249105e-05, 0.00035650623885918, 5.764685536403989e-05]\n", + "epoch 1475, Pop max fitness [1.5557422446249105e-05, 0.0002738225629791895, 0.000578368999421631]\n", + "epoch 1476, Pop max fitness [1.5557422446249105e-05, 4.977105315548477e-05, 0.00022060445621001543]\n", + "epoch 1477, Pop max fitness [1.5557422446249105e-05, 5.253480430785395e-05, 3.418569670449884e-05]\n", + "epoch 1478, Pop max fitness [1.5557422446249105e-05, 0.0003026634382566586, 0.0004201680672268908]\n", + "epoch 1479, Pop max fitness [1.5557422446249105e-05, 8.7404947120007e-05, 2.8465698832906347e-05]\n", + "epoch 1480, Pop max fitness [1.5557422446249105e-05, 9.156670634557275e-05, 0.00033344448149383126]\n", + "epoch 1481, Pop max fitness [1.5557422446249105e-05, 6.214267959234402e-05, 0.00411522633744856]\n", + "epoch 1482, Pop max fitness [1.5557422446249105e-05, 0.00048756704046806434, 0.00423728813559322]\n", + "epoch 1483, Pop max fitness [1.5557422446249105e-05, 5.656748500961647e-05, 0.0005443658138268917]\n", + "epoch 1484, Pop max fitness [1.5557422446249105e-05, 5.641430666817105e-05, 0.0003170577045022194]\n", + "epoch 1485, Pop max fitness [1.5557422446249105e-05, 7.731560228854182e-05, 0.00019011406844106463]\n", + "epoch 1486, Pop max fitness [1.5557422446249105e-05, 9.099181073703367e-05, 7.783312577833126e-05]\n", + "epoch 1487, Pop max fitness [1.5557422446249105e-05, 3.3988172116103597e-05, 0.0001392757660167131]\n", + "epoch 1488, Pop max fitness [1.5557422446249105e-05, 4.7125353440150804e-05, 0.00040306328093510683]\n", + "epoch 1489, Pop max fitness [1.5557422446249105e-05, 2.6689441656880537e-05, 0.00017053206002728513]\n", + "epoch 1490, Pop max fitness [1.5557422446249105e-05, 2.5516713447307987e-05, 0.00024962556165751375]\n", + "epoch 1491, Pop max fitness [1.5557422446249105e-05, 5.59190292456523e-05, 0.00019661816751867872]\n", + "epoch 1492, Pop max fitness [1.5557422446249105e-05, 7.628346937218705e-05, 0.0018975332068311196]\n", + "epoch 1493, Pop max fitness [1.5557422446249105e-05, 3.314770617873243e-05, 0.0026595744680851063]\n", + "epoch 1494, Pop max fitness [1.5557422446249105e-05, 3.0126833971017986e-05, 0.0011261261261261261]\n", + "epoch 1495, Pop max fitness [1.5557422446249105e-05, 4.5735193231191405e-05, 0.000744047619047619]\n", + "epoch 1496, Pop max fitness [1.5557422446249105e-05, 3.360102147105272e-05, 0.003194888178913738]\n", + "epoch 1497, Pop max fitness [1.5557422446249105e-05, 2.1077036568658446e-05, 0.0002699055330634278]\n", + "epoch 1498, Pop max fitness [1.5557422446249105e-05, 2.3717477409102766e-05, 0.0001456664238892935]\n", + "epoch 1499, Pop max fitness [1.5557422446249105e-05, 0.00028208744710860365, 0.0011918951132300357]\n", + "epoch 1500, Pop max fitness [1.5557422446249105e-05, 0.0002757859900717044, 9.532888465204957e-05]\n", + "epoch 1501, Pop max fitness [1.5557422446249105e-05, 3.979307600477517e-05, 0.000100999899000101]\n", + "epoch 1502, Pop max fitness [1.5557422446249105e-05, 7.695859627520394e-05, 0.00017562346329469617]\n", + "epoch 1503, Pop max fitness [1.5557422446249105e-05, 2.869934565491907e-05, 7.477194556602363e-05]\n", + "epoch 1504, Pop max fitness [1.5557422446249105e-05, 9.898050084133426e-05, 2.4631148550456907e-05]\n", + "epoch 1505, Pop max fitness [1.5557422446249105e-05, 0.00014023278642546626, 8.855042946958293e-05]\n", + "epoch 1506, Pop max fitness [1.5557422446249105e-05, 0.00043233895373973193, 0.0002978850163836759]\n", + "epoch 1507, Pop max fitness [1.5557422446249105e-05, 0.000248015873015873, 0.00015260186174271325]\n", + "epoch 1508, Pop max fitness [1.5557422446249105e-05, 0.0005875440658049354, 0.0003299241174529858]\n", + "epoch 1509, Pop max fitness [1.5557422446249105e-05, 0.005952380952380952, 0.0018484288354898336]\n", + "epoch 1510, Pop max fitness [1.5557422446249105e-05, 7.350779182593354e-05, 0.00042069835927639884]\n", + "epoch 1511, Pop max fitness [1.5557422446249105e-05, 0.0007751937984496124, 0.0004786979415988511]\n", + "epoch 1512, Pop max fitness [1.5557422446249105e-05, 0.0002824060999717594, 0.00017085255424568598]\n", + "epoch 1513, Pop max fitness [1.5557422446249105e-05, 0.0002007628990162618, 0.0009891196834817012]\n", + "epoch 1514, Pop max fitness [1.5557422446249105e-05, 7.21552781585973e-05, 8.778860503906593e-05]\n", + "epoch 1515, Pop max fitness [1.5557422446249105e-05, 2.925516353636417e-05, 0.0006506180871828237]\n", + "epoch 1516, Pop max fitness [1.5557422446249105e-05, 8.375910880308233e-05, 0.00023792529145848205]\n", + "epoch 1517, Pop max fitness [1.5557422446249105e-05, 0.001364256480218281, 8.731336767659129e-05]\n", + "epoch 1518, Pop max fitness [1.5557422446249105e-05, 4.410143329658214e-05, 2.7679362267493358e-05]\n", + "epoch 1519, Pop max fitness [1.5557422446249105e-05, 0.0005704506560182544, 0.0004692632566870014]\n", + "epoch 1520, Pop max fitness [1.5557422446249105e-05, 0.0001026167265264238, 3.192338387869114e-05]\n", + "epoch 1521, Pop max fitness [1.5557422446249105e-05, 1.6983407211154702e-05, 0.00019293845263360988]\n", + "epoch 1522, Pop max fitness [1.5557422446249105e-05, 2.4371816431478637e-05, 0.00014878738282993602]\n", + "epoch 1523, Pop max fitness [1.5557422446249105e-05, 6.454527851287678e-05, 0.00013676148796498905]\n", + "epoch 1524, Pop max fitness [1.5557422446249105e-05, 0.000444247001332741, 0.006802721088435374]\n", + "epoch 1525, Pop max fitness [1.5557422446249105e-05, 0.0019120458891013384, 0.0005652911249293386]\n", + "epoch 1526, Pop max fitness [1.5557422446249105e-05, 0.00046146746654360867, 0.00014690759512266783]\n", + "epoch 1527, Pop max fitness [1.5557422446249105e-05, 0.00036403349108117945, 0.00017627357659086903]\n", + "epoch 1528, Pop max fitness [1.5557422446249105e-05, 0.00013513513513513514, 0.001607717041800643]\n", + "epoch 1529, Pop max fitness [1.5557422446249105e-05, 0.00013623978201634878, 0.000250689395838556]\n", + "epoch 1530, Pop max fitness [1.5557422446249105e-05, 3.304474258145529e-05, 0.00018691588785046728]\n", + "epoch 1531, Pop max fitness [1.5557422446249105e-05, 5.1506567087303634e-05, 0.00018426386585590566]\n", + "epoch 1532, Pop max fitness [1.5557422446249105e-05, 0.000149678191887442, 0.00010413412475268145]\n", + "epoch 1533, Pop max fitness [1.5557422446249105e-05, 0.00014932059130954157, 9.606147934678194e-05]\n", + "epoch 1534, Pop max fitness [1.5557422446249105e-05, 3.940265573899681e-05, 0.006944444444444444]\n", + "epoch 1535, Pop max fitness [1.5557422446249105e-05, 2.8443837642574737e-05, 6.610259122157589e-05]\n", + "epoch 1536, Pop max fitness [1.5557422446249105e-05, 0.00049800796812749, 0.16666666666666666]\n", + "epoch 1537, Pop max fitness [1.5557422446249105e-05, 0.00014336917562724014, 0.0008169934640522876]\n", + "epoch 1538, Pop max fitness [1.5557422446249105e-05, 8.93016610108948e-05, 8.552856654122477e-05]\n", + "epoch 1539, Pop max fitness [1.5557422446249105e-05, 6.073858114674441e-05, 6.464959917248513e-05]\n", + "epoch 1540, Pop max fitness [1.5557422446249105e-05, 2.8210336267208305e-05, 0.0006024096385542169]\n", + "epoch 1541, Pop max fitness [1.5557422446249105e-05, 5.876821814762576e-05, 0.00013708019191226866]\n", + "epoch 1542, Pop max fitness [1.5557422446249105e-05, 5.872680291284943e-05, 6.644959797993223e-05]\n", + "epoch 1543, Pop max fitness [1.5557422446249105e-05, 0.00010583130489998942, 7.669299792928905e-05]\n", + "epoch 1544, Pop max fitness [1.5557422446249105e-05, 0.0001486546751895347, 8.605111436193098e-05]\n", + "epoch 1545, Pop max fitness [1.5557422446249105e-05, 6.633499170812604e-05, 0.00020820320632937748]\n", + "epoch 1546, Pop max fitness [1.5557422446249105e-05, 1.9764017629503725e-05, 0.0009182736455463728]\n", + "epoch 1547, Pop max fitness [1.5557422446249105e-05, 1.7438920182062327e-05, 0.0051813471502590676]\n", + "epoch 1548, Pop max fitness [1.5557422446249105e-05, 1.7871823283411373e-05, 0.038461538461538464]\n", + "epoch 1549, Pop max fitness [1.5557422446249105e-05, 2.0019218449711722e-05, 0.014492753623188406]\n", + "epoch 1550, Pop max fitness [1.5557422446249105e-05, 3.780289570181076e-05, 0.003355704697986577]\n", + "epoch 1551, Pop max fitness [1.5557422446249105e-05, 0.00011170688114387846, 0.0029940119760479044]\n", + "epoch 1552, Pop max fitness [1.5557422446249105e-05, 2.4124870328821983e-05, 0.002932551319648094]\n", + "epoch 1553, Pop max fitness [1.5557422446249105e-05, 9.828975820719482e-05, 0.00019739439399921041]\n", + "epoch 1554, Pop max fitness [1.5557422446249105e-05, 7.22700007227e-05, 0.00029394473838918284]\n", + "epoch 1555, Pop max fitness [1.5557422446249105e-05, 0.0002149151085321298, 0.00027218290691344586]\n", + "epoch 1556, Pop max fitness [1.5557422446249105e-05, 0.00011085245538188671, 0.003257328990228013]\n", + "epoch 1557, Pop max fitness [1.5557422446249105e-05, 2.712085050987199e-05, 0.0022727272727272726]\n", + "epoch 1558, Pop max fitness [1.5557422446249105e-05, 6.974473427256242e-05, 0.004901960784313725]\n", + "epoch 1559, Pop max fitness [1.5557422446249105e-05, 4.053341980462892e-05, 0.0005780346820809249]\n", + "epoch 1560, Pop max fitness [1.5557422446249105e-05, 9.77421561919656e-05, 0.00036310820624546115]\n", + "epoch 1561, Pop max fitness [1.5557422446249105e-05, 0.00022967386311437759, 0.00032658393207054214]\n", + "epoch 1562, Pop max fitness [1.5557422446249105e-05, 0.00021978021978021978, 8.563110121596163e-05]\n", + "epoch 1563, Pop max fitness [1.5557422446249105e-05, 0.0002977963073257892, 7.779679477205539e-05]\n", + "epoch 1564, Pop max fitness [1.5557422446249105e-05, 5.778676683039584e-05, 7.02740688685875e-05]\n", + "epoch 1565, Pop max fitness [1.5557422446249105e-05, 4.516303856923494e-05, 5.785363031530229e-05]\n", + "epoch 1566, Pop max fitness [1.5557422446249105e-05, 4.285040922140807e-05, 7.616146230007616e-05]\n", + "epoch 1567, Pop max fitness [1.5557422446249105e-05, 3.306878306878307e-05, 0.00425531914893617]\n", + "epoch 1568, Pop max fitness [1.5557422446249105e-05, 4.3584379358437934e-05, 0.001321003963011889]\n", + "epoch 1569, Pop max fitness [1.5557422446249105e-05, 6.921373200442968e-05, 0.00010067451927917044]\n", + "epoch 1570, Pop max fitness [1.5557422446249105e-05, 0.0002845759817871372, 0.00014541224371092046]\n", + "epoch 1571, Pop max fitness [1.5557422446249105e-05, 9.956192751891676e-05, 0.0001120699316373417]\n", + "epoch 1572, Pop max fitness [1.5557422446249105e-05, 4.505519261094841e-05, 0.0013908205841446453]\n", + "epoch 1573, Pop max fitness [1.5557422446249105e-05, 0.00042052144659377626, 0.0004526935264825713]\n", + "epoch 1574, Pop max fitness [1.5557422446249105e-05, 9.744689144416293e-05, 0.0005268703898840885]\n", + "epoch 1575, Pop max fitness [1.5557422446249105e-05, 0.00016874789065136686, 0.00011397310234784591]\n", + "epoch 1576, Pop max fitness [1.5557422446249105e-05, 0.00015518311607697082, 0.0003654970760233918]\n", + "epoch 1577, Pop max fitness [1.5557422446249105e-05, 0.0011737089201877935, 0.0003971405877680699]\n", + "epoch 1578, Pop max fitness [1.5557422446249105e-05, 3.7038408829956664e-05, 0.0009074410163339383]\n", + "epoch 1579, Pop max fitness [1.5557422446249105e-05, 0.00013257324671881213, 0.002717391304347826]\n", + "epoch 1580, Pop max fitness [1.5557422446249105e-05, 9.961151509114453e-05, 0.00017117425539198904]\n", + "epoch 1581, Pop max fitness [1.5557422446249105e-05, 3.418920304967691e-05, 0.00017117425539198904]\n", + "epoch 1582, Pop max fitness [1.5557422446249105e-05, 0.0008620689655172414, 0.0007072135785007072]\n", + "epoch 1583, Pop max fitness [1.5557422446249105e-05, 0.00019069412662090009, 0.0007052186177715092]\n", + "epoch 1584, Pop max fitness [1.5557422446249105e-05, 0.00017340038148083925, 0.004545454545454545]\n", + "epoch 1585, Pop max fitness [1.5557422446249105e-05, 3.446849579484351e-05, 0.0005592841163310962]\n", + "epoch 1586, Pop max fitness [1.5557422446249105e-05, 7.367025195226167e-05, 0.00028694404591104734]\n", + "epoch 1587, Pop max fitness [1.5557422446249105e-05, 0.0003694126339120798, 0.00015176809834572774]\n", + "epoch 1588, Pop max fitness [1.5557422446249105e-05, 0.0005099439061703213, 0.00023282887077997672]\n", + "epoch 1589, Pop max fitness [1.5557422446249105e-05, 0.0004510599909788002, 0.0005189413596263622]\n", + "epoch 1590, Pop max fitness [1.5557422446249105e-05, 7.101768340316739e-05, 7.834534628643058e-05]\n", + "epoch 1591, Pop max fitness [1.5557422446249105e-05, 0.000275027502750275, 8.145975887911372e-05]\n", + "epoch 1592, Pop max fitness [1.5557422446249105e-05, 3.390060343074107e-05, 0.00014273479874393378]\n", + "epoch 1593, Pop max fitness [1.5557422446249105e-05, 3.605422555523507e-05, 0.00031426775612822125]\n", + "epoch 1594, Pop max fitness [1.5557422446249105e-05, 4.423995752964077e-05, 3.4789869190091844e-05]\n", + "epoch 1595, Pop max fitness [1.5557422446249105e-05, 1.9782393669634026e-05, 2.8562451800862586e-05]\n", + "epoch 1596, Pop max fitness [1.5557422446249105e-05, 0.0008237232289950577, 0.00044583147570218456]\n", + "epoch 1597, Pop max fitness [1.5557422446249105e-05, 0.00013015749056358194, 5.251273433807698e-05]\n", + "epoch 1598, Pop max fitness [1.5557422446249105e-05, 0.000281610813855252, 4.005126561999359e-05]\n", + "epoch 1599, Pop max fitness [1.5557422446249105e-05, 4.05926527298559e-05, 0.0005230125523012552]\n", + "epoch 1600, Pop max fitness [1.5557422446249105e-05, 3.9988803135122166e-05, 0.0002795638803466592]\n", + "epoch 1601, Pop max fitness [1.5557422446249105e-05, 0.0019157088122605363, 0.0003222687721559781]\n", + "epoch 1602, Pop max fitness [1.5557422446249105e-05, 4.6959380136182205e-05, 0.03225806451612903]\n", + "epoch 1603, Pop max fitness [1.5557422446249105e-05, 8.166598611678236e-05, 0.00039541320680110717]\n", + "epoch 1604, Pop max fitness [1.5557422446249105e-05, 2.215182863345369e-05, 6.043391551338611e-05]\n", + "epoch 1605, Pop max fitness [1.5557422446249105e-05, 0.0008613264427217916, 6.16294835449279e-05]\n", + "epoch 1606, Pop max fitness [1.5557422446249105e-05, 0.0011723329425556857, 0.00018800526414739614]\n", + "epoch 1607, Pop max fitness [1.5557422446249105e-05, 0.000500751126690035, 0.00014436263894903998]\n", + "epoch 1608, Pop max fitness [1.5557422446249105e-05, 0.025, 0.00012992074834351045]\n", + "epoch 1609, Pop max fitness [1.5557422446249105e-05, 2.1837875611460516e-05, 0.0005211047420531526]\n", + "epoch 1610, Pop max fitness [1.5557422446249105e-05, 0.0006203473945409429, 0.0004597701149425287]\n", + "epoch 1611, Pop max fitness [1.5557422446249105e-05, 4.964750273061265e-05, 0.0015503875968992248]\n", + "epoch 1612, Pop max fitness [1.5557422446249105e-05, 0.00015337423312883436, 0.0005521811154058532]\n", + "epoch 1613, Pop max fitness [1.5557422446249105e-05, 0.00015037593984962405, 0.00018165304268846503]\n", + "epoch 1614, Pop max fitness [1.5557422446249105e-05, 3.986922892911251e-05, 0.00018165304268846503]\n", + "epoch 1615, Pop max fitness [1.5557422446249105e-05, 5.904581955597544e-05, 0.00019241870309794111]\n", + "epoch 1616, Pop max fitness [1.5557422446249105e-05, 2.3993473775133165e-05, 0.0005630630630630631]\n", + "epoch 1617, Pop max fitness [1.5557422446249105e-05, 0.00010501995379122033, 0.00015743073047858942]\n", + "epoch 1618, Pop max fitness [1.5557422446249105e-05, 0.0002077274615704196, 0.0004332755632582322]\n", + "epoch 1619, Pop max fitness [1.5557422446249105e-05, 4.869497467861317e-05, 0.002197802197802198]\n", + "epoch 1620, Pop max fitness [1.5557422446249105e-05, 4.891410682840931e-05, 0.00035285815102328866]\n", + "epoch 1621, Pop max fitness [1.5557422446249105e-05, 0.00022893772893772894, 0.001579778830963665]\n", + "epoch 1622, Pop max fitness [1.5557422446249105e-05, 1.8031013342949874e-05, 0.0010857763300760044]\n", + "epoch 1623, Pop max fitness [1.5557422446249105e-05, 0.00019436345966958212, 0.005050505050505051]\n", + "epoch 1624, Pop max fitness [1.5557422446249105e-05, 3.350308228357009e-05, 0.0037593984962406013]\n", + "epoch 1625, Pop max fitness [1.5557422446249105e-05, 0.006578947368421052, 0.001160092807424594]\n", + "epoch 1626, Pop max fitness [1.5557422446249105e-05, 0.0026595744680851063, 0.0001505797319680771]\n", + "epoch 1627, Pop max fitness [1.5557422446249105e-05, 8.330556481172943e-05, 0.00022396416573348266]\n", + "epoch 1628, Pop max fitness [1.5557422446249105e-05, 0.00011798017932987259, 0.00019489378288832586]\n", + "epoch 1629, Pop max fitness [1.5557422446249105e-05, 5.8795860771401695e-05, 0.00020016012810248197]\n", + "epoch 1630, Pop max fitness [1.5557422446249105e-05, 2.239140170174653e-05, 0.00030084235860409147]\n", + "epoch 1631, Pop max fitness [1.5557422446249105e-05, 4.270949004868882e-05, 0.0005330490405117271]\n", + "epoch 1632, Pop max fitness [1.5557422446249105e-05, 0.0006341154090044388, 0.0007892659826361484]\n", + "epoch 1633, Pop max fitness [1.5557422446249105e-05, 0.00046274872744099955, 0.0001410039481105471]\n", + "epoch 1634, Pop max fitness [1.5557422446249105e-05, 0.00034940600978336826, 0.00031065548306927616]\n", + "epoch 1635, Pop max fitness [1.5557422446249105e-05, 2.1356569280710747e-05, 8.139345596614032e-05]\n", + "epoch 1636, Pop max fitness [1.5557422446249105e-05, 9.541984732824427e-05, 0.0005988023952095808]\n", + "epoch 1637, Pop max fitness [1.5557422446249105e-05, 8.802042073761112e-05, 0.0004897159647404506]\n", + "epoch 1638, Pop max fitness [1.5557422446249105e-05, 8.399832003359933e-05, 0.0003028467595396729]\n", + "epoch 1639, Pop max fitness [1.5557422446249105e-05, 2.1902926230944456e-05, 0.0001866368047779022]\n", + "epoch 1640, Pop max fitness [1.5557422446249105e-05, 2.723014922121773e-05, 0.00011646866992778943]\n", + "epoch 1641, Pop max fitness [1.5557422446249105e-05, 9.76657876745776e-05, 0.00011671335200746966]\n", + "epoch 1642, Pop max fitness [1.5557422446249105e-05, 3.7543174650848474e-05, 2.680533962365303e-05]\n", + "epoch 1643, Pop max fitness [1.5557422446249105e-05, 2.1228718209994482e-05, 0.0002143163309044149]\n", + "epoch 1644, Pop max fitness [1.5557422446249105e-05, 8.748141020033243e-05, 0.0008123476848090983]\n", + "epoch 1645, Pop max fitness [1.5557422446249105e-05, 0.0001889644746787604, 0.0012239902080783353]\n", + "epoch 1646, Pop max fitness [1.5557422446249105e-05, 1.8288556849978968e-05, 0.00130718954248366]\n", + "epoch 1647, Pop max fitness [1.5557422446249105e-05, 1.890144785090538e-05, 9.810654370646523e-05]\n", + "epoch 1648, Pop max fitness [1.5557422446249105e-05, 6.962818548948615e-05, 0.0002740476842970677]\n", + "epoch 1649, Pop max fitness [1.5557422446249105e-05, 5.428292259255238e-05, 0.00027862914460852607]\n", + "epoch 1650, Pop max fitness [1.5557422446249105e-05, 5.967655308229397e-05, 0.0008733624454148472]\n", + "epoch 1651, Pop max fitness [1.5557422446249105e-05, 2.4634789249377972e-05, 0.00017809439002671417]\n", + "epoch 1652, Pop max fitness [1.5557422446249105e-05, 2.198623661587846e-05, 0.0002447381302006853]\n", + "epoch 1653, Pop max fitness [1.5557422446249105e-05, 0.0001864975755315181, 0.0005282620179609086]\n", + "epoch 1654, Pop max fitness [1.5557422446249105e-05, 0.00048007681228996637, 0.0003051571559353067]\n", + "epoch 1655, Pop max fitness [1.5557422446249105e-05, 8.690362388111584e-05, 0.00027800945232137893]\n", + "epoch 1656, Pop max fitness [1.5557422446249105e-05, 4.491354143274197e-05, 0.00021982853374367993]\n", + "epoch 1657, Pop max fitness [1.5557422446249105e-05, 0.00045187528242205153, 0.0008733624454148472]\n", + "epoch 1658, Pop max fitness [1.5557422446249105e-05, 0.008620689655172414, 0.00011648223645894001]\n", + "epoch 1659, Pop max fitness [1.5557422446249105e-05, 3.0155906034196797e-05, 0.00012521913348359628]\n", + "epoch 1660, Pop max fitness [1.5557422446249105e-05, 6.422195106287329e-05, 0.0001852537977028529]\n", + "epoch 1661, Pop max fitness [1.5557422446249105e-05, 2.209114807696556e-05, 0.00035612535612535614]\n", + "epoch 1662, Pop max fitness [1.5557422446249105e-05, 2.2177866489243733e-05, 0.0003563791874554526]\n", + "epoch 1663, Pop max fitness [1.5557422446249105e-05, 2.3306763622803337e-05, 0.00018625442354255913]\n", + "epoch 1664, Pop max fitness [1.5557422446249105e-05, 3.0214218811372632e-05, 0.0004752851711026616]\n", + "epoch 1665, Pop max fitness [1.5557422446249105e-05, 0.00016742005692281934, 0.00023980815347721823]\n", + "epoch 1666, Pop max fitness [1.5557422446249105e-05, 5.9912527709544064e-05, 0.0001232134056185313]\n", + "epoch 1667, Pop max fitness [1.5557422446249105e-05, 3.0346250720723456e-05, 0.0005931198102016608]\n", + "epoch 1668, Pop max fitness [1.5557422446249105e-05, 3.31092937787637e-05, 0.00036310820624546115]\n", + "epoch 1669, Pop max fitness [1.5557422446249105e-05, 4.0363269424823414e-05, 0.014925373134328358]\n", + "epoch 1670, Pop max fitness [1.5557422446249105e-05, 4.83863163497363e-05, 0.0014265335235378032]\n", + "epoch 1671, Pop max fitness [1.5557422446249105e-05, 1.0059957345780854e-05, 0.0004977600796416127]\n", + "epoch 1672, Pop max fitness [1.5557422446249105e-05, 7.872775940796725e-05, 0.0002664535038635758]\n", + "epoch 1673, Pop max fitness [1.5557422446249105e-05, 0.00011614401858304297, 0.00032797638570022957]\n", + "epoch 1674, Pop max fitness [1.5557422446249105e-05, 3.891959212267455e-05, 0.0002914602156805596]\n", + "epoch 1675, Pop max fitness [1.5557422446249105e-05, 3.89211069162807e-05, 0.00015661707126076742]\n", + "epoch 1676, Pop max fitness [1.5557422446249105e-05, 3.76095377787807e-05, 0.0001342822613132805]\n", + "epoch 1677, Pop max fitness [1.5557422446249105e-05, 8.708525646608029e-05, 8.577064928381508e-05]\n", + "epoch 1678, Pop max fitness [1.5557422446249105e-05, 4.12660421738951e-05, 0.0002358490566037736]\n", + "epoch 1679, Pop max fitness [1.5557422446249105e-05, 2.8583678719451193e-05, 6.578947368421052e-05]\n", + "epoch 1680, Pop max fitness [1.5557422446249105e-05, 0.0003297065611605671, 7.603406326034063e-05]\n", + "epoch 1681, Pop max fitness [1.5557422446249105e-05, 4.315553253927153e-05, 6.636140420731303e-05]\n", + "epoch 1682, Pop max fitness [1.5557422446249105e-05, 4.002721850858584e-05, 0.00011439029970258523]\n", + "epoch 1683, Pop max fitness [1.5557422446249105e-05, 0.00017485574401119076, 9.986019572598362e-05]\n", + "epoch 1684, Pop max fitness [1.5557422446249105e-05, 1.4144271570014144e-05, 1.7066593849199577e-05]\n", + "epoch 1685, Pop max fitness [1.5557422446249105e-05, 1.9535447068706167e-05, 2.0647505781301617e-05]\n", + "epoch 1686, Pop max fitness [1.5557422446249105e-05, 4.320214282628418e-05, 0.0001243781094527363]\n", + "epoch 1687, Pop max fitness [1.5557422446249105e-05, 0.00010376673238559718, 0.000361271676300578]\n", + "epoch 1688, Pop max fitness [1.5557422446249105e-05, 0.00010478885046631039, 0.0002639218791237794]\n", + "epoch 1689, Pop max fitness [1.5557422446249105e-05, 0.00018145527127563056, 0.0002281021897810219]\n", + "epoch 1690, Pop max fitness [1.5557422446249105e-05, 0.00010694043417816276, 0.00019425019425019425]\n", + "epoch 1691, Pop max fitness [1.5557422446249105e-05, 0.00011114816049794375, 2.6333113890717576e-05]\n", + "epoch 1692, Pop max fitness [1.5557422446249105e-05, 6.835737234260716e-05, 3.85981164119191e-05]\n", + "epoch 1693, Pop max fitness [1.5557422446249105e-05, 0.00016110842597067828, 3.164256557921716e-05]\n", + "epoch 1694, Pop max fitness [1.5557422446249105e-05, 0.00012313754463735992, 0.00012618296529968455]\n", + "epoch 1695, Pop max fitness [1.5557422446249105e-05, 9.422406482615661e-05, 6.942515967786726e-05]\n", + "epoch 1696, Pop max fitness [1.5557422446249105e-05, 9.898050084133426e-05, 0.0002564102564102564]\n", + "epoch 1697, Pop max fitness [1.5557422446249105e-05, 0.00011726078799249531, 0.0002586652871184687]\n", + "epoch 1698, Pop max fitness [1.5557422446249105e-05, 0.0005959475566150178, 0.00042918454935622315]\n", + "epoch 1699, Pop max fitness [1.5557422446249105e-05, 0.00016160310277957336, 0.00040749796251018743]\n", + "epoch 1700, Pop max fitness [1.5557422446249105e-05, 0.00020056157240272763, 0.00040749796251018743]\n", + "epoch 1701, Pop max fitness [1.5557422446249105e-05, 0.00015323322096230462, 0.0028089887640449437]\n", + "epoch 1702, Pop max fitness [1.5557422446249105e-05, 9.790483649892304e-05, 0.0033333333333333335]\n", + "epoch 1703, Pop max fitness [1.5557422446249105e-05, 4.157831275206852e-05, 0.0013531799729364006]\n", + "epoch 1704, Pop max fitness [1.5557422446249105e-05, 4.8835278605264445e-05, 0.0055248618784530384]\n", + "epoch 1705, Pop max fitness [1.5557422446249105e-05, 0.0001313370107696349, 0.0010214504596527069]\n", + "epoch 1706, Pop max fitness [1.5557422446249105e-05, 0.0002101281781886951, 0.00010733068584308254]\n", + "epoch 1707, Pop max fitness [1.5557422446249105e-05, 7.857311228097745e-05, 0.0029585798816568047]\n", + "epoch 1708, Pop max fitness [1.5557422446249105e-05, 2.3577120762012543e-05, 0.0006997900629811056]\n", + "epoch 1709, Pop max fitness [1.5557422446249105e-05, 0.0013458950201884253, 0.0005299417064122947]\n", + "epoch 1710, Pop max fitness [1.5557422446249105e-05, 0.0002542588354945334, 0.0004962779156327543]\n", + "epoch 1711, Pop max fitness [1.5557422446249105e-05, 3.610108303249098e-05, 0.00044033465433729633]\n", + "epoch 1712, Pop max fitness [1.5557422446249105e-05, 6.045218232378189e-05, 0.0002463661000246366]\n", + "epoch 1713, Pop max fitness [1.5557422446249105e-05, 0.00042444821731748726, 0.00018125793003443902]\n", + "epoch 1714, Pop max fitness [1.5557422446249105e-05, 0.0007204610951008645, 0.0003356831151393085]\n", + "epoch 1715, Pop max fitness [1.5557422446249105e-05, 0.0003699593044765076, 8.905512512245079e-05]\n", + "epoch 1716, Pop max fitness [1.5557422446249105e-05, 0.0016155088852988692, 0.00022466861379465288]\n", + "epoch 1717, Pop max fitness [1.5557422446249105e-05, 8.208832703989493e-05, 6.839477463921757e-05]\n", + "epoch 1718, Pop max fitness [1.5557422446249105e-05, 0.00013469827586206896, 0.000142025280499929]\n", + "epoch 1719, Pop max fitness [1.5557422446249105e-05, 5.278158978148422e-05, 0.0008764241893076249]\n", + "epoch 1720, Pop max fitness [1.5557422446249105e-05, 0.0003118178983473651, 0.00011610356437942645]\n", + "epoch 1721, Pop max fitness [1.5557422446249105e-05, 1.9392999127315038e-05, 5.875785886362301e-05]\n", + "epoch 1722, Pop max fitness [1.5557422446249105e-05, 3.09281538984938e-05, 6.44620640752917e-05]\n", + "epoch 1723, Pop max fitness [1.5557422446249105e-05, 4.0417104518632284e-05, 0.003816793893129771]\n", + "epoch 1724, Pop max fitness [1.5557422446249105e-05, 0.0001699235344095157, 5.314625850340136e-05]\n", + "epoch 1725, Pop max fitness [1.5557422446249105e-05, 0.0001753463089601964, 0.0004791566842357451]\n", + "epoch 1726, Pop max fitness [1.5557422446249105e-05, 0.00043535045711797995, 0.0001178967224711153]\n", + "epoch 1727, Pop max fitness [1.5557422446249105e-05, 0.00042498937526561835, 0.00027159152634437803]\n", + "epoch 1728, Pop max fitness [1.5557422446249105e-05, 7.811279487580065e-05, 0.00010823682216690118]\n", + "epoch 1729, Pop max fitness [1.5557422446249105e-05, 4.796163069544364e-05, 0.004807692307692308]\n", + "epoch 1730, Pop max fitness [1.5557422446249105e-05, 0.00021593608291945585, 0.00010517458981909971]\n", + "epoch 1731, Pop max fitness [1.5557422446249105e-05, 5.766347595433053e-05, 0.00026116479498563595]\n", + "epoch 1732, Pop max fitness [1.5557422446249105e-05, 0.00010816657652785289, 1.925595008857737e-05]\n", + "epoch 1733, Pop max fitness [1.5557422446249105e-05, 4.50815976918222e-05, 6.764069264069264e-05]\n", + "epoch 1734, Pop max fitness [1.5557422446249105e-05, 6.594131223211343e-05, 0.00015206812652068127]\n", + "epoch 1735, Pop max fitness [1.5557422446249105e-05, 0.0011001100110011, 0.0016025641025641025]\n", + "epoch 1736, Pop max fitness [1.5557422446249105e-05, 3.8753681599751974e-05, 0.00019813750743015652]\n", + "epoch 1737, Pop max fitness [1.5557422446249105e-05, 1.623666563834451e-05, 0.00020329335230737954]\n", + "epoch 1738, Pop max fitness [1.5557422446249105e-05, 0.0003050640634533252, 0.009615384615384616]\n", + "epoch 1739, Pop max fitness [1.5557422446249105e-05, 0.00017132088401576153, 0.005952380952380952]\n", + "epoch 1740, Pop max fitness [1.5557422446249105e-05, 0.00010165700925078785, 0.00012419274714356682]\n", + "epoch 1741, Pop max fitness [1.5557422446249105e-05, 2.0599443815016995e-05, 5.778676683039584e-05]\n", + "epoch 1742, Pop max fitness [1.5557422446249105e-05, 9.242998428690267e-05, 0.0002018978396931153]\n", + "epoch 1743, Pop max fitness [1.5557422446249105e-05, 0.0002161227577263886, 2.879189220315559e-05]\n", + "epoch 1744, Pop max fitness [1.5557422446249105e-05, 0.0004791566842357451, 5.304758368256326e-05]\n", + "epoch 1745, Pop max fitness [1.5557422446249105e-05, 0.0002915451895043732, 4.579173917025369e-05]\n", + "epoch 1746, Pop max fitness [1.5557422446249105e-05, 0.0004730368968779565, 3.637554108617366e-05]\n", + "epoch 1747, Pop max fitness [1.5557422446249105e-05, 0.0002907822041291073, 0.00019065776930409913]\n", + "epoch 1748, Pop max fitness [1.5557422446249105e-05, 0.0005837711617046118, 0.00012331976815883587]\n", + "epoch 1749, Pop max fitness [1.5557422446249105e-05, 0.0007137758743754461, 2.7261327081402323e-05]\n", + "epoch 1750, Pop max fitness [1.5557422446249105e-05, 0.00025119316754584274, 0.00016531658125309968]\n", + "epoch 1751, Pop max fitness [1.5557422446249105e-05, 0.00017717930545712261, 0.0004675081813931744]\n", + "epoch 1752, Pop max fitness [1.5557422446249105e-05, 0.00018907165815844205, 0.0003772161448509996]\n", + "epoch 1753, Pop max fitness [1.5557422446249105e-05, 0.000129886998311469, 0.0001243008079552517]\n", + "epoch 1754, Pop max fitness [1.5557422446249105e-05, 0.0001272264631043257, 0.003952569169960474]\n", + "epoch 1755, Pop max fitness [1.5557422446249105e-05, 2.5643655759565083e-05, 0.003952569169960474]\n", + "epoch 1756, Pop max fitness [1.5557422446249105e-05, 7.685804319422027e-05, 0.0010030090270812437]\n", + "epoch 1757, Pop max fitness [1.5557422446249105e-05, 0.000249003984063745, 0.00025940337224383917]\n", + "epoch 1758, Pop max fitness [1.5557422446249105e-05, 0.000235626767200754, 0.0002461235540241201]\n", + "epoch 1759, Pop max fitness [1.5557422446249105e-05, 3.8972680151214e-05, 4.868075163080518e-05]\n", + "epoch 1760, Pop max fitness [1.5557422446249105e-05, 4.446816079686944e-05, 8.984725965858041e-05]\n", + "epoch 1761, Pop max fitness [1.5557422446249105e-05, 3.728004771846108e-05, 9.833808634083981e-05]\n", + "epoch 1762, Pop max fitness [1.5557422446249105e-05, 2.1464754872499354e-05, 0.00010793308148947653]\n", + "epoch 1763, Pop max fitness [1.5557422446249105e-05, 3.207595586348473e-05, 9.823182711198428e-05]\n", + "epoch 1764, Pop max fitness [1.5557422446249105e-05, 0.00012178784557301182, 6.913716814159292e-05]\n", + "epoch 1765, Pop max fitness [1.5557422446249105e-05, 7.068136839129205e-05, 0.0004940711462450593]\n", + "epoch 1766, Pop max fitness [1.5557422446249105e-05, 3.7520636349992496e-05, 0.00025075225677031093]\n", + "epoch 1767, Pop max fitness [1.5557422446249105e-05, 0.00037064492216456633, 0.006578947368421052]\n", + "epoch 1768, Pop max fitness [1.5557422446249105e-05, 2.1491972748178555e-05, 0.000248015873015873]\n", + "epoch 1769, Pop max fitness [1.5557422446249105e-05, 1.1083034091412865e-05, 0.00047393364928909954]\n", + "epoch 1770, Pop max fitness [1.5557422446249105e-05, 5.759041695461875e-05, 0.020833333333333332]\n", + "epoch 1771, Pop max fitness [1.5557422446249105e-05, 0.00012695188523549576, 0.00015202189115232594]\n", + "epoch 1772, Pop max fitness [1.5557422446249105e-05, 0.00045454545454545455, 0.001524390243902439]\n", + "epoch 1773, Pop max fitness [1.5557422446249105e-05, 6.411900487304436e-05, 0.0009633911368015414]\n", + "epoch 1774, Pop max fitness [1.5557422446249105e-05, 0.0007886435331230284, 0.014285714285714285]\n", + "epoch 1775, Pop max fitness [1.5557422446249105e-05, 4.3900083410158476e-05, 0.0010482180293501049]\n", + "epoch 1776, Pop max fitness [1.5557422446249105e-05, 2.0448225094061837e-05, 0.0003698224852071006]\n", + "epoch 1777, Pop max fitness [1.5557422446249105e-05, 4.2238648363252374e-05, 0.0008417508417508417]\n", + "epoch 1778, Pop max fitness [1.5557422446249105e-05, 7.131141695785496e-05, 0.0008116883116883117]\n", + "epoch 1779, Pop max fitness [1.5557422446249105e-05, 0.0003397893306150187, 0.00027159152634437803]\n", + "epoch 1780, Pop max fitness [1.5557422446249105e-05, 5.1205898919555534e-05, 0.0015772870662460567]\n", + "epoch 1781, Pop max fitness [1.5557422446249105e-05, 0.00016795431642593214, 0.001440922190201729]\n", + "epoch 1782, Pop max fitness [1.5557422446249105e-05, 3.6899007416700494e-05, 0.0010695187165775401]\n", + "epoch 1783, Pop max fitness [1.5557422446249105e-05, 9.806805923310778e-05, 0.0008156606851549756]\n", + "epoch 1784, Pop max fitness [1.5557422446249105e-05, 8.168599901976801e-05, 0.0034965034965034965]\n", + "epoch 1785, Pop max fitness [1.5557422446249105e-05, 9.318796011555308e-05, 0.004149377593360996]\n", + "epoch 1786, Pop max fitness [1.5557422446249105e-05, 4.309230371455658e-05, 0.0004861448711716091]\n", + "epoch 1787, Pop max fitness [1.5557422446249105e-05, 2.4173274028234383e-05, 0.0001462629808395495]\n", + "epoch 1788, Pop max fitness [1.5557422446249105e-05, 2.4161008963734324e-05, 0.00013352917612498332]\n", + "epoch 1789, Pop max fitness [1.5557422446249105e-05, 1.5782330103216438e-05, 0.00025700334104343357]\n", + "epoch 1790, Pop max fitness [1.5557422446249105e-05, 1.567840456555141e-05, 0.00023337222870478414]\n", + "epoch 1791, Pop max fitness [1.5557422446249105e-05, 5.795085767269355e-05, 0.00012776287210936502]\n", + "epoch 1792, Pop max fitness [1.5557422446249105e-05, 4.324137334601747e-05, 0.0002911208151382824]\n", + "epoch 1793, Pop max fitness [1.5557422446249105e-05, 0.0003766478342749529, 0.0003356831151393085]\n", + "epoch 1794, Pop max fitness [1.5557422446249105e-05, 1.9608996607643588e-05, 0.0009671179883945841]\n", + "epoch 1795, Pop max fitness [1.5557422446249105e-05, 0.0016, 0.0007575757575757576]\n", + "epoch 1796, Pop max fitness [1.5557422446249105e-05, 1.7055532814845137e-05, 0.0022271714922048997]\n", + "epoch 1797, Pop max fitness [1.5557422446249105e-05, 3.867723844517501e-05, 0.0012903225806451613]\n", + "epoch 1798, Pop max fitness [1.5557422446249105e-05, 5.868269095347636e-06, 0.0004737091425864519]\n", + "epoch 1799, Pop max fitness [1.5557422446249105e-05, 5.854286801510406e-06, 0.0004791566842357451]\n", + "epoch 1800, Pop max fitness [1.5557422446249105e-05, 4.3641441913240814e-05, 0.005988023952095809]\n", + "epoch 1801, Pop max fitness [1.5557422446249105e-05, 3.75629178874615e-05, 0.0002942041776993233]\n", + "epoch 1802, Pop max fitness [1.5557422446249105e-05, 5.30307047780665e-05, 0.0003675119441381845]\n", + "epoch 1803, Pop max fitness [1.5557422446249105e-05, 0.0001665833749791771, 0.00011441647597254005]\n", + "epoch 1804, Pop max fitness [1.5557422446249105e-05, 0.00039872408293460925, 0.0003812428516965307]\n", + "epoch 1805, Pop max fitness [1.5557422446249105e-05, 0.0001301405517959396, 0.0051813471502590676]\n", + "epoch 1806, Pop max fitness [1.5557422446249105e-05, 0.00012827090815802975, 1.0]\n", + "Finished phase Phase_0\n", + "--------------------------------\n", + "Evolve finished\n", + "First best genes\n", + "1.5557422446249105e-05\n", + "1.5557422446249105e-05\n", + "[ True False True True True False False False False True False False\n", + " False True False False False False False False False False True True\n", + " False True False True False True True True False True False False\n", + " False False False False False True True True True False True True\n", + " True False True True False True False True False False True False]\n", + "8733 , 11948, 306654\n", + "359964\n" ] } ], "source": [ + "import numpy as np\n", "from config import CONFIG, check_config\n", "from controller import Controller\n", - "import numpy as np\n", + "\n", "\n", "# remove here\n", "def bool2int(x):\n", " r = 0\n", " for i, b in enumerate(x):\n", - " if b: r += b<<i \n", + " if b:\n", + " r += b << i\n", " return r\n", "\n", + "\n", "def mpi_worker():\n", " # IMP:\n", " # logic for the mpi worker\n", @@ -795,20 +2089,27 @@ " \"\"\"\n", " # Init controller\n", " GAController = Controller(CONFIG, rng_seed=9)\n", - " print('Init controller')\n", + " print(\"Init controller\")\n", " print(GAController.populations)\n", " print(GAController.populations[0].genetic_operator_stack)\n", " print(GAController.populations[0].individuals[0].genome)\n", - " \n", + "\n", " # evolution for all phases\n", " GAController.evolve()\n", - " print('Evolve finished')\n", - " \n", - " print('First best genes')\n", + " print(\"Evolve finished\")\n", + "\n", + " print(\"First best genes\")\n", " # todo find the population with the best gene\n", + " # get max fitness values\n", + " # this is started inside the controller in get_fittest_individuals()\n", + " # use the below code there to implement the function...\n", + " fit_per_pop = GAController.get_population_fitness(mean=False)\n", + " m = max(fit_per_pop)\n", + " i = np.where(fit_per_pop==m)\n", + " \n", " print(GAController.populations[0].individuals[0].fitness)\n", " print(GAController.populations[0].individuals[1].fitness)\n", - " \n", + "\n", " print(GAController.populations[0].individuals[0].genome)\n", " gene = GAController.populations[0].individuals[0].genome\n", " numbers = np.split(gene, 3)\n", @@ -816,17 +2117,14 @@ " x = bool2int(numbers[0])\n", " y = bool2int(numbers[1])\n", " z = bool2int(numbers[2])\n", - " \n", - " print(f'{x} , {y}, {z}')\n", - " print(x*2 + y*3 + z)\n", - " \n", + "\n", + " print(f\"{x} , {y}, {z}\")\n", + " print(x * 2 + y * 3 + z)\n", + "\n", " # epoch loop\n", - " #GAController.epoch()\n", - " #print('Epoch')\n", - " #print(GAController.populations[0].individuals[0].genome)\n", - " \n", - " \n", - " \n", + " # GAController.epoch()\n", + " # print('Epoch')\n", + " # print(GAController.populations[0].individuals[0].genome)\n", "\n", " return\n", "\n", @@ -845,7 +2143,7 @@ " # if mpi worker switch to worker mode\n", " if rank != 0:\n", " mpi_worker()\n", - " \n", + "\n", " # rank 0 is the controller\n", " else:\n", " controller()\n", @@ -860,10 +2158,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "adbd5d14-c9e9-464f-93ef-9cd43687f61d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'errir' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43merrir\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name 'errir' is not defined" + ] + } + ], "source": [ "errir" ] @@ -931,7 +2241,6 @@ }, "outputs": [], "source": [ - "\n", "a = np.ones(4, dtype=np.bool_)\n", "b = np.ones(4, dtype=np.bool_)\n", "b[0] = 0\n", @@ -939,7 +2248,7 @@ "# and\n", "print(a & b)\n", "# or\n", - "print(a|b)\n", + "print(a | b)\n", "# not\n", "print(~b)\n", "# xor\n", @@ -947,7 +2256,7 @@ "# shift left\n", "print(0b001 << 2)\n", "# shift right\n", - "print(0b100 >> 2)\n" + "print(0b100 >> 2)" ] }, { @@ -970,16 +2279,19 @@ "# for floats see\n", "# https://stackoverflow.com/questions/14504323/how-can-i-convert-32-bit-binary-number-to-floating-point-number\n", "\n", + "\n", "# used from here\n", "# https://stackoverflow.com/questions/15505514/binary-numpy-array-to-list-of-integers\n", "def bool2int(x):\n", " r = 0\n", " for i, b in enumerate(x):\n", - " if b: r += b<<i \n", + " if b:\n", + " r += b << i\n", " return r\n", "\n", + "\n", "a = np.ones(4, dtype=np.bool_)\n", - "a[1:3] = 0 \n", + "a[1:3] = 0\n", "print(a)\n", "bool2int(a)" ] @@ -991,9 +2303,9 @@ "metadata": {}, "outputs": [], "source": [ - "gene = np.array([0,0,1], dtype=np.bool_)\n", + "gene = np.array([0, 0, 1], dtype=np.bool_)\n", "mutation_rate = 0.4\n", - "int(mutation_rate*gene.size)" + "int(mutation_rate * gene.size)" ] }, { @@ -1005,7 +2317,7 @@ "source": [ "rng = np.random.default_rng(9)\n", "\n", - "indexes = rng.integers(low=0, high=gene.size, size=int(mutation_rate*gene.size))\n", + "indexes = rng.integers(low=0, high=gene.size, size=int(mutation_rate * gene.size))\n", "indexes" ] }, @@ -1059,11 +2371,10 @@ "import numpy as np\n", "from genetic_operators import Mutation_operator\n", "\n", - "\n", - "a = np.array([0,0,1], dtype=np.bool_)\n", - "b = np.array([1,0,1], dtype=np.bool_)\n", - "p_old = [a.copy(),b.copy()]\n", - "p_new = [a,b]\n", + "a = np.array([0, 0, 1], dtype=np.bool_)\n", + "b = np.array([1, 0, 1], dtype=np.bool_)\n", + "p_old = [a.copy(), b.copy()]\n", + "p_new = [a, b]\n", "m = Mutation_operator(1)\n", "n = m.operate(p_old, p_new)\n", "n = m.operate(p_old, n)\n", @@ -1105,7 +2416,7 @@ }, "outputs": [], "source": [ - "indexes = np.array([0,1])\n", + "indexes = np.array([0, 1])\n", "a[indexes] = ~a[indexes]" ] }, @@ -1154,10 +2465,10 @@ }, "outputs": [], "source": [ - "a = [1,2,3,3,4]\n", - "b = [9,66]\n", + "a = [1, 2, 3, 3, 4]\n", + "b = [9, 66]\n", "\n", - "for i in zip(a,b):\n", + "for i in zip(a, b):\n", " print(i)" ] }, @@ -1171,10 +2482,11 @@ "outputs": [], "source": [ "import numpy as np\n", - "a = np.array([0,0,1], dtype=np.bool_)\n", - "b = np.array([1,0,1], dtype=np.bool_)\n", "\n", - "c = [a.copy(),a]\n", + "a = np.array([0, 0, 1], dtype=np.bool_)\n", + "b = np.array([1, 0, 1], dtype=np.bool_)\n", + "\n", + "c = [a.copy(), a]\n", "a" ] }, @@ -1225,7 +2537,8 @@ "outputs": [], "source": [ "import numpy as np\n", - "a = np.array([0,0,1], dtype=np.bool_)\n", + "\n", + "a = np.array([0, 0, 1], dtype=np.bool_)\n", "\n", "np.array(a.copy(), dtype=np.bool_)\n", "a.size" @@ -1240,7 +2553,7 @@ }, "outputs": [], "source": [ - "a = [1,2,3]\n", + "a = [1, 2, 3]\n", "for n, i in enumerate(a):\n", " print(n, i)" ] @@ -1329,7 +2642,7 @@ }, "outputs": [], "source": [ - "a = [[1],[2],[3],[4]]\n", + "a = [[1], [2], [3], [4]]\n", "a" ] }, @@ -1343,7 +2656,7 @@ "outputs": [], "source": [ "num_genes_to_remove = 2\n", - "a[:len(a)-num_genes_to_remove]" + "a[: len(a) - num_genes_to_remove]" ] }, { @@ -1383,7 +2696,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.11.3" } }, "nbformat": 4, diff --git a/src/PyGMA.py b/src/PyGMA.py new file mode 100644 index 0000000000000000000000000000000000000000..ffbad2b7f4c6bb3b04ba3387afa7ea04dc1582d1 --- /dev/null +++ b/src/PyGMA.py @@ -0,0 +1,95 @@ +import numpy as np +from config import CONFIG, check_config +from controller import Controller + + +# remove here +def bool2int(x): + r = 0 + for i, b in enumerate(x): + if b: + r += b << i + return r + + +def mpi_worker(): + # IMP: + # logic for the mpi worker + + return 0 + + +def controller(): + """ + Main controller logic for the algorithm + It will be called if the calling process shall be the controller. + """ + # Init controller + GAController = Controller(CONFIG, rng_seed=9) + print("Init controller") + print(GAController.populations) + print(GAController.populations[0].genetic_operator_stack) + print(GAController.populations[0].individuals[0].genome) + + # evolution for all phases + GAController.evolve() + print("Evolve finished") + + print("First best genes") + # todo find the population with the best gene + # get max fitness values + # this is started inside the controller in get_fittest_individuals() + # use the below code there to implement the function... + fit_per_pop = GAController.get_population_fitness(mean=False) + m = max(fit_per_pop) + i = np.where(fit_per_pop == m) + + print(GAController.populations[0].individuals[0].fitness) + print(GAController.populations[0].individuals[1].fitness) + + print(GAController.populations[0].individuals[0].genome) + gene = GAController.populations[0].individuals[0].genome + numbers = np.split(gene, 3) + # convert the numbers to ints + x = bool2int(numbers[0]) + y = bool2int(numbers[1]) + z = bool2int(numbers[2]) + + print(f"{x} , {y}, {z}") + print(x * 2 + y * 3 + z) + + # epoch loop + # GAController.epoch() + # print('Epoch') + # print(GAController.populations[0].individuals[0].genome) + + return + +def main(): + # read config + check_config() + config = CONFIG + + # check if MPI should be used + if config["use_mpi"]: + comm = MPI.COMM_WORLD + size = comm.Get_size() + rank = comm.Get_rank() + rank = 0 + + # if mpi worker switch to worker mode + if rank != 0: + mpi_worker() + + # rank 0 is the controller + else: + controller() + # for no mpi the main process is the controller + else: + controller() + return + + +if __name__ == "__main__": + print('hello') + #main() diff --git a/src/config.py b/src/config.py index fbb9f28e395b3fd50281803a74088b43fb495e1f..dee026f28b780be0e0ac65673b15b5ab4b4713ed 100755 --- a/src/config.py +++ b/src/config.py @@ -6,6 +6,9 @@ from experiment import Function_optimisation_experiment # ----------------------------- # Genetic operator definition # ----------------------------- +# Genetic operators can be used for: +# Populations +# Genetic Phases OP_MUTATION = Mutation_operator(0.06) OP_REMOVAL = Removal_operator(6) @@ -15,11 +18,17 @@ OP_CROSSOVER = Single_point_crossover_operator(6) # ----------------------------- # Phase definition # ----------------------------- +# Genetic phases allowing for evolution of individuals in +# changing environments or conditions. + # phase 0 # phase starting operators (applied at phase start) PHASE0_SOP = [OP_MUTATION, OP_MUTATION] + # phase Experiment (conducted on individuals) PHASE0_EXPERIMENT = Function_optimisation_experiment() + +# phase definition PHASE0 = Simple_evolutionary_phase( 'Phase_0', PHASE0_SOP, PHASE0_EXPERIMENT) @@ -27,8 +36,10 @@ PHASE0 = Simple_evolutionary_phase( # ----------------------------- -# Configuration parameters +# GA Configuration parameters # ----------------------------- +# These are all general parameters for the Algorithm +# in form of a dictionary CONFIG = { # ------------- # Processes @@ -37,15 +48,15 @@ CONFIG = { 'use_mpi': False, # if mpi=False, how many local parallel processe - 'num_local_processes': 1, + 'num_local_processes': 3, # ------------- # Populations # -------------- # how many island populations to use - # is defined by the genetic operators stacks - # used to recombine/produce, mutate, extend + # is defined by the genetic operators stack lenght + # used to recombine/produce, mutate, extend... 'genetic_operator_stack': [ # pop 0 [OP_REMOVAL, OP_CROSSOVER], @@ -61,7 +72,7 @@ CONFIG = { # how many individuals per population 'num_individuals': 30, - # genome lenght + # genome lenght for each individual 'genome_length': 60, # init populations from defined gene strings @@ -78,6 +89,7 @@ CONFIG = { # ------------- # Evolutinary Phases # -------------- + # defining the phases that will be sequantially evolved 'evolutionary_phases': [ PHASE0, PHASE0 ] diff --git a/src/controller.py b/src/controller.py index 905b7018b22bb12c96e2c63530d95054be5d8be9..c229141c91ac48650c53c7d6fa17379cb957a72e 100755 --- a/src/controller.py +++ b/src/controller.py @@ -6,6 +6,7 @@ import numpy as np # such that print(object) can be called # implement usefull controller output + class Controller: """ GA Controller. @@ -190,7 +191,21 @@ class Controller: for pop in self.populations: f.append(pop.get_fitness(mean=mean)) return f - + def get_fittest_individuals(n=1)->list: + """ + Returns the n fittest individuals from all populations. + + Parameters + ---------- + n: int + how many individuals should be returned? + """ + # get the n fittest individuals from the populations + # pop.gepfittest + # recombine them for she fittest + # add a switch that one can know from which populations they are + # then an additional array is returned with the pop indexes. + def evolve(self): """ Evolves the genomes through all phases diff --git a/src/evolutionary_phase.py b/src/evolutionary_phase.py index 0ec02a7e9c64f7e0268ef9c8b3b3fd1c978373ad..5500c12fdd9b82a7806d8a195d74ab5368e2ebfa 100755 --- a/src/evolutionary_phase.py +++ b/src/evolutionary_phase.py @@ -55,7 +55,7 @@ class Simple_evolutionary_phase(Evolutionary_phase): if max_fitness > 0.9: return True - if epochs > 500: + if epochs > 5000: return True return False diff --git a/src/experiment.py b/src/experiment.py index 979d901c5e5d6fc293d0a3834830b57c8562d1cd..df7d48ad4aab377e838c02bc2dc46587a40150db 100755 --- a/src/experiment.py +++ b/src/experiment.py @@ -65,7 +65,7 @@ class Function_optimisation_experiment(Experiment): def f(self, x, y, z): return x*2 + y*3 + z - def conduct(self, gene): + def conduct(self, gene) -> float: # split gene into blocks that are binary representation # of the numbers numbers = np.split(gene, 3) @@ -82,11 +82,11 @@ class Function_optimisation_experiment(Experiment): # calc error and fitness error = abs(r-output) - + # if error is small fitness is high if error == 0: error = 0.000000000000000000000000000000000000000000001 fitness = 1/error - - #print(f'error: {error} fitness {fitness}') + + # print(f'error: {error} fitness {fitness}') return fitness diff --git a/src/genetic_operators.py b/src/genetic_operators.py index 0b02c16629e1aeebd29bf880fbf24c60f023a8b1..d21da537a94b519a21577e0986d4ae131efa7c43 100755 --- a/src/genetic_operators.py +++ b/src/genetic_operators.py @@ -20,7 +20,7 @@ class Genetic_operator(): This class will apply a genetic operator to a set of genes. """ - def operate(self, old_population, new_population): + def operate(self, old_population, new_population) -> list: """ Applys the genetic operator on the genes Parameters diff --git a/src/mpi_test.py b/src/mpi_test.py new file mode 100644 index 0000000000000000000000000000000000000000..f038c7831b839755767206051dfee83a29786d0e --- /dev/null +++ b/src/mpi_test.py @@ -0,0 +1,40 @@ +# size +# mpiexec -n 4 python mpi_test.py +import numpy as np +from mpi4py import MPI +comm = MPI.COMM_WORLD +size = comm.Get_size() +rank = comm.Get_rank() + +print(rank) +print(size) + +# so the idea is to have a dummy here which can be fusioned into the PyGMA +# this will work as follows: +# having a rank 0 which will send an numpy array of the form +# [i_pop, i_indiv, phase_index, [indiv.genome]] +# this then will be passed to the worker pool (however big the size is) +# Workers: +# will receive that array and compute the experiment (import it here) conduct method on it. +# will communicate back an array to rank 0 of the form: +# [pop_index, indiv_index, fitness] +# the rank 0 will then use this array to write back the results (can be done if all workers are finished) +# otherwise you have to think about a really parralel population phase operation, like distributed population model, but we are going to do distributed islands if needed and then the islands evolve faster or not. + +# todo: +# since send() will block, how one can distribute the data to the workers in a non blocking schema? +# and how to receive the results back if one can not send all data at once. +# one would need to send to 4 workers, wait until one is done and then receive back and send new data' +# all that in a non blocking implementation + + +if rank == 0: + # we are controller + genome = np.array([0, 1, 1, 1, 0, 0], dtype=np.bool_) + worker_tuples = [[i, i, genome] for i in range(3)] + + # send them + + +if rank > 0: + # we are worker