transpiled_circuit

transpiled_circuit#

iqm.qaoa.circuits.transpiled_circuit(qaoa, backend=None, transpiler=None, **kwargs)[source]#

Build a QAOA quantum circuit for the given QAOA instance.

This function has highly varying outputs based on which transpiler is used. If no transpiler is used, the perfect QuantumCircuit is returned using qiskit_circuit(). Otherwise, the QAOA circuit is transpiled using one of the transpilers, respecting the topology of backend.

Parameters:
  • qaoa (QUBOQAOA) – The QAOA instance object whose quantum circuit is constructed.

  • backend (BackendV2 | None) – Backend that the circuit is to be run on. The connectivity of the backend is required for the transpilation. None means use the AerSimulator statevector simulation.

  • transpiler (TranspilerOption | None) – Defines which algorithm should be used for transpilation (if any).

  • **kwargs (Any) – Keyword arguments are passed on to transpile(), for examples see Keyword Args.

Keyword Arguments:
  • initial_layout (list[int]) – List of hardware qubits onto which the circuit qubits are mapped.

  • seed_transpiler (int) – Random seed for the transpilation.

Returns:

A quantum circuit transpiled to the topology of backend.

Raises:
  • TypeError – If the backend is not an IQM backend and a custom transpiler is selected (i.e., other than None or “Default”).

  • ValueError – If the provided transpiler is not one of the allowed transpilers.

Return type:

QuantumCircuit