İşte en iyi durumda (ağırlıklar açısından ), ancak en kötü durumda üstel olan oldukça açık bir özyinelemeli örnekleyici .O(d)ωi
Zaten seçtiğimizi ve seçmek istediğinizi varsayalım . hesaplamalıyız.
ve tercih olasılığı ile
Payda, geçerli herhangi bir örnek seçimi için sıfırdan farklı olacaktır .x1,…,xi−1xi
w(x1,…,xi−1,xi)=∑xi+1∈{−1,1}⋯∑xd∈{−1,1}(∑j=1dωjxj)+
xi=1w(x1,…,xi−1,1)w(x1,…,xi−1,1)+w(x1,…,xi−1,−1).
x1,…,xi−1
Şimdi, elbette, soru nasıl hesaplanacağı w(x1,…,xi).
Eğer buna sahipsek C:=∑ij=1ωjxj≥∑dj=i+1|ωj|, sonra ω⋅x≥0 herhangi x önde gelen girişlerle x1:i, ve bu yüzden w dönüşür:
∑xi+1⋯∑xdω⋅x=ω⋅(∑xi+1⋯∑xdx)=∑j=1iωj(∑xi+1⋯∑xdxj)2d−ixj+∑j=i+1dωj(∑xi+1⋯∑xdxj)0=2d−iC.
Tersi durumda, C≤−∑dj=i+1|ωj|, bizde var ω⋅x≤0 ve bu yüzden w(x1,…,xi)=0.
Aksi takdirde, w(x1,…,xi)=w(x1,…,xi,1)+w(x1,…,xi,−1).
Belleğin bir sorun olmadığını ve içindeki tüm alt hesaplamaları önbelleğe alabileceğimizi varsayın w(1), w(−1)bir ağaçta - "güzel" vakalardan birine çarptığımız noktaya kadar, bundan sonra herhangi bir çağrı sabit zaman alır. (Seçmek için bu ağacın tamamını zaten hesaplamamız gerekecekx1O zaman, bu ağaç w hesaplamalar yapılır, örnekleyici yalnızca O(d)saati. Soru, ağacın inşa edilmesinin ne kadar sürdüğü veya eşit olarak ne kadar büyük olduğudur.
Tabii ki "güzel" vakaları daha hızlı vuracağız ωi sıralanır, ω1≥ω2≥⋯≥ωd.
En iyi durumda, |ω1|>∑dj=2|ωj|. Sonra hemen "güzel" bir davayıw(1) veya w(−1), yani w ağaç yapımı sabit zaman alır ve tüm örnekleyici alır O(d) saati.
En kötü (sıralı) durumda, ω1=ω2=⋯=ωd. O zaman soru şu: toplam ağaç ne kadar büyük?
Sona erdirmenin ilk yolları elbette (1,1,…,1) ve (−1,−1,…,−1) uzunluk ⌈d/2⌉. Bu nedenle ağaç bu derinliğe kadar tamamlanmıştır ve en azındanO(2d/2)düğümleri. (Daha fazlası var; muhtemelen kumarbazın harabe problemlerinde kullanılanlar gibi bir argümanla bulabilirsiniz, ancak iki dakika Googling'de bulamadım ve özellikle umursamıyorum - 2d/2 yeterince kötü ....)
Ayarınızda yalnızca birkaç tane çok büyükse ωi, bu muhtemelen oldukça pratik bir yaklaşımdır. Eğerωi hepsi benzer büyüklükte, muhtemelen hala üstel ve büyük için çok pahalı d.