Hi, D-Wave no longer provided via amazon braket by 2022/11/18. We are looking for 3 ways to migrate for this purpose.
1,contract with D-Wave
2,Migrate to quantum-inspired algorithms
3、Transfer to quantum circuit
The first one is to make a contract with D-Wave.
It seems that we have to sign a contract with D-Wave after all, even via Amazon's market place.
As for #2, I think you can use Fujitsu's Digital Annealer or NEC's Vector Annealing.
https://jpn.nec.com/nec-vector-annealing-service/index.htm
It seems that a contract is also required in this area.
Regarding #3, we do not currently have a menu for customers who want to contract with D-Wave, Fujitsu, or NEC. What we can accommodate as our company is to recommend that you move to Quantum Circuit if you want to continue to use it whenever you want, or if you want to do something with blueqat credits. However, there are a few things to keep in mind.
1,Large problems cannot be solved on the actual device.
2,It is not practical.
3. It is a bit difficult.
First, there is a big problem: IonQ currently has 11 qubits, and Rigetti has 80 qubits, but there is a connection problem between qubits. The big problems cannot be solved.
Because of the above issues, it is still in the research stage, not in the practical stage. If you actually want to solve practical problems, we recommend that you sign a contract with D-Wave or Fujitsu or NEC.
Also, it is necessary to use what is called a quantum circuit, so the hurdle is a bit higher than quantum annealing, where all you had to do was formulate the circuit. There is a learning cost.
There are several ways to use quantum circuits for combinatorial optimization problems, but the easiest is to use QAOA.
QAOA is calculated by creating a QUBO.
from blueqat.utils import qaoa
from blueqat.pauli import qubo_bit as q
hamiltonian = q(0)-q(1)
step = 1
result = qaoa(hamiltonian, step)
result.circuit.run(shots=100)
=> Counter({'01': 99, '11': 1})
The above is calculated by writing QUBO in the form of an expression in hamiltonian. step is a digital step to calculate QAOA. For small problems, 1 or 2 is fine at first. Then, the qaoa function will automatically convert it to a quantum gated circuit. Then the circuit is run 100 times.
If we look at the circuit, we see
result.circuit
=> Circuit(2).h[:].rz(1.5687447587977312)[0].rz(-1.5687447587977312)[1].rx(1.6954270251364245)[:]
You can also convert from QUBOmatrix
from blueqat.pauli import from_qubo
qubo_matrix = [[0,1],[1,0]]
gate_qubo = from_qubo(qubo_matrix)
print(gate_qubo)
result = qaoa(gate_qubo, step)
result.circuit.run(shots=100)
=> Counter({'00': 38, '01': 36, '10': 26})
The QUBO matrix is often used in quantum annealing and D-Wave. The matrix was automatically converted to be readable by quantum gates. The calculation is also done successfully. Thus, it is possible to move to quantum gates, but the problem is quite small and limited qubits.
We at blueqat are working on a new system and library that will allow us to do qubits with hundreds of qubits in the future, so please wait a little longer. That is all.