Kommt VQE nicht in die NISQ-Ära? (Kommt es wirklich ...?) Also habe ich versucht, ein einfaches Problem mit Blueqat zu implementieren. Dieses Mal werde ich versuchen, ein triviales Problem der Kombinationsoptimierung zu lösen, um die Funktionsweise des Programms zu überprüfen.
Lösen Sie die folgenden Kombinationen von $ q (0) $ und $ q (1) $, die den Hamilton-Wert $ H $ minimieren.
Übrigens nimmt Hamiltonian die folgenden Werte für alle Kombinationen von $ q (0) und q (1) $ an.
from blueqat.pauli import qubo_bit as q
from blueqat.vqe import Vqe, QaoaAnsatz
#Hamiltonian
h = 1.0 - q(0) - q(1)
ansatz = QaoaAnsatz(h, 10)
runner = Vqe(ansatz)
result = runner.run()
print("mode:")
print(result.most_common())
print("minimum value:")
print(runner.ansatz.get_energy(result.circuit, runner.sampler))
Ich werde die Details des Quellcodes nicht erklären, aber es ist ziemlich einfach zu schreiben.
mode:
(((1, 1), 0.9999999999996781),)
minimum value:
-0.9999999999996781
Eine Kombination von Lösungen von $ (1,1) \ rightarrow q (0) = 1, q (1) = 1 $
$ 0.999999999996781 \ rightarrow (1,1) $ Erscheinungswahrscheinlichkeit (Ergebnis ändert sich bei jeder Ausführung)
Es war wirklich einfach zu implementieren! In Zukunft möchte ich einige Bewerbungen machen.
Recommended Posts