Vor kurzem habe ich die schmerzhafte lustige Erfahrung gemacht, einem jungen talentierten Autodidakten, der noch nie einen formalen Kurs in Algorithmen oder Komplexität belegt hat, informell das Konzept der Computerkomplexität zu erklären. Es überrascht nicht, dass viele Begriffe zunächst seltsam wirkten, aber mit einigen Beispielen (PTIME, Unlösbarkeit, Unberechenbarkeit) Sinn machten , während andere natürlicher zu sein scheinen (Problemklassifizierung über Reduktionen, Zeit und Raum als Ressourcen, asymptotische Analyse) . Alles lief großartig, bis ich versehentlich zugab, dass SATkann effizient gelöst werden * in der Praxis ... Und einfach so habe ich sie verloren. Es war egal, wie überzeugend ich versuchte, für die Theorie zu argumentieren, der Junge war überzeugt, dass es alles künstliche Mistmathematik war , für die er sich nicht interessieren sollte. Gut...
¯ \ _ (ツ) _ / ¯
Nein, mir war weder das Herz gebrochen, noch interessierte es mich wirklich, was er dachte, das ist nicht der Punkt dieser Frage. Bei unserem Gespräch musste ich über eine andere Frage nachdenken.
Wie viel weiß ich wirklich über Probleme, die theoretisch nicht lösbar sind (superpolynomielle Zeitkomplexität), aber praktisch lösbar sind (über Heuristiken, Approximationen, SAT-Löser usw.)?
Mir wurde nicht viel klar. Ich weiß, dass es einige sehr effiziente SAT-Löser gibt, die enorme Instanzen effizient lösen, die Simplex in der Praxis hervorragend funktioniert und vielleicht ein paar weitere Probleme oder Algorithmen. Können Sie mir helfen, ein vollständigeres Bild zu zeichnen? Welche bekannten Probleme oder gar Problemklassen fallen in diese Kategorie?
TL; DR: Was sind Probleme, die in der Praxis kontraintuitiv lösbar sind? Gibt es eine (aktualisierte) Ressource, um mehr zu lesen? Haben wir eine Charakterisierung für sie? Und schließlich, als allgemeine Diskussionsfrage, sollten wir nicht?
EDIT # 1: Um meine letzte Diskussionsfrage zu einer solchen Charakterisierung zu beantworten , wurde ich in die geglättete Analyse von Algorithmen eingeführt, ein Konzept, das von Daniel Spielman und Shang-Hua Teng in [1] eingeführt wurde und kontinuierlich zwischen dem Worst-Case und interpoliert Durchschnittsfallanalysen von Algorithmen. Es ist nicht genau die oben diskutierte Charakterisierung, aber es fängt das gleiche Konzept ein, und ich fand es interessant.
[1] Spielman, Daniel A. und Shang-Hua Teng. "Geglättete Analyse von Algorithmen: Warum der Simplex-Algorithmus normalerweise polynomielle Zeit benötigt." Zeitschrift der ACM (JACM) 51, nr . 3 (2004): 385 & ndash; 463.