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

Add optimization for TwoLocal synthesis when entanglement='full' #8335

Merged
merged 31 commits into from
Aug 2, 2022

Conversation

ShellyGarion
Copy link
Member

@ShellyGarion ShellyGarion commented Jul 13, 2022

Summary

close #8294
Update the NLocal class.

Details and comments

When choosing a TwoLocal or RealAmplitude or EfficientSU2 gate with entanglement=full on n-qubits (for VQE ansatz),
for a circuit with a CX sub-circuit, improve the number of CX gates from n*(n-1)/2 CX gates to only n-1 CX gates with a linear connectivity

@ShellyGarion ShellyGarion requested a review from a team as a code owner July 13, 2022 09:19
@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:

@coveralls
Copy link

coveralls commented Jul 13, 2022

Pull Request Test Coverage Report for Build 2782954860

  • 4 of 4 (100.0%) changed or added relevant lines in 1 file are covered.
  • 2 unchanged lines in 1 file lost coverage.
  • Overall coverage increased (+0.005%) to 83.99%

Files with Coverage Reduction New Missed Lines %
qiskit/extensions/quantum_initializer/squ.py 2 80.9%
Totals Coverage Status
Change from base Build 2781722893: 0.005%
Covered Lines: 55903
Relevant Lines: 66559

💛 - Coveralls

Copy link
Contributor

@Cryoris Cryoris left a comment

Choose a reason for hiding this comment

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

Looks pretty good to me, I think it would be nice to explain this optimization somewhere -- either in the NLocal docstring or in an extended comment inside the code.

qiskit/circuit/library/n_local/n_local.py Outdated Show resolved Hide resolved
qiskit/circuit/library/n_local/n_local.py Outdated Show resolved Hide resolved
qiskit/circuit/library/n_local/n_local.py Outdated Show resolved Hide resolved
@ShellyGarion
Copy link
Member Author

I agree that we should add a docstring explaining this optimization, and will do it after finalizing the API.

@ShellyGarion ShellyGarion changed the title [WIP] Add optimization for TwoLocal synthesis when entanglement='full' Add optimization for TwoLocal synthesis when entanglement='full' Jul 26, 2022
Copy link
Contributor

@Cryoris Cryoris left a comment

Choose a reason for hiding this comment

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

I think this is almost good to go! Two more things: Could you add a releasenote, and could you check the reverse_linear entanglement works if it is used in the ZZFeatureMap?

test/python/circuit/library/test_nlocal.py Show resolved Hide resolved
@ShellyGarion
Copy link
Member Author

@Cryoris - thanks for the quick and helpful review. I think this PR is ready to go now.

Copy link
Contributor

@Cryoris Cryoris left a comment

Choose a reason for hiding this comment

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

LGTM thanks for this feature!

@Cryoris Cryoris added Changelog: New Feature Include in the "Added" section of the changelog automerge labels Aug 2, 2022
@mergify mergify bot merged commit 82245c0 into Qiskit:main Aug 2, 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.

Improve TwoLocal and RealAmplitudes synthesis when entanglement='full'
5 participants