Skip to content

BOP-Elites #496

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 51 commits into from
Jun 19, 2025
Merged

BOP-Elites #496

merged 51 commits into from
Jun 19, 2025

Conversation

szhaovas
Copy link
Collaborator

@szhaovas szhaovas commented Mar 11, 2025

Description

Implement BOP-Elites.

TODO

  • Implement an emitter that maintains GP surrogrates on the objective and measure functions, and emits solutions maximizing the Expected Joint Improvement of Elites (EJIE) acquisition function.
  • Implement a scheduler to accommodate archive upscaling.
  • Write a simple script that demos how to run a BOP-Elites experiment.

Questions

  • None

Status

  • I have read the guidelines in
    CONTRIBUTING.md
  • I have formatted my code using yapf
  • I have tested my code by running pytest
  • I have linted my code with pylint
  • I have added a one-line description of my change to the changelog in
    HISTORY.md
  • This PR is ready to go

Copy link
Member

@btjanaka btjanaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @szhaovas! Left a bunch of comments. I haven't really looked at the emitter and scheduler themselves yet; I'll wait for you to fix the big things like how the scheduler works before taking a closer look.

Copy link
Member

@btjanaka btjanaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More changes. Thanks Shihan! I'll review the emitter later. I did take a look at the scheduler; it makes sense to me.

@btjanaka
Copy link
Member

@szhaovas could you also add tests that, at a minimum, call the emitter and scheduler to make sure they work? For reference, you can see this emitter test https://github.com/icaros-usc/pyribs/blob/master/tests/emitters_pycma/pycma_es_test.py and the current scheduler file https://github.com/icaros-usc/pyribs/blob/master/tests/schedulers/scheduler_test.py

szhaovas pushed a commit that referenced this pull request Jun 9, 2025
## Description

<!-- Provide a brief description of the PR's purpose here. -->

This method changes the dimensionality of the grid in a `GridArchive`,
e.g., we can go from `10x10` to `20x20` or `5x5`. This method was
introduced by @szhaovas in #496. Here, I've split it out into a separate
PR that re-implements it as an in-place method on the archive, i.e., the
archive will be retessellated in-place.

## TODO

<!-- Notable points that this PR has either accomplished or will
accomplish. -->

- [x] Implement retessellate
- [x] Add tests

## Status

- [x] I have read the guidelines in

[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)
- [x] I have formatted my code using `yapf`
- [x] I have tested my code by running `pytest`
- [x] I have linted my code with `pylint`
- [x] I have added a one-line description of my change to the changelog
in
      `HISTORY.md`
- [x] This PR is ready to go
Copy link
Member

@btjanaka btjanaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix up minor remaining comments and merge. Good job @szhaovas!

@szhaovas szhaovas merged commit 96b8adf into icaros-usc:master Jun 19, 2025
16 checks passed
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.

2 participants