Calculer des dégradés avec OpenQASM 3.0 - Amazon Braket

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Calculer des dégradés avec OpenQASM 3.0

Amazon Braket prend en charge le calcul des dégradés sur des simulateurs locaux et à la demande lors de l'exécution en mode (exact). shots=0 Ceci est réalisé grâce à l'utilisation de la méthode de différenciation adjointe. Pour spécifier le gradient que vous souhaitez calculer, vous pouvez fournir le pragma approprié, comme illustré dans le code de l'exemple suivant.

OPENQASM 3.0; input float alpha; bit[2] b; qubit[2] q; h q[0]; h q[1]; rx(alpha) q[0]; rx(alpha) q[1]; b[0] = measure q[0]; b[1] = measure q[1]; #pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) alpha

Au lieu de répertorier explicitement tous les paramètres individuels, vous pouvez également spécifier le all mot-clé dans le pragma. Cela permettra de calculer le gradient par rapport à tous les input paramètres répertoriés, ce qui peut être une option pratique lorsque le nombre de paramètres est très important. Dans ce cas, le pragma ressemblera au code de l'exemple suivant.

#pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) all

Tous les types d'observables sont pris en charge dans l'implémentation OpenQASM 3.0 d'Amazon Braket, y compris les opérateurs individuels, les produits tensoriels, les observables hermitiens et les observables. Sum L'opérateur spécifique que vous souhaitez utiliser lors du calcul des dégradés doit être intégré à la expectation() fonction, et les qubits sur lesquels agit chaque terme de l'observable doivent être explicitement spécifiés.