2024-07-20 Giovanny Covarrubias Pazaran * [r1] Initial release: brining a simple genetic algorithm for complex problems. 2024-08-20 Giovanny Covarrubias Pazaran * [r2] Improve to have a single fitness function across traits. More efficient matrix operations. Additional examples for how to do regression and add contraints. 2024-09-25 Giovanny Covarrubias Pazaran * [r2] Added additional arguments for stopping criteria and to keepBest to trace the path to the best solution. * [r2] Added mutRate and nChr arguments to control the mutation rate and recombination rate. 2024-10-15 Giovanny Covarrubias Pazaran * [r3] Now the traits with zero variance also work without errors * [r3] We print in the console the generation, number of removed solutions/individuals based on constraints, total number of individuals left and genetic variance * [r3] Now we allow to set different number of chromosomes which allows for a greater recombination rate by avoiding the LD and interference of having too many QTLs in the same chromosome 2025-01-18 Giovanny Covarrubias Pazaran * [r4] We set the OMP_THREAD_LIMITS to 2 with the .onLoad function to avoid CRAN checks to reject for using more than 2 cores during the vignette building step 2025-04-18 Giovanny Covarrubias Pazaran * [r5] Now the returning object from the evolafit function is an extended class of the 'Pop-class' object from AlphaSimR, an S4 object. * [r5] We changed the name of the argument to make the use of fitness functions more straightforward. * [r5] We added the fixQTLperInd argument to allow users to fix the number of activated QTLs for regression optimization problems * [r5] A fitness function named regFun has been added for regression problems. * [r5] A fitness function named inbFun has been added for problems where only the group relationship will be used as selection criteria. * [r5] The function to import haplotypes now accepts sparse matrices, especially useful for problems with many QTLs * [r5] Now we have added the Ne argument for the user to decide how many initial solutions are used as founder population * [r5] Now the bestSol() function returns n solutions. 2025-08-01 Giovanny Covarrubias Pazaran * [r6] Now the drift function to monitor frequencies is available * [r6] Now the include and exclude sets allow to force presence or absense of specific QTLs * [r6] Some argument names have changed * [r6] More examples have been added * [r6] The mutations are now also available for the additive effects and not only for the QTLs * [r6] The matrix multiplications are not more efficient ## TO DO