IBM

QAOA - Quantum Approximate Optimization Algorithm

The Quantum Approximate Optimization Algorithm (QAOA) solves combinatorial optimization problems by approximating the solution: For a given problem represented as a cost Hamiltonian we formulate two unitary operators. The QAOA solves the problem by iteratively applying the two unitary operators on the cost Hamiltonian for a number of steps p. The angles for the unitary operators are iteratively updated by measuring the state after applying these (like in VQE). For further information see QAOA Qiskit.

When running QAOA on IBM's free plan, runtime errors may occur. This is due to IBM prioritizing jobs from users on paid plans, which can result in session timeouts for users waiting in the public queue.

Provider: ibm

Solution Example:

Parameters:

qaoa_config : QaoaConfig

Configuration for the QAOAAnsatz

Default:

reps : int

Depth of the circuit

Default: 1

name : str

Name of the circuit

Default: "QAOA"

backend : standard_Simulator, standard_FakeProvider, standard_IbmBackend, standard_LeastBusy

Which backend to use. If None, will use no backend and StatevectorSampler and StatevectorEstimator. If dict, will call `runtime_service.least_busy` with the params given in the dict. If str: If 'AerSimulator', use AerSimulator. If string starts with 'Fake', will use the corresponding fake backend from qiskit_ibm_runtime.fake_provider. Otherwise, will try to use a real backend with this name.

Default:

backend_type :

Default: None

backend_name :

Default: None

shots : int

Shots for the optimizer

Default: 1024

dynamical_decoupling : Any

Dynamical decoupling options for the optimizer

Default:

optimizer : str

Name of the optimizer to use in scipy minimize

Default: "COBYLA"

maxiter : int

Maximum number of iterations for the algorithm

Default: 1

optimization_level : int

Optimization level for the pass manager

Default: 2

service_config : standard_ServiceConfig

Parameters to be passed to the `QiskitRuntimeService` object

Default:

channel : 'ibm_cloud', 'ibm_quantum'

The channel type for the service

Default: "ibm_quantum"

url : str

The URL of the service

Default: None

name : str

The name of the service

Default: None

instance : str

The instance identifier

Default: None

proxies : dict

Proxy settings for the service

Default: None

verify : bool

SSL verification setting

Default: None

channel_strategy : str

The strategy for the channel

Default: None

VQE - Variational Quantum Eigensolver

The Variational Quantum Eigensolver (VQE) solves combinatorial optimization problems by approximating the solution: For a given problem represented as a cost Hamiltonian we apply a classical/quantum hybrid algorithm to find the solution. The VQE solves the problem by iteratively applying a linear transformation (variational form) on the cost Hamiltonian and optimizing the parameters of the transformation using a classical optimizer. For further information see qiskit's VQE tutorial.

When running VQE on IBM's free plan, runtime errors may occur. This is due to IBM prioritizing jobs from users on paid plans, which can result in session timeouts for users waiting in the public queue.

Provider: ibm

Solution Example:

Parameters:

ansatz : str

Which ansatz to use from `qiskit.circuit.library`

Default: "EfficientSU2"

ansatz_config : Any

Configuration for the ansatz

Default:

backend : standard_Simulator, standard_FakeProvider, standard_IbmBackend, standard_LeastBusy

Which backend to use. If None, will use no backend and StatevectorSampler and StatevectorEstimator. If dict, will call `runtime_service.least_busy` with the params given in the dict. If str: If 'AerSimulator', use AerSimulator. If string starts with 'Fake', will use the corresponding fake backend from qiskit_ibm_runtime.fake_provider. Otherwise, will try to use a real backend with this name.

Default:

backend_type :

Default: None

backend_name :

Default: None

shots : int

Shots for the optimizer

Default: 1024

dynamical_decoupling : Any

Dynamical decoupling options for the optimizer

Default:

optimizer : str

Name of the optimizer to use in scipy minimize

Default: "COBYLA"

maxiter : int

Maximum number of iterations for the algorithm

Default: 1

optimization_level : int

Optimization level for the pass manager

Default: 2

service_config : standard_ServiceConfig

Parameters to be passed to the `QiskitRuntimeService` object

Default:

channel : 'ibm_cloud', 'ibm_quantum'

The channel type for the service

Default: "ibm_quantum"

url : str

The URL of the service

Default: None

name : str

The name of the service

Default: None

instance : str

The instance identifier

Default: None

proxies : dict

Proxy settings for the service

Default: None

verify : bool

SSL verification setting

Default: None

channel_strategy : str

The strategy for the channel

Default: None