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

Fidelity-aware lookahead, lookahead-based initial layout, DisjointSameOpType layering, upper limits for active qubits per layer #416

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

EliasLF
Copy link
Collaborator

@EliasLF EliasLF commented Jan 19, 2024

Description

  • introducing 2 fidelity-aware lookahead heuristics (FidelityCurrentLocation just sums up the fidelity costs and distances of/within future gates with the current mapping, FidelityCurrentTargetLocation does the same but for the mapping the heuristic is currently aiming for, e.g. for FidelityBestLocation this is the globally, individual best location for each qubit)
  • introducing a new initial layouting technique DynamicGreedyLookahead, which is similar to Dynamic but instead of just looking at distances in the current layer, each qubit is mapped greedily such that the lookahead penalty is minimized. This increases the quality of mapping results significantly (also in the non-fidelity-aware case) in almost all cases with not too much runtime overhead. We might consider making this the new default.
  • A new layering technique DisjointSameOpType equivalent to Disjoint2qBlocks but separating different gate types to different layers. This is necessary for fidelity-aware mapping, where Disjoint2qBlocks might make it impossible to find the global optimum.
  • Introducing user-configurable upper limits for active qubits per layer to reduce mapping complexity in return for less optimal mapping results.
  • Generally refactored the layering process slightly to make future additions simpler and each layering procedure more atomic.

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@EliasLF EliasLF added feature New feature or request c++ Anything related to C++ code labels Jan 19, 2024
@burgholzer
Copy link
Member

@EliasLF: just checking in; has there been any progress on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants