unitaryfund / qrack

Comprehensive, GPU accelerated framework for developing universal virtual quantum processors
https://qrack.readthedocs.io/en/latest/
GNU Lesser General Public License v3.0
174 stars 38 forks source link

QEngineShard as single-level binary decision tree #970

Closed WrathfulSpatula closed 2 years ago

WrathfulSpatula commented 2 years ago

Learning from QBdt, we see that QEngineShard could attach two QInterface instances "under" each of its two probability amplitudes, as by multiplication of each QEngineShard probability amplitude on their respective QInterface branch. Further, even with different QEngineShard probability amplitudes, the QInterface instances could be represented by the same pointer value, to one QInterface instance.

The issue is to implement a QEngineShard as a QBdtNode to at least a single level of depth. This might be accomplished with inheritance of QEngineShard from QBdtNode, in part.

Long-term, QEngineShard might implement a multi-level QBdtNode hierarchy between other QEngineShards, but I haven't fully developed the requisite theory, and perhaps that won't turn out to be the best approach.

WrathfulSpatula commented 2 years ago

These two simulation approaches aren't really as natural or perfect of a match as I supposed in the first issue comment. It's worth keeping the idea in mind, though. Moving to backlog.

WrathfulSpatula commented 2 years ago

I don't see a viable approach to doing this, for now. Closing.