Skip to content
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

Steppable Optimizers #8150

Closed
wants to merge 49 commits into from
Closed

Conversation

MarcDrudis
Copy link
Contributor

Summary

We incorporate a new subclass of Optimizer called SteppableOptimizer. A steppable optimizer has a method step() that allows to perform one single step in the optimization process as opposed to having to perform the whole minimization of the objective function.
This way the user has more options when dealing with complicated functions to minimize.
In this spirit, we have chosen to add ask() and tell() to this interface as well. More information about this can be found in the documentation.

The main goal of this PR is to implement the interface of the abstract class SteppableOptimizer and document it properly. In order to make some tests, we have implemented GradientDescent using this new framework.

Details and comments

A class CMA-ES is also in the making, but I prefered to start by making this PR with GradientDescent because it is easier to implement and later on we can add this other class.

@CLAassistant
Copy link

CLAassistant commented Jun 8, 2022

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ MarcDrudis
❌ root


root seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@qiskit-bot
Copy link
Collaborator

Thank you for opening a new pull request.

Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.

While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.

One or more of the the following people are requested to review this:

@MarcDrudis MarcDrudis marked this pull request as ready for review June 8, 2022 15:21
@MarcDrudis MarcDrudis requested review from a team, manoelmarques and woodsp-ibm as code owners June 8, 2022 15:21
@Cryoris Cryoris added the Changelog: New Feature Include in the "Added" section of the changelog label Jun 8, 2022
@Cryoris Cryoris added this to the 0.21 milestone Jun 8, 2022
@Cryoris Cryoris self-assigned this Jun 8, 2022
@Cryoris Cryoris force-pushed the stepOptimizer_beta branch from 93c5f58 to 4bc39a9 Compare June 10, 2022 09:42
@MarcDrudis MarcDrudis closed this Jun 13, 2022
@MarcDrudis MarcDrudis force-pushed the stepOptimizer_beta branch from d86d38d to ec9d693 Compare June 13, 2022 11:52
@Cryoris Cryoris reopened this Jun 13, 2022
@Cryoris Cryoris mentioned this pull request Jun 13, 2022
7 tasks
@MarcDrudis MarcDrudis mentioned this pull request Jun 13, 2022
@MarcDrudis MarcDrudis closed this Jun 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants