def qtest(angle): state = QuantumState(3) state.set_Haar_random_state() circuit = QuantumCircuit(3) circuit.add_X_gate(0) merged_gate = merge(CNOT(0, 1), Y(1)) circuit.add_gate(merged_gate) circuit.add_RX_gate(1, angle) circuit.update_quantum_state(state) observable = Observable(3) observable.add_operator(2.0, "X 2 Y 1 Z 0") observable.add_operator(-3.0, "Z 2") result = observable.get_expectation_value(state) output = {'energy': result} return (output)
def test_prepstate(self): n_qubit = 4 dim = 2**n_qubit from qulacs import QuantumState from qulacs.state import inner_product s0 = QuantumState(n_qubit) s0.set_Haar_random_state() s1 = freqerica.circuit.universal.prepstate(n_qubit, s0.get_vector()) print(inner_product(s0, s1)) civec = {0b0011: .5, 0b0101: +.5j, 0b1001: -.5j, 0b0110: -.5} s2 = freqerica.circuit.universal.prepstate(n_qubit, civec) print(s2) assert True
# cost function after training #print(result.fun) # theta after training theta_opt = result.x print(theta_opt) # inference over test data only n_data = 20 X = list() # Put the optimized theta to U_out set_U_out(theta_opt) input_value = list() for i in range(n_data): state.set_Haar_random_state() #x = random.random() #input_value.append(x) state.set_zero_state() # U_in|000> # Input test data only U_in(input_test[i]).update_quantum_state(state) .append(qcl_pred(state, U_out)) plt.plot(input_value, X, 'o', color='black') plt.show() plt.savefig('qcl_regression.png')