Sonu§urda en algoritma - Asymptotically optimal algorithm

Gelen bilgisayar bilimleri , bir algoritma olduğu söylenir sonu§urda en kabaca söylemek gerekirse, büyük girişler için en kötü mümkün olan en iyi algoritma daha kötü (giriş büyüklüklerinden bağımsız olarak) sabit bir faktör gerçekleştirir eğer. Genellikle yaygın kullanımı sonucunda bilgisayar bilimi araştırmalarında karşılaşılan bir terimdir büyük-O notasyonu .

Daha resmi, bir algoritma bir sorun bu kaynağın Q'dan (f (n)) gerektirecek şekilde kanıtlanmıştır eğer belirli bir kaynak ile ilgili olarak asimptotik optimaldir, ve algoritma sadece O (f (n)) kullanmak için kanıtlanmıştır.

Bu deliller belirli bir varsayımı gerektiren hesaplama modeli , operasyon belirli kısıtlamalar girdi verileri ile izin verilen bir yani.

Basit bir örnek olarak, tüm bilinen karşılaştırma sıralar en az Ω (gerektiren n log n ortalama karşılaştırmaları ve en kötü durumlarda). Mergesort ve heapsort O (gerçekleştirmek karşılaştırma türlü bulunmaktadır n log n karşılaştırmaları), bu yüzden bu anlamda asimptotik optimum bulunmaktadır.

Veri girişi bazı varsa önsel , karşılaştırmalar ek olarak, algoritmaların yapımında kullanılabilecek özelliklere sonra asimptotik hızlı algoritmalar mümkün olabilir. Örneğin, N nesneler olduğunu biliniyorsa tamsayı ile aralığı [1, N],, daha sonra sıralanabilir, O (N) zaman, örneğin, gelen kova tür .

Bir algoritma asimptotik uygun olmanın bir sonucu yeterince büyük girişler için, bir algoritma bir sabit faktör daha bunu daha iyi performans olmasıdır. Bu nedenle, asimptotik optimum algoritmalar genellikle araştırmalarda "satırın sonuna" olarak görülüyor, dramatik üzerine geliştirilebilir edilemeyecek bir sonucun Kavuşturulması. bir algoritma asimptotik optimum değilse Tersine, bu giriş boyutu büyüdükçe, algoritma mümkün olan en iyi algoritma daha giderek daha kötü performansa sahip olduğunu ima eder.

Pratikte herhangi asimptotik avantaja sahip olmasa bile, daha iyi performans algoritmaları bulmak için yararlıdır. Yeni algoritmalar aynı zamanda belirli girdilere daha iyi performans olarak mevcut avantajları, kaynakların kullanımını azalmış olabilir veya daha basit olarak tarif ederler ve uygulamak. Böylece sonu§urda en algoritmalar her zaman "yolun sonu" değildir.

sonu§urda en algoritmalar önemli kuramsal sonuçlar olmasına rağmen, bir asimptotik optimum algoritma pratik durumlara bir dizi kullanılamaz olabilir:

  • Sadece için daha yaygın olarak kullanılan metotların dışında performans sergilemektedir n , örneğin bir bilgisayar depolama sistemi sığmadığından fazla bit girdi olarak pratik giriş boyutları aralığının dışında.
  • anlama ve giriş aralığındaki potansiyel yararı ağır basar doğru uygulanmasının zorluğu göz altında boyutları böylece, çok karmaşık.
  • Daha verimli algoritmalar ya da kötü en kötü durum süreleri ile bu sezgisel algoritmalar var özel durumlarda içine uygulama sonbaharda karşılaşılan girdiler yine verimli çözebilir.
  • Modern bilgisayarlarda böyle önbellek ve paralel işleme gibi donanım optimizasyonlar (hesaba bu donanım optimizasyonları almadı analizi varsayarak) bir asimptotik optimum algoritma tarafından "bozuk" olabilir. Bu durumda, bu özelliklerin daha iyi faydalanmak ve gerçekçi verilere en uygun algoritma daha iyi performans optimal olmayan algoritmalar söz konusu olabilir.

Uygulamada kullanılmaz asimptotik uygun algoritma örneği, Bernard CHAZELLE için sitesindeki lineer zamanlı algoritması nirengi a basit çokgen . Başka bir boyutlandırılabilir dizi sabiti zamanında ama birçok makinelerde endeksi sıradan dizi endeksleme kıyasla ağır pratik ceza taşır can "Optimal Zaman ve Uzayda Resizable Dizilerin" yayınlanan veri yapısı.

Biçimsel tanımlar

Biçimsel olarak, daha düşük bir bağlanmış teoremi bir sorun Ω (f (gerektirir gösteren sahip olduğunu varsayalım , n boyutu örneğine (giriş) çözmek için)) zaman n (bakınız Büyük O gösterimini Q tanımı için). Daha sonra, O sorunu çözen bir algoritma (f ( n )), zaman asimptotik uygun olduğu söylenir. Bu aynı zamanda sınırları kullanılarak ifade edilebilir: B (varsayalım n ) bir alt çalışma süresi ile bağlanmış olan ve belirli bir algoritma zaman t (alır , n ). Sonra algoritma eğer asimptotik en uygunudur:

T (olarak, eğer varsa, bu sınır, her zaman en az 1 olduğuna dikkat edin , n ) ≥ b ( N ).

Genellikle zaman verimliliği uygulanan birlikte, bir algoritma asimptotik uygun alan rastgele bit işlemci sayısını veya sık büyük O gösterimi kullanılarak ölçülen diğer bir kaynak kullanmaya söylenebilir.

Bazen belirsiz veya örtük varsayımlar bir algoritma asimptotik optimum olup olmadığı belirsiz yapabilirsiniz. Örneğin, bir alt sınır teoremi belirli düşünülebilir soyut makine karşılaştırma sıralar ya da hafıza, belirli bir kuruluş durumunda olduğu gibi, bir model. Bu varsayımları ihlal ederek, yeni bir algoritma potansiyel olarak asimptotik alt sınır ve "asimptotik optimum" algoritmaları daha iyi performans verebilir.

Hızlanma

Asimptotik uygun algoritma olmayışını hızlanma olarak adlandırılır. Blum hızlanma teoremi speedup ile yapay olarak inşa sorunlar söz konusudur göstermektedir. Ancak, bir olduğunu açık sorun en tanınmış algoritmaları bugün birçok sonu§urda en olup olmadığını. Örneğin, (bir O olduğu , n α ( n bulmak için)) algoritması en az yayılan ağaçlar , burada α ( n ) arasında çok yavaş büyüyen tersidir Ackermann fonksiyonu , ama en iyi bilinen alt sınır önemsiz Ω (olup , n ) . Bu algoritma asimptotik optimum olup olmadığı bilinmemektedir ve bu her iki şekilde sonuçlanması halinde önemli bir sonucu olarak selamladı muhtemel olacaktır. Bakırcı ve (1982) Winograd matris çarpım (lamda hesaplama ile Strassen tipi çift doğrusal kimliklerinin) bir algoritma kısıtlı sınıfı arasında hızlanmasından dolayı zayıf bir formuna sahip olduğu kanıtlanmıştır.

Ayrıca bakınız

Referanslar