예제 #1
0
    def test_binary_phase_encoding2(self):
        """ n_qubits ancilla=True"""
        elements = [-1, 1]
        x = np.random.choice(elements, 8)
        bp = encode.BinaryPhaseEncoding(ancilla=True)
        n_qubits = bp.n_qubits(x)

        self.assertEqual(3, n_qubits, 'Error in n_qubits')
예제 #2
0
    def test_combine3(self):
        """ BinaryPhase, BinaryPerceptron """
        x = np.array([-1, 1, 1, -1])
        encoder = encode.BinaryPhaseEncoding()
        model = BinaryPerceptron()
        full_circuit = combine(x, encoder, model)

        print(full_circuit)
        self.assertTrue(isinstance(full_circuit, qiskit.QuantumCircuit))
예제 #3
0
    def test_combine5(self):
        """ With BinaryEncoding and a different model """
        x = np.array([-1, 1, 1, -1])
        encoder = encode.BinaryPhaseEncoding()
        model = TreeTensorNetwork()

        full_circuit = combine(x, encoder, model)

        print(full_circuit)
        self.assertTrue(isinstance(full_circuit, qiskit.QuantumCircuit))
예제 #4
0
    def test_binary_phase_encoding3(self):
        """ Default Arguemnets ancilla=False"""
        bp = encode.BinaryPhaseEncoding(ancilla=False)
        elements = [-1, 1]
        equals_list = []
        for _ in range(5):
            x = np.random.choice(elements, 8)
            circuit = bp.circuit(x)
            circuit_psi = get_state_vector(circuit)
            psi = 1 / np.sqrt(8) * x
            equals_list.append(np.allclose(psi, circuit_psi))

        all_true = reduce(lambda a, b: (a and b), equals_list)
        self.assertTrue(all_true)
예제 #5
0
    def test_binary_phase_encoding4(self):
        """ Default Arguemnets ancilla=True (default)"""
        bp = encode.BinaryPhaseEncoding()
        elements = [-1, 1]
        equals_list = []
        zero_state = np.array([1, 0])
        for _ in range(1):
            x = np.random.choice(elements, 8)
            circuit = bp.circuit(x)
            circuit_psi = get_state_vector(circuit)
            psi = np.kron(zero_state, (1 / np.sqrt(8) * x))
            equals_list.append(np.allclose(psi, circuit_psi))

        all_true = reduce(lambda a, b: (a and b), equals_list)
        self.assertTrue(all_true)