#VS2017 – Liberando #Qubits utilizando Reset() y ResetAll() con Microsoft Quantum Development Kit

 

Buenas!

Ayer comente como la operación MResetZ() nos permite obtener el estado de un Qubit y liberar al mismo. Pues bien, al final de cada operación los Qubits tienen que ser liberados para que el simulador funcione correctamente.

Nota: La palabra en inglés es Release, la traducción de “liberado” no me termina de gustar.

En un código como el siguiente, donde se utiliza un Qubit y no se libera correctamente, nos encontraremos con el siguiente error:


operation HGateWithOutReset (initial: Result) : (Result)
{
body
{
mutable res = Zero;
using (qubits = Qubit[2])
{
let qubit1 = qubits[0];
let qubit2 = qubits[1];
H(qubit1);
set res = M(qubit1);
}
return (res);
}
}

I1

Microsoft.Quantum.Simulation.Simulators.Exceptions.ReleasedQubitsAreNotInZeroState

  HResult=0x80131500

  Message=Released qubits are not in zero state.

  Source=Microsoft.Quantum.Simulation.Simulators

Microsoft Quantum Development Kit nos ofrece una serie de operaciones que nos ayudan a liberar Qubits: Reset() y ResetAll(). Como su nombre lo indica Reset() esta pensado para liberar un único Qubit y ResetAll() para liberar un array de Qubits.

Dado un solo qubit, Reset() evalua su etado y se asegura que está en el estado |0⟩ tal que pueda ser liberado con seguridad

La siguientes 2 operaciones muestran ejemplos sobre como utilizar estas operaciones.


operation HGateWithResetEachQubit (initial: Result) : (Result)
{
body
{
mutable res = Zero;
using (qubits = Qubit[2])
{
let qubit1 = qubits[0];
let qubit2 = qubits[1];
H(qubit1);
set res = M(qubit1);
Reset(qubit1);
Reset(qubit2);
}
return (res);
}
}
operation HGateWithResetAllQubits (initial: Result) : (Result)
{
body
{
mutable res = Zero;
using (qubits = Qubit[2])
{
let qubit1 = qubits[0];
let qubit2 = qubits[1];
H(qubit1);
set res = M(qubit1);
ResetAll(qubits);
}
return (res);
}
}

Happy QCoding!

Saludos @ Toronto

El Bruno

References

My Posts

 

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: