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 MinimumPoint transpiler pass #9612

Merged
merged 8 commits into from
Mar 30, 2023
Merged

Commits on Mar 29, 2023

  1. Add MinimumPoint transpiler pass

    This commit adds a new transpiler pass MinimumPoint which is used to
    find a local minimum point from the property set between executions of
    the pass. This is similar to the existing FixedPoint pass but will find
    the minimum fixed point over the past n exeuctions as opposed to finding
    a when two subsequent exectuions are at the same point. This is then
    used in optimization level 3 because the 2q unitary synthesis
    optimization that is part of the optimization loop can occasionally get
    stuck oscillating between multiple different equivalent decompositions
    which prevents the fixed point condition from ever being reached. By
    checking that we've reached the minimum over the last 5 executions we
    ensure we're reaching an exit condition in this situation.
    
    Fixes Qiskit#5832
    Fixes Qiskit#9177
    
    (the underlying cause of the optimization loop's inability to converge
    at optimization level 3 is not fixed here, there is still a root cause
    of instability in UnitarySynthesis this just changes the loop exit
    condition so we're never stuck in an infinte loop)
    mtreinish committed Mar 29, 2023
    Configuration menu
    Copy the full SHA
    9763e6f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8e96ad7 View commit details
    Browse the repository at this point in the history
  3. Rework logic to track state with a dataclass

    This commit reworks the logic of the pass to track the state via a
    dataclass instead of using separate property set fields. This cleans up
    the code for dealing with checking the current state relative to earlier
    iterations by making the access just attributes instead of secret
    strings. At the same time the tests were updated to handle this new data
    structure comments were added to better explain the logic flow being
    tested.
    mtreinish committed Mar 29, 2023
    Configuration menu
    Copy the full SHA
    e2c8cd0 View commit details
    Browse the repository at this point in the history
  4. Fix doc typo

    mtreinish committed Mar 29, 2023
    Configuration menu
    Copy the full SHA
    3f74311 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2023

  1. Apply suggestions from code review

    Co-authored-by: Jake Lishman <[email protected]>
    mtreinish and jakelishman authored Mar 30, 2023
    Configuration menu
    Copy the full SHA
    e603007 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a339bb1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f889fbd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0581884 View commit details
    Browse the repository at this point in the history