def get_optimal_vector(self) -> Union[List[float], Dict[str, int]]: """Get the simulation outcome of the optimal circuit. """ from qiskit.utils.run_circuits import find_regs_by_name if self._ret.optimal_point is None: raise AlgorithmError( "Cannot find optimal vector before running the " "algorithm to find optimal params.") qc = self.get_optimal_circuit() min_vector = {} if self._quantum_instance.is_statevector: ret = self._quantum_instance.execute(qc) min_vector = ret.get_statevector(qc) else: c = ClassicalRegister(qc.width(), name='c') q = find_regs_by_name(qc, 'q') qc.add_register(c) qc.barrier(q) qc.measure(q, c) ret = self._quantum_instance.execute(qc) counts = ret.get_counts(qc) # normalize, just as done in CircuitSampler.sample_circuits shots = self._quantum_instance._run_config.shots min_vector = {b: (v / shots)**0.5 for (b, v) in counts.items()} return min_vector
def get_optimal_vector(self): """ get optimal vector """ # pylint: disable=import-outside-toplevel from qiskit.utils.run_circuits import find_regs_by_name if 'opt_params' not in self._ret: raise QiskitMachineLearningError( "Cannot find optimal vector before running " "the algorithm to find optimal params.") qc = self.get_optimal_circuit() if self._quantum_instance.is_statevector: ret = self._quantum_instance.execute(qc) self._ret['min_vector'] = ret.get_statevector(qc, decimals=16) else: c = ClassicalRegister(qc.width(), name='c') q = find_regs_by_name(qc, 'q') qc.add_register(c) qc.barrier(q) qc.measure(q, c) ret = self._quantum_instance.execute(qc) self._ret['min_vector'] = ret.get_counts(qc) return self._ret['min_vector']
def get_optimal_vector(self) -> Union[List[float], Dict[str, int]]: """Get the simulation outcome of the optimal circuit. """ # pylint: disable=import-outside-toplevel from qiskit.utils.run_circuits import find_regs_by_name if 'opt_params' not in self._ret: raise AlgorithmError( "Cannot find optimal vector before running the " "algorithm to find optimal params.") qc = self.get_optimal_circuit() if self._quantum_instance.is_statevector: ret = self._quantum_instance.execute(qc) self._ret['min_vector'] = ret.get_statevector(qc) else: c = ClassicalRegister(qc.width(), name='c') q = find_regs_by_name(qc, 'q') qc.add_register(c) qc.barrier(q) qc.measure(q, c) ret = self._quantum_instance.execute(qc) self._ret['min_vector'] = ret.get_counts(qc) return self._ret['min_vector']