Algoritmaların karmaşıklık analizi için paradigmalar


16

En kötü durum ve ortalama vaka analizi, bir algoritmanın karmaşıklığı için iyi bilinen önlemlerdir. Son zamanlarda düzgünleştirilmiş analiz, en kötü durumda üstel olan bazı algoritmaların, örneğin simpleks algoritması gibi pratikte neden bu kadar iyi çalıştığını açıklamak için başka bir paradigma olarak ortaya çıkmıştır.

Sorum şu: Bir algoritmanın karmaşıklığını ölçmek için başka paradigmalar var mı? Özellikle en kötü durum karmaşıklığına sahip bazı algoritmaların pratikte neden iyi çalıştığını açıklamaya çalışanlarla ilgileniyorum.

Yanıtlar:


21

Ayrıca yararlı olan en kötü durum analizinin doğal varyantları vardır. Belki de en ünlüsü parametreli karmaşıklıktır. Burada, bir "iki boyutlu" ölçü birimi düşünüyoruz: olağan giriş uzunluğu ve bazı ek negatif olmayan tamsayı k , parametre. Bir algoritma en kötü durumda ( n ve k'nin tüm değerleri için) korkunç bir şekilde çalışabilse de, bir kişinin uygulamasında çözülmesi gereken tüm durumlar, bu k parametresi düşük olur, bu nedenle algoritma iyi çalışır bu örneklerde.nknkk

Örneğin, bazı grafik sınıflarında Maksimum Bağımsız Kümeyi çözmek ve şaşırtıcı derecede hızlı ilginç bir algoritma geliştirmek istediğinizi varsayalım. Grafik sınıfını daha ayrıntılı araştırdığınızda, incelediğiniz tüm grafiklerin en fazla taneye sahip olduğunu görürsünüz . Bodlaender (çapraz başvuru Neidermeier [1]), trewidth k olduğunda Max Independent Set'in sabit parametre izlenebilir olduğunu gösterdi : O ( 2 k ( | E | + | V | ) ) zamanında çözülebilir . Bu, algoritmanızın neden iyi çalıştığına dair bazı açıklamalar verir.10Ö(2k(|E|+|V|))

[1] R. Niedermeier, Sabit parametre algoritmalarına davet. Matematikte Oxford Ders Serisi ve Uygulamaları, Oxford University Press, Oxford, 2006.


15

İtfa edilmiş karmaşıklık vardır - bazı işlemler neden en kötü durumda maliyetli olabilir, ancak birçok işlemi göz önüne alırsanız, ortalama işlem başına maliyet iyidir.

Klasik bir örnek, tüm öğelerini bir depoya kopyalayarak dolduğunda kendini boşaltan bir veri yapısıdır. Kopyalama işlemi pahalı olabilir, ancak sık sık gerçekleşmez - provoke etmek için veri yapısına yeterli eleman eklemeniz gerekir.

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.