Skip to content
This repository was archived by the owner on Aug 21, 2023. It is now read-only.

Commit 6a2f4c5

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents bf42d6a + 66f22da commit 6a2f4c5

170 files changed

Lines changed: 2393 additions & 4130 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 0 additions & 2 deletions
This file was deleted.

INSTALL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ To properly view and run the tutorials, you will need to install [Jupyter Notebo
1515

1616
## 2. Install Qiskit, Qiskit Aqua and Qiskit Aqua Chemistry
1717

18-
At least [Python 3.5 or later](https://www.python.org/downloads/) is required to install and use Qiskit. If you have multiple Python versions installed (and particularly if the command `python --version` returns an incompatble version), you will need to ensure that your versions are [managed correctly](https://conda.io/docs/user-guide/tasks/manage-python.html). This can be done using the `environment.yml` file, as detailed below.
18+
At least [Python 3.5 or later](https://www.python.org/downloads/) is required to install and use Qiskit. If you have multiple Python versions installed (and particularly if the command `python --version` returns an incompatble version), you will need to ensure that your versions are [managed correctly](https://conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-python). This can be done using the `environment.yml` file, as detailed below.
1919

2020
When there are no issues with dependencies, Qiskit can be installed using
2121

images/qiskit-heading.gif

-4.72 KB
Binary file not shown.

images/qiskit_header.png

15.9 KB
Loading
Lines changed: 40 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"cell_type": "markdown",
55
"metadata": {},
66
"source": [
7-
"<img src=\"../images/qiskit-heading.gif\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" width=\"500 px\" align=\"left\">"
7+
"<img src=\"../images/qiskit_header.png\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" align=\"middle\">"
88
]
99
},
1010
{
@@ -31,78 +31,69 @@
3131
"\n",
3232
"This section gives you the tools to make your first circuits, run them on real quantum systems and simulators, and view the data.\n",
3333
"\n",
34-
"1. [Getting started with Qiskit](basics/1_getting_started_with_qiskit.ipynb) - How to use Qiskit\n",
34+
"1. [Getting started with Qiskit](fundamentals/1_getting_started_with_qiskit.ipynb) - How to use Qiskit\n",
3535
"\n",
36-
"2. [Plotting data in Qiskit](basics/2_plotting_data_in_qiskit.ipynb) - Illustrates the different ways of plotting data in Qiskit\n",
36+
"2. [Plotting data in Qiskit](fundamentals/2_plotting_data_in_qiskit.ipynb) - Illustrates the different ways of plotting data in Qiskit\n",
3737
" \n",
38-
"3. [The IBM Q Account](basics/3_the_ibmq_account.ipynb) - Understanding the IBM Q account.\n",
38+
"3. [The IBM Q Account](fundamentals/3_the_ibmq_account.ipynb) - Understanding the IBM Q account.\n",
3939
"\n",
40-
"4. [Circuit Properties](basics/4_quantum_circuit_properties.ipynb) - Important properties of quantum circuits.\n",
40+
"4. [Circuit Properties](fundamentals/4_quantum_circuit_properties.ipynb) - Important properties of quantum circuits.\n",
4141
" \n",
42-
"5. [Using the Transpiler](basics/5_using_the_transpiler.ipynb) - Mapping and optimizing circuits using the Qiskit transpiler.\n",
42+
"5. [Using the Transpiler](fundamentals/5_using_the_transpiler.ipynb) - Mapping and optimizing circuits using the Qiskit transpiler.\n",
4343
"\n",
44-
"6. [Jupyter Tools](basics/6_qiskit_jupyter_tools.ipynb) - Qiskit functionality for Jupyter notebooks\n",
44+
"6. [Jupyter Tools](fundamentals/6_qiskit_jupyter_tools.ipynb) - Qiskit functionality for Jupyter notebooks\n",
4545
" \n",
4646
" \n",
4747
"## 2 Qiskit Terra\n",
4848
"\n",
4949
"Terra, the ‘earth’ element, is the foundation on which the rest of the software lies. Terra provides a bedrock for composing quantum programs at the level of circuits and pulses, to optimize them for the constraints of a particular device, and to manage the execution of batches of experiments on remote-access devices. Terra defines the interfaces for a desirable end-user experience, as well as the efficient handling of layers of optimization, pulse scheduling and backend communication.\n",
50-
" * [Quantum circuits](terra/quantum_circuits.ipynb) - Gives a summary of the `QuantumCircuit` object\n",
51-
" * [Advanced circuits](terra/advanced_circuits.ipynb) - New circuit building tools added in Terra 0.8, including registerless declarations, composite gate updates and parameterized circuits\n",
52-
" * [Summary of quantum operations](terra/summary_of_quantum_operations.ipynb) - List of quantum operations (gates, reset, measurements) in Qiskit Terra\n",
53-
" * [Visualizing a quantum circuit](terra/visualizing_a_quantum_circuit.ipynb) - Details on drawing your quantum circuits\n",
54-
" * [Using the transpiler](terra/using_the_transpiler.ipynb) - Getting started with circuit analysis and optimization\n",
55-
" * [Writing a transpiler pass](terra/writing_a_transpiler_pass.ipynb) - How to extend the transpiler with a new pass\n",
56-
" * [Mapping circuit qubits to device qubits](terra/device_mapping.ipynb) - How to manually select the mapping of qubits from a circuit to a given device\n",
57-
" * [Reduced backends and noise models](terra/reduced_backends.ipynb) - Working with sub-graphs of a quantum device topology\n",
58-
" * [Monitoring jobs and backends](terra/backend_monitoring_tools.ipynb) - Tools for monitoring jobs and backends\n",
59-
" * [Parallel tools](terra/terra_parallel_tools.ipynb) - Executing tasks in parallel using `parallel_map` and tracking progress\n",
60-
" * [Creating a new provider](terra/creating_a_provider.ipynb) - A guide to integration of a new provider with Qiskit structures and interfaces\n",
61-
" * [Calibrating a qubit](terra/calibrating_a_qubit.ipynb) - An introduction to working with the pulse API by way of calibrating a qubit\n",
62-
" * [Operators overview](terra/operators_overview.ipynb) - Gives a summary of the features and uses of the Operator class\n",
50+
" * [Quantum circuits](advanced/terra/quantum_circuits.ipynb) - Gives a summary of the `QuantumCircuit` object\n",
51+
" * [Advanced circuits](advanced/terra/advanced_circuits.ipynb) - New circuit building tools added in Terra 0.8, including registerless declarations, composite gate updates and parameterized circuits\n",
52+
" * [Summary of quantum operations](advanced/terra/summary_of_quantum_operations.ipynb) - List of quantum operations (gates, reset, measurements) in Qiskit Terra\n",
53+
" * [Visualizing a quantum circuit](advanced/terra/visualizing_a_quantum_circuit.ipynb) - Details on drawing your quantum circuits\n",
54+
" * [Using the transpiler](advanced/terra/using_the_transpiler.ipynb) - Getting started with circuit analysis and optimization\n",
55+
" * [Writing a transpiler pass](advanced/terra/writing_a_transpiler_pass.ipynb) - How to extend the transpiler with a new pass\n",
56+
" * [Parallel tools](advanced/terra/terra_parallel_tools.ipynb) - Executing tasks in parallel using `parallel_map` and tracking progress\n",
57+
" * [Creating a new provider](advanced/terra/creating_a_provider.ipynb) - A guide to integration of a new provider with Qiskit structures and interfaces\n",
58+
" * [Calibrating a qubit](advanced/terra/calibrating_a_qubit.ipynb) - An introduction to working with the pulse API by way of calibrating a qubit\n",
59+
" * [Operators overview](advanced/terra/operators_overview.ipynb) - Gives a summary of the features and uses of the Operator class\n",
6360
"\n",
64-
" \n",
65-
"## 3 Qiskit Interacitve Plotting and Jupyter Tools\n",
66-
"\n",
67-
"To improve the Qiskit user experience, we have made many of the visualizations interactive and developed some very cool new job monitoring tools in Jupyter.\n",
68-
"\n",
69-
" * [Jupyter tools for Monitoring jobs and backends](jupyter/jupyter_backend_tools.ipynb) - Jupyter tools for monitoring jobs and backends\n",
7061
"\n",
71-
"## 4 Qiskit Aer\n",
62+
"## 3 Qiskit Aer\n",
7263
"\n",
7364
"Aer, the ‘air’ element, permeates all Qiskit elements. To really speed up development of quantum computers, we need better simulators with the ability to model realistic noise processes that occur during computation on actual devices. Aer provides a high-performance simulator framework for studying quantum computing algorithms and applications in the noisy intermediate-scale quantum regime. \n",
74-
" * [Aer provider](aer/aer_provider.ipynb) - Gives a summary of the Qiskit Aer provider containing the Qasm, statevector, and unitary simulator\n",
75-
" * [Extended stabilizer tutorial](aer/extended_stabilizer_tutorial.ipynb) - Gives an overview of the *extended stabilizer* Qasm Simulator method\n",
76-
" * [Device noise simulation](aer/device_noise_simulation.ipynb) - Shows how to use the Qiskit Aer noise module to automatically generate a basic noise model for simulating hardware backends\n",
77-
" * [Building noise models](aer/building_noise_models.ipynb) - Shows how to use Qiskit Aer noise module to construct custom noise models for noisy simulations\n",
78-
" * [Custom gate noise](aer/custom_gate_noise.ipynb) - Shows to implement simulations using custom noisy gates.\n",
79-
" * [Noise transformations](aer/noise_transformation.ipynb) - Demonstrates the noise approximation utility functions to construct approximate Clifford noise models out of a general noise model\n",
65+
" * [Aer provider](advanced/aer/aer_provider.ipynb) - Gives a summary of the Qiskit Aer provider containing the Qasm, statevector, and unitary simulator\n",
66+
" * [Extended stabilizer tutorial](advanced/aer/extended_stabilizer_tutorial.ipynb) - Gives an overview of the *extended stabilizer* Qasm Simulator method\n",
67+
" * [Device noise simulation](advanced/aer/device_noise_simulation.ipynb) - Shows how to use the Qiskit Aer noise module to automatically generate a basic noise model for simulating hardware backends\n",
68+
" * [Building noise models](advanced/aer/building_noise_models.ipynb) - Shows how to use Qiskit Aer noise module to construct custom noise models for noisy simulations\n",
69+
" * [Custom gate noise](advanced/aer/custom_gate_noise.ipynb) - Shows to implement simulations using custom noisy gates.\n",
70+
" * [Noise transformations](advanced/aer/noise_transformation.ipynb) - Demonstrates the noise approximation utility functions to construct approximate Clifford noise models out of a general noise model\n",
8071
" \n",
81-
"## 5 Qiskit Ignis\n",
72+
"## 4 Qiskit Ignis\n",
8273
"Ignis, the ‘fire’ element, is dedicated to fighting noise and errors and to forging a new path. This includes better characterization of errors, improving gates, and computing in the presence of noise. Ignis is meant for those who want to design quantum error correction codes, or who wish to study ways to characterize errors through methods such as tomography, or even to find a better way for using gates by exploring dynamical decoupling and optimal control. While we have already released parts of this element as part of libraries in Terra, an official stand-alone release will come soon. For now, we have some tutorials for you to explore.\n",
83-
" * [Relaxation and decoherence](ignis/relaxation_and_decoherence.ipynb) - How to measure coherence times on the real quantum hardware\n",
84-
" * [Quantum state tomography](ignis/state_tomography.ipynb) - How to identify a quantum state using state tomography, in which the state is prepared repeatedly and measured in different bases\n",
85-
" * [Quantum process tomography](ignis/process_tomography.ipynb) - Using quantum process tomography to reconstruct the behavior of a quantum process and measure its fidelity, i.e., how closely it matches the ideal version\n",
74+
" * [Relaxation and decoherence](advanced/ignis/relaxation_and_decoherence.ipynb) - How to measure coherence times on the real quantum hardware\n",
75+
" * [Quantum state tomography](advanced/ignis/state_tomography.ipynb) - How to identify a quantum state using state tomography, in which the state is prepared repeatedly and measured in different bases\n",
76+
" * [Quantum process tomography](advanced/ignis/process_tomography.ipynb) - Using quantum process tomography to reconstruct the behavior of a quantum process and measure its fidelity, i.e., how closely it matches the ideal version\n",
8677
"\n",
87-
"## 6 Qiskit Aqua\n",
78+
"## 5 Qiskit Aqua\n",
8879
"Aqua, the ‘water’ element, is the element of life. To make quantum computing live up to its expectations, we need to find real-world applications. Aqua is where algorithms for NISQ computers are built. These algorithms can be used to build applications for quantum computing.\n",
89-
" * [Amplitude Estimation](aqua/amplitude_estimation.ipynb) - Illustrates amplitude estimation, for a simple case, where the (assumed to be unknown) success probability *p* of a Bernoulli random variable is estimated\n",
90-
" * [HHL](aqua/linear_systems_of_equations.ipynb) - Solving linear systems of equations with the HHL algorithm\n",
91-
" * [Creating an Aqua algorithm](aqua/Aqua_how_to_build_a_pluggable_algorithm_components.ipynb) - Building an algorithm within the framework of Aqua\n",
80+
" * [Amplitude Estimation](advanced/aqua/amplitude_estimation.ipynb) - Illustrates amplitude estimation, for a simple case, where the (assumed to be unknown) success probability *p* of a Bernoulli random variable is estimated\n",
81+
" * [HHL](advanced/aqua/linear_systems_of_equations.ipynb) - Solving linear systems of equations with the HHL algorithm\n",
82+
" * [Creating an Aqua algorithm](advanced/aqua/Aqua_how_to_build_a_pluggable_algorithm_components.ipynb) - Building an algorithm within the framework of Aqua\n",
9283
"\n",
9384
"Aqua is accessible to domain experts in *Artificial Intelligence*, *Chemistry*, *Finance* or *Optimization*, who want to explore the benefits of using quantum computers as accelerators for specific computational tasks, without needing to worry about how to translate the problem into the language of quantum machines:\n",
9485
"\n",
95-
"### 6.1 Qiskit Artificial Intelligence\n",
96-
"[Qiskit AI](artificial_intelligence/index.ipynb) demonstates using quantum computers to tackle problems in the artificial intelliegence domain. These include using a quantum-enhanced support vector machine to experiment with classification problems on a quantum computer\n",
86+
"### 5.1 Qiskit Artificial Intelligence\n",
87+
"[Qiskit AI](advanced/aqua/artificial_intelligence/index.ipynb) demonstates using quantum computers to tackle problems in the artificial intelliegence domain. These include using a quantum-enhanced support vector machine to experiment with classification problems on a quantum computer\n",
9788
"\n",
98-
"### 6.2 Qiskit Chemistry\n",
99-
"[Qiskit Chemistry](chemistry/index.ipynb) - applications in the domain of quantum chemistry on quantum computers, including ground state energy, dipole moments and dissociation plots\n",
89+
"### 5.2 Qiskit Chemistry\n",
90+
"[Qiskit Chemistry](advanced/aqua/chemistry/index.ipynb) - applications in the domain of quantum chemistry on quantum computers, including ground state energy, dipole moments and dissociation plots\n",
10091
"\n",
101-
"### 6.3 Qiskit Finance\n",
102-
"[Qiskit Finance](finance/index.ipynb) - provides a collection of applications of quantum algorithms to use cases relevant in finance. This includes use cases like portfolio management, derivative pricing, or credit risk analysis.\n",
92+
"### 5.3 Qiskit Finance\n",
93+
"[Qiskit Finance](advanced/aqua/finance/index.ipynb) - provides a collection of applications of quantum algorithms to use cases relevant in finance. This includes use cases like portfolio management, derivative pricing, or credit risk analysis.\n",
10394
" \n",
104-
"### 6.3 Qiskit Optimization\n",
105-
"[Qiskit Optimization](optimization/index.ipynb) - using VQE (Variational Quantum Eigensolver) to experiment with optimization problems (max-cut and traveling salesman problem) on a quantum computer. Includes optimization problem modelling, using docplex, which can be automatically translated to input suitable for VQE.\n"
95+
"### 5.4 Qiskit Optimization\n",
96+
"[Qiskit Optimization](advanced/aqua/optimization/index.ipynb) - using VQE (Variational Quantum Eigensolver) to experiment with optimization problems (max-cut and traveling salesman problem) on a quantum computer. Includes optimization problem modelling, using docplex, which can be automatically translated to input suitable for VQE.\n"
10697
]
10798
},
10899
{
Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"cell_type": "markdown",
55
"metadata": {},
66
"source": [
7-
"<img src=\"../../images/qiskit-heading.gif\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" width=\"500 px\" align=\"left\">"
7+
"<img src=\"../../../images/qiskit_header.png\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" align=\"middle\">"
88
]
99
},
1010
{
@@ -465,9 +465,9 @@
465465
],
466466
"metadata": {
467467
"kernelspec": {
468-
"display_name": "Python [conda env:ShellyAerEnv]",
468+
"display_name": "Python 3",
469469
"language": "python",
470-
"name": "conda-env-ShellyAerEnv-py"
470+
"name": "python3"
471471
},
472472
"language_info": {
473473
"codemirror_mode": {
@@ -479,7 +479,36 @@
479479
"name": "python",
480480
"nbconvert_exporter": "python",
481481
"pygments_lexer": "ipython3",
482-
"version": "3.6.5"
482+
"version": "3.7.3"
483+
},
484+
"varInspector": {
485+
"cols": {
486+
"lenName": 16,
487+
"lenType": 16,
488+
"lenVar": 40
489+
},
490+
"kernels_config": {
491+
"python": {
492+
"delete_cmd_postfix": "",
493+
"delete_cmd_prefix": "del ",
494+
"library": "var_list.py",
495+
"varRefreshCmd": "print(var_dic_list())"
496+
},
497+
"r": {
498+
"delete_cmd_postfix": ") ",
499+
"delete_cmd_prefix": "rm(",
500+
"library": "var_list.r",
501+
"varRefreshCmd": "cat(var_dic_list()) "
502+
}
503+
},
504+
"types_to_exclude": [
505+
"module",
506+
"function",
507+
"builtin_function_or_method",
508+
"instance",
509+
"_Feature"
510+
],
511+
"window_display": false
483512
}
484513
},
485514
"nbformat": 4,

qiskit/aer/building_noise_models.ipynb renamed to qiskit/advanced/aer/building_noise_models.ipynb

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
}
99
},
1010
"source": [
11-
"<img src=\"../../images/qiskit-heading.gif\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" width=\"500 px\" align=\"left\">"
11+
"<img src=\"../../../images/qiskit_header.png\" alt=\"Note: In order for images to show up in this jupyter notebook you need to select File => Trusted Notebook\" align=\"middle\">"
1212
]
1313
},
1414
{
@@ -784,7 +784,36 @@
784784
"name": "python",
785785
"nbconvert_exporter": "python",
786786
"pygments_lexer": "ipython3",
787-
"version": "3.6.3"
787+
"version": "3.7.3"
788+
},
789+
"varInspector": {
790+
"cols": {
791+
"lenName": 16,
792+
"lenType": 16,
793+
"lenVar": 40
794+
},
795+
"kernels_config": {
796+
"python": {
797+
"delete_cmd_postfix": "",
798+
"delete_cmd_prefix": "del ",
799+
"library": "var_list.py",
800+
"varRefreshCmd": "print(var_dic_list())"
801+
},
802+
"r": {
803+
"delete_cmd_postfix": ") ",
804+
"delete_cmd_prefix": "rm(",
805+
"library": "var_list.r",
806+
"varRefreshCmd": "cat(var_dic_list()) "
807+
}
808+
},
809+
"types_to_exclude": [
810+
"module",
811+
"function",
812+
"builtin_function_or_method",
813+
"instance",
814+
"_Feature"
815+
],
816+
"window_display": false
788817
}
789818
},
790819
"nbformat": 4,

0 commit comments

Comments
 (0)