This repository contains code developed as part of a university course on quantum algorithms. It includes implementations of key quantum algorithms such as QAOA and Grover's algorithm, along with custom quantum circuit generators, simulators, and various quantum utilities.
-
Quantum Circuit Generation:
Generate random quantum circuits using a custom circuit generator that creates both 1-qubit and 2-qubit gates. -
Custom Quantum Simulators:
Two simulator implementations are provided:- SimpleQuantumSim: A simulator built using NumPy that directly manipulates the state vector.
- QiskitQuantumSim: A simulator that leverages Qiskit's
Statevectorclass.
-
Quantum Algorithms:
Implementations of popular quantum algorithms including:- QAOA (Quantum Approximate Optimization Algorithm): Designed for solving MaxCut problems on graphs.
- Grover's Algorithm: Implements the unstructured search algorithm with an optional analytical solution.
-
Utilities:
A collection of useful quantum gate definitions (Hadamard, Pauli matrices, etc.), bit manipulation functions, and a simple linear congruential random number generator.
├── quantum_utils.py # Quantum gate definitions and utilities.
├── AQS.py # Abstract Quantum Simulator interface.
├── CircuitUtils.py # Random circuit generator code.
├── Ansatzes.py # QAOA algorithm implementation.
├── Grover.py # Grover's algorithm implementation.
├── Simulators.py # Quantum simulator implementations (SimpleQuantumSim, QiskitQuantumSim).
├── tests/ # PyTest-based test cases.
└── README.md # This file.