Karmaşıklık analizinde karekök fikrinin dikkate değer örnekleri


15

k = maksimum{k,n/k}k=n

  • ayrık logaritmayı hesaplamak için bebek adım dev adım algoritması ,Ö(n)
  • süresi ve bellekte statik 2D dikey aralık sayımı ,O(n)Ö(n)Ö(n)
  • EXTRACT-MIN ile ve DECREASE-KEY ile öncelik sırası ,O(1)Ö(nk)Ö(1)
  • 3 renkli bir grafiği polinom zamanda renklerle boyamak,Ö(n)

Sadece birkaç isim.

Bu tür algoritmalar çoğu zaman yetersiz olsa da, öğrenciler tarafından anlaşılması kolaydır ve naif sınırların optimal olmadığını hızlıca göstermek iyidir. Ayrıca, karekök fikir veri yapıları, önbellek dostu olmaları nedeniyle (önbellek-kayıtsız teknikler dikkate alınmadan) bazen ikili ağaç tabanlı meslektaşlarından daha pratiktir. Bu yüzden öğretirken bu konuya biraz dikkat ediyorum.

Bu türden daha belirgin örneklerle ilgileniyorum. Bu yüzden analiz kare kök fikrine dayanan (tercihen zarif) algoritmalar, veri yapıları, iletişim protokolleri vb. Asimtotiklerinin optimal olması gerekmez.


Sorunun biraz belirsiz olması durumunda üzgünüm; geliştirmek için çekinmeyin.
Dmytro Korduban

Bu CW olmalı mı?
Suresh Venkat

2
@Suresh: “big-list ⇒ CW” kuralı hala geçerliyse, evet, CW olmalıdır.
Tsuyoshi Ito


harita azaltma modelleri için son algoritmaların hepsinde temel bir hile
Sasho Nikolov

Yanıtlar:


10

Chazelle, Liu ve Magen'in Alt Doğrusal Geometrik Algoritmalar (STOC 2003, SICOMP 2006) adlı makalesinde, aşağıdaki rastgele örnekleme hilesinin birkaç akıllı uygulaması bulunmaktadır. Aynı hilenin varyasyonları daha önce CLR'nin (1990) ilk baskısından alıntı yapan Gärtner ve Welzl [ DCG 2001 ] tarafından kullanılmıştır .

Bize bitişik bir bellek bloğunda saklanan sıralı dairesel bağlantılı numaralar listesi verildiğini varsayalım. Yani iki var ve ,N e x t [ 1 .. n ]Key[1 ..n]N-ext[1 ..n]

  • Key[1 ..n] , bir dizi sayıyı rastgele sırada saklar ;n
  • Eğer sette büyük sayı, daha sonra sette en küçük sayıdır; aksi takdirde , kümedeki den daha büyük olan en küçük sayıdır .Key[ben]Key[N-ext[ben]]Key[N-ext[ben]]Key[ben]

Daha sonra, belirli bir sayıda ardıl bulabilirsiniz in , aşağıdaki gibi bir zaman beklenen:xÖ(n)

  • dizisinin öğelerinden oluşan rastgele bir örnek seçin . Let daha küçük olan büyük bir numune olduğu (bütün numuneler daha yüksek olan, ya da en büyük numune ).nKeyKey[j]xx

  • Takip gelen işaretçileri biz büyük bir sayı görmesi veya eşit kadar (bütün numuneler daha büyük olsaydı etrafında tamamlamasından sonra ).N-extKey[j]xx

Yao lemmasının nispeten basit bir uygulaması, beklenen zaman sınırının optimal olduğunu ima eder . Bu sorun için herhangi bir deterministik algoritma en kötü durumda zamanı gerektirir .Ö(n)Ω(n)


10

Var bir üçgenler -kenar grafik ve onlar bulunabilir zaman. Bunu yapmanın birçok yolu var ama bence en erken olanlardan biri, her biri grafikten yayılan bir ormanı kaldıran bir dizi doğrusal zaman iterasyonundan geçen bir algoritma sağlayan Itai ve Rodeh (STOC 1977) . Erken tekrarlamalar içinde kalan orman en azından zaman parçaları, en azından bir algoritma kaldırır en az adım başına kenarları ve geç iterasyonlarında zaman bileşenleri, en derecesi her birinde en az birer ve daralmaları adım. Toplam yineleme sayısı en fazlaÖ(m3/2)mÖ(m3/2)n-kkn-kkm/k+k ve doğru dengeyi seçmek yinelemelerde ve zamanında toplam sınırını verir .Ö(m)Ö(m3/2)

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.