[Bearbeiten 21. Juli 2011: Ich habe die Frage bearbeitet, um weitere Beispiele anzufordern]
Diese Frage erfordert eine dokumentierte Diskussion oder weitere Beispiele einer heuristischen Beobachtung.
Einige mathematische Probleme, die effiziente Algorithmen zulassen, scheinen konvexer Natur zu sein. Ich denke an lineare und semi-definierte Programme und verschiedene kombinatorische Probleme, die sich auf diese reduzieren.
Erstens gibt es andere Problemfamilien, die effiziente Algorithmen für den konvexen / konjunktiven Fall zulassen? (Ich wäre besonders dankbar für Beispiele für Entscheidungsverfahren für logische Theorien.) Zweitens würde ich mich über Hinweise auf Artikel oder Artikelabschnitte freuen, in denen eine Meinung wie "Lauern unter vielen effizienten Algorithmen ist eine konvexe Struktur" diskutiert wird.
[Bearbeiten, 21. Juli 2011: Folgendes hinzugefügt.]
Ich möchte einige Klarstellungen hinzufügen. Es tut mir leid, dass ich sie nicht früher aufgenommen habe. Ich interessiere mich für logische Entscheidungsprobleme. Es scheint mir, dass effiziente Entscheidungsverfahren für das konjunktive Fragment mehrerer logischer Probleme existieren. Hier sind zwei Beispiele.
Effiziente Löser für quantifiziererfreie Theorien erster Ordnung (wie SMT-Löser für Gleichheit, Gleichheit mit nicht interpretierten Funktionen, Differenzarithmetik usw.) haben typischerweise einen effizienten Löser für das Konjunktivfragment und verwenden verschiedene Techniken, um mit Disjunktion und Negation umzugehen. Bei der statischen Analyse von Programmen basieren die häufig verwendeten (und effizienten) Abstraktionen auf ganzzahligen Intervallen, affinen Gleichheiten, Achtecken oder Polyedern. Bei der prädikatenbasierten Abstraktion und Programmverifizierung gibt es eine sogenannte kartesische Abstraktion, bei der es intuitiv darum geht, Konjunkturkonjunktionen anstelle willkürlicher boolescher Kombinationen zu haben. In all diesen Fällen geht es mir anscheinend darum, durch Ausnutzung des konjunktiven Fragments des Problems Effizienz zu erzielen.
Das konjunktive Fragment der Theorie erster Ordnung der linearen, reellen Arithmetik kann konvexe Polyeder ausdrücken. Deshalb habe ich ursprünglich nach konvexer Programmierung gefragt.
Ich interessiere mich für andere Probleme oder Beispiele, bei denen effiziente Lösungen (im theoretischen oder praktischen Sinne) auf einem konvexen oder konjunktiven Teilproblem beruhen. Wenn es eine andere allgemeine Bedingung gibt (Suresh erwähnte Submodularität), erwähnen Sie diese bitte und Probleme, deren Lösungen diese Bedingung ausnutzen.
quelle
Antworten:
Zu Frage 1.
Die von Ihnen angegebenen Beispiele, lineare Programme und SDPs (beide sind lineare Programme über konvexen Kegeln), können auf konvexe Programme verallgemeinert werden: Minimierung einer konvexen Funktion über eine konvexe realisierbare Menge. Da Sie nach „anderen Problemfamilien“ suchen, die dank der vorhandenen Konvexität effizient sind, ist es natürlich, den konvexen Funktionsteil fallen zu lassen und sich nur die konvexen Mengen anzusehen. Dies ist der Bereich der konvexen Geometrie, und hier gibt es viele Algorithmen.
Einer der Standardfavoriten ist:
Martin Dyer, Alan Frieze und Ravi Kannan. Ein zufälliger Polynomzeitalgorithmus zur Approximation des Volumens konvexer Körper .
Die Schwierigkeit hierbei ist, dass die Dimension ein Teil der Eingabe ist (sollte es sein); Andererseits tastet ein naiver Algorithmus Punkte auf dem Gitter ab, wodurch die Dimension im Exponenten der Laufzeit festgehalten wird. Der Grund, warum Konvexität hilft, ist intuitiv: Konvexität liefert Trennungsergebnisse, Dinge wie Farkas 'Lemma, die besagen, dass sich ein Punkt entweder in einem geschlossenen konvexen Kegel befindet, oder Sie können sie mit einer Hyperebene trennen. Die Relevanz hier ist zu sagen, dass Sie wissen, dass sich ein Punkt im konvexen Körper befindet, während sich eine Konstellation von Punkten um ihn herum nicht im Körper befindet: Von hier aus können Sie ein großes Stück der Eingabe abschneiden und sich nie die Mühe machen, daraus abzutasten. Vielleicht sollte ich klarstellen, dass das obige Papier die Schätzung durch die Erstellung eines netten Stichprobenalgorithmus innerhalb des Körpers vornimmt (beide sind nützlich). Zuletzt habe ich nachgesehen, es gibt noch kein deterministisches Analogon dazu; Ich habe nur gegoogelt, um zu sehen, ob sich der Status geändert hat (scheint nicht), und habe diese Notizen erhalten, die einige Referenzen enthalten, die Sie interessieren könnten:http://www.cs.berkeley.edu/~sinclair/cs294/n16.pdf . Ich habe diesen Kurs nie besucht und nur kurz nachgesehen, also entschuldige ich mich, wenn es Probleme gibt, aber die Referenzen dort scheinen zumindest einen Wert für Sie zu haben.
Weitere Beispiele für Algorithmen, die konvexe Geometrie nutzen, finden Sie in den Unterabschnitten "Bibliographie und Bemerkungen", die jeden Abschnitt (jedes Kapitels!) Von Jiri Matouseks Buch "Lectures on Discrete Geometry" abschließen.
Eine andere Sache, die oft zitiert wird und die Themen für Sie zu haben scheint (aber ich habe selbst nie über das Inhaltsverzeichnis hinausgeschaut; Matousek dagegen ist ... in meiner anderen Hand), ist "Geometrische Algorithmen und kombinatorisch Optimierung "von Grotschel, Lovasz und Schrijver. (Ja, dieser Lovasz.)
Ich denke, diese Referenzen haben viel für Sie, also gehe ich zur nächsten Frage über.
Zu Frage 2.
Obwohl es definitiv wahr ist, dass Konvexität mächtig ist, habe ich keinen Kommentar wie den gesehen, den Sie suchen, und ich denke, die Leute sind sehr vorsichtig, um ein solches Gefühl zu kommunizieren.
Ich habe eine Anekdote dazu. Eine Möglichkeit, wie Menschen Konvexität in Probleme „injizieren“, besteht darin, sie einfach mit etwas Konvexem zu approximieren / zu modellieren. (Zum Beispiel: Ersetzen von Rangbeschränkungen durch Normen in der Matrix, Ersetzen von Ganzzahlen (nicht konvex und nicht einmal verbunden) durch konvexe Mengen von Realzahlen.) Ein Text für dieses Zeug ist Boyd & Vandenberghes "Convex Optimization". Aber als ich mir Boyds Videos ansah, gab ihm jemand die Frage "ist konvex = effizient" und er sagte sofort SVD. Beachten Sie, dass SVD als rangbeschränktes Minimierungsproblem geschrieben werden kann. Mein Punkt ist jedenfalls, dass sogar Boyd einen Kommentar wie diesen sehr schnell korrigiert.
Trotzdem möchte ich zwei Orte teilen, an denen ich persönlich von konvexen Strukturen überrascht war (Experten können hier mit den Augen rollen und dösen). Die ersten sind sogenannte "Summe der Quadrate" -Probleme, bei denen es sich um Minimierungsprobleme gegenüber nicht konvexen Polynomen handelt. Dank der Interpolationseigenschaften von Polynomen können Sie diese als SDPs umschreiben. Zu diesem Thema gibt es einige schöne Kursnotizen von Pablo Parrilo; Sie finden diese und weitere Informationen auf seiner Webseite und einige andere Informationen in diesem MO-Beitrag von Noah Stein: /mathpro/32533/is-all-non-convex-optimization-heuristic/32634#32634 .
Ein weiterer schöner Ort ist in exponentiellen Familien. Nun, das ist alles "offensichtlich", sobald Sie erkennen, dass dies Lösungen für die maximale Entropie sind (ein konvexes Optimierungsproblem), aber es ist erstaunlich, wie viel konvexe Struktur das Verhalten exponentieller Familien beeinflusst (eine Referenz, die ich hier mag, ist Wainwright und Jordans Buch über Grafik Modelle). Dies gibt wiederum eine Rechtfertigung für einige der Dinge, die Menschen mit dieser Art der Modellierung tun.
quelle