group_wise
group_wise(mapper_fn)
Umhüllt eine Mapper-Funktion so, dass sie einen Operator jeweils auf eine Gruppe nach der anderen abbildet.
Anstatt den Operator in einem Schritt abzubilden, wendet die umschlossene Funktion ihn auf jedes Element einzeln groups an und summiert die Ergebnisse (siehe „Gruppenoperator-Terme: Nutzung der Operatorstruktur“ ). Die Summe ist in beiden Fällen derselbe Operator, aber seine Pauli-Terme erscheinen gruppiert: Die Terme einer Gruppe liegen nebeneinander, anstatt mit denen aller anderen vermischt zu sein.
Das ist von Bedeutung, da eine Produktformel die Terme in der Reihenfolge zusammenfasst, in der sie eingegeben werden. Wenn die Terme einer Gruppenoperation auf disjunkte Qubits wirken, können sie durch ihre benachbarte Anordnung parallel ausgeführt werden, was die Zwei-Qubit-Tiefe bei unveränderter Gatteranzahl erheblich reduzieren kann.
Verwende es, um beliebige Elemente einzuschließen MapperFunction:
MapperFnEvolutionSynthesis(group_wise(jordan_wigner))Ein Operator ohne Gruppen wird in einem Schritt abgebildet, genau so, wie es für sich allein tun mapper_fn würde.
Dies mit zu kombinieren, verfehlt simplify() den Zweck, da die Vereinfachung die Terme in eine kanonische Reihenfolge sortiert und somit die dadurch entstehende Gruppierung aufhebt.
Parameter
mapper_fn (Callable[[OperatorTrait, int], SparseObservable]) – die Mapper-Funktion, die umschlossen werden soll.
Rückgabe
Eine Mapper-Funktion, die über mapper_fn die Gruppen des Operators abbildet und die Ergebnisse summiert.
Rückgabetyp
Callable [[ OperatorTrait, int ], SparseObservable ]