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

Automatic generation of translation-invariant gate layers #179

Open
aaronszasz opened this issue Sep 7, 2023 · 0 comments
Open

Automatic generation of translation-invariant gate layers #179

aaronszasz opened this issue Sep 7, 2023 · 0 comments
Labels
feature request New feature or request

Comments

@aaronszasz
Copy link
Contributor

Idea for a new feature:

Suppose we want our circuit to be translation invariant, e.g. for state preparation on a chain with periodic boundary conditions.

For example, we want a layer to look like

CNOT CNOT CNOT CNOT
| | | | | | | |
U3 U3 U3 U3 U3 U3 U3 U3

With all the even U3 being the same as each other and all the odd U3 also being the same as each other, in other words fixed to have the same parameters. So this layer would be translation-invariant with a 2-qubit unit cell.

Currently, naively building a layer with the gates shown above will allow separate optimization of the parameters of all the U3 gates. The translation-invariant case could dramatically speed up optimization by reducing the number of parameters to be optimized.

In the new functionality, a user would specify the unit cell where no additional symmetry is assumed, as well as the number of copies they want, and the translation-invariant layer would be generated automatically.

e.g. for the above example
Unit cell:
CNOT
| |
U3 U3

copies = 4

=======

I'll have time to add this feature in October-ish, though if someone else has time sooner, please go ahead

@edyounis edyounis added the feature request New feature or request label Oct 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants