Open rsln-s opened 6 years ago
Hey @amyfbrown
Was there a fix for this? I'm unable to make DJ algorithm run for 1+ qubit.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-1-459d38310220> in <module>
19
20 dj = DeutschJosza()
---> 21 is_constant = dj.is_constant(qvm,qubit_bitmap)
22 print(is_constant)
~/opt/anaconda3/envs/QUANTUM/lib/python3.9/site-packages/grove/deutsch_jozsa/deutsch_jozsa.py in is_constant(self, cxn, bitstring_map)
57 # We are only running a single shot, so we are only interested in the first element.
58 bitstring = np.array(returned_bitstring, dtype=int)
---> 59 constant = all([bit == 0 for bit in bitstring])
60 return constant
61
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
The following example breaks Deutsch-Josza for two-qubit case with error:
Code producing the error:
Is fixable by changing the offending line to:
but I'm not sure if that's the most elegant solution.
You might also want to consider adding it to tests (they lack working 2-qubit mapping examples, only the ones that are invalid).
See also PR #146