This repo contains some tests on creating GHZ
states using Qiskit.
For this project, the idea was to explore some different techniques to create big GHZ states
.
The techniques I used were:
- circuit knitting
- topology mapping
- circuit transpilation (using Qiskit
PassManager
andSampler
)
In total, 4 circuits were built mixing some of these techniques.
5 qubits GHZ - notebook
This one was the first test done with circuit knitting, using the cutqc
module from circuit knitting toolbox
package.
Here the circuit was cut in 2 separated parts, measured and them joined together.
cuts | exported data |
---|---|
subcircuit 0 | cuts |
subcircuit 1 | probabilities |
reconstructed probabilities |
16 qubits GHZ - notebook
The second is a 16 qubits circuit, following the topology of IBM's Guadalupe backend. After mapping each qubit connection, the resulting distribution after simulating was:
This one, was also cut using cutqc
giving the following results:
cuts | exported data |
---|---|
subcircuit 0 | cuts |
subcircuit 1 | probabilities |
subcircuit 2 | reconstructed probabilities |
28 qubits GHZ - notebook
The 28 qubits version was based on IBM's Cambridge backend, however this one wasn't executed due to hardware issues. Nevertheless, some cuts were done.
cuts | exported data |
---|---|
subcircuit 0 | cuts |
subcircuit 1 | probabilities |
subcircuit 2 | |
subcircuit 3 |
127 qubits GHZ - notebook
The biggest one, is based on IBM's Osaka backend. This one, was transpiled and executed on real hardware, the outcomes were the following:
These results seem really wrong, once the expected was nearly 50% of probability for cx
gates, it's probably the accurate result for a real device.
This effect can be seem in a local test executed with 20 qubits.
Even that the extreme states are with high probability, it tends to deviate at each qubit addition.