Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

Implement "implicit" solve(problem) interface, able to generate encoding on the fly #9

@garrison

Description

@garrison

What is the expected enhancement?

The typical interface in Qiskit Optimzation for performing a quantum optimization is the OptimizationAlgorithm.solve(problem: QuadraticProgram) method. However, a lot happens "underneath the hood" when calling this, and when developing this prototype, we wanted to give users a bit more control over and understanding of what is happening. For instance, if one simply calls this method, they have no way of knowing beforehand how many qubits are necessary for the computation, so they won't know if it can run on a given piece of hardware until they try. So, we provided a more "explicit" interface, where the user must construct the QuantumRandomAccessEncoding explicitly, encode() it with a QuadraticProgram, and then pass it when constructing the optimizer.

However, it would be nice to implement the standard, implicit interface as well. One benefit is that users would then be able to use QRAO with the ADMM optimizer (and we should add a test case for this, once it becomes possible). Another benefit is that it is a prerequisite in case we want to enable the implicit conversion of any convertible QuadraticProgram into a QUBO (#10), just as the other optimization algorithms permit.

Potentially related: qiskit-community/qiskit-optimization#325, if it results in a more general overhaul of the solve() interface.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestoptimizerQuantumRandomAccessOptimizer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions