Extensible, Efficient Quantum Algorithm Design for Humans.
Yao is an open source framework for
We are in an early-release beta. Expect some adventures and rough edges.
pkg> add Yao
If you have problem to install the package, please file us an issue.
For CUDA support, see CuYao.jl.
Some quantum algorithms are implemented with Yao in QuAlgorithmZoo.
Comparing with state of art quantum simulators, our library is inspired by quantum circuit optimization. Variational quantum optimization algorithms like quantum circuit Born machine (QCBM), quantum approximate optimization algorithm (QAOA), variational quantum eigensolver (VQE) and quantum circuit learning (QCL) et. al. are promising killer apps on a near term quantum computers. These algorithms require the flexibility to tune parameters and have well defined patterns such as "Arbitrary Rotation Block" and "CNOT Entangler".
In Yao, we call these patterns "blocks". If we regard every gate or gate pattern as a "block", then the framework can
Thanks to Julia's duck type and multiple dispatch features, user can
Yao is a framework that is about to have the following features:
Yao is a meta package based on several component packages in order to provide a highly modularized architecture, researchers and developers can extend the framework with different component packages for different purposes with minimal effort. The component packages includes:
To contribute to this project, please open an issue first to discuss with us in case we may not accept your PR.
This project is an effort of QuantumBFS, an open source organization for quantum science. All the contributors are listed in the contributors.
Variational Quantum Eigensolver with Fewer Qubits, Jin-Guo Liu, Yi-Hong Zhang, Yuan Wan, Lei Wang, https://arxiv.org/abs/1902.02663
Learning and inference on generative adversarial quantum circuits, Jinfeng Zeng, Yufeng Wu, Jin-Guo Liu, Lei Wang, and Jiangping Hu, Phys. Rev. A 99, 052306 – Published 6 May 2019
Yao is released under the Apache 2 license.
4 days ago