Skip to content

Dev_gabe_to_merge pulled to main for v0.3 release#10

Closed
ryanurbs wants to merge 35 commits intomainfrom
dev_gabe_to_merge
Closed

Dev_gabe_to_merge pulled to main for v0.3 release#10
ryanurbs wants to merge 35 commits intomainfrom
dev_gabe_to_merge

Conversation

@ryanurbs
Copy link
Copy Markdown
Member

These changes reflect updates to HEROS for the v0.3 release that correspond with our GECCO 2026 publication introducing phase alternation and tree-initialization of the rule population. Also included is some (as of yet) untested experimental code prototyped by Gabe Lipschutz-Villa for passing 'feedback' between Phase I and Phase II of HEROS during phase alternation. While the specific code used to run the experiments described in the GECCO 2026 publication is documented by the 'gecco_2026' branch, this merge adds some other minor new fixes to the code base including (1) fixing random seed reproducibility, which was previously not working due to the random order in which extracted rules were added to the HEROS population given that they were stored in a numpy array, (2) minor fixes to tournament selection to ensure reproducibility and efficacy, (3) the addition of rule compaction following tree-initialization of rules to ensure that no obviously poor or subsumable rules were in the initial rule population prior to the start of phase I rule evolution, (4) updates to the readme and requirements.txt, and (5) reorganization and updates to the cluster scripts used to run all HEROS benchmarking experiments described in the GECCO 2026 publication - NOTE - we reran these benchmark analyses and confirmed similar (occasionally better) performance to those reported in the publication.

ryanurbs and others added 30 commits June 15, 2025 15:32
Merging BioHEL and RIPPER Code into HEROS Base Code
-Completed merge with main
-Cleaned up tree initialization method
-Made it so that the initial tree pop could be archived for later exporting/viewing
-Added reporting of rule specificity limit (RSL) to the rule population output file under 'sepcified count' column
-fixed minor issue where rule compaction (QRF) was not updating the micro-population size in the rare event that a rule was removed for poor performance.
…ation

Made a number of minor fixes to the updated HEROS version with tree initialization and phase alternation.
- tree initialization now assigns birth iteration of 1 to all tree init rules
-added a rule compaction phase immediately after tree initialization to remove poor and subsumable rules
-added global pareto fitness evaluation after tree initialization to make sure all initialized rules have correct fitness assignment before phase I begins
-fixed issue where tree initialized rules were being saved in rules as np.int64 objects rather than python int objects
-to address random seed reproducibility of code when tree initialization was activated a number of minor updates were made.  the most critical was to make sure that prior to creating HEROS rules from the extracted tree rules, that the extracted tree rules were sorted so they were always added to the HEROS population in the same order and with the same rule IDs.
-Tournament selection method improved/fixed (should improve efficiency and random seed reproducibility in future.
-cluster commands
-heros schematic in readme
-readme citations
-updated default run parameters for 'alternate' and 'alternate_mode'
-removed import of unneeded packages and update requirements.txt
@ryanurbs ryanurbs closed this Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants