21a709f5d0
Added chromosome comparison by their genes
2020-12-06 11:17:15 -05:00
58849e87e6
Added gene comparison by gene value
2020-12-06 11:15:10 -05:00
d49008c19d
Cleaned up create connection and multiline strings
2020-12-05 23:41:46 -05:00
a6530fb15e
Cleaned up some parts and optimized a little
2020-12-05 23:41:10 -05:00
15e17f0b84
Updated bounds for gene_mutation_rate
2020-12-05 23:39:19 -05:00
956447079d
Merge branch 'master' of https://github.com/danielwilczak101/EasyGA
2020-12-04 14:30:45 -05:00
8c024a0290
Added distance attribute
2020-12-04 14:26:18 -05:00
05fa220d61
Changed back adapt and changed generation goal to 100 so its looks normal grpahing
2020-12-04 03:34:03 -05:00
a0423e313e
version number
2020-12-04 03:24:51 -05:00
f683e23ba3
Setup.py now had tabulate included and update version number
2020-12-04 03:24:22 -05:00
0e299265f5
Changed adapt rate = 0 so i can push to pypi
2020-12-04 03:22:25 -05:00
046592a3a8
Split adapting into parts
2020-12-03 17:10:39 -05:00
6d0ec0c30e
Fixed bug/typo
2020-12-03 17:00:32 -05:00
169c204296
Fixed ga.yscale so it works with all plots
2020-12-03 02:21:32 -05:00
5fb26545d4
pushed fix
2020-12-03 02:16:10 -05:00
85855c2746
Renamed decorators for consistency
2020-12-03 00:21:52 -05:00
3271d7d271
Update crossover_methods.py
...
- Added check_weight decorator.
- Implemented better random floats with weights that allow weighting all the way to either side.
2020-12-02 23:13:35 -05:00
2941be665c
Avoid one-sided edge cases
...
- Single-point crossover allows either parent to have their genes come first now.
- Rounding to integers is doing with an additional +/- 0.5 random value so that integer genes do not get stuck at one value when rounding at the midpoint of two integers e.g. 0.5 now randomly rounds to 0 or 1 instead of always 0.
2020-12-02 20:39:51 -05:00
e7f696fd06
Better word choice for comment
2020-12-02 18:59:40 -05:00
4386f2c959
Cleaner comments
2020-12-02 18:55:25 -05:00
23efae27dc
Added selection_probability to stochastic selection.
2020-12-02 18:50:59 -05:00
df05cf1f5c
Looser rate bounds inside adapt
2020-12-02 18:43:44 -05:00
88624345d0
Using standard multiline code formatting
2020-12-02 18:06:31 -05:00
bfe4699513
Added cleaner comments to explain.
2020-12-02 18:00:23 -05:00
1761092abb
Update stochastic methods
...
- Added a stochastic rank selection and edited cleaner stochastic fitness selection using random.choices.
- Edited stochastic fitness selection to allow negative converted fitness values.
- Edited exception message for check_positive_fitness.
2020-12-02 17:55:57 -05:00
fb84ac40d4
Update EasyGA.py
...
Probably better to let fitness-based selection to work as expected than to break due to unexpected negatives.
2020-12-02 17:06:15 -05:00
6f2392234d
Added past runs and tabulate
2020-12-02 12:50:49 -05:00
1aa314a805
Cleaner gene reflection method.
2020-12-01 19:01:07 -05:00
700ca556f1
Update mutation_methods.py
2020-12-01 18:46:22 -05:00
4a1b87a3b7
Cleaned up and distanced further for more genetic variety
2020-12-01 18:20:46 -05:00
8579565bb6
Caught bug if population is None
2020-12-01 18:17:33 -05:00
62ecfc38fa
Update crossover_methods.py
2020-12-01 10:38:12 -05:00
ea9beb8d8a
Reset the fitness when mutating
2020-12-01 10:36:56 -05:00
5b6d925088
Update ga.adapt()
...
Faster convergence by allowing more genetic variety using negative weights to push chromosomes too similar away from the best chromosome.
2020-12-01 10:36:17 -05:00
4d273df5ae
Adapting faster seems beneficial
2020-12-01 10:33:52 -05:00
501223e272
Added a delete database function
2020-12-01 00:13:45 -06:00
63c4304f48
Cleaned up and improved ga.adapt()
...
- Cleaned up some stuff (variables).
- Added adapt by heavy crossover.
2020-11-30 14:21:52 -05:00
cd19725a5a
Added weighted crossover and then some
...
- Added weighted methods. (default setting does not change).
- Removed unnecessary exception catching. Letting exceptions flow through instead, and let the user decide how to handle them.
- Removed list conversion.
- Removed parent sorting for extrapolate.
- Simplified variable names.
2020-11-30 14:19:14 -05:00
8e0437bf4e
Cleaned up to allow any iterable input
2020-11-30 14:12:36 -05:00
27ca73711e
Improved adapt
2020-11-27 22:18:29 -05:00
d25ea314ac
Using random.sample for efficiency
2020-11-27 22:17:13 -05:00
5407e2ea63
Added extrapolation method
2020-11-27 22:10:30 -05:00
d845e7fc1b
Fixed percent of population unmutated
2020-11-27 20:19:23 -05:00
65a35e71dc
Cleaned up comments.
2020-11-27 20:03:43 -05:00
cbd0265cd8
Fixed adapt inequality
2020-11-27 19:23:54 -05:00
5b5ed70d73
Fixed bug
2020-11-27 19:16:08 -05:00
e54824238b
Ensure sorted not needed.
...
The problem was not appending old chromosomes to the front of the next population during survivor selection.
2020-11-27 19:13:37 -05:00
1197447d7e
Added ga.adapt()
2020-11-27 19:12:40 -05:00
a87103b80c
Added ensure_sorted decorator.
...
Ensures elitism occurs.
2020-11-27 19:08:05 -05:00
f21512f178
Fixed random_avoid_best
2020-11-27 18:40:58 -05:00