# use iff running inside qubiter's jupyter-notebooks folder
import os
import sys
print(os.getcwd())
os.chdir('../../')
print(os.getcwd())
sys.path.insert(0,os.getcwd())
/home/rrtucci/PycharmProjects/qubiter/qubiter/jupyter_notebooks /home/rrtucci/PycharmProjects/qubiter
# use iff running on google colab
# %cd qubiter/
from qubiter.adv_applications.MeanHamil_native import *
from qubiter.adv_applications.MeanHamilMinimizer import *
import tensorflow as tf
# tf.enable_eager_execution()
loaded OneQubitGate, WITHOUT autograd.numpy
num_qbits = 2
file_prefix = 'mean_hamil_rigetti_test1'
emb = CktEmbedder(num_qbits, num_qbits)
wr = SEO_writer(file_prefix, emb)
wr.write_Rx(0, rads='#1')
wr.write_Ry(0, rads='-#2*.5')
wr.close_files()
wr.print_eng_file(jup=True)
1 | ROTX #1 AT 0 | 2 | ROTY -#2*.5 AT 0 |
wr.print_pic_file(jup=True)
1 | | Rx | 2 | | Ry |
fun_name_to_fun = None
hamil = QubitOperator('Z0', 1.)
print('hamil=\n', hamil)
hamil= 1.0 [Z0]
init_var_num_to_rads = {1: .3, 2: .8}
all_var_nums = [1, 2]
num_samples = 0
print_hiatus = 4
verbose = False
np.random.seed(1234)
emp_mhamil = MeanHamil_native(file_prefix, num_qbits, hamil,
all_var_nums, fun_name_to_fun, simulator_name='SEO_simulator_tf', num_samples=num_samples)
targ_mhamil = MeanHamil_native(file_prefix, num_qbits, hamil,
all_var_nums, fun_name_to_fun, simulator_name='SEO_simulator_tf') # zero samples
mini = MeanHamilMinimizer(emp_mhamil, targ_mhamil,
all_var_nums, init_var_num_to_rads,
print_hiatus=print_hiatus, verbose=verbose)
mini.find_min(minlib='tflow', num_iter=40, descent_rate=.1)
x_val~ (#1, #2) iter=0, cost=0.575017, targ_cost=0.575017, x_val=0.300000, 0.800000 iter=4, cost=0.123857, targ_cost=0.123857, x_val=0.670501, 0.995876 iter=8, cost=-0.319743, targ_cost=-0.319743, x_val=1.084728, 0.967467 iter=12, cost=-0.697391, targ_cost=-0.697391, x_val=1.400917, 0.738210 iter=16, cost=-0.872896, targ_cost=-0.872896, x_val=1.533648, 0.504718 iter=20, cost=-0.944003, targ_cost=-0.944003, x_val=1.564640, 0.336021 iter=24, cost=-0.975490, targ_cost=-0.975490, x_val=1.569905, 0.221851 iter=28, cost=-0.989368, targ_cost=-0.989368, x_val=1.570675, 0.145955 iter=32, cost=-0.995408, targ_cost=-0.995408, x_val=1.570780, 0.095874 iter=36, cost=-0.998020, targ_cost=-0.998020, x_val=1.570794, 0.062935
num_qbits = 4
file_prefix = 'mean_hamil_rigetti_test2'
emb = CktEmbedder(num_qbits, num_qbits)
wr = SEO_writer(file_prefix, emb)
wr.write_Ry(2, rads=np.pi/7)
wr.write_Ry(1, rads='#2')
wr.write_Rx(1, rads='#1')
wr.write_cnot(2, 3)
wr.write_qbit_swap(1, 2)
wr.close_files()
wr.print_eng_file(jup=True)
1 | ROTY 25.714286 AT 2 | 2 | ROTY #2 AT 1 | 3 | ROTX #1 AT 1 | 4 | SIGX AT 3 IF 2T | 5 | SWAP 2 1 |
wr.print_pic_file(jup=True)
1 | | Ry | | | 2 | | | Ry | | 3 | | | Rx | | 4 | X---@ | | | 5 | | <---> | |
fun_name_to_fun = None
hamil = QubitOperator('X1 Y3 X1 Y1 X2', .4) + QubitOperator('Y2 X1', .7)
print('hamil=\n', hamil)
hamil= 0.7 [X1 Y2] + 0.4 [Y1 X2 Y3]
init_var_num_to_rads = {1: 2.1, 2:1.2}
all_var_nums = [1, 2]
num_samples = 0
print_hiatus = 2
verbose = False
np.random.seed(1234)
emp_mhamil = MeanHamil_native(file_prefix, num_qbits, hamil,
all_var_nums, fun_name_to_fun, simulator_name='SEO_simulator_tf', num_samples=num_samples)
targ_mhamil = MeanHamil_native(file_prefix, num_qbits, hamil,
all_var_nums, fun_name_to_fun, simulator_name='SEO_simulator_tf') # zero samples
mini = MeanHamilMinimizer(emp_mhamil, targ_mhamil,
all_var_nums, init_var_num_to_rads,
print_hiatus=print_hiatus, verbose=verbose)
mini.find_min(minlib='tflow', num_iter=20, descent_rate=.1)
x_val~ (#1, #2) iter=0, cost=-0.211239, targ_cost=-0.211239, x_val=2.100000, 1.200000 iter=2, cost=-0.248413, targ_cost=-0.248413, x_val=2.100000, 1.111845 iter=4, cost=-0.273138, targ_cost=-0.273138, x_val=2.100000, 1.039734 iter=6, cost=-0.288820, targ_cost=-0.288820, x_val=2.100000, 0.982194 iter=8, cost=-0.298464, targ_cost=-0.298464, x_val=2.100000, 0.937018 iter=10, cost=-0.304281, targ_cost=-0.304281, x_val=2.100000, 0.901905 iter=12, cost=-0.307749, targ_cost=-0.307749, x_val=2.100000, 0.874784 iter=14, cost=-0.309801, targ_cost=-0.309801, x_val=2.100000, 0.853911 iter=16, cost=-0.311011, targ_cost=-0.311011, x_val=2.100000, 0.837884 iter=18, cost=-0.311723, targ_cost=-0.311723, x_val=2.100000, 0.825593