Sıra sıkıştırma olmadan sendika bulmanın karmaşıklığı


10

Vikipedi yol sıkıştırma olmadan rütbe ile birlik bir itfa edilmiş zaman karmaşıklığını verir diyor ve rütbe ve yol sıkıştırma hem birlik bir itfa edilmiş zaman karmaşıklığını verdiğini ( olan Ackerman işlevinin tersi). Bununla birlikte, sendika sıralaması olmadan yol sıkıştırmanın çalışma süresinden bahsetmiyorum, ki bu genellikle kendimi uyguluyorum.O(logn)O(α(n))α

Union-find'ın yol sıkıştırma optimizasyonu ile itfa edilmiş zaman karmaşıklığı nedir, ancak sıralama optimizasyonu ile birliği yoktur?


5
Bu Not Ackerman fonksiyonunun değil, tersi olan . Burada "ters", ters değil, fonksiyon olarak ters anlamına gelir: yani, , , değil . α(n)1/A(n,n))f(n)=A(n,n)α(n)=f1(n)1/f(n)
DW

Bunun nispeten eski bir soru olduğunu anlıyorum, ancak cevabım ve ilgili bir makaleye bakın: epubs.siam.org/doi/abs/10.1137/S0097539703439088 . Sınırları kopyalarken bir veya iki ayrıntıyı kaçırmış olabilirim. Bu durumda, lütfen bir düzenleme önerin :-)
BearAqua

Yanıtlar:


4

Seidel ve Sharir 2005'te [1] operasyonlarında kabaca rasgele bağlantı ile yol sıkıştırmanın kullanılmasının kabaca karmaşıklığına sahip olduğunu kanıtladılar .mO((m+n)log(n))

Bkz. [1], Bölüm 3 (Keyfi Bağlama): , operasyonları ve öğeleri ile birleşim çalışma zamanını belirtsin . Aşağıdakileri kanıtladılar:f(m,n)mn

İstem 3.1. Herhangi bir tamsayısı için .k>1f(m,n)(m+(k1)n)logk(n)

Göre [1], ayar verir .k=m/n+1

f(m,n)(2m+n)logm/n+1n

Benzer bir sınır [2], Bölüm 3'te Tarjan ve van Leeuwen tarafından daha karmaşık bir yöntem kullanılarak verildi:

[2] 'nin Lemma 7'si. Diyelim ki . Herhangi bir sıkıştırma ve saf bağlantı kullanılarak uygulanan herhangi bir küme işlemi sırasında, bulma yollarındaki toplam düğüm sayısı en fazla Yarıya bölme ve saf bağlantı ile, bulma yollarındaki toplam düğüm sayısı en fazla .mn(4m+n)log1+m/nn(8m+2n)log1+m/n(n)

[2] 'nin Lemma 9'u. Diyelim . Sıkıştırma ve saf bağlama kullanılarak uygulanan herhangi bir küme işlemi sırasında, bulma yollarındaki toplam düğüm sayısı en fazla .m<nn+2mlogn+m

[1]: R. Seidel ve M. Sharir. Yol Sıkıştırmalarının Yukarıdan Aşağıya Analizi. Siam J. Computing, 2005, Cilt. 3, sayfa 515-525.

[2]: R. Tarjan ve J. van Leeuwen. Set Birliği Algoritmalarının En Kötü Durum Analizi. ACM, Cilt no. 31, No.2, Nisan 1984, sayfa 245-281.


2

İtfa edilmiş çalışma süresinin ne olduğunu bilmiyorum, ancak bazı durumlarda yol sıkıştırması yerine her ikisini de kullanmak isteyebileceğiniz olası bir nedenden bahsedebilirim: işlem başına en kötü çalışma süresi Θ(n) yalnızca yol sıkıştırma kullanırsanız, bu hem sıralama hem de yol sıkıştırmaya göre birleşmekten çok daha büyüktür.

Bir dizi düşünün n Derinlik ağacı oluşturmak için kötü bir şekilde seçilmiş sendika işlemleri n1(her düğümün bir önceki düğümün alt öğesi olduğu sıralı bir düğüm yoludur). Sonra en derin düğümde tek bir Bul işlemi gerçekleştirirΘ(n)saati. Böylece, işlem başına en kötü çalışma süresiΘ(n).

Buna karşılık, sıralı optimizasyon ile, işlem başına en kötü çalışma süresi O(logn): hiçbir işlemin bundan daha uzun sürmesi O(logn). Birçok uygulama için bu önemli değildir: tek bir işlem için en kötü zaman için değil, tüm işlemlerin toplam çalışma süresi (yani amortismanlı çalışma süresi) önemli olacaktır. Ancak, bazı durumlarda işlem başına en kötü durum süresi önemli olabilir: örneğin, işlem başına en kötü durum süresiniO(logn) tek bir işlemin uzun bir gecikmeye neden olmadığından emin olmak istediğiniz etkileşimli bir uygulamada yararlı olabilir (örneğin, tek bir işlemin uygulamanın uzun süre donmasına neden olmayacağının garantisini istiyorsunuz) veya gerçek zamanlı olarak her zaman gerçek zamanlı garantileri karşılayacak sağlamak istediğiniz uygulama.

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.