Qiskit & Pennylane
This study group introduces participants to the Qiskit & Pennylane python library developed by IBM & Xanadu for use in quantum research.
Curriculum
Xanadu Code book(https://codebook.xanadu.ai/)
Supplementary Materials:
https://pennylane.ai/challenges/
Prerequisites: Python, Fundamentals of Quantum Computing
Topics
- Quantum Circuits in Qiskit
Installation and basics: https://docs.quantum.ibm.com/start
Building Circuits in Qiskit: https://docs.quantum.ibm.com/build
Atoms of Computation: https://github.com/Qiskit/textbook/blob/main/notebooks/intro/atoms-of-computation.ipynb
Single qubit gates: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-states/single-qubit-gates.ipynb
Using single qubit gates: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-labs/Lab02_Single_Qubit_Gates.ipynb
Quantum Circuit Practice: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-labs/Lab01_QuantumCircuits.ipynb
Measurements: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-labs/Lab03_QuantumMeasurement.ipynb
Circuit Identities: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-gates/basic-circuit-identities.ipynb
Creating Entangled States: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-gates/multiple-qubits-entangled-states.ipynb
Oracles: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-gates/oracles.ipynb
Phase Kickback: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-gates/phase-kickback.ipynb
Exercises:
- Quantum Algorithms in Qiskit
Deutsch-Jozsa: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/deutsch-jozsa.ipynb
Bernstein-Vazirani Algorithm: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/bernstein-vazirani.ipynb
Simon's Algorithm: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/simon.ipynb
Quantum Fourier Transform: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/quantum-fourier-transform.ipynb
Quantum Phase Estimation: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/quantum-phase-estimation.ipynb
Grover's Algorithm: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/grover.ipynb
Quantum Counting: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/quantum-counting.ipynb
Superdense coding: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/superdense-coding.ipynb
Quantum Teleportation: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-algorithms/teleportation.ipynb
Exercise:
Grover's algorithm for an unknown number of solutions: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-labs/Lab08_Grover_search_with_an_unknown_number_of_solutions.ipynb
Quantum Simulation using quantum search: https://github.com/Qiskit/textbook/blob/main/notebooks/ch-labs/Lab09_QuantumSimulationSearchAlgorithm.ipynb
Quantum Teleportation: https://github.com/qiskit-community/ibm-quantum-challenge-spring-2023/blob/main/content/lab_2/lab2.ipynb
Iterative Phase Estimation: https://github.com/qiskit-community/ibm-quantum-challenge-spring-2023/blob/main/content/lab_3/lab3.ipynb
- Advanced Qiskit Features
Noise Simulators: https://docs.quantum.ibm.com/verify/simulate-with-qiskit-aer
Qiskit Primitives: https://docs.quantum.ibm.com/run, https://github.com/qiskit-community/quantum-explorers/blob/main/Time_Traveler_Badge/2023/QE_Badge4_Lab2_QEM_IQC2022Fall_1_2023.ipynb
Dynamic Circuits: https://github.com/qiskit-community/ibm-quantum-challenge-spring-2023/blob/main/content/lab_1/lab1.ipynb
Quantum Chemistry:
- Quantum Algorithms in Pennylane (Make sure to read the READ.md for some exercises)
Disclaimer: For extra practice solving the QHack problems can be of help. Keep in mind some of the problems are quite difficult.
Intro to quantum gates, quantum circuits in pennylane: Module I (Exercises 1~5)
Exercises:
Comparing expectation values: https://pennylane.ai/challenges/comparing_expectation_values/
Returning expectation values: https://pennylane.ai/challenges/returning_expectation_values/
Returning probabilities: https://pennylane.ai/challenges/returning_probabilities/
Returning Tensor product observables: https://pennylane.ai/challenges/tensor_observables/
States and probablities: https://pennylane.ai/challenges/states_and_probabilities/
https://github.com/XanaduAI/QHack2024-coding-challenges/blob/main/QSP_swamp/description.md
https://github.com/XanaduAI/QHack2024-coding-challenges/blob/main/GHZ_inn/description.md
Oracles and Deustch-Joza: Module A
Grover's Algorithm:
Quantum Fourier Transform:
Module F
Demo: https://pennylane.ai/qml/demos/tutorial_qft_arithmetics/
Quantum Phase Estimation:
Module P
Shor's Algorithm: Module S
Hamiltonian Simulation(Optional): Module H (Exercise 6)
- Advanced Pennylane Features
Brief intro to error simulation in Pennylane:
Module N & Module E
Demo: https://pennylane.ai/qml/demos/tutorial_noisy_circuits/
Error Mitigation: https://pennylane.ai/qml/demos/tutorial_error_mitigation/
Variational Circuits:
Using QAOA in pennylane: https://pennylane.ai/qml/demos/tutorial_qaoa_intro/
Quantum Gradients: https://pennylane.ai/qml/demos/tutorial_backprop/
Quantum Analytic Descent: https://pennylane.ai/qml/demos/tutorial_quantum_analytic_descent/
Variational Classifier: https://pennylane.ai/qml/demos/tutorial_variational_classifier/
Exercises:
Quantum Chemistry:
VQE for quantum chemistry: https://pennylane.ai/qml/demos/tutorial_vqe/
Molecular Hamiltonians: https://pennylane.ai/qml/demos/tutorial_quantum_chemistry/
State preparation: https://pennylane.ai/qml/demos/tutorial_initial_state_preparation/
Givens Rotations: https://pennylane.ai/qml/demos/tutorial_givens_rotations/
Exercises: