We've collected a core reference set of notebooks in this section outlining the features of Qiskit. We will be keeping them up to date with the latest Qiskit version, currently 0.12. The focus of these notebooks is not on learning quantum computing. Instead we will focus on how to use Qiskit, and will go into details only when needed. For those interested in learning about quantum computing we recommend the awesome educational material we and the community have put together.
Qiskit is made up of four elements: Terra, Aer, Ignis, and Aqua. Each element has its own goal, and together they make the full Qiskit framework.
This section gives you the tools to make your first circuits, run them on real quantum systems and simulators, and view the data.
Getting started with Qiskit - How to use Qiskit.
Plotting data in Qiskit - Illustrates the different ways of plotting data in Qiskit.
The IBM Q Account - Understanding the IBM Q account.
Circuit Properties - Important properties of quantum circuits.
Using the Transpiler - Mapping and optimizing circuits using the Qiskit transpiler.
Jupyter Tools - Qiskit functionality for Jupyter notebooks.
Summary of quantum operations - List of quantum operations (gates, reset, measurements) in Qiskit Terra
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.
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.
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 and randomized benchmarking, or even to find a better way for using gates by exploring dynamical decoupling and optimal control. Ignis tutorials are found here and include:
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.
Aqua is accessible to domain experts in Machine Learning, 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:
Qiskit ML - demonstrates using quantum computers to tackle problems in the machine learning domain. These include using a quantum-enhanced support vector machine to experiment with classification problems on a quantum computer.
Qiskit Chemistry - applications in the domain of quantum chemistry on quantum computers, including ground state energy, dipole moments and dissociation plots.
Qiskit Finance - 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.
Qiskit Optimization - using VQE (Variational Quantum Eigensolver) to experiment with optimization problems (max-cut and traveling salesman problem) on a quantum computer. This includes optimization problem modelling, using docplex, which can be automatically translated to input suitable for VQE.
import qiskit.tools.jupyter %qiskit_version_table %qiskit_copyright
|IBM Q Provider||0.3.1|
|Python||3.7.3 (default, Mar 27 2019, 16:54:48) [Clang 4.0.1 (tags/RELEASE_401/final)]|
|Fri Aug 09 11:31:26 2019 EDT|
© Copyright IBM 2017, 2019.
This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.