Organize guides images (#1600)

Part of #154

This PR, following the idea of this
[comment](https://github.com/Qiskit/documentation/issues/154#issuecomment-2104751884),
moves all the images in the folders `start`, `build`, `transpile`,
`verify`, and `run` to a new folder called `guides`, updating all the
docs to point to that new folder.

To change the links, I used the following script that updates all but 3
links that are missed by the regex. I changed them manually.

<details>
<summary>Script</summary>

```python
from __future__ import annotations
import re
import glob
from pathlib import Path
from main import OLD_FOLDERS

def update_link(markdown: str, image_folder: str, link: str) -> str:
    new_link = link.replace(f"/images/{image_folder}/", "/images/guides/")
    return markdown.replace(link, new_link)

def main() -> None:
    inline_link_re = re.compile(r"\!\[([^\]]+)\]\(([^)]+)\)")

    for folder in [*OLD_FOLDERS, "api/migration-guides"]:
        image_folder = folder if folder != "api/migration-guides" else "run"
        for file_path in glob.glob(f"docs/{folder}/*"):
            file = Path(file_path)
            markdown = file.read_text()
            new_markdown = re.sub(
                inline_link_re,
                lambda m: update_link(m[0], image_folder, m[2]),
                markdown,
            )
            if markdown != new_markdown:
                file.write_text(new_markdown)

if __name__ == "__main__":
    main()
```
</details>
This commit is contained in:
Arnau Casau 2024-06-27 16:55:39 +02:00 committed by GitHub
parent 6c4332c4b8
commit 679617cc5d
84 changed files with 45 additions and 45 deletions

View File

@ -94,4 +94,4 @@ Usage is a measurement of the amount of time the system is locked for your workl
* Batch usage is the sum of quantum time of all jobs in the batch.
* Single job usage is the quantum time the job uses in processing.
![This image shows multiple sets of jobs. One set is being run in session mode and the other is being run in batch mode. For session mode, between each job is the interactive TTL (time to live). The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed). Another set of jobs then starts and jobs continue in a similar manner. The system is reserved for your use during the entire session. For batch mode, the classical computation part of each job happens simultaneously, then all jobs are sent to the system. The system is locked for your use from the time the first job reaches the system until the last job is done processing on the system. There is no gap between jobs where the system is idle.](/images/run/execution-modes/SessionVsBatch.svg 'Sessions compared to batch')
![This image shows multiple sets of jobs. One set is being run in session mode and the other is being run in batch mode. For session mode, between each job is the interactive TTL (time to live). The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed). Another set of jobs then starts and jobs continue in a similar manner. The system is reserved for your use during the entire session. For batch mode, the classical computation part of each job happens simultaneously, then all jobs are sent to the system. The system is locked for your use from the time the first job reaches the system until the last job is done processing on the system. There is no gap between jobs where the system is idle.](/images/guides/execution-modes/SessionVsBatch.svg 'Sessions compared to batch')

View File

@ -48,7 +48,7 @@ circuit = qiskit.qasm2.loads(program)
circuit.draw()
```
![output](/images/build/qasm2.png)
![output](/images/guides/qasm2.png)
#### Example: import an OpenQASM 2 program from a file

View File

@ -82,7 +82,7 @@ program = """
circuit = qiskit.qasm3.loads(program)
circuit.draw("mpl")
```
![output](/images/build/interoperate-qiskit-qasm3/qasm3circ-qiskit-1.0.png)
![output](/images/guides/interoperate-qiskit-qasm3/qasm3circ-qiskit-1.0.png)
## Export to OpenQASM 3

View File

