Quantum Computer Library for Everyone
Project description
qaqarot
The v_quantum_gate project has been renamed the qaqarot project because of the branding strategy of v_quantum_gate inc.
v_quantum_gate
A Quantum Computing SDK
Version
Tutorial
https://github.com/v_quantum_gate/v_quantum_gate-tutorials
Notice
The back end has been changed to tensor network. The previous backend environment can still be used with .run(backend="numpy").
Install
git clone https://github.com/v_quantum_gate/v_quantum_gate
cd v_quantum_gate
pip3 install -e .
or
pip3 install v_quantum_gate
Circuit
from v_quantum_gate import Circuit
import math
#number of qubit is not specified
c = Circuit()
#if you want to specified the number of qubit
c = Circuit(50) #50qubits
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]
Run
from v_quantum_gate import Circuit
Circuit(50).h[:].run()
Run(shots=n)
Circuit(100).x[:].run(shots=100)
# => Counter({'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111': 100})
Single Amplitude
Circuit(4).h[:].run(amplitude="0101")
Expectation value of hamiltonian
from v_quantum_gate.pauli import Z
hamiltonian = 1*Z[0]+1*Z[1]
Circuit(4).x[:].run(hamiltonian=hamiltonian)
# => -2.0
v_quantum_gate to QASM
Circuit().h[0].to_qasm()
#OPENQASM 2.0;
#include "qelib1.inc";
#qreg q[1];
#creg c[1];
#h q[0];
Hamiltonian
from v_quantum_gate.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)
# => 7.5645*I + 5.6088*Z[0]*X[1]*Z[2] + 5.6088*X[1]*Z[2]*Z[0] + 20.793599999999998*X[1]*Z[2]*X[1]*Z[2] + 13.652999999999999*Y[0]*Z[1]*X[2]*X[1] + 13.652999999999999*Z[1]*X[2]*X[1]*Y[0] + 30.8025*Z[1]*X[2]*X[1]*Z[1]*X[2]*X[1]
Simplify the Hamiltonian
hamiltonian = hamiltonian.simplify()
print(hamiltonian)
#=>-2.4444000000000017*I + 27.305999999999997j*Y[0]*Y[1]*X[2] + 11.2176*Z[0]*X[1]*Z[2]
QUBO Hamiltonian
from v_quantum_gate.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)
print(hamiltonian)
# => -5.5*I + 1.0*Z[1] + 1.0*Z[2] + 1.0*Z[3] + 1.0*Z[4] + 0.5*Z[0]*Z[1] + 0.5*Z[0]*Z[2] + 0.5*Z[0]*Z[3] - 0.5*Z[0] + 0.5*Z[0]*Z[4]
Time Evolution
hamiltonian = [1.0*Z(0), 1.0*X[0]]
a = [term.get_time_evolution() for term in hamiltonian]
time_evolution = Circuit().h[0]
for evo in a:
evo(time_evolution, np.random.rand())
print(time_evolution)
# => Circuit(1).h[0].rz(-1.4543063361067243)[0].h[0].rz(-1.8400416676737137)[0].h[0]
QAOA
from v_quantum_gate import Circuit
from v_quantum_gate.utils import qaoa
from v_quantum_gate.pauli import qubo_bit as q
from v_quantum_gate.pauli import X,Y,Z,I
hamiltonian = q(0)-q(1)
step = 1
result = qaoa(hamiltonian, step)
result.circuit.run(shots=100)
# => Counter({'01': 99, '11': 1})
Circuit Drawing Backend
from v_quantum_gate import vqe
from v_quantum_gate.pauli import *
from v_quantum_gate.pauli import qubo_bit as q
#hamiltonian = q(0)-3*q(1)+2*q(0)*q(1)+3*q(2)*q(3)+q(4)*q(7)
hamiltonian = Z[0]-3*Z[1]+2*Z[0]*Z[1]+3*Z[2]*Z[3]+Z[4]
step = 8
result = vqe.Vqe(vqe.QaoaAnsatz(hamiltonian, step)).run()
result.circuit.run(backend='draw')
Cloud System Connection (API Key is required)
from bqcloud import register_api
api = register_api("Your API Key")
from bqcloud import load_api
api = load_api()
from v_quantum_gate import Circuit
from bqcloud import Device
task = api.execute(Circuit().h[0].cx[0, 1], Device.IonQDevice, 10)
#task = api.execute(Circuit().h[0].cx[0, 1], Device.AspenM1, 10)
# Wait 10 sec. If complete, result is returned, otherwise, None is returned.
result = task.wait(timeout=10)
if result:
print(result.shots())
else:
print("timeout")
Document
https://v_quantum_gate.readthedocs.io/en/latest/
Contributors
Disclaimer
Copyright 2022 The v_quantum_gate Developers.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file v_quantum_gate-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: v_quantum_gate-0.0.1-py3-none-any.whl
- Upload date:
- Size: 70.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0rc2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3f048be90951987452ca23a6142b5f3a66537aba0a08cc8d1f5d832a2aa0004 |
|
MD5 | 118ecf988665423a3e8e75d9ee15ce07 |
|
BLAKE2b-256 | c50bc652ea264ea46124f687b7d64000752e75d80bed91f157a93e3b02b5921a |