Rewrote core algorithm as a correct NSGA-II implementation: strict domination, full non-dominated front construction, crowding distance, and NSGA-II environmental selection for replacement (new src/nsga2.h).
Added a hybrid representation via representation = c("real", "binary"). Real mode minimises squared error (f1) and mean absolute value (f2); binary mode minimises the negated mean ANOVA F-statistic of selected genes (f1) and the fraction of selected genes (f2) using class labels.
crossover_cpp now generates both complementary SBX children and handles a single parent without hanging.
mutation_cpp uses degree-based network damping (bounded, non-negative) for the real representation and bit-flip mutation for the binary representation.
replacement_cpp now performs NSGA-II environmental selection; num_to_replace = 0 returns the population unchanged.
bioga_main_cpp returns population, fitness, history, best, best_fitness, pareto_population, and pareto_fitness, and accepts a labels argument for supervised objectives.
Documentation
Corrected scientific statements in the vignettes (removed unverified claims about tools, benchmarks, databases, and convergence guarantees; aligned formulae with the implementation).
Lowered Depends to R (>= 4.3).
Testing
Rewrote the test suite for the new API and behaviours.
BioGA 0.99.17
Added
Demo vignette for BioGA.
Mathematical background vignette for BioGA.
Updated
Vignettes with new examples and explanations.
selection_cpp for improved performance and bug fixes.
BioGA 0.99.16
Testing improvements
Tests for crossover_cpp: new parameters (crossover_rate, eta_c), SBX offspring range validation, edge cases.