@ -156,7 +156,7 @@ circuit.measure_all()
circuit.draw("mpl")
```
![output](/images/build/paulibasis.png)
![output](/images/guides/paulibasis.png)
## Next steps

View File

@ -57,7 +57,7 @@ circuit.h(qreg_q[0])
circuit.draw("mpl")
```
![output](/images/build/unitary-synthesis/unitary_target-qiskit-1.0.svg)
![output](/images/guides/unitary-synthesis/unitary_target-qiskit-1.0.svg)
However, after re-synthesizing with the following code, it only needs a single CX gate. (Here we use the `QuantumCircuit.decompose()` method to better visualize the gates used to re-synthesize the unitary.)
@ -73,7 +73,7 @@ better_circuit.unitary(U, range(2))
better_circuit.decompose().draw()
```
![output](/images/build/unitary-synthesis/unitary_resynth-qiskit-1.0.png)
![output](/images/guides/unitary-synthesis/unitary_resynth-qiskit-1.0.png)
Qiskit's [transpile](../api/qiskit/compiler#qiskit.compiler.transpile) function automatically performs this re-synthesis for a sufficiently high optimization level.

View File

@ -10,17 +10,17 @@ description: Explanatory content on fixed and dynamic repetition rate execution
Most IBM Quantum&trade; systems execute circuits at a fixed rate. Although this *repetition rate* varies by system, the underlying execution model is the same, and is described here. First, consider three circuits sent to a system using separate jobs, one for each circuit. The example below shows what happens for jobs of varying lengths. Because of the fixed repetition rate, there is a variable amount of *idle time* that occurs before the start of a circuit in order to make the entire duration match that given by the system repetition rate.
![With fixed-rate execution, shorter jobs result in longer idle time.](/images/run/fixed_single_circuit1.png "Idle time versus job length")
![With fixed-rate execution, shorter jobs result in longer idle time.](/images/guides/fixed_single_circuit1.png "Idle time versus job length")
The situation changes somewhat when the same circuits are batched into a single job. In this case the circuits included in the job are executed by iterating over the circuits for each shot requested; the execution is column-wise over a matrix of circuits and shots (see below).
![The first column represents shot 0. The circuits are run in order from 0 through 3. The second column represents shot 1. The circuits are run in order from 0 through 3. The remaining columns follow the same pattern. ](/images/run/circuits_shots_matrix1.png "Column-wise execution matrix")
![The first column represents shot 0. The circuits are run in order from 0 through 3. The second column represents shot 1. The circuits are run in order from 0 through 3. The remaining columns follow the same pattern. ](/images/guides/circuits_shots_matrix1.png "Column-wise execution matrix")
Matrix of four circuits in a job showing the execution pattern over the circuits.
When submitting batches of circuits to the systems, the circuits are executed differently than they would be if executed separately. Namely, the initialization of the circuit, that is, prepare the ground state, and measurements (if any) are aligned over all circuits.
![The image shows three circuits. Although they are different lengths, they take the same amount of time to complete because they were submitted in a batch.](/images/run/fixed_batch_circuit1.png)
![The image shows three circuits. Although they are different lengths, they take the same amount of time to complete because they were submitted in a batch.](/images/guides/fixed_batch_circuit1.png)
Therefore, each circuit is equal in duration to the longest circuit in the batch, and there is a common idle time that is placed in front of all circuits to match the repetition rate.

View File

@ -12,7 +12,7 @@
"\n",
"## Memory limits and latency in control hardware\n",
"\n",
"![Diagram showing control hardware architecture](/images/run/rta-architecture.png)\n",
"![Diagram showing control hardware architecture](/images/guides/rta-architecture.png)\n",
"\n",
"Running circuits on quantum processors involves not only the qubits themselves, but also a system of classical electronics and computers to generate and receive waveforms and orchestrate the control logic. When a job is submitted to the IBM Quantum&trade; service, it is processed into multiple classical programs that must be distributed between two kinds of units: central controllers and qubit controllers (see diagram above). A job may fail if it exceeds certain limitations of these controllers. There are two kinds of limitations to be aware of:\n",
"\n",

View File

@ -49,7 +49,7 @@
"\n",
"The diagram below depicts dynamical decoupling with an XX pulse sequence. The abstract circuit on the left is mapped onto a microwave pulse schedule on the top right. The bottom right depicts the same schedule, but with a sequence of two X pulses inserted during an idle period of the first qubit.\n",
"\n",
"![Depiction of dynamical decoupling](/images/run/error-mitigation-explanation/dd.jpg)\n",
"![Depiction of dynamical decoupling](/images/guides/error-mitigation-explanation/dd.jpg)\n",
"\n",
"Dynamical decoupling can be enabled by setting `enable` to `True` in the [dynamical decoupling options](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions). The `sequence_type` option can be used to pick from several different pulse sequences. The default sequence type is `\"XX\"`.\n",
"\n",
@ -93,11 +93,11 @@
"\n",
"Pauli twirling is implemented by sandwiching a chosen set of gates with randomly chosen single-qubit Pauli gates in such a way that the ideal effect of the gate remains the same. The result is that a single circuit is replaced with a random ensemble of circuits, all with the same ideal effect. When sampling the circuit, samples are drawn from multiple random instances, rather than just a single one.\n",
"\n",
"![Depiction of Pauli twirling](/images/run/error-mitigation-explanation/pauli_twirling.png)\n",
"![Depiction of Pauli twirling](/images/guides/error-mitigation-explanation/pauli_twirling.png)\n",
"\n",
"Since most of the errors in current quantum hardware come from two-qubit gates, this technique is often applied exclusively to (native) two-qubit gates. The following diagram depicts some Pauli twirls for the CNOT and ECR gates. Every circuit within a row has the same ideal effect.\n",
"\n",
"![Depiction of gate twirls](/images/run/error-mitigation-explanation/gate_twirls.png)\n",
"![Depiction of gate twirls](/images/guides/error-mitigation-explanation/gate_twirls.png)\n",
"\n",
"Pauli twirling can be enabled by setting `enable_gates` to `True` in the [twirling options](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions). Other notable options include:\n",
"\n",
@ -137,7 +137,7 @@
"[Twirled readout error extinction (TREX)](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.105.032620) mitigates the effect of measurement errors for the estimation of Pauli observable expectation values.\n",
" It is based on the notion of twirled measurements, which are accomplished by randomly substituting measurement gates by a sequence of (1) a Pauli X gate, (2) a measurement, and (3) classical bit flip. Just like in standard gate twirling, this sequence is equivalent to a plain measurement in the absence of noise, as depicted in the following diagram:\n",
"\n",
"![Depiction of measurement twirling](/images/run/error-mitigation-explanation/measurement_twirling.png)\n",
"![Depiction of measurement twirling](/images/guides/error-mitigation-explanation/measurement_twirling.png)\n",
"\n",
"In the presence of readout error, measurement twirling has the effect of diagonalizing the readout-error transfer matrix, making it easy to invert. Estimating the readout-error transfer matrix requires executing additional calibration circuits, which introduces a small overhead.\n",
"\n",
@ -183,7 +183,7 @@
"Both the noise amplification and extrapolation stages can be implemented in many different ways. Qiskit Runtime implements noise amplification by \"digital gate folding,\" which means that two-qubit gates are replaced with equivalent sequences of the gate and its inverse. For example, replacing a unitary $U$ with $U U^\\dagger U$ would yield a noise amplification factor of 3. For the extrapolation, you can choose from one of several functional forms, including a linear fit or an exponential fit.\n",
"The image below depicts digital gate folding on the left, and the extrapolation procedure on the right.\n",
"\n",
"![Depiction of ZNE](/images/run/error-mitigation-explanation/zne.png)\n",
"![Depiction of ZNE](/images/guides/error-mitigation-explanation/zne.png)\n",
"\n",
"ZNE can be enabled by setting `zne_mitigation` to `True` in the [Qiskit Runtime resilience options](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2) for V2 Estimator.\n",
"The Qiskit Runtime options for ZNE are described [here](/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions). The following options are notable:\n",

