Rastgele bir çoklu kümenin iki yaygın, dengesiz permütasyonunu oluşturmak için etkili algoritma


13

Arka fon

Farzedelim ki iki özdeş n mermer grubu var. Her mermer c n olan c renklerinden biri olabilir . Let , n ı renk mermer sayısını göstermek i her partide.cnnii

S çoklu küme olsun {1,,1n1,2,,2n2,,1c,,cnc}bir grubu temsil eder. Olarakfrekans gösterimi,Saynı zamanda şu şekilde yazılabilir(1n12n2cnc).

farklı permütasyonlarının sayısı multinomiyalS tarafından verilir : | S S | = ( n

|SS|=(nn1,n2,,nc)=n!n1!n2!nc!=n!i=1c1ni!.

Soru

İki yaygın, dengesiz permütasyon oluşturmak için etkin bir algoritma var P ve Q bir S rastgele? (Dağıtım eşit olmalıdır.)

  • Bir permütasyon P olan dağınık her ayrı eleman için ise i arasında P , örnekleri i içinde aşağı yukarı eşit aralıklı P .

    Örneğin, .S=(1424)={1,1,1,1,2,2,2,2}

    • dağınık değil{1,1,1,2,2,2,2,1}
    • dağınık {1,2,1,2,1,2,1,2}

    Daha titizlikle:

    • Eğer , yalnızca bir örneği olduğu i “üzerinden alan” için P , yani izin Δ ( i ) = 0 .ni=1iPΔ(i)=0
    • Aksi takdirde, izin örneği arasındaki mesafe  j ve örnek  j + 1 arasında i de P . Aşağıdakileri tanımlayarak, i örnekleri arasında beklenen mesafeyi çıkarın : δ ( i , j ) = d ( i , j ) - nd(i,j)jj+1iPi
      δ(i,j)=d(i,j)nniΔ(i)=j=1ni1δ(i,j)2
      iPΔ(i)nin

    Şimdi her eşit aralıklarla yerleştirildiğini ölçmek için istatistiği tanımlayın . sıfıra yakınsa veya kabaca ise dağınık diyoruz . ( özgü bir eşiği böylece ise dağınık olur .)i P P s ( P )s(P)=i=1cΔ(i)iPPs(P) k 1 S P s ( P ) < k n 2s(P)n2k1SPs(P)<kn2

    Bu kısıtlama , multiset (böylece ) ve yoğunluk ile fırıldak sorunu adı verilen daha katı bir gerçek zamanlı zamanlama problemini hatırlatır. . Amaç, uzunluğundaki herhangi bir dizinin en az bir örneği bir döngüsel sonsuz dizi programlamaktır . Başka bir deyişle, uygulanabilir bir program tüm ; Eğer yoğun ( ), daha sonra ve . Fırıldak sorunu NP-tamamlanmış gibi görünüyor.a i = n / n i ρ = c i = 1 n i / n = 1 P a i i d ( i , j ) a i A ρ = 1 d ( i , j ) = a i s ( P ) = 0A=n/Sai=n/niρ=i=1cni/n=1Paiid(i,j)aiAρ=1d(i,j)=ais(P)=0

  • İki permütasyon ve edilir dengesiz ise a, düzensizliği ve ; yani, her dizin için .Q P Q P iQ i i [ n ]PQPQPiQii[n]

    Örneğin, diyelim .S=(1222)={1,1,2,2}

    • { 1 , 1 , 2 , 2 }{1,2,1,2} ve dengesiz değildir{1,1,2,2}
    • { 2 , 1 , 2 , 1 }{1,2,1,2} ve dengesiz{2,1,2,1}

Keşif analizi

Ben için ve ile multisets ailesi ile . Özellikle, .n i = 4 i 4 D = ( 1 4n=20ni=4i4D=(1424344352617181)

  • İki rasgele permütasyon olasılığı ve bir edilir dengesiz % 3 ile ilgilidir.Q DPQD

    Nerede, aşağıdaki gibi hesaplanabilir olan inci laguerre polinom: Bir açıklama için buraya bakın .Lk| D D |k

    |DD|=0dteti=1cLni(t)=0dtet(L4(t))3(L3(t))(L2(t))(L1(t))3=4.5×1011|SD|=n!i=1c1ni!=20!(4!)3(3!)(2!)(1!)3=1.5×1013p=|DD|/|SD|0.03
  • Rastgele bir permütasyon olasılığı arasında olan dağınık kabaca keyfi eşiği ayarı,% 0.01 ile ilgilidir .D s ( p ) < 25PDs(P)<25

    Aşağıda rastgele bir permütasyonu olduğu 100.000 örneğinin ampirik bir olasılık grafiği bulunmaktadır .p Ds(P)PD

    Orta boy örneklemlerde, .s(P)Gamma(α8,β18)

    Ps(P)cdf(s(P)){1,8,2,3,4,1,5,2,3,6,1,4,2,3,7,1,5,2,4,3}1191<105{8,2,3,4,1,6,5,2,3,4,1,7,1,2,3,5,4,1,2,3}140916<104{3,6,5,1,3,4,2,1,2,7,8,5,2,4,1,3,3,2,1,4}650972<10.05{3,1,3,4,8,2,2,1,1,5,3,3,2,6,4,4,2,1,7,5}12239136<10.45{4,1,1,4,5,5,1,3,3,7,1,2,2,4,3,3,8,2,2,6}16979189<10.80

İki rasgele permütasyonun geçerli olma olasılığı (hem dağınık hem de düzensiz) .v(0.03)(0.0001)21010

Verimsiz algoritmalar

Bir kümenin rasgele düzenlenmesini sağlamak için yaygın bir “hızlı” algoritma ret tabanlıdır:

do
     P ← random_permutation ( D )
düzenlemeye kadar ( D , P )
dönüş P

kabaca olası düzensizlikler olduğundan yaklaşık yinelemeleri alır . Bununla birlikte, ret tabanlı rasgele bir algoritma, yineleme sırasına göre olacağı için bu sorun için etkili olmaz .en!/e1/v1010

Sage tarafından kullanılan algoritmada , çoklu kümenin rasgele bir düzenlemesi “tüm olası düzenlemeler listesinden rastgele bir eleman seçilerek oluşturulur.” Yine de bu, verimsizdir, çünkü numaralandırma için geçerli permütasyonlar vardır ve bunun yanı sıra, bunu yapmak için bir algoritmaya ihtiyaç vardır.v|SD|21016

Uzak sorular

Bu sorunun karmaşıklığı nedir? Ağ akışı, grafik renklendirme veya doğrusal programlama gibi bilinen herhangi bir paradigmaya indirgenebilir mi?


"Aralıklı" tanımınıza gelince, ile için nöbetçi olarak? Yani, tek bir eleman ortada olmalı, ikisi permütasyonu üçte bölmeli, vb. d(i,j)n/(ni+1)0ijn+1P0=Pn+1=i
Raphael

Kötü için olursa (küçük, ancak yeterince büyük) ne olur; Biz bile yok olması daha yaygın permütasyon? İki dengesiz olanı bulmak için kesinlikle bir değişiklik yapmayız! Hiçbir öğenin kereden fazla meydana gelemeyeceği anlaşılıyor . S={1nk,2k}kn/2
Raphael

1
Tüm düzensiz permütasyon çiftlerinin tüm yaygın permütasyon çiftleri arasındaki oranı nedir ? Benzer şekilde, tüm düzensiz permütasyon çiftlerinden kaç tanesi iki dağınık olandan oluşur? (Her iki oran da "yüksek" ise, çabalarımızı sürecin yarısına yoğunlaştırabilir, diğerini reddetmeye bırakabiliriz.)
Raphael

1
@Raphael 1 milyon rastgele permütasyon (# 3a) , bu 561 yaygın olanlar vardı . çiftlerin dengesiz. Ds(P)306118/(5612)=6118/1570803.9%
hftf

1
@Raphael (# 3b) 10 milyon rasgele permütasyon çiftinden 306893 çifti bozuldu. Bu çiftlerin sadece 29'unda her iki permütasyon . İşte bir histogram ( değerler ). Ds(P)50
hftf

Yanıtlar:


3

Bir yaklaşım: bir boolean formülü Verilen: Aşağıdaki sorunun bu azaltabilir , bir atama tercih tüm tatmin atamaları arasından rastgele eşit . Bu sorun NP-zordur, ancak #SAT algoritmalarından ödünç alma yöntemleri yaklaşık olarak eşit dağıtılmış bir oluşturmak için standart algoritmalar vardır . Örneğin, bir teknik, bir karma işlev almak için bir olan aralığı (atamalarını tatmin sayısı ile aynı boyutta özenle seçilmiş bir boyutu vardır ) rastgele bir değer de eşit tercih aralığında içindenx φ ( x ) x h φ y h φ ( x ) ( h ( x ) = y ) hφ(x)xφ(x)xhφyhve daha sonra formülüne tatmin edici bir atama bulmak için bir SAT çözücü kullanın . Verimli yapmak için seyrek doğrusal bir harita olarak seçebilirsiniz .φ(x)(h(x)=y)h

Bu, bir topla pire çekiyor olabilir, ancak uygulanabilir görünen başka bir yaklaşımınız yoksa, deneyebileceğiniz bir yöntemdir.


bunu takip etmek zor. bir boole değeri ve bir ikili dizedir (ikili değişkenler kümesi)? yani son denklem ...? h ( x )φ(x)h(x)
vzn

0

cs sohbetinde , sorunun karmaşık gereksinimlerinde bazı öznellikleri ortaya çıkaran, ancak herhangi bir açık hata veya gözetim bulamayan bazı genişletilmiş tartışma / analizler cs chat'de başladı . 1

Burada SAT'a dayalı diğer çözüme kıyasla nispeten "hızlı ve kirli" ancak hata ayıklamak için zor / zor olan bazı test edilmiş / analiz edilmiş kod bulunmaktadır. gevşek bir şekilde kavramsal olarak, örneğin TSP için 2-OPT'ye benzeyen bir yerel yalancı / açgözlü optimizasyon planına dayanmaktadır . temel fikir, bazı kısıtlamalara uyan rastgele bir çözümle başlamak ve daha sonra iyileştirmeleri aramak, gelişmeleri açgözlülükle aramak ve bunları yinelemek ve tüm yerel iyileştirmelerin tükendiği zaman sonlandırmak için yerel olarak bozmaktır. bir tasarım kriteri algoritmanın olabildiğince verimli / reddedilmekten kaçınması gerektiğiydi.

düzensizlik algoritmaları [4], örneğin SAGE [5] 'te kullanılan bazı araştırmalar vardır, ancak bunlar çoklu kümelere yönelik değildir.

basit pertürbasyon sadece demet (ler) deki iki pozisyonun "değiş tokuşudur". uygulama yakut içinde. satır numaraları ile ilgili bazı genel bakış / notlar aşağıdadır.

qb2.rb ( gist -github)

buradaki yaklaşım, iki dengesiz tuple (# 106) başlamak ve daha sonra yerel olarak / açgözlülükle derangesperse(# 97) denilen bir kavramı birleştirerek dağılmayı (# 97) iyileştirmektir . tuple çiftinde iki aynı pozisyonu değiştirmenin düzensizliği koruduğunu ve dispersiyonu iyileştirebileceğini ve bu da disperse yönteminin / stratejisinin (bir parçası) olduğunu unutmayın.

derangealtprogram sonra takas aynı elementin (# 10) ile değil dizideki elemanları ile dizide (multiset) ve swap'ları soldan sağa çalışır. son konumda başka bir takas olmadan, iki tuple hala dengesiz kalırsa algoritma başarılı olur (# 16).

ilk tuplleri düzensizleştirmek için 3 farklı yaklaşım vardır. 2. demet p2her zaman karıştırılır. biri "en yüksek güçler 1. derece" (# 128) p1tarafından sıralanan grup 1 ( ) a., b.karıştırılmış sıra (# 127) c.ve "en düşük güçler 1. sıra" ("en son güçler son sıra") (# 126) ile başlayabilir .

dispersiyon rutini dispersedaha fazla etkilenir ancak kavramsal olarak o kadar zor değildir. yine takas kullanıyor. genel olarak tüm elementler üzerindeki dağılımı optimize etmeye çalışmak yerine, mevcut en kötü durumu yinelemeli olarak hafifletmeye çalışır. Fikir 1 bulmaktır st soldan sağa azından Dispers unsurları. pertürbasyon, x, yen az dağılmış çiftin sol veya sağ elemanlarını ( indeksleri) diğer elemanlarla takas etmek, ancak asla çift arasında (dispersiyonu her zaman azaltacaktır) değiştirmek ve aynı elemanlarla takas etmeye çalışmaktır ( select# 71). . mçiftin orta nokta endeksidir (# 65).

bununla birlikte dağılım, her çiftteki (# 25, # 44) "en az / en soldaki" dağılım kullanılarak çiftteki her iki tuple (# 40) üzerinde ölçülür / optimize edilir.

takas "uzak" terimi, elemanların 1 algoritma girişimleri st ( sort_by / reverse# 71).

true, falseen az dağılmış çiftin (# 80) sol veya sağ elemanının, sol / sağ elemanın sağ tarafa takas pozisyonu için sol elemanının veya en uzak sol veya sağ elemanın değiştirilmesine karar vermek için iki farklı strateji vardır . takas elemanından dispers çifti içinde.

algoritma artık dispersiyonu iyileştiremediğinde (# 91) bitirir (ya en kötü dağılım yerini sağa hareket ettirir ya da tüm çift çifti (# 85) üzerinde maksimum dağılımı arttırır).

İstatistikler, reddedilme işleminden çıkmış bir çift için (# 19, # 106) 2 dağıtma algoritmasına bakarak c3 yaklaşım (# 116) ve c= 1000 derangesperses (# 97) üzerindeki = 1000 düzenlemenin üzerindeki reddetmeler için çıktıdır. ikincisi toplam ortalama dağılımı izler (garantili düzenlemeden sonra). örnek bir çalışma aşağıdaki gibidir

c       0.661000
b       0.824000
a       0.927000
[2.484, 2, 4]
[2.668, 2, 4]

bu, a-truealgoritmanın ~% 92 reddedilme ve ortalama en kötü dağılım mesafesi ~ 2.6 ve 1000 den fazla garantili minimum 2, yani tüm aynı eleman çiftleri arasında en az 1 nonqual müdahale elemanı ile en iyi sonuçları verdiğini gösterir . 3 adet eşsiz müdahale elemanı kadar yüksek çözümler buldu.

düzensizlik algoritması doğrusal zaman ön reddidir ve dağılım algoritması (düzensiz girişte çalışıyor) muhtemelen ~ gibi görünmektedir .O(nlogn)

1 sorun "feng shui" [1] veya "güzel" biraz öznel ve henüz "resmen" nicelikli değil "sözde" rastgele bir sipariş tatmin quizbowl paket düzenlemeleri bulmaktır; problemin yazarı, quizbowl topluluğu ve "feng shui uzmanları" ndaki araştırmalara dayanarak defer / dağılım kriterlerine göre analiz etmiş / azaltmıştır. [2] "feng shui kuralları" konusunda farklı fikirler vardır. algoritmalarla ilgili bazı "yayınlanmış" araştırmalar yapılmış ancak erken aşamalarda ortaya çıkmıştır.

[1] Paket feng shui / QBWiki

[2] Quizbowl paketleri ve feng shui / Lifshitz

[3] Soru Yerleştirme , HSQuizbowl kaynak merkezi forumu

[4] Rastgele Düzensizlikler Oluşturma / Martinez, Panholzer, Prodinger

[5] Adaçayı düzenleme algoritması (python) / McAndrew


fyi ayrıca düşündüm, derange rutin bir aksaklık vardır ve her zaman derange. takas konumu herhangi bir şeyi takas etmeden ilerleyebilir. başarıyı doğru test etmek için basit bir düzeltme var.
vzn
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.