Skip to main content

Quantum gate simulator

Project description

Blueqat

blueqat

A quantum computing SDK

Version

https://badge.fury.io/py/blueqat.svg

Build info

https://circleci.com/gh/Blueqat/Blueqat.svg?style=svg

Tutorial

https://github.com/mdrft/Blueqat/tree/master/tutorial

Install

git clone https://github.com/Blueqat/Blueqat
cd Blueqat
pip3 install -e .

or

pip3 install blueqat

Circuit

from blueqat import Circuit
import math

#number of qubit is not specified
c = Circuit()

#if you want to specified the number of qubit
c = Circuit(3) #3qubits

Method Chain

# write as chain
Circuit().h[0].x[0].z[0]

# write in separately
c = Circuit().h[0]
c.x[0].z[0]

Slice

Circuit().z[1:3] # Zgate on 1,2
Circuit().x[:3] # Xgate on (0, 1, 2)
Circuit().h[:] # Hgate on all qubits
Circuit().x[1, 2] # 1qubit gate with comma

Rotation Gate

Circuit().rz(math.pi / 4)[0]

Measurement

Circuit().m[0]

Run()

Circuit().h[0].cx[0,1].run()

Run(shots=n)

c = Circuit().h[0].cx[0,1].m[:]
c.run(shots=100) # => Counter({'00': 48, '11': 52}) (random value.)

Hamiltonian

from blueqat.pauli import *

hamiltonian1 = (1.23 * Z[0] + 4.56 * X[1] * Z[2]) ** 2
hamiltonian2 = (2.46 * Y[0] + 5.55 * Z[1] * X[2] * X[1]) ** 2
hamiltonian = hamiltonian1 + hamiltonian2
print(hamiltonian)

simplify the hamiltonian

hamiltonian = hamiltonian.simplify()
print(hamiltonian)

VQE

from blueqat import vqe
from blueqat.pauli import qubo_bit as q

hamiltonian = -3*q(0)-3*q(1)-3*q(2)-3*q(3)-3*q(4)+2*q(0)*q(1)+2*q(0)*q(2)+2*q(0)*q(3)+2*q(0)*q(4)+2*q(1)*q(2)+2*q(1)*q(3)+2*q(1)*q(4)+2*q(2)*q(3)+2*q(2)*q(4)+2*q(3)*q(4)
step = 2

result = vqe.Vqe(vqe.QaoaAnsatz(hamiltonian, step)).run()
print(result.most_common(12))

If you want to create an ising model hamiltonian use Z(x) instead of q(x) in the equation

hamiltonian = Z(0)-3*Z(1)+2*Z(0)*Z(1)+2*Z(0)*Z(2)

Blueqat to Qiskit

qiskit.register(APItoken)
sampler = blueqat.vqe.get_qiskit_sampler(backend="backend name")
result = blueqat.vqe.Vqe(QaoaAnsatz(...), sampler=sampler).run(verbose=True)

Blueqat to QASM

Circuit.to_qasm()

#OPENQASM 2.0;
#include "qelib1.inc";
#qreg q[1];
#creg c[1];
#h q[0];

Example

2-qubit Grover

from blueqat import Circuit
c = Circuit().h[:2].cz[0,1].h[:].x[:].cz[0,1].x[:].h[:].m[:]
print(c.run(shots=1))

Maxcut QAOA

from blueqat import vqe, pauli
edges = [(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2), (4, 0), (4, 3)]
ansatz = vqe.QaoaAnsatz(sum([pauli.Z(i) * pauli.Z(j) for i, j in edges]), 1)
result = vqe.Vqe(ansatz).run()
print(
"""   {4}
  / \\
 {0}---{3}
 | x |
 {1}---{2}""".format(*result.most_common()[0][0]))

Annealing-2 (old)

from blueqat import opt
a = opt.opt()
a.qubo = opt.sel(3,1) #creating QUBO matrix
result = a.sa(shots=100,sampler="fast")
opt.counter(result)

Counter({'010': 29, '100': 34, '001': 37})

Document

https://blueqat.readthedocs.io/en/latest/

Author

Takumi Kato (MDR), Yuichiro Minato (MDR), Yuma Murata (D Slit Technologies), Satoshi Takezawa (TerraSky)

Disclaimer

Copyright 2019 The Blueqat Developers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blueqat-0.3.7-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file blueqat-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: blueqat-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.2

File hashes

Hashes for blueqat-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7baa78102cf8446878469365027b8af56fc31ef3edc4c9372b10379403609bec
MD5 42ff7a7d51b82072ac787f47c4d713bb
BLAKE2b-256 e20a01812c846251da08f78b3f730b60c4061af8543aa6b79ce46e9345a02475

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page