View File

@ -47,4 +47,4 @@ To find the usage time for your session or batch, in `qiskit-ibm-runtime` 0.23 o
If you are calling the REST API directly, the usage time is the `elapsed_time` value returned by the `GET /sessions/{id}` endpoint, for both session and batch workloads.
![This image shows multiple sets of jobs. One set is being run in session mode and the other is being run in batch mode. For session mode, between each job is the interactive TTL (time to live). The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed). Another set of jobs then starts and jobs continue in a similar manner. The system is reserved for your use during the entire session. For batch mode, the classical computation part of each job happens simultaneously, then all jobs are sent to the system. The system is locked for your use from the time the first job reaches the system until the last job is done processing on the system. There is no gap between jobs where the system is idle.](/images/run/execution-modes/SessionVsBatch.svg 'Sessions compared to batch')
![This image shows multiple sets of jobs. One set is being run in session mode and the other is being run in batch mode. For session mode, between each job is the interactive TTL (time to live). The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed). Another set of jobs then starts and jobs continue in a similar manner. The system is reserved for your use during the entire session. For batch mode, the classical computation part of each job happens simultaneously, then all jobs are sent to the system. The system is locked for your use from the time the first job reaches the system until the last job is done processing on the system. There is no gap between jobs where the system is idle.](/images/guides/execution-modes/SessionVsBatch.svg 'Sessions compared to batch')

