Commit Graph

657 Commits

Author SHA1 Message Date
5821e709a3 New Initialization Method
This is a test implementation of a potential new initialization method. A testing file - new_initialization_method_testing.py - is included to allow for quick testing.

In summary here is are the major points:
1) Two new attributes of GA were created - gene_input and gene_input_type. gene_input holds the user's custom range(s)/domain(s) after it gets passed to the initialize() function. gene_input_type holds an array with the same length as the chromosomes that holds the input type of the user's gene_input on a gene-by-gene basis. It does this in the same exact way that index-dependent gene ranges/domains are handled. By making the gene_input_type array the same size as the chromosome, the elements can be paired very easily. The acceptable values for this are either "range" or "domain". With a range, any value between the two can be generated; with domain, only the two elements included can be selected from randomly.
2) As mentioned in change 1, the user now has to pass their range(s)/domain(s) to the initialize() function.
3) The package is capable of implicitly determining if a certain input from the user is a range or domain. Strings can only ever be a domain – if given an element that only includes integers, the program assumes range.
4) If the user wishes to use numbers only as a domain, they can specify this by directly interacting with the ga.gene_input_type (or through a setter function).
5) the initialize() function in the GA object determines the implicit range/domain assignments if the user doesn’t do so themselves.
6) The random_initialization() function is effectively the same, except there is now an if/else to determine if the user is using the built-in gene creation function or not. If they are, then pass the gene_input, gene_input_type, and current gene index as arguments to the gene function. If they are using their own function, random_initialization() functions exactly the same way as it does in the current master branch.
7) Based on all the settings mentioned above, the random_gene() function will create a value before passing it back to random_initialization().
2020-09-25 01:15:53 -04:00
7409ffb8ba Update gene_random.py
Simplified random gene
2020-09-25 00:27:13 -04:00
78d63aa4aa Testing 2020-09-24 23:51:40 -04:00
5c5d6920b2 Domain update
Can set the domain to either a range or a list of values.
2020-09-24 23:51:21 -04:00
99066e924b Merge branch 'master' of https://github.com/danielwilczak101/EasyGA 2020-09-24 22:48:03 -04:00
4daec6574d Removed globals and fixed a few small print issues 2020-09-24 22:47:12 -04:00
5846c2c3f9 Merge branch 'master' of https://github.com/danielwilczak101/EasyGA 2020-09-24 22:43:43 -04:00
45638ad4eb Fixed data structures
Fixed constructors with default arguments as well as the adders with default arguments.
2020-09-24 18:13:44 -04:00
c4ead43d6d Updated genes,chromosme,population prints 2020-09-24 15:02:58 -04:00
9c5092525a Fixed file and everything 2020-09-23 22:12:42 -04:00
994bdb164c Fixed all jacks code 2020-09-23 21:58:48 -04:00
88366e928b Update README.md 2020-09-23 20:30:44 -04:00
eaa90ecd2a Fixed to explain 2020-09-23 20:29:50 -04:00
70bb03bc96 blaww 2020-09-23 18:23:29 -04:00
b0b502c697 Did stuff 2020-09-23 18:09:29 -04:00
7359ef1268 file changes 2020-09-23 16:53:43 -04:00
91c318ba64 Removed unnessaery file 2020-09-23 16:49:22 -04:00
2322a186e3 Major structural changes 2020-09-23 16:46:59 -04:00
cd15a85b71 testing 2020-09-23 13:23:07 -04:00
c2ebec6be2 Testing happened 2020-09-22 20:12:28 -04:00
2c3ef3f589 rewrote test fitness funciton 2020-09-22 18:54:03 -04:00
7aee6b9c8a changed name for readability 2020-09-22 18:34:34 -04:00
4803b1ee69 Changed readme 2020-09-22 15:39:02 -04:00
420d0286bb Update README.md 2020-09-22 15:34:17 -04:00
ff57c2764e Update README.md 2020-09-22 15:34:01 -04:00
361e04b3b8 Update README.md 2020-09-22 15:31:26 -04:00
6ab18500a1 Update README.md 2020-09-22 15:27:07 -04:00
036fcd134f Changed name to help with understanding of where to run sample code 2020-09-22 15:21:18 -04:00
ba62846d4b File structure change, added tests into major folders. 2020-09-22 15:18:37 -04:00
6503a320ae file structure changes and testing files added. 2020-09-22 14:37:55 -04:00
73042b8cc4 New change 2020-09-22 00:01:18 -04:00
b24e915af1 Adding for main 2020-09-21 23:52:15 -04:00
4c0090a9ed Added files for all the main classes inside of EasyGA 2020-09-21 23:39:15 -04:00
1af16cd0d3 Changed name 2020-09-21 23:25:50 -04:00
083294ed21 Added file structure 2020-09-21 23:24:07 -04:00
1d5cbb6a5e Text changes 2020-09-21 20:27:08 -04:00
e84483cf8b Major chnages to structure 2020-09-21 20:26:21 -04:00
5c4dd96427 Update README.md 2020-09-21 18:54:00 -04:00
17f8ea5a87 Update README.md 2020-09-21 18:53:39 -04:00
6620378afe Update README.md 2020-09-21 18:53:01 -04:00
3e41c553e0 Update README.md 2020-09-21 17:17:25 -04:00
0530908598 Update README.md 2020-09-21 17:16:47 -04:00
5b7965c7c4 Update README.md 2020-09-21 17:02:38 -04:00
c9774f6d8f Update README.md 2020-09-21 17:01:37 -04:00
61b8efb325 Update README.md 2020-09-21 16:51:21 -04:00
18648c61f9 Update README.md 2020-09-21 16:51:00 -04:00
a6a51e755e Update README.md 2020-09-21 16:50:16 -04:00
e0bfcf8e0e Update README.md 2020-09-21 15:43:53 -04:00
7e4e6ef0f5 comment fix 2020-09-21 15:33:52 -04:00
2c6d906935 Updated structure and fixed bugs. 2020-09-21 15:32:50 -04:00