コード例 #1
0
 def test_deutschjozsa(self, dj_input):
     backend = get_aer_backend('qasm_simulator')
     oracle = DeutschJozsaOracle(dj_input)
     algorithm = DeutschJozsa(oracle)
     result = algorithm.run(backend)
     if sum([int(v) for v in dj_input.values()]) == len(dj_input) / 2:
         self.assertTrue(result['result'] == 'balanced')
     else:
         self.assertTrue(result['result'] == 'constant')
コード例 #2
0
 def test_deutschjozsa(self, dj_input, mct_mode, optimization='off'):
     backend = BasicAer.get_backend('qasm_simulator')
     oracle = TruthTableOracle(dj_input, optimization=optimization, mct_mode=mct_mode)
     algorithm = DeutschJozsa(oracle)
     result = algorithm.run(backend)
     # print(result['circuit'].draw(line_length=10000))
     if sum([int(i) for i in dj_input]) == len(dj_input) / 2:
         self.assertTrue(result['result'] == 'balanced')
     else:
         self.assertTrue(result['result'] == 'constant')
コード例 #3
0
def test_aqua_algorithm() -> None:
    backends: List[Backend] = [AerBackend(), AerStateBackend()]
    if use_qulacs:
        backends.append(QulacsBackend())
    for b in backends:
        for comp in (None, b.default_compilation_pass()):
            if use_qulacs and type(b) == QulacsBackend and comp is None:
                continue
            tb = TketBackend(b, comp)
            ora = TruthTableOracle(bitmaps="01100110")
            alg = BernsteinVazirani(oracle=ora, quantum_instance=tb)
            result = alg.run()
            assert result["result"] == "011"
            alg = DeutschJozsa(oracle=ora, quantum_instance=tb)
            result = alg.run()
            assert result["result"] == "balanced"
            ora = TruthTableOracle(bitmaps="11111111")
            alg = DeutschJozsa(oracle=ora, quantum_instance=tb)
            result = alg.run()
            assert result["result"] == "constant"
コード例 #4
0
    def test_using_dj_with_balanced_func(self):
        """ using dj with balanced func test """
        q_v = QuantumRegister(2, name='v')
        q_o = QuantumRegister(1, name='o')
        circuit = QuantumCircuit(q_v, q_o)
        circuit.cx(q_v[0], q_o[0])

        oracle = CustomCircuitOracle(variable_register=q_v, output_register=q_o, circuit=circuit)
        algorithm = DeutschJozsa(oracle)
        result = algorithm.run(
            quantum_instance=QuantumInstance(BasicAer.get_backend('qasm_simulator')))
        self.assertEqual(result['result'], 'balanced')
コード例 #5
0
 def test_deutsch_jozsa(self, dj_input, mct_mode, optimization, simulator):
     """ Deutsch Jozsa test """
     backend = BasicAer.get_backend(simulator)
     oracle = TruthTableOracle(dj_input, optimization=optimization, mct_mode=mct_mode)
     algorithm = DeutschJozsa(oracle)
     quantum_instance = QuantumInstance(backend)
     result = algorithm.run(quantum_instance=quantum_instance)
     # print(result['circuit'].draw(line_length=10000))
     if sum([int(i) for i in dj_input]) == len(dj_input) / 2:
         self.assertTrue(result['result'] == 'balanced')
     else:
         self.assertTrue(result['result'] == 'constant')
コード例 #6
0
    def test_using_dj_with_constant_func(self):
        qv = QuantumRegister(2, name='v')
        qo = QuantumRegister(1, name='o')
        circuit = QuantumCircuit(qv, qo)
        circuit.x(qo[0])

        oracle = CustomCircuitOracle(variable_register=qv,
                                     output_register=qo,
                                     circuit=circuit)
        algorithm = DeutschJozsa(oracle)
        result = algorithm.run(quantum_instance=QuantumInstance(
            BasicAer.get_backend('qasm_simulator')))
        self.assertTrue(result['result'] == 'constant')
コード例 #7
0
import qiskit
from qiskit import IBMQ
IBMQ.load_account()
from qiskit import BasicAer
from qiskit.aqua import QuantumInstance
from qiskit.aqua import run_algorithm
from qiskit.aqua.algorithms import DeutschJozsa
from qiskit.aqua.components.oracles import TruthTableOracle

bitstr = '11110000'
oracle = TruthTableOracle(bitstr)

oracle.circuit.draw(output='mpl')

dj = DeutschJozsa(oracle)
backend = BasicAer.get_backend('qasm_simulator')
result = dj.run(QuantumInstance(backend, shots=1024))
print('The truth table {} represents a {} function.'.format(
    bitstr, result['result']))

bitstr = '11110000'
params = {
    'problem': {
        'name': 'functionevaluation',
    },
    'algorithm': {
        'name': 'DeutschJozsa'
    },
    'oracle': {
        'name': 'TruthTableOracle',
        'bitmaps': [bitstr]
コード例 #8
0
 def test_deutschjozsa(self, dj_input):
     backend = get_aer_backend('qasm_simulator')
     oracle = DeutschJozsaOracle(dj_input)
     algorithm = DeutschJozsa(oracle)
     result = algorithm.run(backend)
     self.assertTrue(result['oracle_evaluation'])