Commit Graph

645 Commits

Author SHA1 Message Date
ea93ad8796 Mathematically solved for weight 2020-12-06 11:35:30 -05:00
7e4dffd646 Added preset numerical and permutated chromosome settings 2020-12-06 11:18:00 -05:00
60c0fe3930 Added permutation crossover methods 2020-12-06 11:17:35 -05:00
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