Commit Graph

69 Commits

Author SHA1 Message Date
9d9d0b750c Change domain feature 2020-09-25 15:12:02 -04:00
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
4daec6574d Removed globals and fixed a few small print issues 2020-09-24 22:47:12 -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
b0b502c697 Did stuff 2020-09-23 18:09:29 -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
4803b1ee69 Changed readme 2020-09-22 15:39:02 -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
083294ed21 Added file structure 2020-09-21 23:24:07 -04:00
97af1af852 Added initilization functionality. Add necessary method to access,genes,chromosomes and the population. 2020-09-20 18:46:02 -04:00