qiskit-documentation/docs/api/qiskit/1.2/providers_fake_provider.mdx

133 lines
8.3 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: fake_provider (v1.2)
description: API reference for qiskit.providers.fake_provider in qiskit v1.2
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit.providers.fake_provider
---
<span id="module-qiskit.providers.fake_provider" />
<span id="qiskit-providers-fakeprovider" />
<span id="fake-provider-qiskit-providers-fake-provider" />
# Fake Provider
`qiskit.providers.fake_provider`
## Overview
The fake provider module in Qiskit contains fake (simulated) backend classes useful for testing the transpiler and other backend-facing functionality.
### Example Usage
Here is an example of using a simulated backend for transpilation and running.
```python
from qiskit import QuantumCircuit, transpile
from qiskit.providers.fake_provider import GenericBackendV2
from qiskit.visualization import plot_histogram
# Generate a 5-qubit simulated backend
backend = GenericBackendV2(num_qubits=5)
# Create a simple circuit
circuit = QuantumCircuit(3)
circuit.h(0)
circuit.cx(0,1)
circuit.cx(0,2)
circuit.measure_all()
circuit.draw('mpl')
# Transpile the ideal circuit to a circuit that can be directly executed by the backend
transpiled_circuit = transpile(circuit, backend)
transpiled_circuit.draw('mpl')
# Run the transpiled circuit using the simulated backend
job = backend.run(transpiled_circuit)
counts = job.result().get_counts()
plot_histogram(counts)
```
![../\_images/providers\_fake\_provider-1\_00.png](/images/api/qiskit/1.2/providers_fake_provider-1_00.avif)
![../\_images/providers\_fake\_provider-1\_01.png](/images/api/qiskit/1.2/providers_fake_provider-1_01.avif)
![../\_images/providers\_fake\_provider-1\_02.png](/images/api/qiskit/1.2/providers_fake_provider-1_02.avif)
## V2 Simulated Backends
| | |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [`GenericBackendV2`](qiskit.providers.fake_provider.GenericBackendV2 "qiskit.providers.fake_provider.GenericBackendV2")(num\_qubits\[, basis\_gates, ...]) | Generic [`BackendV2`](qiskit.providers.BackendV2 "qiskit.providers.BackendV2") implementation with a configurable constructor. |
## V1 Fake Backends (Legacy interface)
| | |
| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [`FakeOpenPulse2Q`](qiskit.providers.fake_provider.FakeOpenPulse2Q "qiskit.providers.fake_provider.FakeOpenPulse2Q")() | A fake 2 qubit backend for pulse test. |
| [`FakeOpenPulse3Q`](qiskit.providers.fake_provider.FakeOpenPulse3Q "qiskit.providers.fake_provider.FakeOpenPulse3Q")() | Trivial extension of the FakeOpenPulse2Q. |
| [`Fake1Q`](qiskit.providers.fake_provider.Fake1Q "qiskit.providers.fake_provider.Fake1Q")() | A fake 1Q backend. |
| [`Fake5QV1`](qiskit.providers.fake_provider.Fake5QV1 "qiskit.providers.fake_provider.Fake5QV1")() | A fake backend with the following characteristics: |
| [`Fake20QV1`](qiskit.providers.fake_provider.Fake20QV1 "qiskit.providers.fake_provider.Fake20QV1")() | A fake backend with the following characteristics: |
| [`Fake7QPulseV1`](qiskit.providers.fake_provider.Fake7QPulseV1 "qiskit.providers.fake_provider.Fake7QPulseV1")() | A fake **pulse** backend with the following characteristics: |
| [`Fake27QPulseV1`](qiskit.providers.fake_provider.Fake27QPulseV1 "qiskit.providers.fake_provider.Fake27QPulseV1")() | A fake **pulse** backend with the following characteristics: |
| [`Fake127QPulseV1`](qiskit.providers.fake_provider.Fake127QPulseV1 "qiskit.providers.fake_provider.Fake127QPulseV1")() | A fake **pulse** backend with the following characteristics: |
## Fake Backend Base Classes
The V1 fake backends are based on a set of base classes:
### FakeBackend
<Class id="qiskit.providers.fake_provider.FakeBackend" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/providers/fake_provider/fake_backend.py#L39-L165" signature="qiskit.providers.fake_provider.FakeBackend(configuration, time_alive=10)" modifiers="class">
This is a dummy backend just for testing purposes.
FakeBackend initializer.
<Admonition title="Deprecated since version 1.2" type="danger">
The class `qiskit.providers.fake_provider.fake_backend.FakeBackend` is deprecated as of qiskit 1.2. It will be removed in the 2.0 release. Fake backends using BackendV1 are deprecated in favor of [`GenericBackendV2`](qiskit.providers.fake_provider.GenericBackendV2 "qiskit.providers.fake_provider.GenericBackendV2"). You can convert BackendV1 to [`BackendV2`](qiskit.providers.BackendV2 "qiskit.providers.BackendV2") with [`BackendV2Converter`](qiskit.providers.BackendV2Converter "qiskit.providers.BackendV2Converter").
</Admonition>
**Parameters**
* **configuration** ([*BackendConfiguration*](qiskit.providers.models.BackendConfiguration "qiskit.providers.models.BackendConfiguration")) backend configuration
* **time\_alive** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) time to wait before returning result
</Class>
### FakeQasmBackend
<Class id="qiskit.providers.fake_provider.FakeQasmBackend" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/providers/fake_provider/fake_qasm_backend.py#L32-L77" signature="qiskit.providers.fake_provider.FakeQasmBackend" modifiers="class">
A fake OpenQASM backend.
FakeBackend initializer.
<Admonition title="Deprecated since version 1.2" type="danger">
The class `qiskit.providers.fake_provider.fake_backend.FakeBackend` is deprecated as of qiskit 1.2. It will be removed in the 2.0 release. Fake backends using BackendV1 are deprecated in favor of [`GenericBackendV2`](qiskit.providers.fake_provider.GenericBackendV2 "qiskit.providers.fake_provider.GenericBackendV2"). You can convert BackendV1 to [`BackendV2`](qiskit.providers.BackendV2 "qiskit.providers.BackendV2") with [`BackendV2Converter`](qiskit.providers.BackendV2Converter "qiskit.providers.BackendV2Converter").
</Admonition>
**Parameters**
* **configuration** ([*BackendConfiguration*](qiskit.providers.models.BackendConfiguration "qiskit.providers.models.BackendConfiguration")) backend configuration
* **time\_alive** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) time to wait before returning result
</Class>
### FakePulseBackend
<Class id="qiskit.providers.fake_provider.FakePulseBackend" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/providers/fake_provider/fake_pulse_backend.py#L25-L44" signature="qiskit.providers.fake_provider.FakePulseBackend" modifiers="class">
A fake pulse backend.
FakeBackend initializer.
<Admonition title="Deprecated since version 1.2" type="danger">
The class `qiskit.providers.fake_provider.fake_backend.FakeBackend` is deprecated as of qiskit 1.2. It will be removed in the 2.0 release. Fake backends using BackendV1 are deprecated in favor of [`GenericBackendV2`](qiskit.providers.fake_provider.GenericBackendV2 "qiskit.providers.fake_provider.GenericBackendV2"). You can convert BackendV1 to [`BackendV2`](qiskit.providers.BackendV2 "qiskit.providers.BackendV2") with [`BackendV2Converter`](qiskit.providers.BackendV2Converter "qiskit.providers.BackendV2Converter").
</Admonition>
**Parameters**
* **configuration** ([*BackendConfiguration*](qiskit.providers.models.BackendConfiguration "qiskit.providers.models.BackendConfiguration")) backend configuration
* **time\_alive** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) time to wait before returning result
</Class>