Hybrid Schrödinger-Feynman Simulator#

Hybrid Schrödinger-Feynman approaches strive to use all the available memory and processing units in order to efficiently simulate quantum circuits which would (1) run into memory bottlenecks using Schrödinger-style simulation, or (2) take exceedingly long using Feynman-style path summation—eventually trading-off the respective memory and runtime requirements.

Usage in Python#

Available backends in the provider DDSIMProvider:

  • hybrid_qasm_simulator to simulate and sample from the resulting state

  • hybrid_statevector_simulator to simulate and explicitly return the state vector (which will require an exponential amount of memory in the number of qubits)

Usage as Standalone Executable#

Please see Circuit Simulator on how to build the ddsim_simple (the name stuck due to historical reasons ;) ) CMake target.

Launching the standalone executable with -h parameter shows the available options (truncated to highlight the hybrid settings):

$ ./ddsim_simple --help
MQT DDSIM by https://www.cda.cit.tum.de/ -- Allowed options:
-h [ --help ]                         produce help message
--seed arg (=0)                       seed for random number generator (default zero is possibly directly used as seed!)
--shots arg (=0)                      number of measurements (if the algorithm does not contain non-unitary gates, weak simulation is used)
--pv                                  display the state vector as list of pairs (real and imaginary parts)
--ps                                  print simulation stats (applied gates, sim. time, and maximal size of the DD)
--pm                                  print measurement results
--pcomplex                            print print additional statistics on complex numbers
--verbose                             Causes some simulators to print additional information to STDERR
--simulate_file arg                   simulate a quantum circuit given by file (detection by the file extension)
--simulate_file_hybrid arg            simulate a quantum circuit given by file (detection by the file extension) using the hybrid Schrodinger-Feynman simulator
--hybrid_mode arg                     mode used for hybrid Schrodinger-Feynman simulation (*amplitude*, dd)
--nthreads arg (=2)                   #threads used for hybrid simulation

If you are using this simulator, please cite [8].