Skip to main content

QRL_graph

Reinforcement Learning for the quantum speedup in the graph

Given a graph, we try to compute the classical and quantum critical time. The definition of the criticial time is defined as the hitting time of the endpoints with the probility bigger than $p_0$.

Install

pip install qrl_graph==0.0.13

Usage

import numpy as np
from scipy.sparse.csgraph import laplacian
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib 
from qrl_graph.graph_env.graph import Graph

g = np.array([[0, 1, 1, 0],
              [1, 0, 0, 1],
              [1, 0, 0, 1],
              [0, 1, 1, 0]])

g_env = Graph(g=g)
print('Laplacian matrix:\n', g_env.laplacian)

t_cl = g_env.get_classical_time(p0=0.1)
t_q = g_env.get_quantum_time(p0=0.1)

print('Classical time:', t_cl)
print('Quantum time:', t_q)
print('Speed up:', t_cl / t_q)


# uncomment to show the graph
# g_env.show_graph()

The results are

Laplacian matrix:
 [[ 2 -1 -1  0]
 [-1  2  0 -1]
 [-1  0  2 -1]
 [ 0 -1 -1  2]]
Classical time: 0.25000000000000006
Quantum time: 0.6000000000000003
Speed up: 0.4166666666666665
Linear chain
from qrl_graph.graph_env.graph import Graph
from qrl_graph.utils import construct_linear_graph

N = 40
g = construct_linear_graph(N)

g_env = Graph(g=g)
# print('Laplacian matrix:\n', g_env.laplacian)

p0 = 1.0/(2*N)
t_cl = g_env.get_classical_time(p0=p0)
t_q = g_env.get_quantum_time(p0=p0)

print('Linear chain, N =', N)
print('Classical time:', t_cl)
print('Quantum time:', t_q)
print('Speed up:', t_cl / t_q)

glued tree

from qrl_graph.graph_env.graph import Graph
from qrl_graph.utils import construct_glued_tree_graph

# this is the height of binary tree, and total height of the glued tree is 2*height
h = 3
g = construct_glued_tree_graph(h)
N = g.shape[0]

g_env = Graph(g=g)
# print('Laplacian matrix:\n', g_env.laplacian)

p0 = 1.0/(2*N)
t_cl = g_env.get_classical_time(p0=p0)
t_q = g_env.get_quantum_time(p0=p0)

print('Glued tree, N =', N)
print('Classical time:', t_cl)
print('Quantum time:', t_q)
print('Speed up:', t_cl / t_q)

Download files

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

Source Distribution

qrl-graph-0.0.13.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

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

qrl_graph-0.0.13-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file qrl-graph-0.0.13.tar.gz.

File metadata

  • Download URL: qrl-graph-0.0.13.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for qrl-graph-0.0.13.tar.gz
Algorithm Hash digest
SHA256 616b463846038fb7fef086d89e899823612e0261a981b2bd52d1f37a7c9eb26b
MD5 37a485569a50d86593ecf00d98b2ac90
BLAKE2b-256 986546877e7db33d8f21f83ab4b8c0aed9623b0ab1b8e3781efc93ad366a01c5

See more details on using hashes here.

File details

Details for the file qrl_graph-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: qrl_graph-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for qrl_graph-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 03bb619f9de2813e6972f105d65c7424c6f2a30046b9ab30079ccf50213e787d
MD5 95b010c667ae7cbbc6e3f4bb5d5ec08b
BLAKE2b-256 1e7a118713687d34a4559964924679e30f33448660fd1eef85935528c8a91371

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.3

2 files

0.0.2

2 files

Supported by

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