Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove qiskit.org links #96

Merged
merged 2 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/getting_started.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@
"source": [
"## Dynamical Decoupling\n",
"\n",
"Dynamical decoupling (DD) is a way of modifying the noise power spectrum $S(\\omega)$ observed by qubits (see [this recent review](https://arxiv.org/abs/2207.03670)), and is typically implemented by a sequence of gates scheduled during a given qubit idle time that compose to the identity with specific delay times to fill the idle time in a calculated manner. Considerations for which sequences to use may involve decoherent error due to idle time versus single-qubit gate errors and/or crosstalk during two-qubit gates. Because the addition of gates is not always in the set of `basis_gates` defined by the backend, `add_pulse_cals=True` uses [Pulse Gates](https://qiskit.org/documentation/tutorials/circuits_advanced/05_pulse_gates.html) to add the correct implementation to the circuit with added DD."
"Dynamical decoupling (DD) is a way of modifying the noise power spectrum $S(\\omega)$ observed by qubits (see [this recent review](https://arxiv.org/abs/2207.03670)), and is typically implemented by a sequence of gates scheduled during a given qubit idle time that compose to the identity with specific delay times to fill the idle time in a calculated manner. Considerations for which sequences to use may involve decoherent error due to idle time versus single-qubit gate errors and/or crosstalk during two-qubit gates. Because the addition of gates is not always in the set of `basis_gates` defined by the backend, `add_pulse_cals=True` uses [Pulse Gates](https://docs.quantum.ibm.com/build/pulse) to add the correct implementation to the circuit with added DD."
]
},
{
Expand Down
16 changes: 8 additions & 8 deletions docs/tutorial_quantum_sim/qsim-tight-binding-model.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
"id": "a6b61705-78fa-4a6b-9e27-a192a00f1d20",
"metadata": {},
"source": [
"**Qiskit nature method.** If we want to start from fermionic operator form of the Hamiltonian $H = -\\tau \\sum_{i=(0,1,3)} \\left( c_{i}^{\\dagger} c_{i+1} + c_{i+1}^{\\dagger} c_{i} \\right) - \\tau_d \\left( c_{2}^{\\dagger} c_{3} + c_{3}^{\\dagger} c_{2} \\right) \\;,$ we can use functionality from [Qiskit nature](https://qiskit.org/documentation/nature/) to define the Hamiltonian in terms of fermionic second quantization operators and have qiskit do the Jordan-Wigner transformation to Pauli operators. This is shown below but not currently used in the notebook as FermionicOp does not currently support [Parameters](https://qiskit.org/documentation/stubs/qiskit.circuit.Parameter.html)."
"**Qiskit nature method.** If we want to start from fermionic operator form of the Hamiltonian $H = -\\tau \\sum_{i=(0,1,3)} \\left( c_{i}^{\\dagger} c_{i+1} + c_{i+1}^{\\dagger} c_{i} \\right) - \\tau_d \\left( c_{2}^{\\dagger} c_{3} + c_{3}^{\\dagger} c_{2} \\right) \\;,$ we can use functionality from [Qiskit nature](https://qiskit-community.github.io/qiskit-nature/) to define the Hamiltonian in terms of fermionic second quantization operators and have qiskit do the Jordan-Wigner transformation to Pauli operators. This is shown below but not currently used in the notebook as FermionicOp does not currently support [Parameters](https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.Parameter)."
]
},
{
Expand Down Expand Up @@ -190,7 +190,7 @@
"id": "4115fa2a-eb66-4c0b-ab90-25b90374cca1",
"metadata": {},
"source": [
"**Qiskit Opflow method.** If we want to start directly with the Pauli operator form of the Hamiltonian (doing the JW transform with \"pen and paper\") $H = -\\frac{\\tau}{2} \\sum_{i=(0,1,3)} \\left( X_i X_{i+1} + Y_i Y_{i+1} \\right) -\\frac{\\tau_d}{2} \\left( X_2 X_{3} + Y_2 Y_{3} \\right) \\;,$ then we directly use [Qiskit opflow](https://qiskit.org/documentation/apidoc/opflow.html)'s Pauli operators to string together the Hamiltonian terms. This is shown below and will be the method called later in the notebook as this method supports [Parameters](https://qiskit.org/documentation/stubs/qiskit.circuit.Parameter.html)."
"**Qiskit Opflow method.** If we want to start directly with the Pauli operator form of the Hamiltonian (doing the JW transform with \"pen and paper\") $H = -\\frac{\\tau}{2} \\sum_{i=(0,1,3)} \\left( X_i X_{i+1} + Y_i Y_{i+1} \\right) -\\frac{\\tau_d}{2} \\left( X_2 X_{3} + Y_2 Y_{3} \\right) \\;,$ then we directly use [Qiskit opflow](https://docs.quantum.ibm.com/api/qiskit/0.45/opflow)'s Pauli operators to string together the Hamiltonian terms. This is shown below and will be the method called later in the notebook as this method supports [Parameters](https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.Parameter)."
]
},
{
Expand Down Expand Up @@ -575,7 +575,7 @@
"\\end{equation}\n",
"$$\n",
"\n",
"Each pair of $XX$ and $YY$ interactions summed in the exponents do commute, so there could be further decomposition without need of trotterization. There is in fact efficient decompositions for such interactions (see the [qiskit circuit library](https://qiskit.org/documentation/apidoc/circuit_library.html)), but we will not go that here. It also depends on the type of gates we can/want to apply at the hardware level. We'll eventually work toward $R_{ZX}(\\theta)$ gates, so let's stay in terms of separating $XX$ and $YY$.\n",
"Each pair of $XX$ and $YY$ interactions summed in the exponents do commute, so there could be further decomposition without need of trotterization. There is in fact efficient decompositions for such interactions (see the [qiskit circuit library](https://docs.quantum.ibm.com/api/qiskit/circuit_library)), but we will not go that here. It also depends on the type of gates we can/want to apply at the hardware level. We'll eventually work toward $R_{ZX}(\\theta)$ gates, so let's stay in terms of separating $XX$ and $YY$.\n",
"\n",
"$$\n",
"\\begin{align}\n",
Expand Down Expand Up @@ -837,7 +837,7 @@
" Convert the U_trot ComposedOp object returned by compute_U_trot() to a bare quantum circuit.\n",
"\n",
" Tutorial on using PauliTrotterEvolution at\n",
" https://qiskit.org/documentation/tutorials/operators/01_operator_flow.html#Part-IV:-Converters\n",
" https://github.com/Qiskit/qiskit/blob/stable/0.46/docs/tutorials/operators/01_operator_flow.ipynb#\n",
"\n",
" Args:\n",
" U_trot - OperatorBase (such as ComposedOp); Trotterized unitary time evolution operator to be written in terms of a quantum circuit.\n",
Expand Down Expand Up @@ -1036,7 +1036,7 @@
"# backend = provider.get_backend(\"ibm_lagos\")\n",
"\n",
"# Simulated backend based on ibmq_lagos's device noise profile\n",
"# Use the line below for the latest error model. See: https://qiskit.org/documentation/apidoc/providers_fake_provider.html\n",
"# Use the line below for the latest error model. See: https://docs.quantum.ibm.com/api/qiskit/providers_fake_provider\n",
"# sim_noisy_lagos = QasmSimulator.from_backend(provider.get_backend('ibm_lagos'))\n",
"# A providerless noisy simulator, but may have an out-of-date noise model\n",
"backend = FakeLagos()\n",
Expand Down Expand Up @@ -1091,7 +1091,7 @@
"metadata": {},
"source": [
"### Generate quantum circuits for trotterized quantum simulation\n",
"Qiskit has functionality to directly [convert opflow objects into quantum circuits](https://qiskit.org/documentation/tutorials/operators/01_operator_flow.html#Part-IV:-Converters). This means we can use the U_trot method we made earlier to compute the unitary time evolution operator and then have it directly converted to a quantum circuit. Below, we'll use those functions defined earlier in the section."
"Qiskit has functionality to directly [convert opflow objects into quantum circuits](https://github.com/Qiskit/qiskit/blob/stable/0.46/docs/tutorials/operators/01_operator_flow.ipynb). This means we can use the U_trot method we made earlier to compute the unitary time evolution operator and then have it directly converted to a quantum circuit. Below, we'll use those functions defined earlier in the section."
]
},
{
Expand Down Expand Up @@ -1636,7 +1636,7 @@
"source": [
"### Measurement Error Mitigation\n",
"\n",
"We directly follow the [mthree tutorial](https://qiskit.org/documentation/partners/mthree/basic.html) for scalable measurement error mitigation. For further examples, see the [Qiskit textbook's](https://qiskit.org/textbook/preface.html) tutorial on [measurement error mitigation](https://qiskit.org/textbook/ch-quantum-hardware/measurement-error-mitigation.html#version-information). Below, we first demonstrate this technique on a simple example of a GHZ state $\\left(|00000\\rangle + |11111\\rangle \\right)/ \\sqrt{2}$. We will use it for the quantum simulation at the very end."
"We directly follow the [mthree tutorial](https://qiskit.org/ecosystem/mthree/basic.html) for scalable measurement error mitigation. For further examples, see the Qiskit textbook's tutorial on [measurement error mitigation](https://github.com/Qiskit/platypus/blob/main/notebooks/v2/quantum-hardware/measurement-error-mitigation.ipynb). Below, we first demonstrate this technique on a simple example of a GHZ state $\\left(|00000\\rangle + |11111\\rangle \\right)/ \\sqrt{2}$. We will use it for the quantum simulation at the very end."
]
},
{
Expand Down Expand Up @@ -1794,7 +1794,7 @@
"metadata": {},
"source": [
"### $R_{ZX}(\\theta)$ Gate Optimization\n",
"Two-qubit gate errors are the main source of error for current (NISQ era) quantum computers. One way to get a significant reduction in two-qubit errors is to dive closer to the physics of the underlying qubits and use the native two-qubit gates instead of CNOT gates. Read the [paper](https://arxiv.org/abs/2209.02795) and references therein for more details. In short, we want to compose all two-qubit gates in terms of [$R_{ZX}(\\theta)$ gate operations](https://qiskit.org/documentation/stubs/qiskit.circuit.library.RZXGate.html).\n",
"Two-qubit gate errors are the main source of error for current (NISQ era) quantum computers. One way to get a significant reduction in two-qubit errors is to dive closer to the physics of the underlying qubits and use the native two-qubit gates instead of CNOT gates. Read the [paper](https://arxiv.org/abs/2209.02795) and references therein for more details. In short, we want to compose all two-qubit gates in terms of [$R_{ZX}(\\theta)$ gate operations](https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.RZXGate).\n",
"\n",
"Compose the circuit in terms of $R_{ZX}(\\theta)$ gate operations instead of CNOT gates."
]
Expand Down
Loading