Grover algoritması bir sayı kümesinin ortalamasını ve ortalamasını tahmin etmek için nasıl kullanılır?


10

On Grover algoritması için Vikipedi sayfasında , şu ifadeye yer verilmiştir:

"Grover'ın algoritması da bir sayı kümesinin ortalamasını ve medyanını tahmin etmek için kullanılabilir"

Şimdiye kadar sadece bir veritabanını aramak için nasıl kullanılabileceğini biliyordum. Ancak bir dizi sayının ortalamasını ve ortalamasını tahmin etmek için bu tekniğin nasıl uygulanacağından emin değilim. Dahası, bu sayfada tekniği açıklayan bir alıntı (fark ettiğim kadarıyla) yoktur.


Ya kendi sorunuzu cevaplamayı seçerseniz ya da görevi kendileri için kim seçerse, bu bağlantı bir Weirdo İşlevinin Ortalamasını (Ortalama, İntegral) Bulmak için Grover Algoritmasını Kullanma
agaitaarino

@agaitaarino Teşekkürler. Ben bakacağım. Bu arada, yorumunuz bağlantı olarak düzgün görüntülenmiyor çünkü açılış parantezinden sonra boşluk bıraktınız. :)
Sanchayan Dutta

Yanıtlar:


9

Ortalamayı tahmin etme fikri kabaca şu şekildedir:

  • Gerçeklerde çıktı veren herhangi bir için 0 ila 1 aralığında çıktılar veren yeniden ölçeklenmiş bir tanımlayın . ortalamasını tahmin etmeyi amaçlıyoruz .f(x)F(x)F(x)

  • olan bir birim tanımlayınBu ünitenin kolayca uygulanabileceğini belirtmek önemlidir. İlk kayıtta bir Hadamard dönüşümü ile başlarsınız , bir ancilla kayıt defterinde hesaplamasını yaparsınız, ikinci kayıtta kontrollü bir dönüş uygulamak için bunu kullanın ve daha sonra ancilla kaydını hesaplayın.Ua

    Ua:|0|012n/2x|x(1F(x)|0+F(x)|1).
    f(x)
  • Üniter tanımlama .G=Ua(I2|00||00|)UaIZ

  • Bir durumdan başlayarak , bir arama sorununa çözüm sayısını tahmin etmek için Grover yineleyicisini kullandığınız gibi kullanın.Ua|0|0G

Bu algoritmanın ana kütlesi, burada tarif edildiği gibi genlik amplifikasyonudur . Ana fikir iki durum tanımlayabilmenizdir ve bu evrimin bir alt uzay tanımlar. Başlangıç ​​durumu . teriminin genliği, sadece tahmin edebilseydik, nin ortalamasına ilişkin bilgiyi açıkça içerir . Bu durumu tekrar tekrar hazırlayabilir ve alma olasılığını ölçebilirsiniz

|ψ=1xF(x)xF(x)|x|1|ψ=1x1F(x)x1F(x)|x|0,
Ua|0|0=(xF(x)|ψ+x1F(x)|ψ)2n/2|ψF(x)|1ikinci kayıtta, ancak Grover'ın araması size ikinci dereceden bir gelişme sağlar. Eğer Grover genelde kurmak biçimi, bu genliği için karşılaştırırsanız hangi yapabilirsiniz 'işareti' (uygulayarak bu durumda ) olacaktır ; burada , çözelti sayısıdır.|ψIZm2nm

Bu arada, DQC1 olarak da bilinen "bir temiz kübitin gücü" ile karşılaştırmak ilginçtir. Orada, başvurmaları halinde için, 1 yanıtı alma olasılığı, hızlandırılmamış sürümle aynıdır ve size ortalamanın bir tahminini verir.UaI2n|00|


Medyan için, görünüşe göre minimize eden değeri olarak tanımlanabilir Burada iki adım var. Birincisi, en aza indirmeye çalıştığımız fonksiyonun temelde sadece bir araç olduğunu fark etmektir. Daha sonra ikinci adım, Grover aramasıyla da hızlandırılabilen bir minimizasyon algoritması kullanmaktır . Buradaki fikir, bir Grover aramasını kullanmak ve işlev değerlendirmesinin bazı eşiğinden daha düşük bir değer verdiği tüm öğeleri işaretlemektir . değerini veren giriş sayısını tahmin edebilir , ardından minimum değeri yeterince yerelleştirene kadar farklı bir için tekrarlayabilirsiniz .z

x|f(x)f(z)|.
Txf(x)TT

Tabii ki, kesin çalışma süreleri, hata tahminleri vb.


1. adımda yeniden ölçeklendirmeyi gerçekleştirmeden önce, işlevin min ve maks değerini hesaplamak için önce Grover algoritmasını logaritmik olarak çalıştırmanız mı gerekiyor?
tparker

@tparker Muhtemelen bağlıdır. Genellikle F fonksiyonu hakkında olası değerlerini bağlayabilmek için yeterli bilginiz olduğu varsayılır.
DaftWullie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.