Son zamanlarda, bir fizikçiyle konuşurken, tecrübelerime göre, doğal olarak üssel bir zamana ihtiyacı olan bir problemin, P veya BPP'de olduğu gibi, ortaya çıkmadığını ortaya koyduğumu, azalmanın neden ortaya çıktığını belirten bir “genel sebep” olduğunu iddia ettim. --- ve neredeyse her zaman, bu sebep bir düzine ya da daha az "olağan şüpheli" nin listesine aittir (örneğin: dinamik programlama, doğrusal cebir ...). Ancak, bu daha sonra düşünmeme neden oldu: gerçekte bu gibi nedenlerin iyi bir listesini yazabilir miyiz? İşte bir ilk, tamamlanmamış bir deneme:
(0) Matematiksel karakterizasyon. Problem, bir zamanlar bilindiği gibi, çoklu (n) olasılıkların bir listesi üzerinde ayrıntılı bir araştırma yapmanıza hemen olanak sağlayan, açık bir şekilde "tamamen matematiksel" bir karakterizasyona sahiptir. Örnek: Kuratowski teoreminden O (n 6 ) algoritması izleyen grafik düzlemselliği .
("Düzlemsel" in aşağıya işaret ettiği gibi, bu kötü bir örnekti: düzlemin birleşimsel karakterizasyonunu bilseniz bile, bunun için polinom-zaman algoritması vermek hala oldukça önemsizdir. Peki, burada daha iyi bir örnek vereyim: peki ya Örneğin, "ikili olarak yazılmış bir giriş n verildiğinde, n delikli bir yüzeye gömülü rastgele bir haritayı renklendirmek için kaç renge ihtiyaç duyulduğunu hesaplayın." Bunun, bunun (hatta sonlu!) hesaplanabilir olduğu konusunda çok açık bir şey değil. Ancak cevabı veren bilinen bir formül vardır ve bir kere formülü bildiğiniz zaman, polinom zamanında hesaplamak çok önemlidir. Bu arada, "dışlanmış küçüklere indirgenir / Robertson-Seymour teorisi" muhtemelen bir şeyin neden olabileceğinin ayrı bir nedeni olarak eklenmelidir. P.)
Her neyse, bu özellikle beni ilgilendiren durumlardan biri değil .
(1) Dinamik programlama. Problem, üssel patlama olmadan özyinelemeli çözümü mümkün kılacak şekilde bozulabilir - çoğu zaman karşılanması gereken kısıtlamalar doğrusal veya başka basit bir düzende düzenlendiğinden. "Tamamen birleştirici"; cebirsel yapıya gerek yok. Muhtemelen, grafik erişilebilirliği (ve dolayısıyla 2SAT) özel durumlardır.
(2) Matroidler. Problem, açgözlü bir algoritmanın çalışmasını sağlayan bir matroid yapısına sahiptir. Örnekler: eşleştirme, minimum yayılma ağacı.
(3) Doğrusal cebir. Problem, lineer bir sistemin çözümlenmesi, bir determinant hesaplanması, özdeğerlerin hesaplanması, vb. İle azaltılabilir.
(4) Dışbükeylik. Problem bir tür dışbükey optimizasyon olarak ifade edilebilir. Yarı-kesin programlama, doğrusal programlama ve sıfır toplamlı oyunlar yaygın (artan şekilde) özel durumlardır.
(5) Polinom kimlik testi. Sorun bir polinom kimliğini kontrol etmekle azaltılabilir, böylece Cebir'in Temel Teoremi etkili bir randomize algoritmaya yol açar - ve bazı durumlarda, primallik gibi, hatta kesin olarak belirleyici bir algoritma.
(6) Markov Zinciri Monte Carlo. Sorun, hızla karışan bir yürüyüşün sonucundan örneklemeye indirgenebilir. (Örnek: yaklaşık mükemmel eşleşmeler sayılıyor.)
(7) Öklid algoritması. GCD, sürekli kesirler ...
Çeşitli / Sınıflandırmanın tam olarak nasıl yapılacağı belli değil: Kararlı evlilik, polinom faktoringi, permütasyon gruplarına üyelik problemi, sayılar teorisinde çeşitli problemler ve grup teorisi, düşük boyutlu kafes problemleri ...
Sorum şu: En önemli şeyler nelerdir?
Netleşmeştirmek:
Hiçbir listenin tam olarak tamamlanamayacağının farkındayım: verdiğiniz sonlu sayıda sebep ne olursa olsun, birisi P'de olan ama bu nedenlerden hiçbirinde olmayan egzotik bir problem bulabilecek. Kısmen bu sebepten ötürü, P veya BPP'de pek çok farklı, görünüşte alakasız problemi ortaya çıkaran fikirlere, sadece bir problem için çalışan fikirlere daha çok ilgi duyuyorum.
Ayrıca olayları nasıl bölmenin öznel olduğunu da anlıyorum. Örneğin, matroidler sadece özel bir dinamik programlama durumu mu olmalı? Derinlik ilk arama ile çözülebilirlik, dinamik programlamadan ayrı, kendi nedeni olacak kadar önemli midir? Ayrıca, çoğu zaman aynı sorun, ona nasıl baktığınıza bağlı olarak birçok nedenden dolayı P'de olabilir: örneğin, temel bir özdeğer bulma, doğrusal cebir nedeniyle P'dedir, fakat aynı zamanda dışbükey bir optimizasyon problemidir.
Kısacası, bir "sınıflandırma teoremi" ummıyorum - sadece şu anda verimli algoritmalar hakkında bildiklerimizi faydalı bir şekilde yansıtan bir liste için. Bu yüzden beni en çok ilgilendiren şey, P veya BPP’de geniş uygulanabilirliği olan, ancak yukarıdaki listeye uymayan şeyler - veya ham ürünümü geliştirmek için ilk çabalarımı geliştirmek için diğer fikirler. fizikçi.