En kötü durum, ortalama durum vb. Dışında diğer çalışma süresi analizi türleri?


22

Bir algoritmanın çalışma süresini analiz etmenin bazı yolları:

1) En kötü durum analizi: En kötü durumda çalışma süresi.

2) Ortalama durum analizi: Rasgele bir durumda beklenen çalışma süresi.

3) İtfa edilmiş analiz: En kötü durumda olan sıradaki ortalama çalışma süresi.

4) Düzgünleştirilmiş analiz: Rastgele bozulan en kötü durum için beklenen çalışma süresi.

5) Genel durum analizi: Küçük bir örnek alt kümesi hariç, en kötüsüyle çalışma süresi.

Sorum şu: Bu tam bir liste mi?


2
Sanırım bu tür bir liste asla yorucu olamaz.
Tsuyoshi Ito

Yanıtlar:


8

Örnek optimizasyonu, algoritmaların çok ilginç bir özelliğidir. Biri örnek optimallik kavramlarını genelleştirebilir ve en kötü durum ve ortalama durum analizini içeren şaşırtıcı derecede ilginç kavramlar bulabilir.

Her ne kadar kesinlikle geleneksel algoritma analizine dahil olmasa da, kendi başına ilginçtir. Geometrik bir algoritmayı tartışan Afshani-Barbay-Chan'ın (FOCS '09) yazdığı fikir, girdi sırasına uymayan algoritma performansını dikkate alır (kendi problemleriyle ilgilidir).

Bunun şu şekilde genelleştirildiği görülebilir: Her algoritma için girişleri denklik sınıflarına ayırın ve algoritma performansını bu denklik sınıflarının her birinin ortalama performansı üzerinde bir tür kollektif istatistik olarak kabul edin.

En kötü durum analizi, girdiyi ayrı ayrı denklik sınıfları olarak görür ve maksimum çalışma süresini hesaplar. Ortalama vaka analizi, tüm girdileri içeren tek bir olan önemsiz denklik sınıfına bakar. Afshani-Barbay-Chan gazetesinde, eğer girdiler permütasyon sınıflarına bölünmüşse algoritmaları idealdir (yani, sıradan bir performans göster).

Bunun herhangi bir yeni algoritma analizi paradigmasına yol açıp açmadığı açık değildir. Tim Roughgarden'in kursunda bazı mükemmel motive edici örnekler var ve algoritmaları analiz etmek için farklı yöntemler var.


Ananth, Tim'in kursuna verdiğin bağlantı için çok teşekkürler. Bu tam olarak aradığım şeydi.
umar

14

Liste için biraz benzer olan iki tane daha var.

  1. Parametreli Analiz, çalışma süresini, `` parametre 'olarak adlandırılan ölçülen girdi hakkında bazı ek bilgiler kullanarak, bir yerine iki değerin bir işlevi olarak ifade eder. Örnek olarak Independent Set problemini ele alalım. Genel durum için en iyi çalışma süresi, bazı sabitleri için . Şimdi grafiğin tiz genişliğini parametre olarak alırsak ve onu parametresi ile temsil edersek, Bağımsız Set süre içinde hesaplanabilir . Treewidth Bu nedenle, eğer grafik toplam boyutu ile karşılaştırıldığında küçük olan , o zaman bu Parametreli algoritması daha hızlıdır.O(cnnO(1))1<c<2kO(2knO(1))kn

  2. Çıktıya duyarlı analiz, inşaat sorunlarına uygulanan ve çalışma zamanı ifadesinde çıktının boyutunu dikkate alan bir tekniktir. İyi bir örnek, düzlemdeki bir dizi çizgi parçasının kesişme noktalarını belirleme sorunudur. Yanılmıyorsam, kavşakları (kavşak sayısı olduğu saatinde hesaplayabilirsiniz .O(ngünlükn+k)k


8

Adaptive Analysis , çok sayıda parametreye göre polinom zaman algoritmalarının çalışma süresini ölçer. Örneğin,zamanında çalışan, ancak giriş neredeyse sıralandığında çok daha hızlıbir sıralama algoritması istiyorsunuz. Bir sıralama algoritmasının uyarlamalı bir analizinde, çift sayımlı ters çevrimlerin sayısı, bir işlemingirişin en üst üste sıralanan maksimum bir parçası olduğu işlem sayısı veya girdinin entropisi dikkate alınacaktır .O(ngünlükn)

Polinom-zaman algoritmaları için Parametreli Analiz'e benziyor ve çıktıya duyarlı analizin bu kategoriye girdiği anlaşılıyor.


Serge, Glencora'nın blog gönderisine bağlantı için teşekkürler, birçok ilginç yorum var.
umar

7

Ayrıca “ yüksek olasılık ” analizi (randomize algoritmalar için) vardır, herhangi bir örnek için algoritmanızın çoğu zaman ne kadar iyi performans göstereceği konusunda endişe duyuyorsunuz, ancak zamanın küçük bir kısmını tamamen bırakabiliyorsunuz. Bu öğrenme teorisinde yaygındır.


4

Algoritmanıza rastgelelik ekleyebilir ve yukarıdakilerin tümü ile birleştirebilirsiniz. Daha sonra, örneğin, en kötü durum beklenen çalışma zamanını (en kötü durum örneği, ancak algoritmanın içindeki rastgele bozuk para dizilerinin tüm olası dizileri üzerinden ortalama alırsınız) ve yüksek olasılıklı en kötü durum çalışma süresini (yine en kötü durum örneğini alırsınız) alacaksınız. fakat rastgele jeton üzerindeki olasılık algoritmada ters düşer.


3

İkili analiz , iki algoritmayı karşılaştırmanın bir yoludur (Spyros Angelopoulos, Pascal Schweitzer: İkili analiz altında disk belleği ve liste güncellemesi. J. ACM 60, 2013): Kabaca, Algoritma A, eğer varsa, uzunluğu n girişindeki Algoritma B'den daha iyidir. n uzunluğu girişlerinin f bijeksiyonu, öyle ki A, x girişinde en az f (x) kadar B kadar iyi performans gösterir.


1

Rekabet Analizi

Çevrimiçi algoritmaları performans çevrimdışı algoritmalarıyla karşılaştırmak için kullanılır. Wikipedia sayfasına bakınız . Liste Güncelleme sorunu klasik bir örnektir.


1
Ancak "bir algoritmanın çalışma zamanını" analiz etmek için kullanılmaz .
Jukka Suomela

0

Rekabet analizi Sayfa değiştirme algoritmasında , bir yöntem daha az sayfa eksik olduğunda diğerine göre daha fazla gelir. Daha az sayfa eksik "daha az çalışma süresi" gösterir. Ayrıca, rekabet analizi göreceli olarak iki yöntemi karşılaştırmak için bir yöntemdir. İyi bir referans kitap Allan Borodin'den "ONLINE BİLGİSAYAR VE REKABETCİ ANALİZ" dir.

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.