Namespace Microsoft.Quantum.AmplitudeAmplification

Peringatan

Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh QDK Modern.

Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.

Namespace ini berisi fungsi dan operasi untuk melakukan amplifikasi amplitude.

Deskripsi

Amplifikasi amplitude yang tidak jelas dengan pantulan parsial adalah bentuk amplifikasi amplitude yang paling umum diterapkan di sini.

Ini dipanggil melalui operasi AmpAmpObliviousByReflectionPhases.

Ini memiliki dua register: ancillaRegister dan systemRegister.

Ini menerima dua oracle untuk pantulan jenis ReflectionOracle ini yang bertindak hanya pada ancillaRegister register.

Ini menerima oracle khusus untuk amplifikasi amplitude tidak sadar jenis ObliviousOracle yang bertindak bersama pada kedua register.

Status input untuk ancillaRegister diasumsikan sebagai eigenstate $-1$ unik dari operator pantulan pertama $I - 2\ket{s}\bra{s}$.

Refleksi tentang status kuantum target sering diimplementasikan dengan mengasumsikan akses ke oracle yang menyiapkan status tersebut dari dasar komputasi $\ket{0\cdots 0}$.

Konvensi kami untuk oracles ini memerlukan dua register: register single-qubit flagQubit , dan register untuk segala sesuatu yang lain pada register ancillaRegister.

Oracle jenis StateOracle bertindak bersama-sama pada kedua register untuk membuat status target yang ditandai oleh $\ket{1}$ dalam flagQubit register dengan beberapa amplitude nyata.

Refleksi ReflectionOracle tentang status bendera ini dihasilkan oleh operasi TargetStateReflectionOracle.

Refleksi ReflectionOracle tentang status input ke ancillaRegister dihasilkan oleh StateOracle yang membalikkan lalu mencerminkan tentang $\ket{0\cdots 0}$ dengan ReflectionStart().

Oracle jenis DeterministicStateOracle bertindak pada qubitState register untuk membuat status target persis tanpa bendera.

AmpAmpObliviousByOraclePhases adalah versi amplifikasi amplitude tidak sadar yang menerima oracle StateOracle dan ObliviousOracle bukan pantulan.

Perhatikan bahwa amplitudo amplitudo adalah kasus khusus amplifikasi amplitudo tidak jelas di mana ObliviousOracle adalah operator identitas, dan tidak ada qubit sistem yaitu systemRegister kosong.

Ini dipanggil melalui operasi AmpAmByReflectionPhases dan AmpAmpByOraclePhases.

Fase untuk refleksi parsial dalam kasus standar pencarian Grover disediakan oleh fungsi AmpAmpPhasesStandard.

Misalnya, kami memiliki dependensi berikut: AmpAmpByOracle -> AmpAmpByOraclePhases -> AmpAmpObliviousByOraclePhases -> AmpAmpObliviousByReflectionPhases.

Operasional

Nama Ringkasan
AmpAmpRUSByOracle > [! PERINGATAN]
ApplyAmplitudeAmplification Menerapkan amplifikasi amplitude pada register tertentu, menggunakan serangkaian fase dan oracle tertentu untuk mencerminkan tentang status awal dan akhir.
ApplyFixedPointAmplification algoritma Amplifikasi Amplitude Fixed-Point
ApplyObliviousAmplitudeAmplification Amplifikasi amplitude tidak jelas dengan menentukan pantulan parsial.

Fungsi

Nama Ringkasan
AmpAmpByOracle > [! PERINGATAN]
AmpAmpByOraclePhases > [! PERINGATAN]
AmpAmpByReflectionPhases > [! PERINGATAN]
AmpAmpObliviousByOraclePhases > [! PERINGATAN]
AmpAmpObliviousByReflectionPhases > [! PERINGATAN]
AmpAmpPhasesFixedPoint > [! PERINGATAN]
AmpAmpPhasesStandard > [! PERINGATAN]
AmpAmpRotationToReflectionPhases > [! PERINGATAN]
AmplitudeAmplificationFromPartialReflections Amplitude amplifikasi oleh refleksi parsial.
AmplitudeAmplificationFromStatePreparation Amplitude amplifikasi oleh oracles untuk refleksi parsial.
FixedPointReflectionPhases Menghitung fase refleksi parsial untuk amplifikasi amplitude titik tetap.
ObliviousAmplitudeAmplificationFromPartialReflections Mengembalikan unitary yang mengimplementasikan amplifikasi amplitude tidak sadar dengan menentukan untuk refleksi parsial.
ObliviousAmplitudeAmplificationFromStatePreparation Amplifikasi amplitude tidak jelas oleh oracle untuk refleksi parsial.
Mulai Pantulan Membuat refleksi tentang string all-zero 0...0〉, yang merupakan status input khas untuk amplitudo amplitudo amplifikasi.
RotationPhasesAsReflectionPhases Mengonversi fase yang ditentukan sebagai rotasi kubit tunggal ke fase yang ditentukan sebagai pantulan parsial.
StandardAmplitudeAmplification Algoritma Amplifikasi Amplitude Standar
StandardReflectionPhases Menghitung fase refleksi parsial untuk amplifikasi amplitude standar.
TargetStateReflectionOracle Membuat ReflectionOracle tentang status target yang ditandai secara unik oleh qubit bendera.

Jenis yang ditentukan pengguna

Nama Ringkasan
ReflectionPhases Fase untuk urutan pantulan parsial dalam amplifikasi amplitude.
RotationPhases Fase untuk urutan rotasi kubit tunggal dalam amplifikasi amplitudo.