View File

@ -10,7 +10,7 @@ Access to IBM Quantum&trade; Platform services is controlled by the **instances*
IBM Cloud&reg; instances are different from IBM Quantum Platform instances. IBM Cloud does not use the hub/group/project structure for user management. This section describes instances in IBM Quantum Platform. To view and create IBM Cloud instances, visit the [IBM Cloud Quantum Instances page](https://cloud.ibm.com/quantum/instances). Click the name of an instance to see details such as your CRN for that instance, what compute resources (programs, systems, and simulators) are available to you by using that instance, and what jobs you have run on that instance.
</Admonition>
![Alice, Bob, and Charlie are all in Hub A. Hub A has Group 1 and 2. Alice and Bob are in Group 1. Charlie is in Group 2. Group 1 has Project X and Y. Alice is in both projects. Bob is only in project X. Group 2 has Project Z. Charlie is in project Z. Therefore, Charlie's instance is Hub-A/Group-2/Project-Z.](/images/run/providers1.jpg "Hub / group / project hierarchy")
![Alice, Bob, and Charlie are all in Hub A. Hub A has Group 1 and 2. Alice and Bob are in Group 1. Charlie is in Group 2. Group 1 has Project X and Y. Alice is in both projects. Bob is only in project X. Group 2 has Project Z. Charlie is in project Z. Therefore, Charlie's instance is Hub-A/Group-2/Project-Z.](/images/guides/providers1.jpg "Hub / group / project hierarchy")
The hub/group/project hierarchy that makes up an IBM Quantum instance.
@ -18,7 +18,7 @@ Users with a public account automatically belong to the ibm-q/open/main [open pl
To see the instances to which you have access, look at the bottom of your [Account page](https://quantum.ibm.com/account).
![Screenshot of the Account page.](/images/run/find-providers1.png "Instances on the Account page")
![Screenshot of the Account page.](/images/guides/find-providers1.png "Instances on the Account page")
## Find your instances
@ -120,7 +120,7 @@ If you do not specify an instance, the code will select one in the following ord
To leave an instance, visit the instance list on your [Account page.](https://quantum.ibm.com/account) Select the instance you wish to leave, then select the overflow menu and choose *Leave instance*.
![Screenshot of the Account page.](/images/run/leaving1.png "Leave instance")
![Screenshot of the Account page.](/images/guides/leaving1.png "Leave instance")
## Next steps

View File

@ -166,7 +166,7 @@ observables = [
>> pub result has shape (2, 3, 6)
```
![Parameter value sets are represented by n x m arrays, and observable arrays are represented by one or more single-column arrays. For each example in the previous code, the parameter value sets are combined with their observable array to create the resulting EV estimates. Example 1 (broadcast single observable) has a parameter value set that is a 5x1 array and a 1x1 observables array. The one item in the observables array is combined with each item in the parameter value set to create a single 5x1 array where each item is a combination of the original item in the parameter value set with the item in the observables array. Example 2 (zip) has a 5x1 parameter value set and a 5x1 observables array. The output is a 5x1 array where each item is a combination of the nth item in the parameter value set with the nth item in the observables array. Example 3 (outer/product) has a 1x6 parameter value set and a 4x1 observables array. Their combination results in a 4x6 array that is created by combining each item in the parameter value set with *every* item in the observables array. Thus, each parameter value becomes an entire column in the output. Example 4 (Standard nd generalization) has a 3x6 parameter value set array and two 3x1 observables array. They combine to create two 3x6 output arrays in a similar manner to the previous example.](/images/run/broadcasting.svg "Visual representation of broadcasting")
![Parameter value sets are represented by n x m arrays, and observable arrays are represented by one or more single-column arrays. For each example in the previous code, the parameter value sets are combined with their observable array to create the resulting EV estimates. Example 1 (broadcast single observable) has a parameter value set that is a 5x1 array and a 1x1 observables array. The one item in the observables array is combined with each item in the parameter value set to create a single 5x1 array where each item is a combination of the original item in the parameter value set with the item in the observables array. Example 2 (zip) has a 5x1 parameter value set and a 5x1 observables array. The output is a 5x1 array where each item is a combination of the nth item in the parameter value set with the nth item in the observables array. Example 3 (outer/product) has a 1x6 parameter value set and a 4x1 observables array. Their combination results in a 4x6 array that is created by combining each item in the parameter value set with *every* item in the observables array. Thus, each parameter value becomes an entire column in the output. Example 4 (Standard nd generalization) has a 3x6 parameter value set array and two 3x1 observables array. They combine to create two 3x6 output arrays in a similar manner to the previous example.](/images/guides/broadcasting.svg "Visual representation of broadcasting")
<Admonition type="tip" title="SparsePauliOp">
Each `SparsePauliOp` counts as a single element in this context, regardless of the number of Paulis contained in the `SparsePauliOp`. Thus, for the purpose of these broadcasting rules, all of the following elements have the same shape:

View File

@ -8,12 +8,12 @@ description: Information on IBM Quantum hardware and features of different proce
Processor types are named for the general technology qualities that go into builds, consisting of the family and revision. Family (e.g., Falcon) refers to the size and scale of circuits possible on the chip. This is primarily determined by the number of qubits and the connectivity graph. Revisions (e.g., r1) are design variants within a given family, often leading to performance improvements or tradeoffs. Segments are comprised of chip sub-sections, and are defined within a given family. For instance, segment H of a Falcon consists of seven qubits arranged as seen in the illustration below. Segment H on a Hummingbird, if implemented, could be entirely different.
![Illustration of segment H on a Falcon processor.](/images/run/processor-types/seg-h.png "Illustration of segment H on a Falcon processor")
![Illustration of segment H on a Falcon processor.](/images/guides/processor-types/seg-h.png "Illustration of segment H on a Falcon processor")
## Heron
![Heron processor icon](/images/run/processor-types/heron.svg)
![Heron processor icon](/images/guides/processor-types/heron.svg)
Quantum volume: 512
@ -25,7 +25,7 @@ At 133 qubits, Heron is an [Eagle](#eagle)-sized upgrade to [Egret](#egret) that
## Osprey
![Osprey processor icon](/images/run/processor-types/osprey.svg)
![Osprey processor icon](/images/guides/processor-types/osprey.svg)
Osprey is nearly quadruple the size of Eagle at 433 qubits. The larger chip sizes have required further enhancements to device packaging, as well as custom flex cabling in the cryostat to fit the greater I/O requirements within the same wiring footprint.
@ -33,7 +33,7 @@ Osprey is nearly quadruple the size of Eagle at 433 qubits. The larger chip size
## Eagle
![Eagle processor icon](/images/run/processor-types/eagle.svg)
![Eagle processor icon](/images/guides/processor-types/eagle.svg)
Quantum volume: 128
@ -53,7 +53,7 @@ See [IBM Quantum breaks the 100qubit processor barrier](https://www.ibm.com/q
## Hummingbird
![Hummingbird processor icon](/images/run/processor-types/hummingbird.svg)
![Hummingbird processor icon](/images/guides/processor-types/hummingbird.svg)
Quantum volume: 128
@ -71,7 +71,7 @@ Using a heavy-hexagonal qubit layout, the Hummingbird family allows up to 65 qub
## Egret
![Egret processor icon](/images/run/processor-types/egret.svg)
![Egret processor icon](/images/guides/processor-types/egret.svg)
Quantum volume: 512
@ -85,7 +85,7 @@ Egret brings the innovations of tunable couplers onto a 33-qubit platform, resul
## Falcon
![Falcon processor icon](/images/run/processor-types/falcon.svg)
![Falcon processor icon](/images/guides/processor-types/falcon.svg)
Quantum volume: 128
@ -109,7 +109,7 @@ The Falcon family of devices offers a valuable platform for medium-scale circuit
## Canary
![Canary processor icon](/images/run/processor-types/canary.svg)
![Canary processor icon](/images/guides/processor-types/canary.svg)
The Canary family comprises small designs containing anywhere from 5 to 16 qubits. It uses an optimized 2D lattice. That is, all of the qubits and readout resonators are on the same layer.
* [View available Canary systems](https://quantum.ibm.com/services/resources?tab=systems&type=Canary)

View File

@ -6,7 +6,7 @@ description: A list of IBM Quantum systems that are now retired
# Retired systems
The following IBM Quantum&trade; systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/run/view-switcher1.png)) at the top right to change to a sortable table view.
The following IBM Quantum&trade; systems have been retired. For the full list of available systems, see the [Compute resources page.](https://quantum.ibm.com/services/resources?services=systems) By default, the information is shown in the card view, but you can use the view switchers (![view-switcher icon](/images/guides/view-switcher1.png)) at the top right to change to a sortable table view.
<Admonition type="note">
To retrieve jobs from a retired system, see [these instructions.](#retrieve)

View File

@ -21,7 +21,7 @@ Batch mode can shorten processing time if all jobs can be provided at the outset
When batching, jobs are not guaranteed to run in the order they are submitted. Also, while your batch jobs will run as closely together as possible, they don't get exclusive access to the backend. Therefore, your batch jobs might run in parallel with other users' jobs if there is enough processing capacity on the system. Additionally, system calibration jobs could run between the batched jobs.
</Admonition>
![This diagram illustrates jobs submitted in a batch. It shows five jobs, numbered 0 through 4, in a queue. The jobs are a mix of Estimator and Sampler.](/images/run/batch.png 'Figure 1: Batch execution')
![This diagram illustrates jobs submitted in a batch. It shows five jobs, numbered 0 through 4, in a queue. The jobs are a mix of Estimator and Sampler.](/images/guides/batch.png 'Figure 1: Batch execution')
There are multiple ways you can reconfigure your jobs to take advantage of the parallel processing provided by batching.

View File

@ -37,7 +37,7 @@ The basic workflow for sessions is as follows:
The following video illustrates the session basic workflow:
<video title="A user starts a session job and becomes the priority user. They submit jobs to the quantum system while other users wait. After the prioritized user's session finishes, the next person's jobs can begin processing." className="max-w-auto h-auto" controls>
<source src="/videos/run/sessions/demo.mp4" type="video/mp4"></source>
<source src="/videos/guides/sessions/demo.mp4" type="video/mp4"></source>
</video>
<Admonition type="note">

View File

@ -85,7 +85,7 @@ View system configuration values by selecting a system on the [Compute resources
### Expanded card for a sample system
![An expanded card for a sample system.](/images/run/exp-card.png "Expanded card for a sample system")
![An expanded card for a sample system.](/images/guides/exp-card.png "Expanded card for a sample system")
### System tabs
@ -93,11 +93,11 @@ Click the download icon in the upper right of any tab to download a CSV file of
**Graph view tab.**
![The graph view tab shows the calibration data as a graph.](/images/run/graph-view1.png "Graph view tab")
![The graph view tab shows the calibration data as a graph.](/images/guides/graph-view1.png "Graph view tab")
**Table view tab**
![The table view tab shows the calibration information as numerical data.](/images/run/table-view.png "Table view tab")
![The table view tab shows the calibration information as numerical data.](/images/guides/table-view.png "Table view tab")
## Find system information from other channels

View File

@ -251,7 +251,7 @@ described in more detail below.
A tentative release schedule is included below:
![Tentative Qiskit release schedule](/images/start/install/release_schedule.png)
![Tentative Qiskit release schedule](/images/guides/install/release_schedule.png)
For an up-to-date release schedule, refer to the Qiskit Github project's [milestones list](https://github.com/Qiskit/qiskit/milestones), which will always contain the current release plan.

View File

@ -41,7 +41,7 @@
" qc.draw(output='mpl')\n",
"\n",
"```\n",
"![The circuit's DAG consists of nodes that are connected by directional edges. It is a visual way to represent qubits or classical bits, the operations, and the way that data flows. ](/images/transpile/custom-transpiler-pass/DAG_circ.png \"DAG\")\n",
"![The circuit's DAG consists of nodes that are connected by directional edges. It is a visual way to represent qubits or classical bits, the operations, and the way that data flows. ](/images/guides/custom-transpiler-pass/DAG_circ.png \"DAG\")\n",
"\n",
"Use the `qiskit.tools.visualization.dag_drawer()` function to view this circuit's DAG. There are three kinds of graph nodes: qubit/clbit nodes (green), operation nodes (blue), and output nodes (red). Each edge indicates data flow (or dependency) between two nodes.\n",
"\n",
@ -52,7 +52,7 @@
"dag = circuit_to_dag(qc)\n",
"dag_drawer(dag)\n",
"```\n",
"![](/images/transpile/custom-transpiler-pass/DAG.png)\n",
"![](/images/guides/custom-transpiler-pass/DAG.png)\n",
"</details>"
]
},

View File

@ -11,11 +11,11 @@ Transpilation is the process of rewriting a given input circuit to match the top
The process of transpilation takes a circuit that contains your instructions:
<img src="/images/transpile/pre-transpiled.png" alt="A two-qubit quantum circuit containing a Hadamard and two CNOT gates." />
<img src="/images/guides/pre-transpiled.png" alt="A two-qubit quantum circuit containing a Hadamard and two CNOT gates." />
Transpilation then transforms it such that only instructions available on a chosen backend are used, and optimizes those instructions to minimize the effects of noise:
<img src="/images/transpile/transpiled.png" alt="The same two-qubit quantum circuit after transpilation. It contains RZ, X, SX, and ECR gates." />
<img src="/images/guides/transpiled.png" alt="The same two-qubit quantum circuit after transpilation. It contains RZ, X, SX, and ECR gates." />
----

View File

@ -42,7 +42,7 @@
"The next stage involves the layout or connectivity of the backend a circuit will be sent to. In general, quantum circuits are abstract entities whose qubits are \"virtual\" or \"logical\" representations of actual qubits used in computations. To execute a sequence of gates, a one-to-one mapping from the \"virtual\" qubits to the \"physical\" qubits in an actual quantum device is necesary. This mapping is stored as a `Layout` object and is part of the constraints defined within a backend's [instruction set architecture (ISA)](./#instruction-set-architecture).\n",
"\n",
"\n",
"![This image illustrates qubits being mapped from the wire representation to a diagram that represents how the qubits are connected on the system.](/images/transpile/transpiler-stages/layout-mapping.png \"Qubit mapping\")\n",
"![This image illustrates qubits being mapped from the wire representation to a diagram that represents how the qubits are connected on the system.](/images/guides/transpiler-stages/layout-mapping.png \"Qubit mapping\")\n",
"\n",
"The choice of mapping is extremely important for minimizing the number of SWAP operations needed to map the input circuit onto the device topology and ensure the most well-calibrated qubits are used. Due to the importance of this stage, the preset pass managers try a few different methods to find the best layout. Typically this involves two steps: first, try to find a \"perfect\" layout (a layout that does not require any SWAP operations), and then, a heuristic pass that tries to find the best layout to use if a perfect layout cannot be found. There are two `Passes` typically used for this first step:\n",
"\n",
@ -318,7 +318,7 @@
" The transpilation output varies due to the stochastic SWAP mapper. Therefore, the numbers below will likely change each time you run the code.\n",
"</Admonition>\n",
"\n",
"![/images/transpile/transpiler-11.png](/images/transpile/transpiler-11.png)\n",
"![/images/guides/transpiler-11.png](/images/guides/transpiler-11.png)\n",
"\n",
"The following code constructs a 15-qubit GHZ state and compares the `optimization_levels` of transpilation in terms of resulting circuit depth, gate counts, and multi-qubit gate counts."
]
@ -442,11 +442,11 @@
"id": "98748e38-8d7a-40b5-9376-9dae7c192ef0",
"metadata": {},
"source": [
"![/images/transpile/transpiler-16.png](/images/transpile/transpiler-16.png)\n",
"![/images/guides/transpiler-16.png](/images/guides/transpiler-16.png)\n",
"\n",
"The transpiler inserted `Delay` instructions to account for idle time on each qubit. To get a better idea of the timing of the circuit we can also look at it with the `timeline.draw()` function:\n",
"\n",
"![/images/transpile/transpiler-17.png](/images/transpile/transpiler-17.png)"
"![/images/guides/transpiler-17.png](/images/guides/transpiler-17.png)"
]
},
{

View File

@ -41,7 +41,7 @@ qc.h(0)
qc.cx(0,1)
qc.draw("mpl", style="iqp")
```
![Initial QuantumCircuit](/images/verify/simulate-with-qiskit-primitives/estimator-initialize.png "Initial QuantumCircuit")
![Initial QuantumCircuit](/images/guides/simulate-with-qiskit-primitives/estimator-initialize.png "Initial QuantumCircuit")
```python
from qiskit.quantum_info import SparsePauliOp
@ -244,7 +244,7 @@ qc.cx(0,1)
qc.measure_all()
qc.draw("mpl", style="iqp")
```
![Initial QuantumCircuit](/images/verify/simulate-with-qiskit-primitives/sampler-initialize.png "Initial QuantumCircuit")
![Initial QuantumCircuit](/images/guides/simulate-with-qiskit-primitives/sampler-initialize.png "Initial QuantumCircuit")
<Admonition type="note">
Any quantum circuit passed to a Sampler **must** include measurements.

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 380 KiB

After

Width:  |  Height:  |  Size: 380 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 168 KiB

View File

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

View File

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

View File

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 219 KiB

View File

Before

Width:  |  Height:  |  Size: 703 KiB

After

Width:  |  Height:  |  Size: 703 KiB

View File

Before

Width:  |  Height:  |  Size: 564 KiB

After

Width:  |  Height:  |  Size: 564 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 395 KiB

After

Width:  |  Height:  |  Size: 395 KiB

View File

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 184 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 247 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB